Rudolf Polzer
f4f805f4c9
New options: -ftypeless-stores and -fsort-operands
...
These flags reduce entropy, but not size, of the generated assembly
code. This helps compressability of the files.
Additionally, -ftypeless-stores might SLIGHTLY improve engine
performance due to less instructions being used (so branch prediction
might work better). Probably cannot be measured though.
Signed-off-by: Rudolf Polzer <divverent@xonotic.org>
2013-08-27 09:55:00 +02:00
Dale Weiler
91c7209146
Track constant folds in opts_optimization list .. this could be handled better I assume.
2013-08-15 03:45:50 +00:00
Dale Weiler
6f749d61b1
Added -Oconst-fold-dce (dead code elimination optimization for when constant expressions form the basis of the dead code, i.e if else with constant expression). Fixed deps and added documentation. Cleaned up folds for ir_value (can now use the same macros as the ast_value ones).
2013-08-01 07:07:59 +00:00
Dale Weiler
e6c1d66c35
Merge branch 'master' into cooking
...
Conflicts:
opts.def
2013-06-17 20:14:26 +00:00
Dale Weiler
23cb7f4e09
Fix some bugs
2013-06-17 20:11:37 +00:00
Wolfgang Bumiller
179da9241c
working on vararg piping: detecting several error cases, adding -Wunsafe-types and -funsafe-varargs
2013-06-15 09:46:44 +02:00
Dale Weiler
121e080697
Guart statistics by option.
2013-06-02 00:07:54 +00:00
Dale Weiler
6d6a2efada
Experimental support for implicit return assignments. This closes #107 . To enable return assignment support use -freturn-assignments. This allows you to do the following in QC code. T name() { return = expr_eval_T; return; /* returns expr_eval_T */ }. It allows for concise code and to rid locals in functions. It also saves a tremendous amount of space since only types of certian globals need to be allocated for returns.
2013-05-29 11:13:42 +00:00
Dale Weiler
68ca2c4962
Pushing the -fexpressions-for-builtins stuff and the modff for catching fractional-part builtin numbers.
2013-04-25 17:08:02 +00:00
Dale Weiler
f2b21158d8
Rewrote memory tracking, now prints highest water mark (most used memory at a given time during compile). Changes all byte representation to MB representation. Added ability to print the contents of the leaked memory to the console when -debug is on (infact the lost messages only print during -debug), -memchk simply reports the memory info at the end (it is also printed when -debug). You can set the memory dump columns with -memdumpcols=# where # is the number of columns you want (default is 16)
2013-04-15 20:54:53 +00:00
Wolfgang Bumiller
ce8b595ff2
Yes, that's what you are SUPPOSED to do in this case: ERROR, not default to crap
2013-02-04 00:20:41 +01:00
Wolfgang Bumiller
46892daa3a
Reverting this awful unmaintainable mess of option description system
2013-02-04 00:19:56 +01:00
Dale Weiler
ebd6a1ae95
Document the options in the opts.def file
2013-01-30 06:04:34 +00:00
Dale Weiler
d201cfe6b4
Work in progress options cleanup.
2013-01-30 05:24:30 +00:00
Dale Weiler
6c4c373089
Print off the documentation when -[f/W/O]help, also fixed some of the descriptions for flags.
2013-01-30 04:22:13 +00:00
Dale Weiler
480b2fc7b6
Added documentation to all options inside the binary itself. These will be used later for "man/nroff -man"-like documentation on OSs that lack "man" and the concept of system wide documentation. Also it will be nice to add -Wsome_warning help (to get some help about a specific warning/error, etc).
2013-01-30 02:56:58 +00:00
Dale Weiler
76614b311e
s/WARN_PREPROCESSOR/WARN_CPP/g (to stay somewhat compatible with gcc/clang warnings for the preprocessor)
2013-01-30 01:32:10 +00:00
Dale Weiler
d61172598e
Removed -Wcpp (not needed any more)
2013-01-30 01:26:51 +00:00
Wolfgang Bumiller
ad7059156a
now moving -Ocall-stores to -O3
2013-01-25 16:25:59 +01:00
Wolfgang Bumiller
3c8ce7c866
moving -Ocall-stores to -O4 until the vehicle issue is solved
2013-01-25 16:03:16 +01:00
Wolfgang Bumiller
d12e6e15c9
-flegacy-vector-maths, enabled by default
2013-01-14 11:15:06 +01:00
Wolfgang Bumiller
e0504ce482
This undef was missing there...
2013-01-13 17:37:09 +01:00
Wolfgang Bumiller
3652a122ed
Removed -fenhanced-diagnostics - it's now --correct, which makes sense since it doesn't affect the compilation process itself
2013-01-12 17:10:07 +01:00
Wolfgang Bumiller
4df6d1e028
guarding vararg code by -fvariadic-args
2013-01-12 16:28:04 +01:00
Wolfgang Bumiller
4f7113116d
-Wall now does not set -Wuninitialized-global
2013-01-09 20:39:17 +01:00
Wolfgang Bumiller
7d4340469e
So it wasn't _reall_ the optimization... it just made it easier. -Olocal-temps -> -O3
2013-01-08 21:23:38 +01:00
Wolfgang Bumiller
4c05230cb3
Seems like there's still a problem with it - -Olocal-temps back up to -O4
2013-01-07 20:27:50 +01:00
Wolfgang Bumiller
debfe136a5
Moving -Olocal-temps back to -O3
2013-01-07 14:55:42 +01:00
Wolfgang Bumiller
cbb91c2026
moving -Olocal-temps to -O4 until the issues are solved
2013-01-07 12:58:56 +01:00
Dale Weiler
793547a132
Implemented -f[no]enhanced-diagnostics, to enable/disable the usage of enhanced diagnostics.
2013-01-04 12:07:42 +00:00
Dale Weiler
29db4a44ed
Happy new years!
2013-01-01 05:08:55 +00:00
Wolfgang Bumiller
d47da25b82
Changing -Wtoo-few-parameters to -Winvalid-parameter-count; removing hardcoded COMPILER_GMQCC code which makes invalid parameter counts an error and instead make -std=gmqcc imply -Werror-invalid-parameter-count
2012-12-31 12:29:25 +01:00
Wolfgang Bumiller
0c4806b4a0
Adding -Wparenthesis, fixing constant folding of && and ||
2012-12-31 11:11:46 +01:00
Dale Weiler
921877e8a4
Implement [[deprecated]] general attribute, will mark functions as deprecated. Making calls to functions marked as such will trigger a compiler warning. Enabled by default.
2012-12-30 06:43:07 +00:00
Wolfgang Bumiller
8bdd060112
-Wdifferent-qualifiers, -Wdifferent-attributes
2012-12-29 17:41:20 +01:00
Wolfgang Bumiller
73bc4cc3e4
-Ovector-components
2012-12-29 15:05:04 +01:00
Wolfgang Bumiller
47baca22d9
-Wuninitialized-const, -Wuninitialized-global
2012-12-28 19:07:43 +01:00
Wolfgang Bumiller
77d454725a
-Wreserved-names, -fpermissive allows local variables named 'nil' to be created even with -funtyped-nil, they supersede the global untyped 'nil'
2012-12-28 18:22:09 +01:00
Wolfgang Bumiller
2e0216b7c6
'nil' global with -funtyped-nil
2012-12-28 18:16:19 +01:00
Wolfgang Bumiller
ebb7cb2ae3
parsing of loop labels
2012-12-27 23:43:20 +01:00
Wolfgang Bumiller
c6e7e80f23
there's no -f flag named overlap-locals... removed the opts.def entry
2012-12-27 22:18:58 +01:00
Wolfgang Bumiller
5cfd97c344
-fbail-on-werror option
2012-12-27 12:46:36 +01:00
Wolfgang Bumiller
d4483bfda6
-Oglobal-temps
2012-12-26 23:18:45 +01:00
Wolfgang Bumiller
af5b552a7f
-Ovoid-return - the last INSTR_RETURN of a void functions is replaced by INSTR_DONE to reduce the instruction count
2012-12-26 10:24:33 +01:00
Wolfgang Bumiller
a7c3ef3e22
-Ocall-stores as part of -O1: instead of having CALL instructions issue STOREs for every parameter, use the newly introduced 'lock' flag to make the operations generating the call's parameters generate them right into the OFS_PARM if there's no interfering CALL in between
2012-12-25 23:25:59 +01:00
Wolfgang Bumiller
35ba2dcaf9
The very aggressive -Ooverlap-strings
2012-12-25 20:38:05 +01:00
Dale Weiler
0a57c408c0
Added ftepp predefs flag (ability to turn on/off predefs) disabled by default (even with -ftepp), enabled with -E, to enable use -fftepp-predefs.
2012-12-24 00:21:55 +00:00
Wolfgang Bumiller
6a93b72ea5
-Ostrip-constant-names
2012-12-23 22:58:46 +01:00
Wolfgang Bumiller
6a60368a1b
-Olocaltemps -> -Olocal-temps for consistency; added manpage entry; removed leftover manpage entry for -foverlap-locals; -Olocal-temps moved from -O1 to -O3 due to stability concerns
2012-12-23 21:39:23 +01:00
Wolfgang Bumiller
eabe23cc24
Add -Ooverlap-locals to -O3
2012-12-23 16:31:21 +01:00