LLVM 22.0.0git
llvm::IRBuilderFolder Class Referenceabstract

IRBuilderFolder - Interface for constant folding in IRBuilder. More...

#include "llvm/IR/IRBuilderFolder.h"

Inheritance diagram for llvm::IRBuilderFolder:
[legend]

Public Member Functions

virtual ~IRBuilderFolder ()
virtual ValueFoldBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS) const =0
virtual ValueFoldExactBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, bool IsExact) const =0
virtual ValueFoldNoWrapBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, bool HasNUW, bool HasNSW) const =0
virtual ValueFoldBinOpFMF (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, FastMathFlags FMF) const =0
virtual ValueFoldUnOpFMF (Instruction::UnaryOps Opc, Value *V, FastMathFlags FMF) const =0
virtual ValueFoldCmp (CmpInst::Predicate P, Value *LHS, Value *RHS) const =0
virtual ValueFoldGEP (Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, GEPNoWrapFlags NW) const =0
virtual ValueFoldSelect (Value *C, Value *True, Value *False) const =0
virtual ValueFoldExtractValue (Value *Agg, ArrayRef< unsigned > IdxList) const =0
virtual ValueFoldInsertValue (Value *Agg, Value *Val, ArrayRef< unsigned > IdxList) const =0
virtual ValueFoldExtractElement (Value *Vec, Value *Idx) const =0
virtual ValueFoldInsertElement (Value *Vec, Value *NewElt, Value *Idx) const =0
virtual ValueFoldShuffleVector (Value *V1, Value *V2, ArrayRef< int > Mask) const =0
virtual ValueFoldCast (Instruction::CastOps Op, Value *V, Type *DestTy) const =0
virtual ValueFoldBinaryIntrinsic (Intrinsic::ID ID, Value *LHS, Value *RHS, Type *Ty, Instruction *FMFSource=nullptr) const =0
virtual ValueCreatePointerCast (Constant *C, Type *DestTy) const =0
virtual ValueCreatePointerBitCastOrAddrSpaceCast (Constant *C, Type *DestTy) const =0

Detailed Description

IRBuilderFolder - Interface for constant folding in IRBuilder.

Definition at line 26 of file IRBuilderFolder.h.

Constructor & Destructor Documentation

◆ ~IRBuilderFolder()

IRBuilderFolder::~IRBuilderFolder ( )
virtualdefault

Member Function Documentation

◆ CreatePointerBitCastOrAddrSpaceCast()

virtual Value * llvm::IRBuilderFolder::CreatePointerBitCastOrAddrSpaceCast ( Constant * C,
Type * DestTy ) const
pure virtual

◆ CreatePointerCast()

virtual Value * llvm::IRBuilderFolder::CreatePointerCast ( Constant * C,
Type * DestTy ) const
pure virtual

◆ FoldBinaryIntrinsic()

virtual Value * llvm::IRBuilderFolder::FoldBinaryIntrinsic ( Intrinsic::ID ID,
Value * LHS,
Value * RHS,
Type * Ty,
Instruction * FMFSource = nullptr ) const
pure virtual

◆ FoldBinOp()

virtual Value * llvm::IRBuilderFolder::FoldBinOp ( Instruction::BinaryOps Opc,
Value * LHS,
Value * RHS ) const
pure virtual

◆ FoldBinOpFMF()

virtual Value * llvm::IRBuilderFolder::FoldBinOpFMF ( Instruction::BinaryOps Opc,
Value * LHS,
Value * RHS,
FastMathFlags FMF ) const
pure virtual

◆ FoldCast()

virtual Value * llvm::IRBuilderFolder::FoldCast ( Instruction::CastOps Op,
Value * V,
Type * DestTy ) const
pure virtual

◆ FoldCmp()

virtual Value * llvm::IRBuilderFolder::FoldCmp ( CmpInst::Predicate P,
Value * LHS,
Value * RHS ) const
pure virtual

◆ FoldExactBinOp()

virtual Value * llvm::IRBuilderFolder::FoldExactBinOp ( Instruction::BinaryOps Opc,
Value * LHS,
Value * RHS,
bool IsExact ) const
pure virtual

◆ FoldExtractElement()

virtual Value * llvm::IRBuilderFolder::FoldExtractElement ( Value * Vec,
Value * Idx ) const
pure virtual

◆ FoldExtractValue()

virtual Value * llvm::IRBuilderFolder::FoldExtractValue ( Value * Agg,
ArrayRef< unsigned > IdxList ) const
pure virtual

◆ FoldGEP()

virtual Value * llvm::IRBuilderFolder::FoldGEP ( Type * Ty,
Value * Ptr,
ArrayRef< Value * > IdxList,
GEPNoWrapFlags NW ) const
pure virtual

◆ FoldInsertElement()

virtual Value * llvm::IRBuilderFolder::FoldInsertElement ( Value * Vec,
Value * NewElt,
Value * Idx ) const
pure virtual

◆ FoldInsertValue()

virtual Value * llvm::IRBuilderFolder::FoldInsertValue ( Value * Agg,
Value * Val,
ArrayRef< unsigned > IdxList ) const
pure virtual

◆ FoldNoWrapBinOp()

virtual Value * llvm::IRBuilderFolder::FoldNoWrapBinOp ( Instruction::BinaryOps Opc,
Value * LHS,
Value * RHS,
bool HasNUW,
bool HasNSW ) const
pure virtual

◆ FoldSelect()

virtual Value * llvm::IRBuilderFolder::FoldSelect ( Value * C,
Value * True,
Value * False ) const
pure virtual

◆ FoldShuffleVector()

virtual Value * llvm::IRBuilderFolder::FoldShuffleVector ( Value * V1,
Value * V2,
ArrayRef< int > Mask ) const
pure virtual

◆ FoldUnOpFMF()

virtual Value * llvm::IRBuilderFolder::FoldUnOpFMF ( Instruction::UnaryOps Opc,
Value * V,
FastMathFlags FMF ) const
pure virtual

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