LLVM: include/llvm/IR/NoFolder.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21#ifndef LLVM_IR_NOFOLDER_H

22#define LLVM_IR_NOFOLDER_H

23

32

33namespace llvm {

34

35

38

39public:

41

42

43

44

45

46

47

48

53

55 bool IsExact) const override {

56 return nullptr;

57 }

58

60 bool HasNUW, bool HasNSW) const override {

61 return nullptr;

62 }

63

68

73

77

82

86

91

96

100

102 Value *Idx) const override {

103 return nullptr;

104 }

105

108 return nullptr;

109 }

110

112 Type *DestTy) const override {

113 return nullptr;

114 }

115

118 return nullptr;

119 }

120

121

122

123

124

128

133};

134

135}

136

137#endif

#define LLVM_DECLARE_VIRTUAL_ANCHOR_FUNCTION()

\macro LLVM_VIRTUAL_ANCHOR_FUNCTION This macro is used to adhere to LLVM's policy that each class wit...

This file contains the declarations for the subclasses of Constant, which represent the different fla...

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

static LLVM_ABI CastInst * CreatePointerBitCastOrAddrSpaceCast(Value *S, Type *Ty, const Twine &Name="", InsertPosition InsertBefore=nullptr)

Create a BitCast or an AddrSpaceCast cast instruction.

static LLVM_ABI CastInst * CreatePointerCast(Value *S, Type *Ty, const Twine &Name="", InsertPosition InsertBefore=nullptr)

Create a BitCast, AddrSpaceCast or a PtrToInt cast instruction.

Predicate

This enumeration lists the possible predicates for CmpInst subclasses.

This is an important base class in LLVM.

This provides a helper for copying FMF from an instruction or setting specified flags.

Convenience struct for specifying and reasoning about fast-math flags.

Represents flags for the getelementptr instruction/expression.

IRBuilderFolder - Interface for constant folding in IRBuilder.

Value * FoldShuffleVector(Value *V1, Value *V2, ArrayRef< int > Mask) const override

Definition NoFolder.h:106

Value * FoldExactBinOp(Instruction::BinaryOps Opc, Value *LHS, Value *RHS, bool IsExact) const override

Definition NoFolder.h:54

Value * FoldSelect(Value *C, Value *True, Value *False) const override

Definition NoFolder.h:83

Value * FoldBinOp(Instruction::BinaryOps Opc, Value *LHS, Value *RHS) const override

Definition NoFolder.h:49

Value * FoldInsertValue(Value *Agg, Value *Val, ArrayRef< unsigned > IdxList) const override

Definition NoFolder.h:92

Value * FoldGEP(Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, GEPNoWrapFlags NW) const override

Definition NoFolder.h:78

Value * FoldBinOpFMF(Instruction::BinaryOps Opc, Value *LHS, Value *RHS, FastMathFlags FMF) const override

Definition NoFolder.h:64

Value * FoldCast(Instruction::CastOps Op, Value *V, Type *DestTy) const override

Definition NoFolder.h:111

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

Definition NoFolder.h:59

Instruction * CreatePointerBitCastOrAddrSpaceCast(Constant *C, Type *DestTy) const override

Definition NoFolder.h:129

Value * FoldExtractElement(Value *Vec, Value *Idx) const override

Definition NoFolder.h:97

Value * FoldCmp(CmpInst::Predicate P, Value *LHS, Value *RHS) const override

Definition NoFolder.h:74

Instruction * CreatePointerCast(Constant *C, Type *DestTy) const override

Definition NoFolder.h:125

Value * FoldInsertElement(Value *Vec, Value *NewElt, Value *Idx) const override

Definition NoFolder.h:101

Value * FoldBinaryIntrinsic(Intrinsic::ID ID, Value *LHS, Value *RHS, Type *Ty, Instruction *FMFSource) const override

Definition NoFolder.h:116

Value * FoldExtractValue(Value *Agg, ArrayRef< unsigned > IdxList) const override

Definition NoFolder.h:87

Value * FoldUnOpFMF(Instruction::UnaryOps Opc, Value *V, FastMathFlags FMF) const override

Definition NoFolder.h:69

The instances of the Type class are immutable: once they are created, they are never changed.

LLVM Value Representation.

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

@ C

The default llvm calling convention, compatible with C.

This is an optimization pass for GlobalISel generic memory operations.

DWARFExpression::Operation Op