summary refs log tree commit diff
AgeCommit message (Collapse)Author
2016-04-04reorder instructionsQuentin Carbonneaux
2016-04-04cosmetics in sysv abiQuentin Carbonneaux
A struct of size 0 is now marked as passed in memory. All the ABI code assumes structs passed in registers have size at least 8. This could have an impact on the alignment in the stack, but eh, I guess they are rare.
2016-04-04remove old selpar() codeQuentin Carbonneaux
2016-04-03fix alignment code in selpar()Quentin Carbonneaux
2016-04-03rewrite of selpar() for factoringQuentin Carbonneaux
2016-04-01typo in readmeQuentin Carbonneaux
2016-04-01don't try to keep use counts in abi()Quentin Carbonneaux
Abi lowering does not need use counts, but they are needed for instruction selection. I changed main to call filluse() between these two passes.
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