[llvm-dev] COAT: an EDSL making just-in-time code generation easier

Stefan Gränitz via llvm-dev llvm-dev at lists.llvm.org
Thu Sep 19 06:31:52 PDT 2019


Hi Frank

Cool project. Thanks for sharing! It reminds me of
https://github.com/BitFunnel/NativeJIT

DSLs appear to be the way to go for now and it totally makes sense to
me. My concern is the "cardinality vs. barrier of entry" balance: the
more powerful a DSL, the harder it is to learn vs. the more specialized
the DSL, the less use-cases it has. Maybe a narrow domain is the key? :)

The alternative approach is embedded bitcode from static C++ like:
https://github.com/jmmartinez/easy-just-in-time It appears very
powerful, but it's also much more complicated. Also, it can't deal with
arbitrary C++ either, so I wonder how much benefit it has in practice.

Looking forward to where these experiments will lead us one day!

Cheers,
Stefan

On 19/09/2019 01:03, Frank Tetzel via llvm-dev wrote:
> Hi all,
>
> I open sourced a small project of mine recently. It is an EDSL for C++
> which makes just-in-time compilation much easier to write and maintain.
> One of its backends is LLVM's OrcJIT (LLVM 7, still).
>
> https://github.com/tetzank/coat
>
> Here is a blog post of mine introducing the concept:
> https://tetzank.github.io/posts/coat-edsl-for-codegen/
>
> You can see it as an abstraction layer on top of OrcJIT, streamlining
> the process of JIT compiling a single function one after the other as
> much as possible. One use case is ad hoc code generation in databases.
>
> Feedback is welcome. I also like to hear from other users of the JIT
> compiler what abstractions they came up with to make it easier to
> generate code. I'm probably not the first person to come up with such
> things.
>
> Best regards,
> Frank
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-- 
https://flowcrypt.com/pub/stefan.graenitz@gmail.com




More information about the llvm-dev mailing list