summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-03-01 01:12:13 +0000
committerChris Lattner <sabre@nondot.org>2004-03-01 01:12:13 +0000
commit5cf39339d1236639b635ffb80aa83b95e4af6e95 (patch)
tree5ce663f7f36b0bc01b891ebf0a62833dfacb9b88 /llvm/lib/Transforms/Scalar
parent2a4c5b050e62867710b79c826d1db9d5da370fe5 (diff)
downloadbcm5719-llvm-5cf39339d1236639b635ffb80aa83b95e4af6e95.tar.gz
bcm5719-llvm-5cf39339d1236639b635ffb80aa83b95e4af6e95.zip
Disable tail duplication in a case that breaks on Olden/tsp
llvm-svn: 12021
Diffstat (limited to 'llvm/lib/Transforms/Scalar')
-rw-r--r--llvm/lib/Transforms/Scalar/LowerInvoke.cpp2
-rw-r--r--llvm/lib/Transforms/Scalar/TailDuplication.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LowerInvoke.cpp b/llvm/lib/Transforms/Scalar/LowerInvoke.cpp
index d42d0533f1c..24033f4876a 100644
--- a/llvm/lib/Transforms/Scalar/LowerInvoke.cpp
+++ b/llvm/lib/Transforms/Scalar/LowerInvoke.cpp
@@ -42,7 +42,7 @@ using namespace llvm;
namespace {
Statistic<> NumLowered("lowerinvoke", "Number of invoke & unwinds replaced");
- cl::opt<bool> ExpensiveEHSupport("enable-correct-eh-support",
+ cl::opt<bool> ExpensiveEHSupport("enable-correct-eh-support",
cl::desc("Make the -lowerinvoke pass insert expensive, but correct, EH code"));
class LowerInvoke : public FunctionPass {
diff --git a/llvm/lib/Transforms/Scalar/TailDuplication.cpp b/llvm/lib/Transforms/Scalar/TailDuplication.cpp
index 315b90697cf..a3980b342c2 100644
--- a/llvm/lib/Transforms/Scalar/TailDuplication.cpp
+++ b/llvm/lib/Transforms/Scalar/TailDuplication.cpp
@@ -135,6 +135,10 @@ bool TailDup::canEliminateUnconditionalBranch(TerminatorInst *TI) {
Instruction *User = cast<Instruction>(*UI);
if (User->getParent() != Tail && User->getParent() != BB)
return false;
+
+ // The 'swap' problem foils the tail duplication rewriting code.
+ if (isa<PHINode>(User) && User->getParent() == Tail)
+ return false;
}
return true;
}
OpenPOWER on IntegriCloud