[LLVMdev] Proposal for TableML, llvmc2 configuration language
pcwalton at cs.ucla.edu
Thu Nov 27 17:35:54 PST 2008
> It'd probably be nice if it was possible to syntactically distinguish between
> what is evaluated at run-time and at compile-time (like in Template Haskell).
Well, it is in a sense: things evaluated at run time will always be
inside lambda functions, while things evaluated at compile time aren't.
> As I understand from this link, TableML supports only lists and some primitive
> types (no algebraic datatypes).
> That'd be enough for llvmc, but I can't speak for the other
> backends; you'll probably need to integrate some additional
> syntactic sugar to cater to their needs.
The current plan is that backends will be able to define their own
datatypes in the Standard ML sense, with explicit constructors.
> Another (pie-in-the-sky) option is to compile TableML to LLVM IR and integrate
> llvmc with the JIT engine.
> That way llvmc won't even need a C++ compiler present to support plugins.
> But that's probably too heavyweight for a humble compiler driver:)
At first I considered that, but this might create a bootstrapping
problem: if TableML is to become an alternative to TableGen, then we
could get into a situation in which TableML is needed to compile LLVM,
and LLVM is needed to compile TableML.
Thanks for the feedback!
More information about the llvm-dev