tablegen question

Hi,

I am trying to make my tablegen files more flexible and for that I would like to have a name that in the end will be replaced with
a type.

If tablegen would support c preprocssing, I would do it like this:

Why not just run the c preprocessor before running tablegen?

Micah

That might be a possibility.
In that case I'll need to avoid tablegen's include mechanism and replace them with a '#include'.
I would also need to change the normal build rules so that the preprocessor is invoked (and that is something I would like to avoid ; ) )

Greetings,

Jeroen

Hi,

I am trying to make my tablegen files more flexible and for that I would like to have a name that in the end will be replaced with
a type.

If tablegen would support c preprocssing, I would do it like this:

---
#define myBaseType i32
...
def imm32 : Operand<myBaseType>;
def immZExt10 : ImmLeaf<myBaseType, [{return isUInt<10>(Imm);}]>;
...
---

Is there a way to achieve something like this with tablegen ?

You could maybe define a class, def an instance at the top-level, and
access the member you care about (using dot notation).
Depending on how far you want to push it, things like #if trickery can
be done using equivalent tablegen (!if, ..) when defining the
instance.

-- Ahmed