Wolfgang Bumiller
|
700628b2cb
|
counters for -Ocall-stores because we all love numbers
|
2012-12-26 19:11:26 +01:00 |
|
Wolfgang Bumiller
|
14889897da
|
Don't copy return values away from OFS_RETURN if they don't get locked.
|
2012-12-26 18:33:16 +01:00 |
|
Wolfgang Bumiller
|
456e80a7d5
|
manpage: -Ovoid-return
|
2012-12-26 10:28:01 +01:00 |
|
Wolfgang Bumiller
|
5779fea9b4
|
manpage: added -v to the qcvm manpage
|
2012-12-26 10:26:04 +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
|
47f7611ec9
|
verbose switches for the qcvm; makes -printfuns find the instruction-count of a function and print that too
|
2012-12-26 10:23:45 +01:00 |
|
Wolfgang Bumiller
|
aee7bf0de0
|
Actually generate the vector member ir_values in ir_function_finalize, since ir_builder_gen_global is too late / happens after life ranges; this should fix -Ooverlap-locals
|
2012-12-25 23:51:29 +01:00 |
|
Wolfgang Bumiller
|
1172e2b8cc
|
manpage: -Ocall-stores
|
2012-12-25 23:28:09 +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
|
d7de5cb5ff
|
do the locking before processing the call-reads otherwise all the call's parameters get locked as well
|
2012-12-25 23:24:31 +01:00 |
|
Wolfgang Bumiller
|
710f580e15
|
liferange calc now sets the 'locked' flag on values when reaching a CALL
|
2012-12-25 21:03:26 +01:00 |
|
Wolfgang Bumiller
|
35ba2dcaf9
|
The very aggressive -Ooverlap-strings
|
2012-12-25 20:38:05 +01:00 |
|
Wolfgang Bumiller
|
307746dc35
|
Ensure that the members[] array is filled for vector types so the liferange function can use all of them
|
2012-12-24 12:52:15 +01:00 |
|
Wolfgang Bumiller
|
fcdff3180a
|
Tests for the previous vector-liferange change
|
2012-12-24 12:43:16 +01:00 |
|
Wolfgang Bumiller
|
dc691c8a6e
|
Now this should deal with vector life ranges more correctly.
|
2012-12-24 12:43:05 +01:00 |
|
Wolfgang Bumiller
|
da927b5d41
|
print an error when static is used in global scope - this is currently not being handled as expected
|
2012-12-24 11:38:33 +01:00 |
|
Wolfgang Bumiller
|
2b468cb0ee
|
Added the 'static' keyword.
Implements #71
|
2012-12-24 11:30:58 +01:00 |
|
Wolfgang Bumiller
|
c3dfe2c61c
|
manpage: -q, --quiet
|
2012-12-24 11:03:34 +01:00 |
|
Wolfgang Bumiller
|
55dc45ec3e
|
manpage: -fftepp-predefs
|
2012-12-24 11:01:24 +01:00 |
|
Wolfgang Bumiller
|
2d66431af4
|
-q, --quiet option
|
2012-12-24 10:53:51 +01:00 |
|
Dale Weiler
|
f811a4e876
|
one too many zeros
|
2012-12-24 08:19:57 +00:00 |
|
Dale Weiler
|
fa155f8a42
|
Added my awesome MT1997 PRNG, and use it instead of stdio's rand()/srand() .. which are implementation specific .. and simply unsafe (for example one of the compilers at work simply has it's standard library implementation of rand() return 0 always (which is perfectly conformant)).
|
2012-12-24 01:43:27 +00: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 |
|
Dale Weiler
|
bd12429cd0
|
Implemented __FILE__, __LINE__, __RANDOM__, __RANDOM_LAST__, __COUNTER__ and __COUNTER_LAST__ as predefined macros. __FUNCTION__ is not implemented yet due to the overall complexity in making it constant.
|
2012-12-24 00:12:24 +00:00 |
|
Wolfgang Bumiller
|
6a93b72ea5
|
-Ostrip-constant-names
|
2012-12-23 22:58:46 +01:00 |
|
Wolfgang Bumiller
|
d3568627e9
|
code_genstring now caches strings, no need for code_cachestring
|
2012-12-23 21:42:00 +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
|
1ac913877e
|
revert 3ef30e850d
|
2012-12-23 21:34:04 +01:00 |
|
Wolfgang Bumiller
|
63928e231c
|
Remove ir_block_create_{add,sub,mul,div}, they're not used; STOREP instructions don't themselves to their target pointer's 'writes' list, but 'reads' list instead
|
2012-12-23 21:29:15 +01:00 |
|
Wolfgang Bumiller
|
435dee935b
|
Start instruction numbering at 1 and make parameters live at 0
|
2012-12-23 21:20:16 +01:00 |
|
Wolfgang Bumiller
|
3ef30e850d
|
Don't store off CALL results if they're never read
|
2012-12-23 21:11:56 +01:00 |
|
Wolfgang Bumiller
|
cff74493a7
|
Even safer vector macros
|
2012-12-23 20:55:15 +01:00 |
|
Wolfgang Bumiller
|
fb5a65c51a
|
Life Ranges: First deal with all writes, then with all reads, since writes will remove values from the Living set
|
2012-12-23 20:50:21 +01:00 |
|
Wolfgang Bumiller
|
46c2fe2443
|
Fixing vector macros
|
2012-12-23 20:49:50 +01:00 |
|
Wolfgang Bumiller
|
890ca3c782
|
added -disasm-func to the qcvm
|
2012-12-23 20:45:43 +01:00 |
|
Wolfgang Bumiller
|
ee7051c5a4
|
strcmp and strncmp builtins
|
2012-12-23 19:22:38 +01:00 |
|
Wolfgang Bumiller
|
275b6f777a
|
Adding strcat builtin to qcvm
|
2012-12-23 19:06:29 +01:00 |
|
Wolfgang Bumiller
|
3c9283cc41
|
don't optimize out NOT_S instructions for COND
|
2012-12-23 17:51:01 +01:00 |
|
Wolfgang Bumiller
|
2967dba7ad
|
manpage: remove the MUL_FV/VF section, it wouldn't be legal code anyway
|
2012-12-23 17:50:44 +01:00 |
|
Wolfgang Bumiller
|
4f06daf7d0
|
manpage: optimization section
|
2012-12-23 17:46:40 +01:00 |
|
Wolfgang Bumiller
|
c91b457054
|
Mask overlap-locals by -Ooverlap-locals, and count (the amount of overlapped functions)
|
2012-12-23 17:40:56 +01:00 |
|
Wolfgang Bumiller
|
b8c61f2f88
|
Try generating the function-locals in a later pass; with the option to overlap them.
|
2012-12-23 17:32:39 +01:00 |
|
Wolfgang Bumiller
|
67bc99223d
|
Fix a nasty bug in the executor; and make null-strings be shown as (null) in the trace output
|
2012-12-23 17:32:14 +01:00 |
|
Wolfgang Bumiller
|
eabe23cc24
|
Add -Ooverlap-locals to -O3
|
2012-12-23 16:31:21 +01:00 |
|
Wolfgang Bumiller
|
88a6437840
|
remember the maximum amount of required function-locals
|
2012-12-23 16:31:01 +01:00 |
|
Wolfgang Bumiller
|
7998a98818
|
ir_function now has a flags field - flags are: IR_FLAG_HAS_{ARRAYS,UNINITIALIZED,GOTO}
|
2012-12-23 16:21:38 +01:00 |
|
Wolfgang Bumiller
|
2382fdee50
|
util_swa_* + GMQCC_INLINE
|
2012-12-23 13:11:20 +01:00 |
|
Wolfgang Bumiller
|
1731a29c51
|
Don't generate defs for locals or parameters unless using -g
|
2012-12-23 12:22:27 +01:00 |
|
Wolfgang Bumiller
|
84fcd95d4e
|
utf8lib.c -> utf8.c - I hope windows 8 allows this filename :P
|
2012-12-23 10:44:03 +01:00 |
|
Wolfgang Bumiller
|
95965e9ff6
|
license header
|
2012-12-23 10:35:21 +01:00 |
|