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:

Methods

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

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

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

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

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

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

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

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

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

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

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

Declared at: llvm/include/llvm/Analysis/TargetFolder.h:219

Parameters

llvm::Constant* C
llvm::Type* DestTy

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::Constant* C

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

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

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

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

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

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

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

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

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

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

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

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

Declared at: llvm/include/llvm/Analysis/TargetFolder.h:110

Parameters

Instruction::UnaryOps Opc
llvm::Value* V
llvm::FastMathFlags FMF

TargetFolder(const llvm::DataLayout& DL)

Declared at: llvm/include/llvm/Analysis/TargetFolder.h:45

Parameters

const llvm::DataLayout& DL

virtual void anchor()

Declared at: llvm/include/llvm/Analysis/TargetFolder.h:42