Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-02-11 | fp cmp fixes (highly untested) | Quentin Carbonneaux | |
2015-12-27 | go verbose in parse.c | Quentin Carbonneaux | |
2015-12-08 | sanitize constants representation | Quentin Carbonneaux | |
2015-12-01 | oops, fix typo bug in parse.c | Quentin Carbonneaux | |
2015-11-30 | more error reporting in parsedat() | Quentin Carbonneaux | |
2015-11-30 | parse and print floating points | Quentin Carbonneaux | |
2015-11-30 | change the wide bit to a class number | Quentin Carbonneaux | |
2015-11-30 | stores becomes storeh | Quentin Carbonneaux | |
2015-11-18 | support _ in identifiers | Quentin Carbonneaux | |
2015-11-13 | export printref function | Quentin Carbonneaux | |
2015-11-11 | move usage computation in filluse() | Quentin Carbonneaux | |
2015-11-05 | support lighter syntax for arrays | Quentin Carbonneaux | |
2015-11-01 | break Tmp.phi chains at phi nodes | Quentin Carbonneaux | |
This makes sure the Tmp.phi "chain" is at most two elements long. Something smarted could be possible, but union-find with path compression is still not exactly what I want. | |||
2015-11-01 | support dots in idents for k0ga | Quentin Carbonneaux | |
2015-10-31 | make phi-class handling more local | Quentin Carbonneaux | |
The phi classes are no longer in a union-find structure, instead each temporary argument of a phi node gets a pointer to it. The hinting of the phi node is then shared with its the one of its arguments. When liveness proceeds and finds out that two elements with same hinting (a phi node and one of its arguments or two arguments of the same phi node) interfere, one of them has its phi pointer reset, that way, the hinting won't be shared. | |||
2015-10-30 | print memory references in IR dumps | Quentin Carbonneaux | |
2015-10-30 | start integrating RAMem references | Quentin Carbonneaux | |
2015-10-30 | prepare for using memory refs | Quentin Carbonneaux | |
2015-10-30 | start work on fusing loads in arithmetic | Quentin Carbonneaux | |
2015-10-30 | fix bug in pretty printer | Quentin Carbonneaux | |
2015-10-30 | emit code for extensions, move slots into RAlt | Quentin Carbonneaux | |
2015-10-19 | uniformize sign extension and mem loads | Quentin Carbonneaux | |
2015-10-13 | rename valloc and balloc | Quentin Carbonneaux | |
valloc is actually a POSIX function that prevents compilation on some systems. | |||
2015-10-08 | allow multiple functions in file | Quentin Carbonneaux | |
2015-10-08 | use DEnd for strings too | Quentin Carbonneaux | |
2015-10-08 | emit alignment directives properly | Quentin Carbonneaux | |
2015-10-07 | finish implementing data parsing | Quentin Carbonneaux | |
2015-10-07 | start work on parsing data blocks | Quentin Carbonneaux | |
2015-10-06 | use new vector functions instead of reallocs | Quentin Carbonneaux | |
2015-10-06 | specialize vdup into idup | Quentin Carbonneaux | |
2015-10-05 | factor vector duplication in vdup() | Quentin Carbonneaux | |
2015-10-05 | rename blocka to balloc | Quentin Carbonneaux | |
2015-10-05 | factor some utility functions/data in util.c | Quentin Carbonneaux | |
2015-09-25 | move return type information into Fn | Quentin Carbonneaux | |
2015-09-22 | improve error reporting in the parser | 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-18 | use new function syntax in tests | Quentin Carbonneaux | |
2015-09-17 | pretty print OPar os parn | Quentin Carbonneaux | |
2015-09-17 | parse parameter lists of functions | 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 | cosmetic indentation style fix | Quentin Carbonneaux | |
2015-09-15 | drop arity information from OpDesc | Quentin Carbonneaux | |
2015-09-15 | implement aggregate passing in regs | Quentin Carbonneaux | |
2015-09-15 | start function call lowering (wip) | Quentin Carbonneaux | |
2015-09-15 | add parsing code for function calls | Quentin Carbonneaux | |
2015-09-15 | define a new CMPS macro, shorten Type | Quentin Carbonneaux | |
2015-09-15 | fix minor type parsing bugs | Quentin Carbonneaux | |
2015-09-15 | start work on aggregate types | Quentin Carbonneaux | |
The parser now has some code to parse the description of structured types. I tried to be even less specific than LLVM "type" by creating just enough abstraction so that I can deal with both AARCH64 and x64. The base types used in the definition of an aggregate are really just syntactic sugar to give a structure a size and an alignment. Only the location of float components matters for the compilation. In particular this means that the front-ends have to know how the ABI works to pass/return small integer types. This also means that the font-end has to be aware of the layout of structures. Chris Lattner has a proposition [1] for LLVM that is still pending and goes in the direction of giving more control of the ABI the front-end. [1]: http://www.nondot.org/sabre/LLVMNotes/ExtendedIntegerResults.txt |