class TargetFolder
Declaration
class TargetFolder : public IRBuilderFolder { /* full declaration omitted */ };
Description
TargetFolder - Create constants with target dependent folding.
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:34
Inherits from: IRBuilderFolder
Member Variables
- private const llvm::DataLayout& DL
Method Overview
- public llvm::Constant * CreateBitCast(llvm::Constant * C, llvm::Type * DestTy) const
- public llvm::Constant * CreateCast(Instruction::CastOps Op, llvm::Constant * C, llvm::Type * DestTy) const
- public llvm::Constant * CreateFCmp(CmpInst::Predicate P, llvm::Constant * LHS, llvm::Constant * RHS) const
- public llvm::Constant * CreateFPCast(llvm::Constant * C, llvm::Type * DestTy) const
- public llvm::Constant * CreateIntCast(llvm::Constant * C, llvm::Type * DestTy, bool isSigned) const
- public llvm::Constant * CreateIntToPtr(llvm::Constant * C, llvm::Type * DestTy) const
- public llvm::Constant * CreatePointerBitCastOrAddrSpaceCast(llvm::Constant * C, llvm::Type * DestTy) const
- public llvm::Constant * CreatePointerCast(llvm::Constant * C, llvm::Type * DestTy) const
- public llvm::Constant * CreatePtrToInt(llvm::Constant * C, llvm::Type * DestTy) const
- public llvm::Constant * CreateSExtOrBitCast(llvm::Constant * C, llvm::Type * DestTy) const
- public llvm::Constant * CreateTruncOrBitCast(llvm::Constant * C, llvm::Type * DestTy) const
- public llvm::Constant * CreateZExtOrBitCast(llvm::Constant * C, llvm::Type * DestTy) const
- private llvm::Constant * Fold(llvm::Constant * C) const
- public llvm::Value * FoldBinOp(Instruction::BinaryOps Opc, llvm::Value * LHS, llvm::Value * RHS) const
- public llvm::Value * FoldBinOpFMF(Instruction::BinaryOps Opc, llvm::Value * LHS, llvm::Value * RHS, llvm::FastMathFlags FMF) const
- public llvm::Value * FoldExactBinOp(Instruction::BinaryOps Opc, llvm::Value * LHS, llvm::Value * RHS, bool IsExact) const
- public llvm::Value * FoldExtractElement(llvm::Value * Vec, llvm::Value * Idx) const
- public llvm::Value * FoldExtractValue(llvm::Value * Agg, ArrayRef<unsigned int> IdxList) const
- public llvm::Value * FoldGEP(llvm::Type * Ty, llvm::Value * Ptr, ArrayRef<llvm::Value *> IdxList, bool IsInBounds = false) const
- public llvm::Value * FoldICmp(CmpInst::Predicate P, llvm::Value * LHS, llvm::Value * RHS) const
- public llvm::Value * FoldInsertElement(llvm::Value * Vec, llvm::Value * NewElt, llvm::Value * Idx) const
- public llvm::Value * FoldInsertValue(llvm::Value * Agg, llvm::Value * Val, ArrayRef<unsigned int> IdxList) const
- public llvm::Value * FoldNoWrapBinOp(Instruction::BinaryOps Opc, llvm::Value * LHS, llvm::Value * RHS, bool HasNUW, bool HasNSW) const
- public llvm::Value * FoldSelect(llvm::Value * C, llvm::Value * True, llvm::Value * False) const
- public llvm::Value * FoldShuffleVector(llvm::Value * V1, llvm::Value * V2, ArrayRef<int> Mask) const
- public llvm::Value * FoldUnOpFMF(Instruction::UnaryOps Opc, llvm::Value * V, llvm::FastMathFlags FMF) const
- public TargetFolder(const llvm::DataLayout & DL)
- private virtual void anchor()
Inherited from IRBuilderFolder:
- public CreateBitCast
- public CreateCast
- public CreateFCmp
- public CreateFPCast
- public CreateIntCast
- public CreateIntToPtr
- public CreatePointerBitCastOrAddrSpaceCast
- public CreatePointerCast
- public CreatePtrToInt
- public CreateSExtOrBitCast
- public CreateTruncOrBitCast
- public CreateZExtOrBitCast
- public FoldBinOp
- public FoldBinOpFMF
- public FoldExactBinOp
- public FoldExtractElement
- public FoldExtractValue
- public FoldGEP
- public FoldICmp
- public FoldInsertElement
- public FoldInsertValue
- public FoldNoWrapBinOp
- public FoldSelect
- public FoldShuffleVector
- public FoldUnOpFMF
Methods
¶llvm::Constant* CreateBitCast(
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant* CreateBitCast(
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:210
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant* CreateCast(
Instruction::CastOps Op,
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant* CreateCast(
Instruction::CastOps Op,
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:188
Parameters
- Instruction::CastOps Op
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant* CreateFCmp(
CmpInst::Predicate P,
llvm::Constant* LHS,
llvm::Constant* RHS) const
llvm::Constant* CreateFCmp(
CmpInst::Predicate P,
llvm::Constant* LHS,
llvm::Constant* RHS) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:246
Parameters
- CmpInst::Predicate P
- llvm::Constant* LHS
- llvm::Constant* RHS
¶llvm::Constant* CreateFPCast(
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant* CreateFPCast(
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:205
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant* CreateIntCast(llvm::Constant* C,
llvm::Type* DestTy,
bool isSigned) const
llvm::Constant* CreateIntCast(llvm::Constant* C,
llvm::Type* DestTy,
bool isSigned) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:194
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
- bool isSigned
¶llvm::Constant* CreateIntToPtr(
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant* CreateIntToPtr(
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:213
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant*
CreatePointerBitCastOrAddrSpaceCast(
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant*
CreatePointerBitCastOrAddrSpaceCast(
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:235
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant* CreatePointerCast(
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant* CreatePointerCast(
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:200
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant* CreatePtrToInt(
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant* CreatePtrToInt(
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:216
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant* CreateSExtOrBitCast(
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant* CreateSExtOrBitCast(
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:224
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant* CreateTruncOrBitCast(
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant* CreateTruncOrBitCast(
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:229
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant* CreateZExtOrBitCast(
llvm::Constant* C,
llvm::Type* DestTy) const
llvm::Constant* CreateZExtOrBitCast(
llvm::Constant* C,
llvm::Type* DestTy) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:219
Parameters
- llvm::Constant* C
- llvm::Type* DestTy
¶llvm::Constant* Fold(llvm::Constant* C) const
llvm::Constant* Fold(llvm::Constant* C) const
Description
Fold - Fold the constant using target specific information.
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:38
Parameters
¶llvm::Value* FoldBinOp(Instruction::BinaryOps Opc,
llvm::Value* LHS,
llvm::Value* RHS) const
llvm::Value* FoldBinOp(Instruction::BinaryOps Opc,
llvm::Value* LHS,
llvm::Value* RHS) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:54
Parameters
- Instruction::BinaryOps Opc
- llvm::Value* LHS
- llvm::Value* RHS
¶llvm::Value* FoldBinOpFMF(
Instruction::BinaryOps Opc,
llvm::Value* LHS,
llvm::Value* RHS,
llvm::FastMathFlags FMF) const
llvm::Value* FoldBinOpFMF(
Instruction::BinaryOps Opc,
llvm::Value* LHS,
llvm::Value* RHS,
llvm::FastMathFlags FMF) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:97
Parameters
- Instruction::BinaryOps Opc
- llvm::Value* LHS
- llvm::Value* RHS
- llvm::FastMathFlags FMF
¶llvm::Value* FoldExactBinOp(
Instruction::BinaryOps Opc,
llvm::Value* LHS,
llvm::Value* RHS,
bool IsExact) const
llvm::Value* FoldExactBinOp(
Instruction::BinaryOps Opc,
llvm::Value* LHS,
llvm::Value* RHS,
bool IsExact) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:66
Parameters
- Instruction::BinaryOps Opc
- llvm::Value* LHS
- llvm::Value* RHS
- bool IsExact
¶llvm::Value* FoldExtractElement(
llvm::Value* Vec,
llvm::Value* Idx) const
llvm::Value* FoldExtractElement(
llvm::Value* Vec,
llvm::Value* Idx) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:157
Parameters
- llvm::Value* Vec
- llvm::Value* Idx
¶llvm::Value* FoldExtractValue(
llvm::Value* Agg,
ArrayRef<unsigned int> IdxList) const
llvm::Value* FoldExtractValue(
llvm::Value* Agg,
ArrayRef<unsigned int> IdxList) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:141
Parameters
- llvm::Value* Agg
- ArrayRef<unsigned int> IdxList
¶llvm::Value* FoldGEP(
llvm::Type* Ty,
llvm::Value* Ptr,
ArrayRef<llvm::Value*> IdxList,
bool IsInBounds = false) const
llvm::Value* FoldGEP(
llvm::Type* Ty,
llvm::Value* Ptr,
ArrayRef<llvm::Value*> IdxList,
bool IsInBounds = false) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:117
Parameters
- llvm::Type* Ty
- llvm::Value* Ptr
- ArrayRef<llvm::Value*> IdxList
- bool IsInBounds = false
¶llvm::Value* FoldICmp(CmpInst::Predicate P,
llvm::Value* LHS,
llvm::Value* RHS) const
llvm::Value* FoldICmp(CmpInst::Predicate P,
llvm::Value* LHS,
llvm::Value* RHS) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:102
Parameters
- CmpInst::Predicate P
- llvm::Value* LHS
- llvm::Value* RHS
¶llvm::Value* FoldInsertElement(
llvm::Value* Vec,
llvm::Value* NewElt,
llvm::Value* Idx) const
llvm::Value* FoldInsertElement(
llvm::Value* Vec,
llvm::Value* NewElt,
llvm::Value* Idx) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:165
Parameters
- llvm::Value* Vec
- llvm::Value* NewElt
- llvm::Value* Idx
¶llvm::Value* FoldInsertValue(
llvm::Value* Agg,
llvm::Value* Val,
ArrayRef<unsigned int> IdxList) const
llvm::Value* FoldInsertValue(
llvm::Value* Agg,
llvm::Value* Val,
ArrayRef<unsigned int> IdxList) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:148
Parameters
- llvm::Value* Agg
- llvm::Value* Val
- ArrayRef<unsigned int> IdxList
¶llvm::Value* FoldNoWrapBinOp(
Instruction::BinaryOps Opc,
llvm::Value* LHS,
llvm::Value* RHS,
bool HasNUW,
bool HasNSW) const
llvm::Value* FoldNoWrapBinOp(
Instruction::BinaryOps Opc,
llvm::Value* LHS,
llvm::Value* RHS,
bool HasNUW,
bool HasNSW) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:79
Parameters
- Instruction::BinaryOps Opc
- llvm::Value* LHS
- llvm::Value* RHS
- bool HasNUW
- bool HasNSW
¶llvm::Value* FoldSelect(llvm::Value* C,
llvm::Value* True,
llvm::Value* False) const
llvm::Value* FoldSelect(llvm::Value* C,
llvm::Value* True,
llvm::Value* False) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:131
Parameters
- llvm::Value* C
- llvm::Value* True
- llvm::Value* False
¶llvm::Value* FoldShuffleVector(
llvm::Value* V1,
llvm::Value* V2,
ArrayRef<int> Mask) const
llvm::Value* FoldShuffleVector(
llvm::Value* V1,
llvm::Value* V2,
ArrayRef<int> Mask) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:175
Parameters
- llvm::Value* V1
- llvm::Value* V2
- ArrayRef<int> Mask
¶llvm::Value* FoldUnOpFMF(
Instruction::UnaryOps Opc,
llvm::Value* V,
llvm::FastMathFlags FMF) const
llvm::Value* FoldUnOpFMF(
Instruction::UnaryOps Opc,
llvm::Value* V,
llvm::FastMathFlags FMF) const
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:110
Parameters
- Instruction::UnaryOps Opc
- llvm::Value* V
- llvm::FastMathFlags FMF
¶TargetFolder(const llvm::DataLayout& DL)
TargetFolder(const llvm::DataLayout& DL)
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:45
Parameters
- const llvm::DataLayout& DL
¶virtual void anchor()
virtual void anchor()
Declared at: llvm/include/llvm/Analysis/TargetFolder.h:42