[llvm-commits] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp
Chris Lattner
lattner at cs.uiuc.edu
Wed Nov 16 15:15:05 PST 2005
Changes in directory llvm/utils/TableGen:
DAGISelEmitter.cpp updated: 1.73 -> 1.74
---
Log message:
fix a tblgen bug that Evan ran into, where we would lose the '$src' name
on patterns like "(set R32:$dst, (i32 imm:$src))"
---
Diffs of the changes: (+4 -4)
DAGISelEmitter.cpp | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.73 llvm/utils/TableGen/DAGISelEmitter.cpp:1.74
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.73 Wed Nov 2 23:46:11 2005
+++ llvm/utils/TableGen/DAGISelEmitter.cpp Wed Nov 16 17:14:54 2005
@@ -631,9 +631,7 @@
if (R->isSubClassOf("SDNode") || R->isSubClassOf("PatFrag")) {
Dag->setArg(0, new DagInit(R,
std::vector<std::pair<Init*, std::string> >()));
- TreePatternNode *TPN = ParseTreePattern(Dag);
- TPN->setName(Dag->getArgName(0));
- return TPN;
+ return ParseTreePattern(Dag);
}
New = new TreePatternNode(DI);
@@ -651,6 +649,7 @@
// Apply the type cast.
New->UpdateNodeType(getValueType(Operator), *this);
+ New->setName(Dag->getArgName(0));
return New;
}
@@ -672,7 +671,8 @@
Init *Arg = Dag->getArg(i);
if (DagInit *DI = dynamic_cast<DagInit*>(Arg)) {
Children.push_back(ParseTreePattern(DI));
- Children.back()->setName(Dag->getArgName(i));
+ if (Children.back()->getName().empty())
+ Children.back()->setName(Dag->getArgName(i));
} else if (DefInit *DefI = dynamic_cast<DefInit*>(Arg)) {
Record *R = DefI->getDef();
// Direct reference to a leaf DagNode or PatFrag? Turn it into a
More information about the llvm-commits
mailing list