LLVM: llvm::InstSimplifyFolder Class Reference (original) (raw)

InstSimplifyFolder - Use InstructionSimplify to fold operations to existing values. More...

#include "[llvm/Analysis/InstSimplifyFolder.h](InstSimplifyFolder%5F8h%5Fsource.html)"

Public Member Functions
InstSimplifyFolder (const DataLayout &DL)
Value * FoldBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS) const override
Value * FoldExactBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, bool IsExact) const override
Value * FoldNoWrapBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, bool HasNUW, bool HasNSW) const override
Value * FoldBinOpFMF (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, FastMathFlags FMF) const override
Value * FoldUnOpFMF (Instruction::UnaryOps Opc, Value *V, FastMathFlags FMF) const override
Value * FoldCmp (CmpInst::Predicate P, Value *LHS, Value *RHS) const override
Value * FoldGEP (Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, GEPNoWrapFlags NW) const override
Value * FoldSelect (Value *C, Value *True, Value *False) const override
Value * FoldExtractValue (Value *Agg, ArrayRef< unsigned > IdxList) const override
Value * FoldInsertValue (Value *Agg, Value *Val, ArrayRef< unsigned > IdxList) const override
Value * FoldExtractElement (Value *Vec, Value *Idx) const override
Value * FoldInsertElement (Value *Vec, Value *NewElt, Value *Idx) const override
Value * FoldShuffleVector (Value *V1, Value *V2, ArrayRef< int > Mask) const override
Value * FoldCast (Instruction::CastOps Op, Value *V, Type *DestTy) const override
Value * FoldBinaryIntrinsic (Intrinsic::ID ID, Value *LHS, Value *RHS, Type *Ty, Instruction *FMFSource=nullptr) const override
Value * CreatePointerCast (Constant *C, Type *DestTy) const override
Value * CreatePointerBitCastOrAddrSpaceCast (Constant *C, Type *DestTy) const override
Public Member Functions inherited from llvm::IRBuilderFolder
virtual ~IRBuilderFolder ()

InstSimplifyFolder - Use InstructionSimplify to fold operations to existing values.

Also applies target-specific constant folding when not using InstructionSimplify.

Definition at line 36 of file InstSimplifyFolder.h.

llvm::InstSimplifyFolder::InstSimplifyFolder ( const DataLayout & DL) inlineexplicit

CreatePointerBitCastOrAddrSpaceCast()

Value * llvm::InstSimplifyFolder::CreatePointerBitCastOrAddrSpaceCast ( Constant * C, Type * DestTy ) const inlineoverridevirtual

CreatePointerCast()

Value * llvm::InstSimplifyFolder::CreatePointerCast ( Constant * C, Type * DestTy ) const inlineoverridevirtual

FoldBinaryIntrinsic()

FoldBinOp()

FoldBinOpFMF()

FoldCast()

FoldCmp()

FoldExactBinOp()

FoldExtractElement()

Value * llvm::InstSimplifyFolder::FoldExtractElement ( Value * Vec, Value * Idx ) const inlineoverridevirtual

FoldExtractValue()

FoldGEP()

FoldInsertElement()

Value * llvm::InstSimplifyFolder::FoldInsertElement ( Value * Vec, Value * NewElt, Value * Idx ) const inlineoverridevirtual

FoldInsertValue()

FoldNoWrapBinOp()

FoldSelect()

Value * llvm::InstSimplifyFolder::FoldSelect ( Value * C, Value * True, Value * False ) const inlineoverridevirtual

FoldShuffleVector()

Value * llvm::InstSimplifyFolder::FoldShuffleVector ( Value * V1, Value * V2, ArrayRef< int > Mask ) const inlineoverridevirtual

FoldUnOpFMF()


The documentation for this class was generated from the following file: