<!DOCTYPE html><html><head>
<style type="text/css">body { font-family:'Times New Roman'; font-size:13px}</style>
</head>
<body>On Fri, 29 Nov 2013 03:07:32 +0100, Mikael Lyngvig <mikael@lyngvig.org> wrote:<br><br><blockquote style="margin: 0 0 0.80ex; border-left: #0000FF 2px solid; padding-left: 1ex"><div dir="ltr">Hi,<div><br></div><div>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:</div>
<div><br></div><div>    <a href="https://github.com/archfrog/llvm-doc/blob/master/MappingHighLevelConstructsToLLVMIR.rst">https://github.com/archfrog/llvm-doc/blob/master/MappingHighLevelConstructsToLLVMIR.rst</a></div><div>
<br></div><div><br></div><div>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.  </div>
<div><br></div><div>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.</div><div>
<br></div></div></blockquote><div><br></div><div>For the section on lambdas: There's a better way than using llvm.frameaddress: move all the locals used in the lambda in a struct (and make the container function use that structs values instead of a regular local), then pass the address of the struct to the lambda as a "this". This is how objc for example passes things to a block (although objc does ref counting in addition to that so the block can be used after the original returned)<br></div><blockquote style="margin: 0 0 0.80ex; border-left: #0000FF 2px solid; padding-left: 1ex">
</blockquote><br><br><br><div id="M2Signature"><div>-- </div><div>Carlo Kok<br>RemObjects Software</div></div></body></html>