[LLVMdev] LLVM IR is a compiler IR

Chris Lattner
Tue, 04 Oct 2011 23:36:35 -0000

On Oct 4, 2011, at 4:31 PM, Talin wrote:

>
> This sounds interesting. I did not get what is a ``rich type system to
> express all of the DWARF semantics''. Could you show an example
> program that the rich type system can define, but the current IR fails
> to present? And how does it improve the IR?
>
> One thing you would need is the ability to assign names to struct members.
Currently LLVM refers to struct members by numerical index, and I wouldn't
want to change that. However, in order to be visible in the debugger, you also
have to assign a name to each member. Note that this information doesn't
need to take a lot of space in the module - names are highly compressible,
especially fully qualified names (foo.bar.X.Y.Z) where you have a whole bunch of
names that start with the same prefix. (In my own frontend, I sort names by
frequency, so that the names that are used most often have the lowest assigned
IDs. This allows the reference to the name to be stored in fewer bits.)

Talin, if you're trying to produce a "C virtual machine" you
basically need everything in a C AST.  You're scratching the surface of the
issues.

-Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20111004/f7a6914c/attachment.html>