#include #include #include #include #include #include #include #include "llvm/IR/Instruction.def"">

LLVM: include/llvm/IR/InstrTypes.h File Reference (original) (raw)

#include "[llvm/ADT/ArrayRef.h](ArrayRef%5F8h%5Fsource.html)"
#include "[llvm/ADT/STLExtras.h](STLExtras%5F8h%5Fsource.html)"
#include "[llvm/ADT/Sequence.h](Sequence%5F8h%5Fsource.html)"
#include "[llvm/ADT/StringMap.h](ADT%5F2StringMap%5F8h%5Fsource.html)"
#include "[llvm/ADT/Twine.h](Twine%5F8h%5Fsource.html)"
#include "[llvm/ADT/iterator_range.h](iterator%5F%5Frange%5F8h%5Fsource.html)"
#include "[llvm/IR/Attributes.h](Attributes%5F8h%5Fsource.html)"
#include "[llvm/IR/CallingConv.h](CallingConv%5F8h%5Fsource.html)"
#include "[llvm/IR/DerivedTypes.h](DerivedTypes%5F8h%5Fsource.html)"
#include "[llvm/IR/FMF.h](FMF%5F8h%5Fsource.html)"
#include "[llvm/IR/Function.h](IR%5F2Function%5F8h%5Fsource.html)"
#include "[llvm/IR/Instruction.h](IR%5F2Instruction%5F8h%5Fsource.html)"
#include "[llvm/IR/LLVMContext.h](LLVMContext%5F8h%5Fsource.html)"
#include "[llvm/IR/OperandTraits.h](OperandTraits%5F8h%5Fsource.html)"
#include "[llvm/IR/User.h](IR%5F2User%5F8h%5Fsource.html)"
#include "[llvm/Support/Compiler.h](Compiler%5F8h%5Fsource.html)"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <optional>
#include <string>
#include <vector>
#include "llvm/IR/Instruction.def"

Go to the source code of this file.

Classes
class llvm::UnaryInstruction
struct llvm::OperandTraits< UnaryInstruction >
class llvm::UnaryOperator
class llvm::BinaryOperator
struct llvm::OperandTraits< BinaryOperator >
class llvm::PossiblyDisjointInst
An or instruction, which can be marked as "disjoint", indicating that the inputs don't have a 1 in the same bit position. More...
class llvm::CastInst
This is the base class for all instructions that perform data casts. More...
class llvm::PossiblyNonNegInst
Instruction that can have a nneg flag (zext/uitofp). More...
class llvm::CmpInst
This class is the base class for the comparison instructions. More...
struct llvm::OperandTraits< CmpInst >
struct llvm::OperandBundleUse
A lightweight accessor for an operand bundle meant to be passed around by value. More...
class llvm::OperandBundleDefT< InputTy >
A container for an operand bundle being viewed as a set of values rather than a set of uses. More...
class llvm::CallBase
Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to calling a function. More...
struct llvm::CallBase::BundleOpInfo
Used to keep track of an operand bundle. More...
struct llvm::OperandTraits< CallBase >
class llvm::FuncletPadInst
struct llvm::OperandTraits< FuncletPadInst >
Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
namespace llvm::Intrinsic
This namespace contains an enum with a value for every intrinsic/builtin function known by LLVM.
Macros
#define HANDLE_UNARY_INST(N, OPC, CLASS)
These methods just forward to Create, and are useful when you statically know what type of instruction you're going to create.
#define HANDLE_UNARY_INST(N, OPC, CLASS)
These methods just forward to Create, and are useful when you statically know what type of instruction you're going to create.
#define HANDLE_BINARY_INST(N, OPC, CLASS)
These methods just forward to Create, and are useful when you statically know what type of instruction you're going to create.
#define HANDLE_BINARY_INST(N, OPC, CLASS)
These methods just forward to Create, and are useful when you statically know what type of instruction you're going to create.
#define DEFINE_HELPERS(OPC, NUWNSWEXACT)

DEFINE_HELPERS

#define DEFINE_HELPERS ( OPC,
NUWNSWEXACT )

Value:

static BinaryOperator *Create##NUWNSWEXACT##OPC(Value *V1, Value *V2, \

const Twine &Name = "") { \

return Create##NUWNSWEXACT(Instruction::OPC, V1, V2, Name); \

} \

static BinaryOperator *Create##NUWNSWEXACT##OPC( \

Value *V1, Value *V2, const Twine &Name, \

InsertPosition InsertBefore = nullptr) { \

return Create##NUWNSWEXACT(Instruction::OPC, V1, V2, Name, InsertBefore); \

}

Definition at line 330 of file InstrTypes.h.

HANDLE_BINARY_INST [1/2]

#define HANDLE_BINARY_INST ( N,
OPC,
CLASS )

Value:

static BinaryOperator *Create##OPC(Value *V1, Value *V2, \

const Twine &Name = "") { \

return Create(Instruction::OPC, V1, V2, Name); \

}

These methods just forward to Create, and are useful when you statically know what type of instruction you're going to create.

These helpers just save some typing.

Definition at line 205 of file InstrTypes.h.

HANDLE_BINARY_INST [2/2]

#define HANDLE_BINARY_INST ( N,
OPC,
CLASS )

Value:

static BinaryOperator *Create##OPC(Value *V1, Value *V2, const Twine &Name, \

InsertPosition InsertBefore) { \

return Create(Instruction::OPC, V1, V2, Name, InsertBefore); \

}

These methods just forward to Create, and are useful when you statically know what type of instruction you're going to create.

These helpers just save some typing.

Definition at line 205 of file InstrTypes.h.

HANDLE_UNARY_INST [1/2]

#define HANDLE_UNARY_INST ( N,
OPC,
CLASS )

Value:

static UnaryOperator *Create##OPC(Value *V, const Twine &Name = "") { \

return Create(Instruction::OPC, V, Name); \

}

These methods just forward to Create, and are useful when you statically know what type of instruction you're going to create.

These helpers just save some typing.

Definition at line 126 of file InstrTypes.h.

HANDLE_UNARY_INST [2/2]

#define HANDLE_UNARY_INST ( N,
OPC,
CLASS )

Value:

static UnaryOperator *Create##OPC(Value *V, const Twine &Name, \

InsertPosition InsertBefore = nullptr) { \

return Create(Instruction::OPC, V, Name, InsertBefore); \

}

These methods just forward to Create, and are useful when you statically know what type of instruction you're going to create.

These helpers just save some typing.

Definition at line 126 of file InstrTypes.h.