[LLVMdev] "Mapping High-Level Constructs to LLVM IR" Github URL

Chris Lattner clattner at apple.com
Tue Dec 3 21:30:21 PST 2013


On Nov 28, 2013, at 6:07 PM, Mikael Lyngvig <mikael at lyngvig.org> wrote:

> Hi,
> 
> It will probably take a few weeks or a month before the "Mapping High-Level Constructs to LLVM IR" document is ready for prime time.  Until then, you can review and study it at this URL:
> 
>     https://github.com/archfrog/llvm-doc/blob/master/MappingHighLevelConstructsToLLVMIR.rst
> 
> 
> Please notice that I specifically do not advocate reviewing the document for a week or two.  But feel free to give me any feedback, comments, and criticism that you may have to share.  
> 

This looks really awesome!  Great idea starting this, and thank you for pushing it forward.  Some thoughts:

- In "local variables", it would be great to talk about how the "alloca trick" avoids forcing your frontend to build SSA.  You could even include an example.

- In the "constants" section, it is probably best to say that "constants that allocate memory" are just global variables in LLVM IR, marked with the 'constant' keyword.  It would also be great to mention constant exprs here, since they are a point of confusion (and you introduce them in sizeof).

- Having something that talks about lowering C-style unions to llvm IR would be great :-)

- A nice new top-level section would be "interoperating with a runtime library", pointing out that not everything needs to be emitted as inline LLVM IR: a frontend can either just call into a runtime library, or it can even emit a call to a runtime library (whose body is also available as IR) and then have the optimizer inline it if run.


> Once the document has been finalized and comitted to LLVM, I'll delete the repository at Github - or, perhaps even better, simply make a small page that refers to the official copy in LLVM.

Are you interested in just building it in llvm.org/docs?  Unless your workflow is better on github, it seems easier to do it on llvm.org - it would make it easier for other people to chip in.

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


More information about the llvm-dev mailing list