aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-09-18 08:26:06 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-09-18 08:26:06 +0000
commit8be58a11868ae081c195c107cd39a07f1f523877 (patch)
treeca7649760790c12e1bc151ecf9cd309e304e652f
parentf8a56255a54bf60d0cfa6b20d10dad969cce9f81 (diff)
downloadexternal_llvm-8be58a11868ae081c195c107cd39a07f1f523877.zip
external_llvm-8be58a11868ae081c195c107cd39a07f1f523877.tar.gz
external_llvm-8be58a11868ae081c195c107cd39a07f1f523877.tar.bz2
Revert r82214. It broke 403.gcc on x86_64 / Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82215 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index e2fab1b..19ea647 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -982,7 +982,6 @@ SelectionDAGISel::FinishBasicBlock() {
// If we generated any switch lowering information, build and codegen any
// additional DAGs necessary.
- SmallSet<unsigned, 4> Processed;
for (unsigned i = 0, e = SDL->SwitchCases.size(); i != e; ++i) {
// Set the current basic block to the mbb we wish to insert the code into
BB = SDL->SwitchCases[i].ThisBB;
@@ -1005,18 +1004,12 @@ SelectionDAGISel::FinishBasicBlock() {
for (unsigned pn = 0; ; ++pn) {
assert(pn != SDL->PHINodesToUpdate.size() &&
"Didn't find PHI entry!");
- if (SDL->PHINodesToUpdate[pn].first != Phi)
- continue;
- if (!Processed.insert(pn))
- // Already processed, done. We can't have the value from more than
- // one edges.
+ if (SDL->PHINodesToUpdate[pn].first == Phi) {
+ Phi->addOperand(MachineOperand::CreateReg(SDL->PHINodesToUpdate[pn].
+ second, false));
+ Phi->addOperand(MachineOperand::CreateMBB(SDL->SwitchCases[i].ThisBB));
break;
- Phi->addOperand(MachineOperand::CreateReg(SDL->PHINodesToUpdate[pn].
- second, false));
- assert(BB->isPred(SDL->SwitchCases[i].ThisBB) &&
- "phi value cannot come from a bb that is not a predecessor!");
- Phi->addOperand(MachineOperand::CreateMBB(SDL->SwitchCases[i].ThisBB));
- break;
+ }
}
}