Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-04-21 | oops fix wrong instruction names in doc | Quentin Carbonneaux | |
2016-04-21 | cosmetics in all.h | Quentin Carbonneaux | |
2016-04-21 | make mcc runable from anywhere | Quentin Carbonneaux | |
2016-04-20 | disallow phi nodes in the start block | Quentin Carbonneaux | |
AFL found this bug. | |||
2016-04-20 | support calls with no return | Quentin Carbonneaux | |
I thought it would be harder (and maybe it is). My fear was that a call must be always followed by a parallel move from machine registers (this is an assumption in both spill and rega). This however remains true, because the ABI code generates a dummy "copy RAX" by accident! | |||
2016-04-20 | normalize case in token names | Quentin Carbonneaux | |
2016-04-20 | match jumps/ops with il text | Quentin Carbonneaux | |
2016-04-19 | add compilation instructions | Quentin Carbonneaux | |
2016-04-19 | use assert for ssa invariants in fold/copy | Quentin Carbonneaux | |
2016-04-19 | check for trivial undefined uses in ssacheck | Quentin Carbonneaux | |
2016-04-19 | rename only live phi arguments in fold | Quentin Carbonneaux | |
AFL found that. | |||
2016-04-18 | add tool to process afl results | Quentin Carbonneaux | |
2016-04-18 | factor some subtyping logic in clsmerge() | Quentin Carbonneaux | |
2016-04-18 | phis can assign slots after spill | Quentin Carbonneaux | |
2016-04-18 | make sure non-register temporaries get a slot | Quentin Carbonneaux | |
Inside the main instruction-processing loop, it is taken care of by limit. However at block boundaries we are doing fancy bitset operations without calling limit. | |||
2016-04-18 | output debug to stderr in spiller | Quentin Carbonneaux | |
2016-04-18 | do not rewrite overwritten slots in memopt | Quentin Carbonneaux | |
2016-04-17 | compute dead phi args correctly in fold | Quentin Carbonneaux | |
The code computing if "the" edge of a phi argument is live or dead was wrong. AFL found that. | |||
2016-04-16 | use unsigned long long for bits | Quentin Carbonneaux | |
2016-04-16 | support trailing , in types/args/params | Ori Bernstein | |
2016-04-16 | fix relic error message | Quentin Carbonneaux | |
2016-04-13 | add regression test for liveon bug | Quentin Carbonneaux | |
2016-04-13 | add regression test for fixarg bug | Quentin Carbonneaux | |
2016-04-13 | call fixarg on the correct instruction | Quentin Carbonneaux | |
Because one call to fixarg can emit an instruction, using curi, for the second fixarg calls patched is incorrect. AFL found that bug. | |||
2016-04-13 | add funny 80 target | Quentin Carbonneaux | |
2016-04-13 | oops, memcpy -> memmove | Quentin Carbonneaux | |
2016-04-13 | check types on assignments | Quentin Carbonneaux | |
2016-04-13 | turn alignment asserts into err() | Quentin Carbonneaux | |
2016-04-13 | handle odd jumps in blkdel() an renblk() | Quentin Carbonneaux | |
2016-04-13 | do not compute def-use links for regs | Quentin Carbonneaux | |
2016-04-13 | hack an ssa validator (likely buggy) | Quentin Carbonneaux | |
2016-04-13 | add unsigned comparisons to emit | Quentin Carbonneaux | |
2016-04-13 | handle the bad jump case | Quentin Carbonneaux | |
2016-04-13 | add new minic test | Quentin Carbonneaux | |
2016-04-13 | separate name and index in newtmp() | Quentin Carbonneaux | |
2016-04-13 | harden memopt() | Quentin Carbonneaux | |
2016-04-12 | bug in checking of multiple definitions | Quentin Carbonneaux | |
2016-04-12 | subtle bug in liveness! | Quentin Carbonneaux | |
If on of the phis in a block A uses the result of another one when coming from B, we have to be careful! | |||
2016-04-12 | add missing idiv in opdesc[] | Quentin Carbonneaux | |
2016-04-12 | cosmetic modification in fold | Quentin Carbonneaux | |
2016-04-12 | simplify latmerge() | Quentin Carbonneaux | |
2016-04-12 | nicer agony message in isel | Quentin Carbonneaux | |
2016-04-12 | the lattice merge has to be used in update() | Quentin Carbonneaux | |
2016-04-12 | fix wrong isext() macro | Quentin Carbonneaux | |
2016-04-12 | oops, dumb bug in folding | Quentin Carbonneaux | |
2016-04-12 | use a shift to divide by 2 in collatz | Quentin Carbonneaux | |
2016-04-12 | more extensive handling of fast locals | Quentin Carbonneaux | |
2016-04-12 | avoid a few hangs in parsing code | Quentin Carbonneaux | |
2016-04-12 | check invalid instruction types | Quentin Carbonneaux | |
2016-04-12 | both comparison arguments need to be fixed | Quentin Carbonneaux | |
The second argument will not be a constant because of the assertion. But it could be a fast local, and this situation needs to be handled by the last case of fixarg(). |