X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=doc%2Fgmqcc.1;h=dbf5bab362bc7a296b741e7181d6b5b2f649c040;hb=1172e2b8ccc0fcf43b1ab1c2636bdc267a80c202;hp=38b6fe1b99facb124a97953dd1213056a08166fc;hpb=2967dba7adb85997f1c8351edf3c1a0aebde0ad3;p=xonotic%2Fgmqcc.git diff --git a/doc/gmqcc.1 b/doc/gmqcc.1 index 38b6fe1..dbf5bab 100644 --- a/doc/gmqcc.1 +++ b/doc/gmqcc.1 @@ -50,6 +50,11 @@ be overwritten. List all possible optimizations and the optimization level they're activated at. .TP +.BR -q ", " --quiet +Be less verbose. In particular removes the messages about which files +are being processed, and which compilation mode is being used, and +some others. Warnings and errors will of course still be displayed. +.TP .BI -W warning "\fR, " "" -Wno- warning Enable or disable a warning. .TP @@ -244,10 +249,6 @@ token inside the enclosing attribute-brackets. This may change when the actual attribute syntax is better defined. .SH COMPILE FLAGS .TP -.B -foverlap-locals -Allow local variables to overlap with each other if they don't -interfer with each other. (Not implemented right now) -.TP .B -fdarkplaces-string-table-bug Add some additional characters to the string table in order to compensate for a wrong boundcheck in some specific version of the @@ -266,6 +267,23 @@ Enable a partially fteqcc-compatible preprocessor. It supports all the features used in the Xonotic codebase. If you need more, write a ticket. .TP +.B -fftepp-predefs +Enable some predefined macros. This only works in combination with +\'-fftepp' and is currently not included by '-std=fteqcc'. The +following macros will be added: +.in +4 +.nf +__LINE__ +__FILE__ +__COUNTER__ +__COUNTER_LAST__ +__RANDOM__ +__RANDOM_LAST__ +.fi +.in +Note that fteqcc also defines __FUNC__, __TIME__, __DATE__ and +__NULL__, which are not yet implemented. +.TP .B -frelaxed-switch Allow switch cases to use non constant variables. .TP @@ -358,6 +376,46 @@ as long as the functions cannot be called in a recursive manner. Since it's hard to know whether or not an array is actually fully initialized, especially when initializing it via a loop, we assume functions with arrays to be too dangerous for this optimization. +.TP +.B -Olocal-temps +This promotes locally declared variables to "temps". Meaning when a +temporary result of an operation has to be stored somewhere, a local +variable which is not 'alive' at that point can be used to keep the +result. This can reduce the size of the global section. +This will not have declared variables overlap, even if it was +possible. +.TP +.B -Ostrip-constant-names +Don't generate defs for immediate values or even declared constants. +Meaning variables which are implicitly constant or qualified as such +using the 'const' keyword. +.TP +.B -Ooverlap-strings +Aggressively reuse strings in the string section. When a string should +be added which is the trailing substring of an already existing +string, the existing string's tail will be returned instead of the new +string being added. + +For example the following code will only generate 1 string: + +.in +4 +.nf +print("Hell you!\\n"); +print("you!\\n"); // trailing substring of "Hello you!\\n" +.fi +.in +There's however one limitation. Strings are still processed in order, +so if the above print statements were reversed, this optimization +would not happen. +.TP +.B -Ocall-stores +By default, all parameters of a CALL are copied into the +parameter-globals right before the CALL instructions. This is the +easiest and safest way to translate calls, but also adds a lot of +unnecessary copying and unnecessary temporary values. This +optimization makes operations which are used as a parameter evaluate +directly into the parameter-global if that is possible, which is when +there's no other CALL instruction in between. .SH CONFIG The configuration file is similar to regular .ini files. Comments start with hashtags or semicolons, sections are written in square @@ -390,6 +448,10 @@ Here's an example: .fi .in .SH BUGS +Currently the '-fftepp-predefs' flag is not included by '-std=fteqcc', +partially because it is not entirely conformant to fteqcc. +.sp + Please report bugs on , or see on how to contact us. .SH FILES