LLVM  6.0.0svn
Classes | Namespaces | Macros | Typedefs
InstrTypes.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/OperandTraits.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <string>
#include <vector>
#include "llvm/IR/Instruction.def"
Include dependency graph for InstrTypes.h:

Go to the source code of this file.

Classes

class  llvm::TerminatorInst
 Subclasses of this class are all able to terminate a basic block. More...
 
class  llvm::TerminatorInst::SuccIterator< Term, BB >
 
class  llvm::UnaryInstruction
 
struct  llvm::OperandTraits< UnaryInstruction >
 
class  llvm::BinaryOperator
 
struct  llvm::OperandTraits< BinaryOperator >
 
class  llvm::CastInst
 This is the base class for all instructions that perform data casts. More...
 
class  llvm::CmpInst
 This class is the base class for the comparison instructions. More...
 
struct  llvm::OperandTraits< CmpInst >
 
class  llvm::FuncletPadInst
 
struct  llvm::OperandTraits< FuncletPadInst >
 
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::OperandBundleUser< InstrTy, OpIteratorTy >
 A mixin to add operand bundle functionality to llvm instruction classes. More...
 
struct  llvm::OperandBundleUser< InstrTy, OpIteratorTy >::BundleOpInfo
 Used to keep track of an operand bundle. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#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. More...
 
#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. More...
 
#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. More...
 
#define DEFINE_HELPERS(OPC, NUWNSWEXACT)
 

Typedefs

using llvm::OperandBundleDef = OperandBundleDefT< Value * >
 
using llvm::ConstOperandBundleDef = OperandBundleDefT< const Value * >
 

Macro Definition Documentation

◆ 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, BasicBlock *BB) { \
return Create##NUWNSWEXACT(Instruction::OPC, V1, V2, Name, BB); \
} \
static BinaryOperator *Create##NUWNSWEXACT##OPC( \
Value *V1, Value *V2, const Twine &Name, Instruction *I) { \
return Create##NUWNSWEXACT(Instruction::OPC, V1, V2, Name, I); \
}
Various leaf nodes.
Definition: ISDOpcodes.h:60
#define I(x, y, z)
Definition: MD5.cpp:58

Definition at line 451 of file InstrTypes.h.

◆ HANDLE_BINARY_INST [1/3]

#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 378 of file InstrTypes.h.

◆ HANDLE_BINARY_INST [2/3]

#define HANDLE_BINARY_INST (   N,
  OPC,
  CLASS 
)
Value:
static BinaryOperator *Create##OPC(Value *V1, Value *V2, \
const Twine &Name, BasicBlock *BB) {\
return Create(Instruction::OPC, V1, V2, Name, BB);\
}
Various leaf nodes.
Definition: ISDOpcodes.h:60

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 378 of file InstrTypes.h.

◆ HANDLE_BINARY_INST [3/3]

#define HANDLE_BINARY_INST (   N,
  OPC,
  CLASS 
)
Value:
static BinaryOperator *Create##OPC(Value *V1, Value *V2, \
const Twine &Name, Instruction *I) {\
return Create(Instruction::OPC, V1, V2, Name, I);\
}
#define I(x, y, z)
Definition: MD5.cpp:58

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 378 of file InstrTypes.h.