summary refs log tree commit diff
AgeCommit message (Collapse)Author
2016-04-19add compilation instructionsQuentin Carbonneaux
2016-04-19use assert for ssa invariants in fold/copyQuentin Carbonneaux
2016-04-19check for trivial undefined uses in ssacheckQuentin Carbonneaux
2016-04-19rename only live phi arguments in foldQuentin Carbonneaux
AFL found that.
2016-04-18add tool to process afl resultsQuentin Carbonneaux
2016-04-18factor some subtyping logic in clsmerge()Quentin Carbonneaux
2016-04-18phis can assign slots after spillQuentin Carbonneaux
2016-04-18make sure non-register temporaries get a slotQuentin 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-18output debug to stderr in spillerQuentin Carbonneaux
2016-04-18do not rewrite overwritten slots in memoptQuentin Carbonneaux
2016-04-17compute dead phi args correctly in foldQuentin Carbonneaux
The code computing if "the" edge of a phi argument is live or dead was wrong. AFL found that.
2016-04-16use unsigned long long for bitsQuentin Carbonneaux
2016-04-16support trailing , in types/args/paramsOri Bernstein
2016-04-16fix relic error messageQuentin Carbonneaux
2016-04-13add regression test for liveon bugQuentin Carbonneaux
2016-04-13add regression test for fixarg bugQuentin Carbonneaux
2016-04-13call fixarg on the correct instructionQuentin 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-13add funny 80 targetQuentin Carbonneaux
2016-04-13oops, memcpy -> memmoveQuentin Carbonneaux
2016-04-13check types on assignmentsQuentin Carbonneaux
2016-04-13turn alignment asserts into err()Quentin Carbonneaux
2016-04-13handle odd jumps in blkdel() an renblk()Quentin Carbonneaux
2016-04-13do not compute def-use links for regsQuentin Carbonneaux
2016-04-13hack an ssa validator (likely buggy)Quentin Carbonneaux
2016-04-13add unsigned comparisons to emitQuentin Carbonneaux
2016-04-13handle the bad jump caseQuentin Carbonneaux
2016-04-13add new minic testQuentin Carbonneaux
2016-04-13separate name and index in newtmp()Quentin Carbonneaux
2016-04-13harden memopt()Quentin Carbonneaux
2016-04-12bug in checking of multiple definitionsQuentin Carbonneaux
2016-04-12subtle 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-12add missing idiv in opdesc[]Quentin Carbonneaux
2016-04-12cosmetic modification in foldQuentin Carbonneaux
2016-04-12simplify latmerge()Quentin Carbonneaux
2016-04-12nicer agony message in iselQuentin Carbonneaux
2016-04-12the lattice merge has to be used in update()Quentin Carbonneaux
2016-04-12fix wrong isext() macroQuentin Carbonneaux
2016-04-12oops, dumb bug in foldingQuentin Carbonneaux
2016-04-12use a shift to divide by 2 in collatzQuentin Carbonneaux
2016-04-12more extensive handling of fast localsQuentin Carbonneaux
2016-04-12avoid a few hangs in parsing codeQuentin Carbonneaux
2016-04-12check invalid instruction typesQuentin Carbonneaux
2016-04-12both comparison arguments need to be fixedQuentin 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().
2016-04-12frendlier error message in emitQuentin Carbonneaux
2016-04-12add simple il validationQuentin Carbonneaux
2016-04-12fix typo in emitQuentin Carbonneaux
2016-04-12handle dumb conditional jumps in iselQuentin Carbonneaux
I also removed the code to handle jumps with a constant argument since those should be eliminated by the folding pass.
2016-04-12fix bug in predecessors filling codeQuentin Carbonneaux
2016-04-12fix type bug in abi3 testQuentin Carbonneaux
2016-04-12simplify fillpreds() codeQuentin Carbonneaux