[LLVMdev] TableGen For Loops
David A. Greene
greened at obbligato.org
Thu Oct 6 11:56:09 PDT 2011
Jakob Stoklund Olesen <jolesen at apple.com> writes:
>> Che-Liang., would you mind if I played around with changing the multidef
>> parsing to recognize your for syntax? Your code will work in places
>> that multidefs can't right now (as Jakob noted) and we want to retain
>> that ability. I would be working on integrating for loops into TableGen
>> proper, not as a preprocessor.
>
> +1 for not adding a preprocessor.
>
> There seems to be two use cases for this:
>
> 1. Generating a sequence of similar top-level defs, for example registers named R0--R15.
>
> 2. Injecting patterns into multiclasses.
I could also imagine generating class fields:
class blah {
for i = [1, 2, 3] {
string Attribute#i#;
}
}
Or even iterating base classes, which I've sometimes wanted to do:
class blah<list<SomeType> bases> :
for c = bases {
c<...>
}
{
...
}
That seems much harder, though, primarily because TableGen currently
requires inheritance to be statically known. So I wouldn't go there
yet. :)
> It seems to me that the same mechanism could support both.
Yes, I agree. I'm going to play around with this and see if I can get
something working.
Che-Liang, I don't want to step on your toes, so let me know if I'm
disrupting something.
-Dave
More information about the llvm-dev
mailing list