namespace llvm {
class CallSite;
class TargetData;
- struct DbgDeclareInst;
- struct MemIntrinsic;
- struct MemSetInst;
+ class DbgDeclareInst;
+ class MemIntrinsic;
+ class MemSetInst;
/// SelectPatternFlavor - We can match a variety of different patterns for
/// select operations.
Instruction *FoldShiftByConstant(Value *Op0, ConstantInt *Op1,
BinaryOperator &I);
Instruction *commonCastTransforms(CastInst &CI);
- Instruction *commonIntCastTransforms(CastInst &CI);
Instruction *commonPointerCastTransforms(CastInst &CI);
Instruction *visitTrunc(TruncInst &CI);
Instruction *visitZExt(ZExtInst &CI);
private:
bool ShouldChangeType(const Type *From, const Type *To) const;
Value *dyn_castNegVal(Value *V) const;
+ Value *dyn_castFNegVal(Value *V) const;
const Type *FindElementAtOffset(const Type *Ty, int64_t Offset,
SmallVectorImpl<Value*> &NewIndices);
Instruction *FoldOpIntoSelect(Instruction &Op, SelectInst *SI);
Value *EvaluateInDifferentType(Value *V, const Type *Ty, bool isSigned);
- bool CanEvaluateInDifferentType(Value *V, const Type *Ty,
- unsigned CastOpc, int &NumCastsRemoved);
unsigned GetOrEnforceKnownAlignment(Value *V,
unsigned PrefAlign = 0);