summary refs log tree commit diff
AgeCommit message (Collapse)Author
2016-04-01cheap massive performance gain on brainfuckQuentin Carbonneaux
2016-04-01tradeoff the type of bsiter()Quentin Carbonneaux
int is used all over the place for temporaries, maybe this should be changed, I don't know. Another thing to consider is that temporaries are currently on 12 bits (and will be on 29 or 30 bits in the future), so int will always be safe to store them. We just loose the free invariant of non-negativity.
2016-04-01use bsiter in critical loopQuentin Carbonneaux
2016-04-01add huge mandelbrot brainfuck exampleQuentin Carbonneaux
2016-04-01add big test file for qbeQuentin Carbonneaux
2016-03-31respect the order of the passesQuentin Carbonneaux
2016-03-31move abi code in a new fileQuentin Carbonneaux
2016-03-31cleanup error handlingQuentin Carbonneaux
2016-03-29do not echo compilation commands if verboseQuentin Carbonneaux
2016-03-29typos in il.txt, thanks Robert RansomQuentin Carbonneaux
2016-03-29get more entropy in callgen.mlQuentin Carbonneaux
2016-03-29make block labels per-functionQuentin Carbonneaux
2016-03-29new layout, put LICENSE in rootQuentin Carbonneaux
2016-03-28implement export controlQuentin Carbonneaux
2016-03-27mac os compatibility fixes in scriptsQuentin Carbonneaux
2016-03-27move check rule into src/Quentin Carbonneaux
2016-03-27free memory in pmov testQuentin Carbonneaux
2016-03-27fix path in regressQuentin Carbonneaux
2016-03-27fix wrong path in pmovQuentin Carbonneaux
2016-03-27compile pmov to cwdQuentin Carbonneaux
2016-03-27move paper synchronization to top makefileQuentin Carbonneaux
2016-03-27move tools to the rootQuentin Carbonneaux
2016-03-27add centralized all and clean targetsQuentin Carbonneaux
2016-03-27append instead of clobber CFLAGSQuentin Carbonneaux
2016-03-27use make variable for extensibilityQuentin Carbonneaux
2016-03-27extract tests out of srcQuentin Carbonneaux
2016-03-25compatibility fixes for mac osQuentin Carbonneaux
2016-03-25great renaming campain!Quentin Carbonneaux
2016-03-25mark diag() as non-returningQuentin Carbonneaux
2016-03-25update pmov test to work with new regallocQuentin Carbonneaux
2016-03-24dark types are called opaque in the docQuentin Carbonneaux
2016-03-24change IR to ILQuentin Carbonneaux
2016-03-23typos in llvm.txt (thanks lucie)Quentin Carbonneaux
2016-03-23add comparison to llvmQuentin Carbonneaux
2016-03-22allow testing the two directions in abitestQuentin Carbonneaux
2016-03-22bake more fancy in abitest.shQuentin Carbonneaux
2016-03-22fix struct size computationQuentin Carbonneaux
2016-03-22fix incorrect size suffix in abi fuzzerQuentin Carbonneaux
2016-03-22check for overflow in ssa.c (abi fuzzer)Quentin Carbonneaux
2016-03-22store register usage of ret instructions (abi fuzz)Quentin Carbonneaux
So far I was ignoring register uses of return instructions and it was working because at most one register could be returned. Now that more complex returns are supported it is necessary to keep track of the registers used by returns. The abi fuzzer triggered an assertion failure in the register allocator with the following IL: R1 =l load [%t16] R3 =l load [8 + %t16] ret The regalloc would use R1 for %t16, and then a (nice) assertion realized the inconsistent state because R1 could only be def'd by an assignment to %t16.
2016-03-22typo in lexing table (abi fuzzer)Quentin Carbonneaux
2016-03-22typo in isel (abi fuzzer)Quentin Carbonneaux
2016-03-22cleanup at the end of abitest.shQuentin Carbonneaux
2016-03-22dumb switch mistake in isel (abi fuzzer)Quentin Carbonneaux
2016-03-22fix bug in type definitions in abi.mlQuentin Carbonneaux
2016-03-22fix incorrect size increment in abi (abi fuzzer)Quentin Carbonneaux
Sizes are expressed in multiples of 4 bytes, so we need to divide the size of aggregate types by four when computing stack offsets.
2016-03-21add the ability to run with a seedQuentin Carbonneaux
2016-03-21fix bug in IL checkingQuentin Carbonneaux
2016-03-21compile tests with debug optionsQuentin Carbonneaux
2016-03-21add abitest.sh toolQuentin Carbonneaux