diff options
| author | Lang Hames <lhames@gmail.com> | 2012-04-25 02:16:54 +0000 |
|---|---|---|
| committer | Lang Hames <lhames@gmail.com> | 2012-04-25 02:16:54 +0000 |
| commit | 87aac6a8772e71e2edc7faceaace9cf8d9db88ea (patch) | |
| tree | a36085fd6b7cbc530577b8dd7664498d1c3a4848 /lib/Transforms/InstCombine | |
| parent | 25052f4077503d030e65a025b348c5f1e9ffb616 (diff) | |
| download | external_llvm-87aac6a8772e71e2edc7faceaace9cf8d9db88ea.zip external_llvm-87aac6a8772e71e2edc7faceaace9cf8d9db88ea.tar.gz external_llvm-87aac6a8772e71e2edc7faceaace9cf8d9db88ea.tar.bz2 | |
Reverting r155468. Chris and Chandler have convinced me that it's dangerous and
in poor taste.
Talking through some alternate solutions with Chandler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155530 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/InstCombine')
| -rw-r--r-- | lib/Transforms/InstCombine/InstCombineCalls.cpp | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/lib/Transforms/InstCombine/InstCombineCalls.cpp b/lib/Transforms/InstCombine/InstCombineCalls.cpp index 5ad9382..77e4727 100644 --- a/lib/Transforms/InstCombine/InstCombineCalls.cpp +++ b/lib/Transforms/InstCombine/InstCombineCalls.cpp @@ -14,7 +14,6 @@ #include "InstCombine.h" #include "llvm/Support/CallSite.h" #include "llvm/Target/TargetData.h" -#include "llvm/Analysis/InstructionSimplify.h" #include "llvm/Analysis/MemoryBuiltins.h" #include "llvm/Transforms/Utils/BuildLibCalls.h" #include "llvm/Transforms/Utils/Local.h" @@ -695,40 +694,6 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) { break; } - case Intrinsic::arm_neon_vmulls: - case Intrinsic::arm_neon_vmullu: { - // Zext/sext intrinsic operands according to the intrinsic type, then try to - // simplify them. This lets us try a SimplifyMulInst on the extended - // operands. If the zext/sext instructions are unused when we're done then - // delete them from the block. - Value* Arg0 = II->getArgOperand(0); - Value* Arg1 = II->getArgOperand(1); - bool Zext = (II->getIntrinsicID() == Intrinsic::arm_neon_vmullu); - Instruction *Arg0W = - Zext ? CastInst::CreateZExtOrBitCast(Arg0, II->getType(), "", II) : - CastInst::CreateSExtOrBitCast(Arg0, II->getType(), "", II); - Value* Arg0WS = SimplifyInstruction(Arg0W); - if (Arg0WS == 0) // If simplification fails just pass through the ext'd val. - Arg0WS = Arg0W; - Instruction *Arg1W = - Zext ? CastInst::CreateZExtOrBitCast(Arg1, II->getType(), "", II) : - CastInst::CreateSExtOrBitCast(Arg1, II->getType(), "", II); - Value* Arg1WS = SimplifyInstruction(Arg1W); - if (Arg1WS == 0) - Arg1WS = Arg1W; - Instruction *SimplifiedInst = 0; - if (Value* V = SimplifyMulInst(Arg0WS, Arg1WS, TD)) { - SimplifiedInst = ReplaceInstUsesWith(CI, V); - } - if (Arg0W->use_empty()) - Arg0W->eraseFromParent(); - if (Arg1W->use_empty()) - Arg1W->eraseFromParent(); - if (SimplifiedInst != 0) - return SimplifiedInst; - break; - } - case Intrinsic::stackrestore: { // If the save is right next to the restore, remove the restore. This can // happen when variable allocas are DCE'd. |
