Commit graph

1676 commits

Author SHA1 Message Date
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
Wolfgang Bumiller
e72d141ec4 Uchar -> uchar_t for consistency 2012-12-23 10:34:29 +01:00
Wolfgang Bumiller
3e6c98d65d manpage: -futf8 2012-12-23 10:23:42 +01:00
Wolfgang Bumiller
041f8a86d7 utf8 tests 2012-12-23 10:23:42 +01:00
Wolfgang Bumiller
2164afb8cf Better error message for -futf8 2012-12-23 10:23:42 +01:00
Wolfgang Bumiller
ac0ca3de81 fix and speed up u8_analyze for our purposes 2012-12-23 10:23:42 +01:00
Wolfgang Bumiller
a707440e52 -futf8 implementation 2012-12-23 10:23:42 +01:00