Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-10-01 | fix a bug for structure arguments in regs | Quentin Carbonneaux | |
2015-10-01 | support negative frame offsets in emit | Quentin Carbonneaux | |
They are used to access function parameters passed on the stack. | |||
2015-09-30 | remove dead assignment | Quentin Carbonneaux | |
2015-09-30 | finalize the new slot system | Quentin Carbonneaux | |
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 | use more machine registers | Quentin Carbonneaux | |
2015-09-30 | uniformize alignment code in framesz() | Quentin Carbonneaux | |
2015-09-30 | fix two invalid Tmp.spill values | 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 | do not merge phi classes of interfering temps | Quentin Carbonneaux | |
2015-09-26 | move the liveon() function in live.c | Quentin Carbonneaux | |
2015-09-25 | fresh new trace based allocator (needs tuning) | Quentin Carbonneaux | |
2015-09-25 | prepare rega for trace-based allocation | 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 | small simplification in seljmp | Quentin Carbonneaux | |
2015-09-22 | improve error reporting in the parser | Quentin Carbonneaux | |
2015-09-22 | do not do dce on register assignments | Quentin Carbonneaux | |
2015-09-22 | compile retw and retl as a move in rax | Quentin Carbonneaux | |
2015-09-22 | oops, missing newline in pretty-printer | Quentin Carbonneaux | |
2015-09-22 | parse return types of functions | Quentin Carbonneaux | |
2015-09-21 | print size suffix for swap | Quentin Carbonneaux | |
2015-09-21 | fix rega bug for indirect calls | Quentin Carbonneaux | |
2015-09-21 | emit syntactically valid calls | Quentin Carbonneaux | |
2015-09-20 | factor formatting inside emitf | Quentin Carbonneaux | |
2015-09-20 | simplify two loops with a pointer | Quentin Carbonneaux | |
2015-09-20 | save callee-save registers | Quentin Carbonneaux | |
2015-09-18 | add the first stand-alone test program | Quentin Carbonneaux | |
2015-09-18 | use new function syntax in tests | Quentin Carbonneaux | |
2015-09-17 | this fixme was really more a todo | Quentin Carbonneaux | |
2015-09-17 | add hack in emit to support stack arguments | Quentin Carbonneaux | |
The number stored in the .val field of SLOTs has to be sign extended, so we can reach into the caller's frame when necessary (arguments passed on the stack). | |||
2015-09-17 | fix buggy handling of stack arguments in selpar() | Quentin Carbonneaux | |
2015-09-17 | fix two bugs in selpar() | Quentin Carbonneaux | |
- One missing argument for OAlloc. - One reference shuffling. | |||
2015-09-17 | pretty print OPar os parn | Quentin Carbonneaux | |
2015-09-17 | parse parameter lists of functions | Quentin Carbonneaux | |
2015-09-17 | fix memcpy bug | Quentin Carbonneaux | |
2015-09-17 | start work on fuction parameters | Quentin Carbonneaux | |
2015-09-16 | follow suggestion of gcc | Quentin Carbonneaux | |
2015-09-15 | use unison default choices | Quentin Carbonneaux | |
2015-09-15 | synchronize large doc with unison | Quentin Carbonneaux | |
2015-09-15 | fix call bug in rega | Quentin Carbonneaux | |
When rdx is used to return a value and is used as argument, it is in the call defs and hence made dead by the loop modified here. This is obviously erroneous behavior. We instead rephrase the loop to make it clear that among the caller-save registers, only the ones used by the call must be live before the call. | |||
2015-09-15 | simplify call handling in spiller | 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 | emit stack fixup only when necessary | Quentin Carbonneaux | |
2015-09-15 | cosmetic indentation style fix | Quentin Carbonneaux | |
2015-09-15 | reshuffle instructions around call | Quentin Carbonneaux | |