I have a large number of instruction patterns that involves a lot of replication in TableGen. To reduce this replication I want to use 'foreach', but in this case the action is operating on 'multiclass' and 'defm'. Basically I want to make the following work: foreach item = { "ReplA", "ReplB", ... , "ReplZ" } in { defm PRE_#item#_POST : BASE_#item#_SUFF<.....>; } Unfortunately TableGen doesn't handle this for 'multiclass' and 'defm', so I have made adaptations to 'lib/TableGen/TGParser.*' that would allow this to happen. In this code I have a variable 'idFragment' that represents the iteration variable name for the 'foreach' loop. Next I want to perform the substation, but I can see how I get the current value to perform the replacement. My code is: for (ForeachLoop var: Loops) { if (var.IterVar->getName() == idFragment) { but having identified where to perform the replacement, I can't find how to get the current value to replace 'item' with {e.g. is it 'ReplF'?} Any hints on how I can do this? The normal replacement code I find very hard to follow. Thanks, MartinO -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160616/dc59a6fc/attachment.html>