]> git.xonotic.org Git - xonotic/gmqcc.git/commitdiff
manpage/init: -fsplit-vector-parameters description
authorWolfgang Bumiller <wry.git@bumiller.com>
Sat, 18 Oct 2014 12:39:14 +0000 (14:39 +0200)
committerWolfgang Bumiller <wry.git@bumiller.com>
Sat, 18 Oct 2014 12:39:14 +0000 (14:39 +0200)
doc/gmqcc.1
gmqcc.ini.example

index 566346a80990ed89b37b153449fa37f85604b1c4..78d767e26f384ae38e8e7394a0a0d607c9f90a50 100644 (file)
@@ -615,6 +615,16 @@ Turn on arithmetic exception tests in the compiler. In constant expressions
 which trigger exceptions like division by zero, overflow, underflow, etc,
 the following flag will produce diagnostics for what triggered that
 exception.
 which trigger exceptions like division by zero, overflow, underflow, etc,
 the following flag will produce diagnostics for what triggered that
 exception.
+.It Fl f Ns Cm split-vector-parameters
+With this flag immediate vector literals which only ever appear as function
+parameters won't be stored as vector immediates. Instead, the 3 floats making
+up the vector will be copied separately. Essentially this turns a vector-store
+instruction into 3 float-store instructions for such cases. This increases
+code size but can dramatically reduce the amount of vector globals, which is
+after all limited to 64k. There's at least one known codebase where this
+lowers the number of globals from over 80k down to around 3k. In other code
+bases it doesn't reduce the globals at all but only increases code size.
+Just try it and see whether it helps you.
 .El
 .Sh OPTIMIZATIONS
 .Bl -tag -width Ds
 .El
 .Sh OPTIMIZATIONS
 .Bl -tag -width Ds
index adc6624816f2d1aa8c6a1d92a75a976920909921..59a27f9a2091476bd7882b41e9bb0984774d7d4f 100644 (file)
     #exception.
     ARITHMETIC_EXCEPTIONS = false
 
     #exception.
     ARITHMETIC_EXCEPTIONS = false
 
+    #Split vector-literals which are only used dirctly as function parameters
+    #into 3 floats stored separately to reduce the number of globals at the
+    #expense of additional instructions.
+    SPLIT_VECTOR_PARAMETERS = false
+
 [warnings]
     #Generate a warning about variables which are declared but never
     #used.  This can be avoided by adding the ‘noref’ keyword in front
 [warnings]
     #Generate a warning about variables which are declared but never
     #used.  This can be avoided by adding the ‘noref’ keyword in front