LLVM 20.0.0git
Classes | Namespaces | Macros
InstVisitor.h File Reference
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Instruction.def"

Go to the source code of this file.

Classes

class  llvm::InstVisitor< SubClass, RetTy >
 Base class for instruction visitors. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Macros

#define HANDLE_INST(NUM, OPCODE, CLASS)   class CLASS;
 
#define DELEGATE(CLASS_TO_VISIT)
 
#define HANDLE_INST(NUM, OPCODE, CLASS)
 
#define HANDLE_INST(NUM, OPCODE, CLASS)
 

Macro Definition Documentation

◆ DELEGATE

#define DELEGATE (   CLASS_TO_VISIT)
Value:
return static_cast<SubClass*>(this)-> \
visit##CLASS_TO_VISIT(static_cast<CLASS_TO_VISIT&>(I))
#define I(x, y, z)
Definition: MD5.cpp:58
void visit(MachineFunction &MF, MachineBasicBlock &Start, std::function< void(MachineBasicBlock *)> op)

Definition at line 27 of file InstVisitor.h.

◆ HANDLE_INST [1/3]

#define HANDLE_INST (   NUM,
  OPCODE,
  CLASS 
)    class CLASS;

Definition at line 154 of file InstVisitor.h.

◆ HANDLE_INST [2/3]

#define HANDLE_INST (   NUM,
  OPCODE,
  CLASS 
)
Value:
case Instruction::OPCODE: return \
static_cast<SubClass*>(this)-> \
visit##OPCODE(static_cast<CLASS&>(I));
#define OPCODE(NAME)

Definition at line 154 of file InstVisitor.h.

◆ HANDLE_INST [3/3]

#define HANDLE_INST (   NUM,
  OPCODE,
  CLASS 
)
Value:
RetTy visit##OPCODE(CLASS &I) { \
if (NUM == Instruction::Call) \
return delegateCallInst(I); \
else \
DELEGATE(CLASS); \
}
return RetTy

Definition at line 154 of file InstVisitor.h.