LLVM  15.0.0git
Public Member Functions | List of all members
llvm::NoFolder Class Referencefinal

NoFolder - Create "constants" (actually, instructions) with no folding. More...

#include "llvm/IR/NoFolder.h"

Inheritance diagram for llvm::NoFolder:
Inheritance graph
[legend]
Collaboration diagram for llvm::NoFolder:
Collaboration graph
[legend]

Public Member Functions

 NoFolder ()=default
 
ValueFoldBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS) const override
 
ValueFoldExactBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, bool IsExact) const override
 
ValueFoldNoWrapBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, bool HasNUW, bool HasNSW) const override
 
ValueFoldBinOpFMF (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, FastMathFlags FMF) const override
 
ValueFoldICmp (CmpInst::Predicate P, Value *LHS, Value *RHS) const override
 
ValueFoldGEP (Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, bool IsInBounds=false) const override
 
ValueFoldSelect (Value *C, Value *True, Value *False) const override
 
ValueFoldExtractValue (Value *Agg, ArrayRef< unsigned > IdxList) const override
 
ValueFoldInsertValue (Value *Agg, Value *Val, ArrayRef< unsigned > IdxList) const override
 
ValueFoldExtractElement (Value *Vec, Value *Idx) const override
 
ValueFoldInsertElement (Value *Vec, Value *NewElt, Value *Idx) const override
 
ValueFoldShuffleVector (Value *V1, Value *V2, ArrayRef< int > Mask) const override
 
InstructionCreateFNeg (Constant *C) const override
 
InstructionCreateUnOp (Instruction::UnaryOps Opc, Constant *C) const override
 
InstructionCreateCast (Instruction::CastOps Op, Constant *C, Type *DestTy) const override
 
InstructionCreatePointerCast (Constant *C, Type *DestTy) const override
 
InstructionCreatePointerBitCastOrAddrSpaceCast (Constant *C, Type *DestTy) const override
 
InstructionCreateIntCast (Constant *C, Type *DestTy, bool isSigned) const override
 
InstructionCreateFPCast (Constant *C, Type *DestTy) const override
 
InstructionCreateBitCast (Constant *C, Type *DestTy) const override
 
InstructionCreateIntToPtr (Constant *C, Type *DestTy) const override
 
InstructionCreatePtrToInt (Constant *C, Type *DestTy) const override
 
InstructionCreateZExtOrBitCast (Constant *C, Type *DestTy) const override
 
InstructionCreateSExtOrBitCast (Constant *C, Type *DestTy) const override
 
InstructionCreateTruncOrBitCast (Constant *C, Type *DestTy) const override
 
InstructionCreateFCmp (CmpInst::Predicate P, Constant *LHS, Constant *RHS) const override
 
- Public Member Functions inherited from llvm::IRBuilderFolder
virtual ~IRBuilderFolder ()
 

Detailed Description

NoFolder - Create "constants" (actually, instructions) with no folding.

Definition at line 35 of file NoFolder.h.

Constructor & Destructor Documentation

◆ NoFolder()

llvm::NoFolder::NoFolder ( )
explicitdefault

Member Function Documentation

◆ CreateBitCast()

Instruction* llvm::NoFolder::CreateBitCast ( Constant C,
Type DestTy 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 145 of file NoFolder.h.

References CreateCast().

◆ CreateCast()

Instruction* llvm::NoFolder::CreateCast ( Instruction::CastOps  Op,
Constant C,
Type DestTy 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 122 of file NoFolder.h.

References llvm::CastInst::Create().

Referenced by CreateBitCast(), CreateIntToPtr(), and CreatePtrToInt().

◆ CreateFCmp()

Instruction* llvm::NoFolder::CreateFCmp ( CmpInst::Predicate  P,
Constant LHS,
Constant RHS 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 173 of file NoFolder.h.

References LHS, P, and RHS.

◆ CreateFNeg()

Instruction* llvm::NoFolder::CreateFNeg ( Constant C) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 109 of file NoFolder.h.

◆ CreateFPCast()

Instruction* llvm::NoFolder::CreateFPCast ( Constant C,
Type DestTy 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 141 of file NoFolder.h.

References llvm::CastInst::CreateFPCast().

◆ CreateIntCast()

Instruction* llvm::NoFolder::CreateIntCast ( Constant C,
Type DestTy,
bool  isSigned 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 136 of file NoFolder.h.

References llvm::CastInst::CreateIntegerCast().

◆ CreateIntToPtr()

Instruction* llvm::NoFolder::CreateIntToPtr ( Constant C,
Type DestTy 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 149 of file NoFolder.h.

References CreateCast().

◆ CreatePointerBitCastOrAddrSpaceCast()

Instruction* llvm::NoFolder::CreatePointerBitCastOrAddrSpaceCast ( Constant C,
Type DestTy 
) const
inlineoverridevirtual

◆ CreatePointerCast()

Instruction* llvm::NoFolder::CreatePointerCast ( Constant C,
Type DestTy 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 127 of file NoFolder.h.

References llvm::CastInst::CreatePointerCast().

◆ CreatePtrToInt()

Instruction* llvm::NoFolder::CreatePtrToInt ( Constant C,
Type DestTy 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 153 of file NoFolder.h.

References CreateCast().

◆ CreateSExtOrBitCast()

Instruction* llvm::NoFolder::CreateSExtOrBitCast ( Constant C,
Type DestTy 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 161 of file NoFolder.h.

References llvm::CastInst::CreateSExtOrBitCast().

◆ CreateTruncOrBitCast()

Instruction* llvm::NoFolder::CreateTruncOrBitCast ( Constant C,
Type DestTy 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 165 of file NoFolder.h.

References llvm::CastInst::CreateTruncOrBitCast().

◆ CreateUnOp()

Instruction* llvm::NoFolder::CreateUnOp ( Instruction::UnaryOps  Opc,
Constant C 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 113 of file NoFolder.h.

References llvm::UnaryOperator::Create().

◆ CreateZExtOrBitCast()

Instruction* llvm::NoFolder::CreateZExtOrBitCast ( Constant C,
Type DestTy 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 157 of file NoFolder.h.

References llvm::CastInst::CreateZExtOrBitCast().

◆ FoldBinOp()

Value* llvm::NoFolder::FoldBinOp ( Instruction::BinaryOps  Opc,
Value LHS,
Value RHS 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 48 of file NoFolder.h.

◆ FoldBinOpFMF()

Value* llvm::NoFolder::FoldBinOpFMF ( Instruction::BinaryOps  Opc,
Value LHS,
Value RHS,
FastMathFlags  FMF 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 63 of file NoFolder.h.

◆ FoldExactBinOp()

Value* llvm::NoFolder::FoldExactBinOp ( Instruction::BinaryOps  Opc,
Value LHS,
Value RHS,
bool  IsExact 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 53 of file NoFolder.h.

◆ FoldExtractElement()

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

Implements llvm::IRBuilderFolder.

Definition at line 91 of file NoFolder.h.

◆ FoldExtractValue()

Value* llvm::NoFolder::FoldExtractValue ( Value Agg,
ArrayRef< unsigned >  IdxList 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 81 of file NoFolder.h.

◆ FoldGEP()

Value* llvm::NoFolder::FoldGEP ( Type Ty,
Value Ptr,
ArrayRef< Value * >  IdxList,
bool  IsInBounds = false 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 72 of file NoFolder.h.

◆ FoldICmp()

Value* llvm::NoFolder::FoldICmp ( CmpInst::Predicate  P,
Value LHS,
Value RHS 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 68 of file NoFolder.h.

◆ FoldInsertElement()

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

Implements llvm::IRBuilderFolder.

Definition at line 95 of file NoFolder.h.

◆ FoldInsertValue()

Value* llvm::NoFolder::FoldInsertValue ( Value Agg,
Value Val,
ArrayRef< unsigned >  IdxList 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 86 of file NoFolder.h.

◆ FoldNoWrapBinOp()

Value* llvm::NoFolder::FoldNoWrapBinOp ( Instruction::BinaryOps  Opc,
Value LHS,
Value RHS,
bool  HasNUW,
bool  HasNSW 
) const
inlineoverridevirtual

Implements llvm::IRBuilderFolder.

Definition at line 58 of file NoFolder.h.

◆ FoldSelect()

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

Implements llvm::IRBuilderFolder.

Definition at line 77 of file NoFolder.h.

◆ FoldShuffleVector()

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

Implements llvm::IRBuilderFolder.

Definition at line 100 of file NoFolder.h.


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