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