LLVM 23.0.0git
llvm::instrumentor::InstructionIO< Opcode > Struct Template Reference

The base instrumentation opportunity class for instruction opportunities. More...

#include "llvm/Transforms/IPO/Instrumentor.h"

Inheritance diagram for llvm::instrumentor::InstructionIO< Opcode >:
[legend]

Public Member Functions

virtual ~InstructionIO ()
 InstructionIO (bool IsPRE)
 Construct an instruction opportunity.
StringRef getName () const override
 Get the name of the instruction.
Public Member Functions inherited from llvm::instrumentor::InstrumentationOpportunity
virtual ~InstrumentationOpportunity ()
 InstrumentationOpportunity (const InstrumentationLocation IP)
 Construct an opportunity with location IP.
virtual Valueinstrument (Value *&V, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB, InstrumentationCaches &ICaches)
 }
virtual TypegetRetTy (LLVMContext &Ctx) const
 Get the return type for the instrumentation runtime function.
unsigned getOpcode () const
 Get the opcode of the instruction instrumentation opportunity.
InstrumentationLocation::KindTy getLocationKind () const
 Get the location kind of the instrumentation opportunity.
void addCommonArgs (InstrumentationConfig &IConf, LLVMContext &Ctx, bool PassId)
 }

Additional Inherited Members

Public Types inherited from llvm::instrumentor::InstrumentationOpportunity
using CallbackTy = std::function<bool(Value &)>
 An optional callback that takes the value that is about to be instrumented and can return false if it should be skipped.
Static Public Member Functions inherited from llvm::instrumentor::InstrumentationOpportunity
static ValueforceCast (Value &V, Type &Ty, InstrumentorIRBuilderTy &IIRB)
 Helpers to cast values, pass them to the runtime, and replace them.
static ValuegetValue (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValuereplaceValue (Value &V, Value &NewV, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValuegetIdPre (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
 Get the opportunity identifier for the pre and post positions.
static ValuegetIdPost (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static int32_t getIdFromEpoch (uint32_t CurrentEpoch)
 }
Public Attributes inherited from llvm::instrumentor::InstrumentationOpportunity
InstrumentationLocation IP
 The instrumentation location of the opportunity.
SmallVector< IRTArgIRTArgs
 The list of possible arguments for the instrumentation runtime function.
bool Enabled = true
 Whether the opportunity is enabled.
CallbackTy CB = nullptr

Detailed Description

template<unsigned Opcode>
struct llvm::instrumentor::InstructionIO< Opcode >

The base instrumentation opportunity class for instruction opportunities.

Each instruction opportunity should inherit from this class and implement the virtual class members.

Definition at line 514 of file Instrumentor.h.

Constructor & Destructor Documentation

◆ ~InstructionIO()

template<unsigned Opcode>
virtual llvm::instrumentor::InstructionIO< Opcode >::~InstructionIO ( )
inlinevirtual

Definition at line 515 of file Instrumentor.h.

◆ InstructionIO()

template<unsigned Opcode>
llvm::instrumentor::InstructionIO< Opcode >::InstructionIO ( bool IsPRE)
inline

Construct an instruction opportunity.

Definition at line 518 of file Instrumentor.h.

References llvm::instrumentor::InstrumentationOpportunity::InstrumentationOpportunity().

Member Function Documentation

◆ getName()

template<unsigned Opcode>
StringRef llvm::instrumentor::InstructionIO< Opcode >::getName ( ) const
inlineoverridevirtual

Get the name of the instruction.

Implements llvm::instrumentor::InstrumentationOpportunity.

Definition at line 522 of file Instrumentor.h.

References llvm::Instruction::getOpcodeName().


The documentation for this struct was generated from the following file: