[LLVMdev] Proposal for TableML, llvmc2 configuration language

Patrick Walton 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 mailing list