summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Burgess IV <george.burgess.iv@gmail.com>2017-05-01 23:54:41 +0000
committerGeorge Burgess IV <george.burgess.iv@gmail.com>2017-05-01 23:54:41 +0000
commit7bc507a2e816d6950c1337a59ae0dbb59be1c5e8 (patch)
tree48d8e0724a36ee5cb13d9844695c0fcd88d24d9d
parent9d4eb6922e6c304dd24e96b62053def54d3dfde6 (diff)
downloadbcm5719-llvm-7bc507a2e816d6950c1337a59ae0dbb59be1c5e8.tar.gz
bcm5719-llvm-7bc507a2e816d6950c1337a59ae0dbb59be1c5e8.zip
Revert r301880
This change caused buildbot failures, apparently because we're not passing around types that InstSimplify is used to seeing. I'm not overly familiar with InstSimplify, so I'm reverting this until I can figure out what exactly is wrong. llvm-svn: 301885
-rw-r--r--llvm/lib/Analysis/InstructionSimplify.cpp13
-rw-r--r--llvm/test/Transforms/InstSimplify/select.ll19
2 files changed, 0 insertions, 32 deletions
diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp
index 31371546946..2f25a118366 100644
--- a/llvm/lib/Analysis/InstructionSimplify.cpp
+++ b/llvm/lib/Analysis/InstructionSimplify.cpp
@@ -62,8 +62,6 @@ static Value *SimplifyOrInst(Value *, Value *, const SimplifyQuery &, unsigned);
static Value *SimplifyXorInst(Value *, Value *, const SimplifyQuery &, unsigned);
static Value *SimplifyCastInst(unsigned, Value *, Type *,
const SimplifyQuery &, unsigned);
-static Value *SimplifyGEPInst(Type *, ArrayRef<Value *>, const SimplifyQuery &,
- unsigned);
/// For a boolean type or a vector of boolean type, return false or a vector
/// with every element false.
@@ -3493,17 +3491,6 @@ static const Value *SimplifyWithOpReplaced(Value *V, Value *Op, Value *RepOp,
}
}
- // Same for GEPs.
- if (auto *GEP = dyn_cast<GetElementPtrInst>(I)) {
- if (MaxRecurse) {
- SmallVector<Value *, 8> NewOps(GEP->getNumOperands());
- transform(GEP->operands(), NewOps.begin(),
- [&](Value *V) { return V == Op ? RepOp : V; });
- return SimplifyGEPInst(GEP->getSourceElementType(), NewOps, Q,
- MaxRecurse - 1);
- }
- }
-
// TODO: We could hand off more cases to instsimplify here.
// If all operands are constant after substituting Op for RepOp then we can
diff --git a/llvm/test/Transforms/InstSimplify/select.ll b/llvm/test/Transforms/InstSimplify/select.ll
index 3e1af8c09b7..cb2502cf63c 100644
--- a/llvm/test/Transforms/InstSimplify/select.ll
+++ b/llvm/test/Transforms/InstSimplify/select.ll
@@ -431,22 +431,3 @@ define i8 @do_not_assume_sel_cond(i1 %cond, i8 %x, i8 %y) {
ret i8 %sel
}
-define i32* @select_icmp_eq_0_gep_operand(i32* %base, i64 %n) {
-; CHECK-LABEL: @select_icmp_eq_0_gep_operand(
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr
-; CHECK-NEXT: ret i32* [[GEP]]
- %cond = icmp eq i64 %n, 0
- %gep = getelementptr i32, i32* %base, i64 %n
- %r = select i1 %cond, i32* %base, i32* %gep
- ret i32* %r
-}
-
-define i32* @select_icmp_ne_0_gep_operand(i32* %base, i64 %n) {
-; CHECK-LABEL: @select_icmp_ne_0_gep_operand(
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr
-; CHECK-NEXT: ret i32* [[GEP]]
- %cond = icmp ne i64 %n, 0
- %gep = getelementptr i32, i32* %base, i64 %n
- %r = select i1 %cond, i32* %gep, i32* %base
- ret i32* %r
-}
OpenPOWER on IntegriCloud