diff options
author | Chris Lattner <sabre@nondot.org> | 2010-01-04 07:53:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-01-04 07:53:58 +0000 |
commit | 2b295a0eba5fd533c3d0308d703228c51b6e0e7d (patch) | |
tree | 19ae141dac1aa071cd62dfeec8531e9130e5c488 /llvm/lib/Transforms/InstCombine/InstCombine.h | |
parent | 2188e40e4c43056348f3163c1a471cd0e651ca5a (diff) | |
download | bcm5719-llvm-2b295a0eba5fd533c3d0308d703228c51b6e0e7d.tar.gz bcm5719-llvm-2b295a0eba5fd533c3d0308d703228c51b6e0e7d.zip |
split 943 lines of instcombine out to a new InstCombineCasts.cpp
file. InstructionCombining.cpp is now down to a svelte 9300 lines :)
llvm-svn: 92468
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombine.h')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombine.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombine.h b/llvm/lib/Transforms/InstCombine/InstCombine.h index a1e9f2ffe31..7e20be41af6 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombine.h +++ b/llvm/lib/Transforms/InstCombine/InstCombine.h @@ -193,7 +193,17 @@ public: Instruction *visitInstruction(Instruction &I) { return 0; } private: + bool ShouldChangeType(const Type *From, const Type *To) const; Value *dyn_castNegVal(Value *V) const; + const Type *FindElementAtOffset(const Type *Ty, int64_t Offset, + SmallVectorImpl<Value*> &NewIndices); + Instruction *FoldOpIntoSelect(Instruction &Op, SelectInst *SI); + + /// ValueRequiresCast - Return true if the cast from "V to Ty" actually + /// results in any code being generated. It does not require codegen if V is + /// simple enough or if the cast can be folded into other casts. + bool ValueRequiresCast(Instruction::CastOps opcode,const Value *V, + const Type *Ty); Instruction *visitCallSite(CallSite CS); bool transformConstExprCastCall(CallSite CS); |