Mikael Lyngvig
2013-Dec-01 04:20 UTC
[LLVMdev] "Mapping High-Level Constructs to LLVM IR" Github URL
I'm glad you see the potential of this document. It is very important that everybody joins in and add their pennies so that the document eventually reflects the real experience of people who have actually tried and studied these things, and who are familiar with LLVM IR from using and implementing it for a long time. I sort of hope that this document will one day cover almost all LLVM IR instructions and attributes so that the Language Reference can be used as a reference (like the title of it suggests) and this document can be used as a primer/guide/tutorial/introduction to LLVM IR. I imagine people will start out with this document and then gradually become familiar with the Language Reference. -- Mikael 2013/12/1 Sean Silva <chisophugis at gmail.com>> Just briefly looking over the document, I really like the content. > > I'm now starting to see a really good "fit" for this document: a "guide > for language frontend implementers" illustrating basic techniques along > with a discussion of implementation decisions regarding the lowering of > certain constructs. I don't think that we currently have any documentation > targeted at language frontend writers; I would really like to see this > document evolve into that. > > E.g., what are the different ways to do lambdas and what are their > tradeoffs regarding optimizability, etc.; or a discussion of the various > function attributes (e.g. noalias) which are vital for getting the best > performance out of the optimizers (many languages semantically don't have > aliasing issues (or fewer than C/C++ at least!), and this needs to be > communicated to the optimizer; currently we don't have documentation > offering guidance in this regard). > > Most of the documentation about the IR is aimed at people writing > optimization passes. Catering to language frontends seems like it would be > a really good thing to do in a systematic fashion. > > -- Sean Silva > > > On Thu, Nov 28, 2013 at 9: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. >> >> 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. >> >> >> -- Mikael >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131201/8d8ac9c3/attachment.html>
Sean Silva
2013-Dec-01 04:32 UTC
[LLVMdev] "Mapping High-Level Constructs to LLVM IR" Github URL
On Sat, Nov 30, 2013 at 11:20 PM, Mikael Lyngvig <mikael at lyngvig.org> wrote:> I'm glad you see the potential of this document. It is very important > that everybody joins in and add their pennies so that the document > eventually reflects the real experience of people who have actually tried > and studied these things, and who are familiar with LLVM IR from using and > implementing it for a long time. >It would really help if you tracked down various frontend implementers and asked them for feedback. I can at least think of Rust, Haskell (GHC), and Rubinius. -- Sean Silva> > I sort of hope that this document will one day cover almost all LLVM IR > instructions and attributes so that the Language Reference can be used as a > reference (like the title of it suggests) and this document can be used as > a primer/guide/tutorial/introduction to LLVM IR. I imagine people will > start out with this document and then gradually become familiar with the > Language Reference. > > > -- Mikael > > > 2013/12/1 Sean Silva <chisophugis at gmail.com> > >> Just briefly looking over the document, I really like the content. >> >> I'm now starting to see a really good "fit" for this document: a "guide >> for language frontend implementers" illustrating basic techniques along >> with a discussion of implementation decisions regarding the lowering of >> certain constructs. I don't think that we currently have any documentation >> targeted at language frontend writers; I would really like to see this >> document evolve into that. >> >> E.g., what are the different ways to do lambdas and what are their >> tradeoffs regarding optimizability, etc.; or a discussion of the various >> function attributes (e.g. noalias) which are vital for getting the best >> performance out of the optimizers (many languages semantically don't have >> aliasing issues (or fewer than C/C++ at least!), and this needs to be >> communicated to the optimizer; currently we don't have documentation >> offering guidance in this regard). >> >> Most of the documentation about the IR is aimed at people writing >> optimization passes. Catering to language frontends seems like it would be >> a really good thing to do in a systematic fashion. >> >> -- Sean Silva >> >> >> On Thu, Nov 28, 2013 at 9: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. >>> >>> 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. >>> >>> >>> -- Mikael >>> >>> >>> _______________________________________________ >>> LLVM Developers mailing list >>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >>> >>> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131130/16b9bd4b/attachment.html>
Mikael Lyngvig
2013-Dec-01 05:47 UTC
[LLVMdev] "Mapping High-Level Constructs to LLVM IR" Github URL
Great idea! It is now on my to-do list. -- Mikael 2013/12/1 Sean Silva <chisophugis at gmail.com>> > > > On Sat, Nov 30, 2013 at 11:20 PM, Mikael Lyngvig <mikael at lyngvig.org>wrote: > >> I'm glad you see the potential of this document. It is very important >> that everybody joins in and add their pennies so that the document >> eventually reflects the real experience of people who have actually tried >> and studied these things, and who are familiar with LLVM IR from using and >> implementing it for a long time. >> > > It would really help if you tracked down various frontend implementers and > asked them for feedback. I can at least think of Rust, Haskell (GHC), and > Rubinius. > > -- Sean Silva > > >> >> I sort of hope that this document will one day cover almost all LLVM IR >> instructions and attributes so that the Language Reference can be used as a >> reference (like the title of it suggests) and this document can be used as >> a primer/guide/tutorial/introduction to LLVM IR. I imagine people will >> start out with this document and then gradually become familiar with the >> Language Reference. >> >> >> -- Mikael >> >> >> 2013/12/1 Sean Silva <chisophugis at gmail.com> >> >>> Just briefly looking over the document, I really like the content. >>> >>> I'm now starting to see a really good "fit" for this document: a "guide >>> for language frontend implementers" illustrating basic techniques along >>> with a discussion of implementation decisions regarding the lowering of >>> certain constructs. I don't think that we currently have any documentation >>> targeted at language frontend writers; I would really like to see this >>> document evolve into that. >>> >>> E.g., what are the different ways to do lambdas and what are their >>> tradeoffs regarding optimizability, etc.; or a discussion of the various >>> function attributes (e.g. noalias) which are vital for getting the best >>> performance out of the optimizers (many languages semantically don't have >>> aliasing issues (or fewer than C/C++ at least!), and this needs to be >>> communicated to the optimizer; currently we don't have documentation >>> offering guidance in this regard). >>> >>> Most of the documentation about the IR is aimed at people writing >>> optimization passes. Catering to language frontends seems like it would be >>> a really good thing to do in a systematic fashion. >>> >>> -- Sean Silva >>> >>> >>> On Thu, Nov 28, 2013 at 9: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. >>>> >>>> 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. >>>> >>>> >>>> -- Mikael >>>> >>>> >>>> _______________________________________________ >>>> LLVM Developers mailing list >>>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >>>> >>>> >>> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131201/ff5fbabb/attachment.html>
Apparently Analagous Threads
- [LLVMdev] "Mapping High-Level Constructs to LLVM IR" Github URL
- [LLVMdev] "Mapping High-Level Constructs to LLVM IR" Github URL
- [LLVMdev] "Mapping High-Level Constructs to LLVM IR" Github URL
- [LLVMdev] "Mapping High-Level Constructs to LLVM IR" Github URL
- [LLVMdev] "Mapping High-Level Constructs to LLVM IR" Github URL