diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-02-25 10:33:33 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-02-25 10:33:33 +0000 |
commit | ceb5daa5675d25fa61b5d3499fdb0084870fc006 (patch) | |
tree | 9aedad4b553bf8d094152ee7d185af87f18470ee /llvm/lib/Transforms/Utils | |
parent | a28097da4fbae525909886f348046e24248fd4c0 (diff) | |
download | bcm5719-llvm-ceb5daa5675d25fa61b5d3499fdb0084870fc006.tar.gz bcm5719-llvm-ceb5daa5675d25fa61b5d3499fdb0084870fc006.zip |
Revert "SimplifyCFG: GEPs with just one non-constant index are also cheap."
Yes, there are other types than i8* and GEPs on them can produce an add+multiply.
We don't consider that cheap enough to be speculatively executed.
llvm-svn: 126481
Diffstat (limited to 'llvm/lib/Transforms/Utils')
-rw-r--r-- | llvm/lib/Transforms/Utils/SimplifyCFG.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp index 3968d6e8d3b..c6708857cb5 100644 --- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp @@ -247,13 +247,11 @@ static bool DominatesMergePoint(Value *V, BasicBlock *BB, if (PBB->getFirstNonPHIOrDbg() != I) return false; break; - case Instruction::GetElementPtr: { - // GEPs are cheap if all indices are constant or if there's only one index. - GetElementPtrInst *GEP = cast<GetElementPtrInst>(I); - if (!GEP->hasAllConstantIndices() && GEP->getNumIndices() > 1) + case Instruction::GetElementPtr: + // GEPs are cheap if all indices are constant. + if (!cast<GetElementPtrInst>(I)->hasAllConstantIndices()) return false; break; - } case Instruction::Add: case Instruction::Sub: case Instruction::And: |