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 |
|
Wolfgang (Blub) Bumiller
|
04dca17cff
|
ir_value now checks if a name was specified
|
2012-08-24 18:14:39 +02:00 |
|
Wolfgang (Blub) Bumiller
|
2524d9c31b
|
ir: don't require a label on a block
|
2012-08-24 18:03:57 +02:00 |
|
Wolfgang (Blub) Bumiller
|
f042068aab
|
ir_value_life_merge_into: fix a possible underflow
|
2012-08-24 15:06:30 +02:00 |
|
Wolfgang (Blub) Bumiller
|
5e4b8846d1
|
slight change to ir_value_dump_life; fixing ir_value_life_merge_into: TODO test this seperately, all cases
|
2012-08-23 22:07:32 +02:00 |
|
Wolfgang (Blub) Bumiller
|
76b0eb0cb7
|
Don't add DEF_SAVEGLOBAL for locals actually...
|
2012-08-23 18:32:11 +02:00 |
|
Wolfgang (Blub) Bumiller
|
b2cb612c70
|
Adding DEF_SAVEGLOBAL, marking globals as to-be-saved now, for real support of quicksaving
|
2012-08-23 18:28:05 +02:00 |
|
Wolfgang (Blub) Bumiller
|
f9746a59ae
|
it's not the IR's job to fail when a local of the same name is created twice...
|
2012-08-23 17:22:13 +02:00 |
|
Wolfgang (Blub) Bumiller
|
7e3ccf4626
|
MUL_VF and MUL_FV get their special life-range handling
|
2012-08-22 18:51:32 +02:00 |
|
Wolfgang (Blub) Bumiller
|
9296257c71
|
fix the functiondef's .locals...
|
2012-08-22 16:29:27 +02:00 |
|
Wolfgang (Blub) Bumiller
|
5d884bcb45
|
for liferange calc: the block we start from must tart with an empty set of living values
|
2012-08-22 16:20:26 +02:00 |
|
Wolfgang (Blub) Bumiller
|
eb86a3d7a3
|
fixing some debug output
|
2012-08-22 16:19:56 +02:00 |
|
Wolfgang (Blub) Bumiller
|
b2efef9be2
|
more info with -dump
|
2012-08-22 16:04:06 +02:00 |
|
Wolfgang (Blub) Bumiller
|
f6e5396f9f
|
First generate the globals, then the fields, so the defs have the correct layout for quake
|
2012-08-22 14:15:49 +02:00 |
|
Wolfgang (Blub) Bumiller
|
5f2fc64498
|
-Wimplicit-function-pointer, functions without bodies still have a global function variable and thus are function pointers, though this shouldn't really be used, thus -Wimplicit-function-pointer is on by default
|
2012-08-22 12:37:06 +02:00 |
|
Wolfgang (Blub) Bumiller
|
5390782d9b
|
Don't try to generate function code for functions without bodies
|
2012-08-22 12:33:24 +02:00 |
|
Wolfgang (Blub) Bumiller
|
1f32fe1d8a
|
Since we currently append AINSTR_END to the end of all functions for debugging purposes, and darkplaces complains when the very last statement isn't INSTR_DONE or INSTR_RETURN, we append an INSTR_DONE at the very end
|
2012-08-21 18:12:01 +02:00 |
|
Wolfgang (Blub) Bumiller
|
9eb9c99e72
|
Do not generate an OFS_RETURN variable, the IR doesn't need to know it as such
|
2012-08-21 16:08:23 +02:00 |
|
Wolfgang (Blub) Bumiller
|
19b66800ae
|
TYPE_FUNCTION values which are not constant are now allowed to be generated, they are function pointers.
|
2012-08-21 16:01:28 +02:00 |
|
Wolfgang (Blub) Bumiller
|
8f4333df30
|
right... instead of checking for end_sys_globals twice, maybe ACTUALLY check for end_sys_fields too...
|
2012-08-21 15:50:53 +02:00 |
|
Wolfgang (Blub) Bumiller
|
93856bf151
|
-Wvoid-variables, QC uses 2 special void-typed variables: end_sys_globals and .end_sys_fields. However if for some reason someone wants more, we still allow them to be code-generated, but by default warn about them by default
|
2012-08-21 15:49:53 +02:00 |
|
Wolfgang (Blub) Bumiller
|
fe3b1b2e8d
|
ir_values which are members of a vector should know that, so that liferange calc can use the vector rather than the member
|
2012-08-19 21:37:29 +02:00 |
|
Wolfgang (Blub) Bumiller
|
9420c01538
|
added -Wused-uninitialized and warning about variables which may be used without being initialized
|
2012-08-19 21:26:14 +02:00 |
|
Wolfgang (Blub) Bumiller
|
ede98f5521
|
Removing the old LIFE_RANGE_WITHOUT_LAST_READ support
|
2012-08-19 21:00:42 +02:00 |
|
Wolfgang (Blub) Bumiller
|
211b11f154
|
strip the newlines out of ir error messages, they're added by the msgprint routine
|
2012-08-19 20:45:26 +02:00 |
|
Wolfgang (Blub) Bumiller
|
c2925b61f2
|
add the type for the invalid-type-for-global message
|
2012-08-19 20:37:10 +02:00 |
|
Wolfgang (Blub) Bumiller
|
af3d9e0bdf
|
ir_value_set_string needs to use a strdup which doesn't return NULL for an emptystring
|
2012-08-19 20:35:51 +02:00 |
|