diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-07-25 22:24:59 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-07-25 22:24:59 +0000 |
commit | 6e06b577cc96160cfcf4c9e145108938ba388727 (patch) | |
tree | 19910b9b03b3c455c28f6022224dafe8b75d6334 /llvm/lib/Analysis/InstructionSimplify.cpp | |
parent | 62611fd3f70d32e16899d3783784be11e3a9c344 (diff) | |
download | llvm-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.cpp | 29 |
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 |