Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-02-26 | bug in liveout() | Quentin Carbonneaux | |
Because of the bsclr() call, liveout was not actually making the union correctly. Instead of performing an union, it now fully sets the bitset passed as parameter. | |||
2016-02-26 | start conversion to dynamic bitsets | Quentin Carbonneaux | |
2015-12-23 | purify test logic in liveness | Quentin Carbonneaux | |
2015-12-18 | enable call handling in liveness | Quentin Carbonneaux | |
2015-11-30 | cosmetics in liveness | Quentin Carbonneaux | |
2015-11-30 | change debug formatting in liveness | Quentin Carbonneaux | |
2015-11-30 | update liveness to work with fp | Quentin Carbonneaux | |
2015-11-23 | Tmp.phi must not be 0 for temporaries in phis | Quentin Carbonneaux | |
2015-11-09 | provide BZERO macro for bitsets | Quentin Carbonneaux | |
2015-11-09 | precise OCall test in liveness | 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 | fix several bugs on Blk.gen in liveness | Quentin Carbonneaux | |
2015-10-30 | break phi-classes following interferences | Quentin Carbonneaux | |
2015-10-30 | fix typo bug in liveness | Quentin Carbonneaux | |
2015-10-30 | start integrating RAMem references | Quentin Carbonneaux | |
2015-10-05 | fix debug output of liveness | Quentin Carbonneaux | |
2015-10-05 | clean the command line interface | 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-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 | major lifting: get rid of RReg | Quentin Carbonneaux | |
I've been septic since I introduced it, this commit proves that it costs more than it helps. I've also fixed a bad bug in rega() where I alloc'ed the wrong size for internal arrays. Enums now have names so I can use them to cast in gdb to get the name corresponding to a constant. | |||
2015-09-15 | use a new Ref type for registers | Quentin Carbonneaux | |
This might not be a good idea, the problem was that many spurious registers would be added to the Bits data-structures during compilation (and would always remain 0). However, doing the above modification de-uniformizes the handling of temps and regs, this makes the code longer and not really nicer. Also, additional Bits structures are required to track the registers independently. Overall this might be a bad idea to revert. | |||
2015-09-15 | silence clang warning | Quentin Carbonneaux | |
2015-09-15 | start change of representation for registers | Quentin Carbonneaux | |
2015-09-15 | cosmetics | Quentin Carbonneaux | |
2015-09-15 | rework liveness to compute reg pressure | Quentin Carbonneaux | |
2015-09-15 | cosmetics | Quentin Carbonneaux | |
2015-09-15 | fix allocation bug | Quentin Carbonneaux | |
2015-09-15 | simplify liveness | Quentin Carbonneaux | |
2015-09-15 | fix phi handling in liveness | Quentin Carbonneaux | |
2015-09-15 | add rpo test and some liveness code | Quentin Carbonneaux | |