Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-11-30 | stores becomes storeh | Quentin Carbonneaux | |
2015-11-27 | add sse regs | Quentin Carbonneaux | |
2015-11-19 | start memopt(), still buggy | Quentin Carbonneaux | |
2015-11-13 | add initial version of copy elimination | Quentin Carbonneaux | |
2015-11-13 | store the use locations for temporaries | Quentin Carbonneaux | |
2015-11-11 | move usage computation in filluse() | Quentin Carbonneaux | |
2015-11-10 | now, cross fingers and test | Quentin Carbonneaux | |
2015-11-09 | provide BZERO macro for bitsets | Quentin Carbonneaux | |
2015-11-09 | modify data-structures for new ssa.c | Quentin Carbonneaux | |
2015-11-03 | add interference hints | Quentin Carbonneaux | |
2015-10-31 | make phi-class handling more local | Quentin Carbonneaux | |
The phi classes are no longer in a union-find structure, instead each temporary argument of a phi node gets a pointer to it. The hinting of the phi node is then shared with its the one of its arguments. When liveness proceeds and finds out that two elements with same hinting (a phi node and one of its arguments or two arguments of the same phi node) interfere, one of them has its phi pointer reset, that way, the hinting won't be shared. | |||
2015-10-30 | start integrating RAMem references | Quentin Carbonneaux | |
2015-10-30 | prepare for using memory refs | Quentin Carbonneaux | |
2015-10-30 | start work on fusing loads in arithmetic | Quentin Carbonneaux | |
2015-10-30 | new function to add constants | Quentin Carbonneaux | |
2015-10-30 | start adress mode recognition | Quentin Carbonneaux | |
2015-10-30 | rename spill field in Tmp to slot | Quentin Carbonneaux | |
2015-10-30 | emit code for extensions, move slots into RAlt | Quentin Carbonneaux | |
2015-10-19 | uniformize sign extension and mem loads | Quentin Carbonneaux | |
2015-10-13 | rename valloc and balloc | Quentin Carbonneaux | |
valloc is actually a POSIX function that prevents compilation on some systems. | |||
2015-10-08 | allow multiple functions in file | Quentin Carbonneaux | |
2015-10-08 | emit alignment directives properly | Quentin Carbonneaux | |
2015-10-08 | rename ealloc to emalloc | Quentin Carbonneaux | |
2015-10-07 | finish implementing data parsing | Quentin Carbonneaux | |
2015-10-06 | add pool memory management | Quentin Carbonneaux | |
2015-10-06 | use new vector functions instead of reallocs | Quentin Carbonneaux | |
2015-10-06 | specialize vdup into idup | Quentin Carbonneaux | |
2015-10-06 | factor ins array edition in icpy | Quentin Carbonneaux | |
2015-10-05 | factor vector duplication in vdup() | Quentin Carbonneaux | |
2015-10-05 | rename blocka to balloc | Quentin Carbonneaux | |
2015-10-05 | factor some utility functions/data in util.c | Quentin Carbonneaux | |
2015-09-30 | use more machine registers | Quentin Carbonneaux | |
2015-09-29 | wip on new stack slots (emit, spill) | Quentin Carbonneaux | |
2015-09-29 | more fixes for the new slot representation | Quentin Carbonneaux | |
2015-09-29 | wip on a simpler slot handling | Quentin Carbonneaux | |
2015-09-28 | stupid hinting works better without traces! | Quentin Carbonneaux | |
2015-09-27 | compute reg interferences in filllive() | Quentin Carbonneaux | |
2015-09-26 | move the liveon() function in live.c | Quentin Carbonneaux | |
2015-09-25 | add union-find based phi-class computation | Quentin Carbonneaux | |
2015-09-25 | change controversial (at best) typedef | Quentin Carbonneaux | |
2015-09-25 | move return type information into Fn | Quentin Carbonneaux | |
2015-09-22 | parse return types of functions | Quentin Carbonneaux | |
2015-09-20 | save callee-save registers | Quentin Carbonneaux | |
2015-09-17 | start work on fuction parameters | Quentin Carbonneaux | |
2015-09-16 | follow suggestion of gcc | Quentin Carbonneaux | |
2015-09-15 | heavy modification of call handling | Quentin Carbonneaux | |
The IR generated by calls was very bulky because two instructions were used for marking the live range of a clobber. This patch attempts to store the information of what registers are use/def/clobber in the call instruction itself, this leads to more compact code (even more when we'll have SSE registers). However, I find that the amount of extra code needed is not really easonable. Fortunately it is not too invasive, thus if the complexity creeps in, it should be easy to revert. | |||
2015-09-15 | drop arity information from OpDesc | Quentin Carbonneaux | |
2015-09-15 | implement aggregate passing in regs | Quentin Carbonneaux | |
2015-09-15 | start function call lowering (wip) | Quentin Carbonneaux | |
2015-09-15 | add parsing code for function calls | Quentin Carbonneaux | |