[llvm-dev] tablegen dag syntax question
Chris Sears via llvm-dev
llvm-dev at lists.llvm.org
Fri Apr 26 16:39:08 PDT 2019
What is the difference between these two fragments (taken from two
different tblgen record dumps)?
dag OutOperandList = (outs GPR:$rd);
dag OutOperandList = (outs R2);
The first is from the RISCV backend record dump. There will be a
substitution at some point for $rd. In the second, I'm specifying R2, no
substitution necessary.
If I specify GPR64:R2 or i64:R2 in my Instruction def, rather than just R2,
tblgen complains:
error: expected variable name in dag literal
If I use R1000 (which isn't defined) I get what I'd expect:
error: Variable not defined: 'R1000'
There isn't any documentation (that I could find) for this syntax.
Consequently, I'm a little worried that using R2 rather than something:R2
is somehow wrong.
Why does the RISCV dag use GPR:$rd rather than just $rd?
C
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190426/6df2feab/attachment.html>
More information about the llvm-dev
mailing list