aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/StrongPHIElimination.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2008-01-09 06:19:05 +0000
committerOwen Anderson <resistor@mac.com>2008-01-09 06:19:05 +0000
commitcb7d949a19f8d00a019796dfc9342fe294df27c0 (patch)
treeff573266da1cd1f067a05fb65d7d8db3b562034d /lib/CodeGen/StrongPHIElimination.cpp
parent92b7c1d94e56ab5bc22530ea1d5d1cef23f03dcc (diff)
Fix some simple bugs. StrongPHIElimination now does not crash on 164.gzip.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45773 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/StrongPHIElimination.cpp')
-rw-r--r--lib/CodeGen/StrongPHIElimination.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/CodeGen/StrongPHIElimination.cpp b/lib/CodeGen/StrongPHIElimination.cpp
index 3b201f7b81..eff02f1fbf 100644
--- a/lib/CodeGen/StrongPHIElimination.cpp
+++ b/lib/CodeGen/StrongPHIElimination.cpp
@@ -178,7 +178,6 @@ public:
else if (preorder[ABlock] > preorder[BBlock])
return false;
- assert(0 && "Error sorting by dominance!");
return false;
}
};
@@ -208,8 +207,9 @@ StrongPHIElimination::computeDomForest(std::set<unsigned>& regs) {
for (std::vector<unsigned>::iterator I = worklist.begin(), E = worklist.end();
I != E; ++I) {
unsigned pre = preorder[LV.getVarInfo(*I).DefInst->getParent()];
- MachineBasicBlock* parentBlock =
- LV.getVarInfo(CurrentParent->getReg()).DefInst->getParent();
+ MachineBasicBlock* parentBlock = CurrentParent->getReg() ?
+ LV.getVarInfo(CurrentParent->getReg()).DefInst->getParent() :
+ 0;
while (pre > maxpreorder[parentBlock]) {
stack.pop_back();