Commit graph

2739 commits

Author SHA1 Message Date
Dale Weiler
f4bc6ba08a Removed even more warnings 2012-06-07 11:09:29 -04:00
Dale Weiler
ce941066db removed more warnings 2012-06-07 11:04:38 -04:00
Dale Weiler
911c2bddb6 fixed shadow issue 2012-06-07 10:59:57 -04:00
Dale Weiler
84c110e8f5 More compile warnings (disabled many for now, they will be re-enabled one-by-one as code that triggers warnings is rectified) 2012-06-07 10:57:48 -04:00
Dale Weiler
d59819620b s/\t/ /g 2012-06-07 10:20:54 -04:00
Dale Weiler
4e9fc02a95 splint: use typedef instead of macro 2012-06-07 10:19:00 -04:00
Wolfgang Bumiller
dc74573fae Print the name, not the struct pointer :S 2012-05-13 14:06:50 +02:00
Dale Weiler
127ad76c65 Whitespace 2012-05-11 12:02:22 -04:00
Wolfgang (Blub) Bumiller
9ef0435f9d fixing fwrite calls I had messed up 2012-05-09 18:24:13 +02:00
Wolfgang (Blub) Bumiller
5673267c01 Adding a few error message. 2012-05-09 17:39:17 +02:00
Wolfgang (Blub) Bumiller
dfc0f6fab3 TYPE_VARIANT in codegen, writing code from ast-test 2012-05-09 17:30:08 +02:00
Wolfgang (Blub) Bumiller
61d3a9d1a0 generating block code in a simple naive order for now - the ast / parser should help improving order 2012-05-09 15:03:19 +02:00
Wolfgang (Blub) Bumiller
9d72fa9a03 Checking if mem_a returns NULL in ir_..._new functions 2012-05-09 15:03:19 +02:00
Wolfgang (Blub) Bumiller
f5cbd73768 It's the same TYPE enum... 2012-05-09 15:03:19 +02:00
Wolfgang Bumiller
5ca6f4abca More work on generating code - still not instantiating function-statements, 2 kinds of FIXME comments: relocation and creation of ir_values for ir_functions 2012-05-09 15:03:19 +02:00
Wolfgang Bumiller
c252c7e62b Starting ir_builder_generate - TYPE_FUNCTION still TODO 2012-05-09 15:03:19 +02:00
Wolfgang Bumiller
1fd7e30de6 code_cachedstring 2012-05-09 15:03:19 +02:00
Wolfgang Bumiller
edcb976053 Convenience function to store a predefined string in the qc string area 2012-05-09 15:03:19 +02:00
Wolfgang Bumiller
8bfbe4d619 Preparing to generate code from the IR - code_write should return a bool, and take a filename rather than use program.dat hardcoded 2012-05-09 15:03:19 +02:00
Dale Weiler
ac890513e4 readme s/\t/ /g 2012-05-06 17:00:16 -04:00
Dale Weiler
4a1f67bb97 Updated readme 2012-05-06 16:58:30 -04:00
Dale Weiler
fc1844e2a2 Merge branch 'master' of github.com:graphitemaster/gmqcc 2012-05-04 22:01:26 -04:00
Dale Weiler
99971b7806 util_strncmpexact 2012-05-04 22:01:02 -04:00
Wolfgang (Blub) Bumiller
704394c0a2 removing ast-test macro concept 2012-05-04 13:04:06 +02:00
Wolfgang (Blub) Bumiller
87b08247a1 A new ast-test, now using some macros to make them easier to write... 2012-05-04 12:28:35 +02:00
Wolfgang (Blub) Bumiller
200b425db0 Fixed some dangling '}', it compiles again now 2012-05-04 12:26:24 +02:00
Wolfgang (Blub) Bumiller
73749db6b4 What was I thinking... fixing loop's jump creation so it doesn't try creating multiple jumps... this code is also much more readable 2012-05-04 12:24:44 +02:00
Wolfgang (Blub) Bumiller
c670a8d278 ast_loop must end by entering the outgoing block 2012-05-04 12:01:53 +02:00
Wolfgang (Blub) Bumiller
e0331ef15f Changing life-range calculation to include the last read because then it doesn't need another vector to keep elements in. In order for this to make sense, the life-range overlap test now returns false if the end of one range _equals_ the beginning of the other, since that's not truly overlapping anymore 2012-05-04 10:20:04 +02:00
Wolfgang (Blub) Bumiller
2f92dedb4c Move the output block of a loop to after the loop, otherwise IR dumps looks just messy... note that this is merely a cosmetic change 2012-05-04 10:01:38 +02:00
Dale Weiler
6b52c66d11 More assembly parsing (function call stuff) 2012-05-03 19:45:59 -04:00
Wolfgang (Blub) Bumiller
c3460c1654 ast_function gets 'breakblock' and 'continueblock' for break and continue support; fixed some typos; added huge ast_loop_codegen implementation... need to go through it and check 2012-05-04 00:16:51 +02:00
Dale Weiler
510d795c06 More assembler code (less allocations too) 2012-05-03 16:54:34 -04:00
Wolfgang (Blub) Bumiller
a1a9fc797d Same for ternary: reordered a bit, and fixing ontrue->onfalse at the jump back to the merge block 2012-05-03 22:07:58 +02:00
Wolfgang (Blub) Bumiller
8a543bfae1 reorder ifthen codegen and fix a jump generation where I used ontrue instead of onfalse 2012-05-03 22:05:20 +02:00
Wolfgang (Blub) Bumiller
375cfd24b3 ast_loop - codegen dummied 2012-05-03 21:57:13 +02:00
Wolfgang (Blub) Bumiller
3e974a1a24 If-protect on_true and on_false in ast_ifthen since they can be NULL (contrary to ast_ternary where they can't) 2012-05-03 21:56:05 +02:00
Wolfgang (Blub) Bumiller
bbcd3f12de Removing TODO-comment since it's done 2012-05-03 18:38:29 +02:00
Wolfgang (Blub) Bumiller
b5aed08c93 Dump should print a warning if lifepasses don't match... 2012-05-03 14:17:00 +02:00
Wolfgang (Blub) Bumiller
46122235e6 ast_function_codegen: Add a return instruction if it is missing, or error if we're not in a void-function 2012-05-03 14:15:02 +02:00
Wolfgang (Blub) Bumiller
bd84ebcf74 ast-test should also finalize functions directly 2012-05-03 14:04:35 +02:00
Wolfgang (Blub) Bumiller
5c385a3c78 naive_phi now recognizes both store_local and store_value as non-global, create_store prints the operand names on an invalid store to a value of store-type store_value 2012-05-03 14:01:56 +02:00
Wolfgang (Blub) Bumiller
4acea855c5 ir-test.c to use assertions, abort alone creates an ugly output 2012-05-03 14:00:38 +02:00
Wolfgang (Blub) Bumiller
0f023bc219 sprintf with length modifiers is annoying... 2012-05-03 13:45:24 +02:00
Wolfgang (Blub) Bumiller
627ef279fd ast_test to build an IR 2012-05-03 13:26:49 +02:00
Wolfgang (Blub) Bumiller
4c9c6ee5bd ast_ternary_codegen - beware, it's almost a spaghetti... almost... 2012-05-03 13:02:29 +02:00
Wolfgang (Blub) Bumiller
91bf040f0a ast_function_label now takes a labelname to prefix the id with 2012-05-03 12:40:49 +02:00
Wolfgang (Blub) Bumiller
54c92d5ae1 ast_ifthen_codegen 2012-05-03 12:38:43 +02:00
Wolfgang (Blub) Bumiller
2c329db9b9 ast_entfield_codegen 2012-05-03 12:19:33 +02:00
Wolfgang (Blub) Bumiller
da9a4fef29 Type information moved to ast_expression from ast_value, every ast node should in theory know its type - it is important for dereferencing pointers or entity fields, to figure out the output type. Eg. so that ast_entfield knows what kind of OP_LOAD it needs to use 2012-05-03 12:12:22 +02:00