aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/InstructionSimplify.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-07-25 22:24:59 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-07-25 22:24:59 +0000
commit6e06b577cc96160cfcf4c9e145108938ba388727 (patch)
tree19910b9b03b3c455c28f6022224dafe8b75d6334 /llvm/lib/Analysis/InstructionSimplify.cpp
parent62611fd3f70d32e16899d3783784be11e3a9c344 (diff)
downloadllvm-6e06b577cc96160cfcf4c9e145108938ba388727.zip
llvm-6e06b577cc96160cfcf4c9e145108938ba388727.tar.gz
llvm-6e06b577cc96160cfcf4c9e145108938ba388727.tar.bz2
Revert "[InstSimplify] Add support for bitcasts"
This reverts commit r276698. Clang has tests which rely on the optimizer :( llvm-svn: 276700
Diffstat (limited to 'llvm/lib/Analysis/InstructionSimplify.cpp')
-rw-r--r--llvm/lib/Analysis/InstructionSimplify.cpp29
1 files changed, 0 insertions, 29 deletions
diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp
index 8fde9c7..981fb97 100644
--- a/llvm/lib/Analysis/InstructionSimplify.cpp
+++ b/llvm/lib/Analysis/InstructionSimplify.cpp
@@ -70,7 +70,6 @@ static Value *SimplifyCmpInst(unsigned, Value *, Value *, const Query &,
static Value *SimplifyOrInst(Value *, Value *, const Query &, unsigned);
static Value *SimplifyXorInst(Value *, Value *, const Query &, unsigned);
static Value *SimplifyTruncInst(Value *, Type *, const Query &, unsigned);
-static Value *SimplifyBitCastInst(Value *, Type *, const Query &, unsigned);
/// For a boolean type, or a vector of boolean type, return false, or
/// a vector with every element false, as appropriate for the type.
@@ -3811,30 +3810,6 @@ Value *llvm::SimplifyTruncInst(Value *Op, Type *Ty, const DataLayout &DL,
RecursionLimit);
}
-static Value *SimplifyBitCastInst(Value *Op, Type *Ty, const Query &Q, unsigned) {
- if (auto *C = dyn_cast<Constant>(Op))
- return ConstantFoldCastOperand(Instruction::BitCast, C, Ty, Q.DL);
-
- // bitcast x -> x
- if (Op->getType() == Ty)
- return Op;
-
- // bitcast(bitcast x) -> x
- if (auto *BC = dyn_cast<BitCastInst>(Op))
- if (BC->getOperand(0)->getType() == Ty)
- return BC->getOperand(0);
-
- return nullptr;
-}
-
-Value *llvm::SimplifyBitCastInst(Value *Op, Type *Ty, const DataLayout &DL,
- const TargetLibraryInfo *TLI,
- const DominatorTree *DT, AssumptionCache *AC,
- const Instruction *CxtI) {
- return ::SimplifyBitCastInst(Op, Ty, Query(DL, TLI, DT, AC, CxtI),
- RecursionLimit);
-}
-
//=== Helper functions for higher up the class hierarchy.
/// Given operands for a BinaryOperator, see if we can fold the result.
@@ -4305,10 +4280,6 @@ Value *llvm::SimplifyInstruction(Instruction *I, const DataLayout &DL,
Result =
SimplifyTruncInst(I->getOperand(0), I->getType(), DL, TLI, DT, AC, I);
break;
- case Instruction::BitCast:
- Result =
- SimplifyBitCastInst(I->getOperand(0), I->getType(), DL, TLI, DT, AC, I);
- break;
}
// In general, it is possible for computeKnownBits to determine all bits in a