Commit graph

216 commits

Author SHA1 Message Date
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
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