[PATCH] Big update to Kaleidoscope tutorials.

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 25 18:13:17 PDT 2015


On 08/25/2015 05:39 PM, Andy Somogyi via llvm-commits wrote:
> I think this should go in the 3.7 release.
I disagree.  I'd be fine with a forward reference (e.g. "This document 
is out of date, we suggest you read the one for ToT."), but this would 
be a large change to make at the last minute.
>
> The kaleidoscope tutorials have been broken for a long time, ever 
> since the removal of the regular JIT, and nearly everyone I know used 
> the Kaleidoscope tutorials to learn LLVM, they are a very good 
> resource and they simply should work.
>
> Sent from my iPhone
>
> On Aug 25, 2015, at 6:35 PM, Eric Christopher via llvm-commits 
> <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
>
>> This looks pretty great.
>>
>> Couple of comments:
>>
>> Man, would the renaming have been nice to do before/after :)
>>
>> +simple: The KaleidoscopeJIT has a straigtforward symbol resolution 
>> rule that
>>
>> Typo.
>>
>> Any reason not to have the KaleidoscopeJIT file in the tutorial?
>>
>> +      : TM(EngineBuilder().selectTarget()), DL(TM->createDataLayout()),
>>
>> As far as the data layout, this hurts. Can we get it from the module 
>> at use time?
>>
>> Otherwise LGTM and hopefully we can just pull this into 3.7 if we 
>> have another RC. Otherwise we probably want to hold off?
>>
>> -eric
>>
>>
>> On Tue, Aug 25, 2015 at 2:01 PM Lang Hames <lhames at gmail.com 
>> <mailto:lhames at gmail.com>> wrote:
>>
>>     Hi All,
>>
>>     As some of you have noticed, Kaleidoscope has had some issues
>>     since we removed the legacy JIT last year. The tutorial code had
>>     been relying on the behavior of the legacy JIT, and the switch to
>>     MCJIT caused many simple use-cases to break (e.g. repeat calls to
>>     functions). Kaleidoscope Chapter 4, which introduces JIT support,
>>     had been largely fixed by taking some of the code from Andy
>>     Kaylor's Kaleidoscope/MCJIT tutorials, but this added a lot of
>>     engineering detail to what was supposed to be a beginner's
>>     tutorial. The later chapters were never updated.
>>
>>     The attached patch fixes this situation by updating all of the
>>     Kaleidoscope tutorials to use a new, custom, ORC-based JIT:
>>     KaleidoscopeJIT. By using this instead of MCJIT, all of the
>>     original Kaleidoscope functionality is restored, and we actually
>>     do a better job of behaving like a REPL (for example, functions
>>     can be redefined). Assuming this patch is accepted, in the near
>>     future I hope to add one or two new chapters to Kaleidoscope that
>>     involve modifying the KaleidoscopeJIT to support lazy compilation
>>     (This will mostly involve merging code from the Kaleidoscope/Orc
>>     tutorials).
>>
>>     Most of this patch is concerned with the switch to
>>     KaleidoscopeJIT and corresponding updates to the documentation.
>>     In particular, Chapter 4 has been substantially updated. There is
>>     also a little bit of C++11 modernization and general cleanup.
>>
>>     All comments welcome. If anyone would like to road-test the new
>>     tutorials I'd be particularly interested to hear feedback on that.
>>
>>     Cheers,
>>     Lang.
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150825/a4b253c1/attachment.html>


More information about the llvm-commits mailing list