mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 06:33:24 +00:00
Promote xform fns to be explicit nodes in result patterns, and clean off
predicates since they will have already matched at this point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23362 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b0276200e6
commit
2175c18c4f
@ -830,7 +830,21 @@ void DAGISelEmitter::ParseAndResolveInstructions() {
|
|||||||
I->error("Operand $" + OpName +
|
I->error("Operand $" + OpName +
|
||||||
"'s type disagrees between the operand and pattern");
|
"'s type disagrees between the operand and pattern");
|
||||||
|
|
||||||
ResultNodeOperands.push_back(InVal->clone());
|
// Construct the result for the dest-pattern operand list.
|
||||||
|
TreePatternNode *OpNode = InVal->clone();
|
||||||
|
|
||||||
|
// No predicate is useful on the result.
|
||||||
|
OpNode->setPredicateFn("");
|
||||||
|
|
||||||
|
// Promote the xform function to be an explicit node if set.
|
||||||
|
if (Record *Xform = OpNode->getTransformFn()) {
|
||||||
|
OpNode->setTransformFn(0);
|
||||||
|
std::vector<TreePatternNode*> Children;
|
||||||
|
Children.push_back(OpNode);
|
||||||
|
OpNode = new TreePatternNode(Xform, Children);
|
||||||
|
}
|
||||||
|
|
||||||
|
ResultNodeOperands.push_back(OpNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!InstInputsCheck.empty())
|
if (!InstInputsCheck.empty())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user