Wolfgang (Blub) Bumiller
|
c198c23df1
|
Another peephole optimization
|
2012-12-06 22:10:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
8858f265dd
|
s/ir_function_pass_minor/ir_function_pass_peephole/
|
2012-12-06 21:39:34 +01:00 |
|
Wolfgang (Blub) Bumiller
|
9c5b95bbe3
|
Temporarily disable the new tempalloc strat
|
2012-12-06 17:41:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
f9b1d057b5
|
Moving all the global opts_ variables into a struct, now there's one global 'opts' struct
|
2012-12-06 13:23:53 +01:00 |
|
Wolfgang (Blub) Bumiller
|
94560d1873
|
-Ominor -> -Opeephole; added -Olocaltemps flag; using a less space-wasting temp-allocation in general
|
2012-12-06 13:08:46 +01:00 |
|
Wolfgang (Blub) Bumiller
|
37fbe7176f
|
Tiny codegen optimization: silently ignore the creation of STORE with input and output being the same address
|
2012-12-05 15:17:11 +01:00 |
|
Wolfgang (Blub) Bumiller
|
8acfd87039
|
remember this for later
|
2012-12-05 15:14:21 +01:00 |
|
Wolfgang (Blub) Bumiller
|
fe150aee72
|
ir_function_pass_minor: some minor optimizations
|
2012-12-05 14:14:35 +01:00 |
|
Wolfgang (Blub) Bumiller
|
8e077f378e
|
-Werror now changes the word 'warning' into 'error'
|
2012-12-04 12:54:53 +01:00 |
|
Wolfgang (Blub) Bumiller
|
c371efb882
|
Fix a type size bug: non-var locals overlapped with var locals, that was bad
|
2012-12-01 23:23:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
624e95ee03
|
Generate extparams on calls too since the to-be-called function needs not be generated first after all
|
2012-12-01 11:43:54 +01:00 |
|
Wolfgang (Blub) Bumiller
|
43c0343755
|
Offsetting builtins so we can use 'if builtin!=0' as condition but also allow a '#0' builtin
|
2012-12-01 00:36:24 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2a2465c884
|
prepare fields before generating globals so we avoid the need for relocating initialized fieldpointers
|
2012-11-30 21:22:48 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e0a7f8a484
|
qcvm -printfuns; prog_section_function.nargs is now signed as fteqcc sets builtins with varargs to have -1 params
|
2012-11-30 20:20:13 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6fc00e523d
|
All ir_instrs now get their lex-context, so that we can create an LNO file with -flno
|
2012-11-30 18:20:02 +01:00 |
|
Wolfgang (Blub) Bumiller
|
600ecda860
|
Set the full const/var qualifier; only generate warnings about unimplemented functions if they have no qualifier at all
|
2012-11-30 14:05:25 +01:00 |
|
Wolfgang (Blub) Bumiller
|
5e23e8296d
|
don't just store a 'bool constant' in the ast/ir, store the complete qualifier: 'int cvq', moved CV_ defines into gmqcc.h
|
2012-11-30 13:47:28 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2ec0a96a21
|
Fix a wrong vec_remove in the tailcall pass
|
2012-11-30 11:59:03 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e1fe6cff54
|
Importing tail-recursion optimization
|
2012-11-30 11:12:53 +01:00 |
|
Wolfgang (Blub) Bumiller
|
23e0637e85
|
ir_function_create_block now takes a lex_ctx instead of copying from the function; ast_ternary: need to remember the _end_ block of the 2 expressions because that's where the jump is actually supposed to be
|
2012-11-25 23:48:29 +01:00 |
|
Wolfgang (Blub) Bumiller
|
18b27d5cf6
|
use the hashtables in the IR
|
2012-11-25 13:37:54 +01:00 |
|
Wolfgang (Blub) Bumiller
|
060f995ca4
|
removing ir_function_get_local - it's unused
|
2012-11-25 13:33:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e6443496e7
|
Fix unused params in ir.c
|
2012-11-22 21:41:22 +01:00 |
|
Dale Weiler
|
baf69f3725
|
Fix more warnings
|
2012-11-22 20:32:08 +00:00 |
|
Wolfgang (Blub) Bumiller
|
04665a9c94
|
conversion warnings and sanity check
|
2012-11-22 21:25:02 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a8b31be328
|
Fixing a shadowing in ir.c
|
2012-11-22 21:12:15 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ba9217e576
|
make ast_function_label also work when -dumpfin is used instead of -dump
|
2012-11-21 21:59:25 +01:00 |
|
Wolfgang (Blub) Bumiller
|
42135f1322
|
Escape strings in ir-dump output
|
2012-11-21 21:49:21 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ebc6954bf5
|
casting explicitly to boolean values in early out logic
|
2012-11-21 19:36:28 +01:00 |
|
Wolfgang (Blub) Bumiller
|
5a6b2bceb2
|
Little optimization to not produce an unreachable goto instruction
|
2012-11-21 17:40:35 +01:00 |
|
Wolfgang (Blub) Bumiller
|
b1425dfcf1
|
'likely' hint for IFs
|
2012-11-21 17:37:45 +01:00 |
|
Wolfgang (Blub) Bumiller
|
1dfb14fef0
|
Fixing warnings
|
2012-11-21 16:07:36 +01:00 |
|
Wolfgang (Blub) Bumiller
|
390ac0d871
|
A hopefully working naive PHI solution
|
2012-11-21 16:05:54 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ea75003cf4
|
break and continue support
|
2012-11-19 19:39:52 +01:00 |
|
Wolfgang (Blub) Bumiller
|
f1735d91b8
|
remove a redundant ir_function member
|
2012-11-18 20:36:02 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ed6189e655
|
do not set a function-defs nargs to > 8
|
2012-11-18 20:32:06 +01:00 |
|
Wolfgang (Blub) Bumiller
|
149481b80c
|
CALL to handle extparams, renamed extparams again
|
2012-11-18 20:17:59 +01:00 |
|
Wolfgang (Blub) Bumiller
|
45cd90c777
|
Add a # prefix to EXTPARM%i
|
2012-11-18 20:11:14 +01:00 |
|
Wolfgang (Blub) Bumiller
|
f023004a67
|
Make functions copy their extparams
|
2012-11-18 20:06:28 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2b65ea599f
|
Some printf/con_out/con_err conversions, guarded some outputs with not-opts_pp_only so the -E switch can print to stdout normally
|
2012-11-18 11:43:46 +01:00 |
|
Wolfgang (Blub) Bumiller
|
906f319673
|
Replaced it all...
|
2012-11-15 18:32:09 +01:00 |
|
Dale Weiler
|
2e84cc0b41
|
Use new console system everywhere.
|
2012-11-15 00:28:46 +00:00 |
|
Wolfgang (Blub) Bumiller
|
1869440fd9
|
Preparing to parse arrays: adding TYPE_ARRAY and union/struct TYPE_ constants to be consistent with fteqcc, filled type-arrays with their data, attempting to parse an array variable and added some error messages to the IR in case of unhandled types
|
2012-11-11 10:13:01 +01:00 |
|
Wolfgang (Blub) Bumiller
|
04fd3d04d9
|
the codegen has to use STORE_V for .vector, not STORE_FLD - contrary to the regular global-assignment, even fteqcc gets this right, so gmqcc should too
|
2012-11-09 20:11:17 +01:00 |
|
Wolfgang (Blub) Bumiller
|
68148dd0e8
|
Delete an explicit #define
|
2012-11-06 19:50:16 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e143db0cae
|
gcc lost it's magic analyzer and now complains about uninitialized stuff... <sadface>
|
2012-11-04 11:41:44 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6aefb22c74
|
ir_builder_delete now causes the ..._delete_quick functions to be used which will skip the removal of references: ir_value's won't have their read/write references removed by ir_instr_delete_quick
|
2012-08-24 20:39:47 +02:00 |
|
Wolfgang (Blub) Bumiller
|
b2315777d1
|
cache the IMMEDIATE string in the builder directly
|
2012-08-24 19:52:06 +02:00 |
|
Wolfgang (Blub) Bumiller
|
74cb075665
|
cache filenames as such instead of using code_cachedstring
|
2012-08-24 19:44:29 +02:00 |
|
Wolfgang (Blub) Bumiller
|
bdffa662b6
|
not using cachedstring on generated string values anymore, it's not the IR's job
|
2012-08-24 19:08:33 +02:00 |
|