Commit graph

305 commits

Author SHA1 Message Date
Wolfgang (Blub) Bumiller
ebfc73e48a u1 here instead of s1 2012-06-25 13:30:14 +02:00
Wolfgang (Blub) Bumiller
249ecd60db Generate function global, take 2-op instruction operand ordering into account 2012-06-25 11:52:18 +02:00
Wolfgang Bumiller
dc74573fae Print the name, not the struct pointer :S 2012-05-13 14:06:50 +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
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
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
b5aed08c93 Dump should print a warning if lifepasses don't match... 2012-05-03 14:17:00 +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 Bumiller
bb7c59c648 Remove 2 unused variables in create_binop - unused since create_general_instruction 2012-05-01 16:45:15 +02:00
Wolfgang Bumiller
22cf7e0a4d Fix missing 'int op;' in load_from_end, accidently removed it together with the other vars whil making it use general_instruction 2012-05-01 16:44:36 +02:00
Wolfgang Bumiller
cde5444f24 create_phi -> store_value, not store_local... phi output cannot be overwritten 2012-05-01 16:27:36 +02:00
Wolfgang Bumiller
0337320054 Reuse general_instr to shorten create_binop 2012-05-01 16:26:25 +02:00
Wolfgang Bumiller
282edea8de Get rid of duplicate code by adding an ir_block_create_general_instr 2012-05-01 16:23:45 +02:00
Wolfgang Bumiller
6ae8a69ab0 ir_block_create_fieldaddress - and fixing operand-numbering in load_from_ent 2012-05-01 16:20:44 +02:00
Wolfgang Bumiller
45651cea8d Implementation of liferange overlap test 2012-05-01 12:40:37 +02:00
Wolfgang Bumiller
ddbd460331 Check for TYPE_FIELD in load_from_ent 2012-05-01 12:14:07 +02:00
Wolfgang Bumiller
18969b1713 style fix 2012-05-01 12:13:04 +02:00
Wolfgang Bumiller
4c38566877 ir_block_create_load_from_ent - long name, I know, but we need to be able to load from pointers too at some point... 2012-05-01 12:12:53 +02:00
Wolfgang Bumiller
5f0800bef6 support TYPE_FIELD in stores; storeP to do a different kind of type checking 2012-05-01 12:05:47 +02:00
Wolfgang Bumiller
340daeabc4 ir_block_create_storep for storing through pointers, the IR does not implicitly create conversions for now when using pointers, but it could 2012-05-01 11:58:52 +02:00
Dale Weiler
c3df4edebd Remove trailing whitespace 2012-04-28 19:03:16 -04:00
Dale Weiler
3e7a8c0e78 All code is now C89/C90 compat 2012-04-28 18:56:09 -04:00
Dale Weiler
05966ee009 Remove trailing whitespace from everything 2012-04-28 16:43:39 -04:00
Dale Weiler
df9a685f61 surpress empty bodies 2012-04-28 15:13:41 -04:00
Wolfgang Bumiller
50f00fb0a7 Adding debug dump functions 2012-04-28 11:50:09 +02:00
Wolfgang Bumiller
8035563a45 Fixed: block-labels were NULLed after being set -_- 2012-04-28 11:50:09 +02:00
Wolfgang Bumiller
75b78720fd lex_ctx_t -> lex_ctx, vector_t -> vector 2012-04-28 11:15:29 +02:00
Wolfgang Bumiller
da827e6098 Removed the qc_type enum and replaced all qc_* by TYPE_* 2012-04-28 10:42:03 +02:00
Wolfgang Bumiller
8d87767afa 2 missing return values 2012-04-27 18:00:57 +02:00
Wolfgang (Blub) Bumiller
e4d92130da Using GMQCC_WARN some more where it makes sense 2012-04-27 13:31:40 +02:00
Wolfgang (Blub) Bumiller
86564686f3 Turned nearly every void-returning function into a bool-returning function, and checking return values wherever necessary to be able to properly exit on failures 2012-04-27 13:28:39 +02:00
Wolfgang (Blub) Bumiller
13ec68bc4f qbool -> bool 2012-04-26 10:16:15 +02:00
Wolfgang (Blub) Bumiller
8d121af47c Copyright notices 2012-04-25 17:27:49 +02:00
Wolfgang (Blub) Bumiller
418430e05d Get stuff ready to compile - #if 0 on instructions not yet added to the instruction list (eg integer ones) 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
522738de48 Adding liferange-calculation used later for templ-allocateion 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
08f6e65b1c _naive_ phi solver 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
d1ce8de3e4 ifalse->false and true again, binop code 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
adb1ab6ce2 A few of the main IR operation implementations 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
8dd593b306 removed an old vector related function 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
e0cd68c72a ir.c: ir_value and style fixups 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
be620ff431 Same style fixups for ir_instr 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
38532ceb11 ir.c: ir_instr 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
dbe1b56f48 Same style fixup for ir_block as previous commits for function 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
2e0feca040 ir.c: importing ir_block 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
9343936082 space idnentation, macros, strdup again 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
9b6cfcb80f ir.c: importing ir_function 2012-04-25 17:27:47 +02:00
Wolfgang (Blub) Bumiller
86bed959d4 Space indentation in ir.c builder part 2012-04-25 17:27:47 +02:00
Wolfgang (Blub) Bumiller
356a16820a macros, strdup->util_strdup, malloc->mem_a 2012-04-25 17:27:47 +02:00
Wolfgang (Blub) Bumiller
1cc0cfdcec importing from ir_builder.c -> ir.c 2012-04-25 17:27:47 +02:00