(store (op (load ...)), ...)

If store's chain operand is load, then use load's chain operand instead. If
it isn't (likely a TokenFactor), then do not allow the folding.

llvm-svn: 25708
This commit is contained in:
Evan Cheng 2006-01-27 22:13:45 +00:00
parent 42365cf504
commit 450fcb1d91

View File

@ -1931,9 +1931,16 @@ public:
<< ".getValue(" << CInfo.getNumResults() << "))) goto P"
<< PatternNo << "Fail; // Already selected for a chain use?\n";
}
if (NodeHasChain && !FoundChain) {
OS << " SDOperand Chain = " << RootName << ".getOperand(0);\n";
FoundChain = true;
if (NodeHasChain) {
if (!FoundChain) {
OS << " SDOperand Chain = " << RootName << ".getOperand(0);\n";
FoundChain = true;
} else {
OS << " if (Chain.Val == " << RootName << ".Val)\n";
OS << " Chain = " << RootName << ".getOperand(0);\n";
OS << " else\n";
OS << " goto P" << PatternNo << "Fail;\n";
}
}
}