Commit graph

323 commits

Author SHA1 Message Date
Quentin Carbonneaux
a07c6e10f5 fix minor bug in rega
The detection of empty permutations was incorrect
since the changes made to the vector routines.
2015-10-08 23:02:19 -04:00
Quentin Carbonneaux
2642ff022c improve debug output 2015-10-08 22:05:30 -04:00
Quentin Carbonneaux
e53054c076 allow multiple functions in file 2015-10-08 22:02:32 -04:00
Quentin Carbonneaux
b5d98b762f use DEnd for strings too 2015-10-08 17:59:01 -04:00
Quentin Carbonneaux
25f7bc06e3 emit alignment directives properly 2015-10-08 14:49:00 -04:00
Quentin Carbonneaux
bf3e6753f3 rename ealloc to emalloc 2015-10-08 14:05:13 -04:00
Quentin Carbonneaux
2205930c37 store the byte array in max.ssa 2015-10-07 22:32:58 -04:00
Quentin Carbonneaux
fb423f749c finish implementing data parsing 2015-10-07 22:26:13 -04:00
Quentin Carbonneaux
b93b0d2902 start work on parsing data blocks 2015-10-07 18:30:19 -04:00
Quentin Carbonneaux
01c1734e42 uh oh, typo bug in freeall() 2015-10-06 23:32:44 -04:00
Quentin Carbonneaux
72fc455978 add pool memory management 2015-10-06 22:51:51 -04:00
Quentin Carbonneaux
99ad19546d use new vector functions instead of reallocs 2015-10-06 20:42:54 -04:00
Quentin Carbonneaux
1f61873799 split long line in idup 2015-10-06 13:25:28 -04:00
Quentin Carbonneaux
1f7acbd88f specialize vdup into idup 2015-10-06 13:22:46 -04:00
Quentin Carbonneaux
ce72ad0ecd factor ins array edition in icpy 2015-10-06 13:17:20 -04:00
Quentin Carbonneaux
a83174f447 factor vector duplication in vdup() 2015-10-05 21:38:55 -04:00
Quentin Carbonneaux
60aacea0c3 rename blocka to balloc 2015-10-05 17:34:26 -04:00
Quentin Carbonneaux
2d8b7a6baf remove useless ntyp in util.c 2015-10-05 17:32:35 -04:00
Quentin Carbonneaux
bc9233d278 implement popcnt with a simple loop 2015-10-05 17:30:47 -04:00
Quentin Carbonneaux
e30fab31e1 factor some utility functions/data in util.c 2015-10-05 17:24:19 -04:00
Quentin Carbonneaux
cb4d738c36 fix debug output of liveness 2015-10-05 16:14:07 -04:00
Quentin Carbonneaux
a18e0ef50f clean the command line interface 2015-10-05 15:57:04 -04:00
Quentin Carbonneaux
ecaad8119f fix a bug for structure arguments in regs 2015-10-01 13:20:21 -04:00
Quentin Carbonneaux
3ef2693154 support negative frame offsets in emit
They are used to access function parameters passed
on the stack.
2015-10-01 13:19:09 -04:00
Quentin Carbonneaux
2d5c07fa4e remove dead assignment 2015-09-30 11:48:50 -04:00
Quentin Carbonneaux
94597f72d9 finalize the new slot system
There is still the issue that spill is set to
-1 to mark the absence of slot, it does not
play well with zero-initialization at all.
2015-09-30 11:26:59 -04:00
Quentin Carbonneaux
fa298cc9e1 use more machine registers 2015-09-30 11:25:43 -04:00
Quentin Carbonneaux
7333826bce uniformize alignment code in framesz() 2015-09-30 11:25:18 -04:00
Quentin Carbonneaux
790f852b96 fix two invalid Tmp.spill values 2015-09-30 10:34:52 -04:00
Quentin Carbonneaux
e2174da2f1 wip on new stack slots (emit, spill) 2015-09-29 22:25:49 -04:00
Quentin Carbonneaux
ae158a5c40 more fixes for the new slot representation 2015-09-29 17:40:47 -04:00
Quentin Carbonneaux
5e5d0a1e99 wip on a simpler slot handling 2015-09-29 17:25:04 -04:00
Quentin Carbonneaux
fdbff25a61 stupid hinting works better without traces! 2015-09-28 11:36:36 -04:00
Quentin Carbonneaux
538e3aff7f compute reg interferences in filllive() 2015-09-27 20:31:07 -04:00
Quentin Carbonneaux
2273d22ced do not merge phi classes of interfering temps 2015-09-26 16:34:18 -04:00
Quentin Carbonneaux
aa9dc34399 move the liveon() function in live.c 2015-09-26 16:33:29 -04:00
Quentin Carbonneaux
e80b84ebdb fresh new trace based allocator (needs tuning) 2015-09-25 16:19:03 -04:00
Quentin Carbonneaux
03d5ec674a prepare rega for trace-based allocation 2015-09-25 13:03:39 -04:00
Quentin Carbonneaux
f3bd48945e add union-find based phi-class computation 2015-09-25 13:02:44 -04:00
Quentin Carbonneaux
08a2ffe8c4 change controversial (at best) typedef 2015-09-25 12:14:50 -04:00
Quentin Carbonneaux
4dccbf22f3 move return type information into Fn 2015-09-25 11:33:50 -04:00
Quentin Carbonneaux
2d5302df71 small simplification in seljmp 2015-09-22 20:47:02 -04:00
Quentin Carbonneaux
12cfd93e26 improve error reporting in the parser 2015-09-22 17:28:07 -04:00
Quentin Carbonneaux
3ef1d83866 do not do dce on register assignments 2015-09-22 17:25:03 -04:00
Quentin Carbonneaux
bbbc8994f9 compile retw and retl as a move in rax 2015-09-22 17:24:26 -04:00
Quentin Carbonneaux
e94592379f oops, missing newline in pretty-printer 2015-09-22 17:23:58 -04:00
Quentin Carbonneaux
98c5a405bb parse return types of functions 2015-09-22 16:52:48 -04:00
Quentin Carbonneaux
9db3c3cf3e print size suffix for swap 2015-09-21 22:37:59 -04:00
Quentin Carbonneaux
95d9a335df fix rega bug for indirect calls 2015-09-21 19:53:12 -04:00
Quentin Carbonneaux
ff607f1a1e emit syntactically valid calls 2015-09-21 19:28:10 -04:00