LLVM 23.0.0git
llvm::instrumentor::CompareIO Struct Referencefinal

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

Inheritance diagram for llvm::instrumentor::CompareIO:
[legend]

Public Types

enum  ConfigKind {
  PassOpTypeId , PassOpSize , PassOpcode , PassPredicate ,
  PassLeft , PassRight , PassResultTypeId , PassResultSize ,
  PassResult , ReplaceResult , PassFlags , PassId ,
  NumConfig
}
using ConfigTy = BaseConfigTy<ConfigKind>
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.

Public Member Functions

 CompareIO (InstrumentationLocation::KindTy Kind)
StringRef getName () const override
 Get the name of the instruction.
LLVM_ABI void init (InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB, ConfigTy *UserConfig=nullptr)
Public Member Functions inherited from llvm::instrumentor::InstructionIO< Instruction::ICmp, Instruction::FCmp >
virtual ~InstructionIO ()
 InstructionIO (InstrumentationLocation::KindTy Kind)
 Construct an instruction opportunity.
ArrayRef< unsignedgetAllOpcodes () const override
 Get all opcodes for this instrumentation opportunity (override).
Public Member Functions inherited from llvm::instrumentor::InstrumentationOpportunity
virtual ~InstrumentationOpportunity ()
 InstrumentationOpportunity (const InstrumentationLocation IP)
 Construct an opportunity with location IP.
virtual Valueinstrument (Value *&V, bool &Changed, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB, InstrumentationCaches &ICaches)
 }
virtual TypegetRetTy (LLVMContext &Ctx) const
 Get the return type for the instrumentation runtime function.
InstrumentationLocation::KindTy getLocationKind () const
 Get the location kind of the instrumentation opportunity.
void addCommonArgs (InstrumentationConfig &IConf, LLVMContext &Ctx, bool PassId)
 }

Static Public Member Functions

static LLVM_ABI ValuegetOperandTypeId (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static LLVM_ABI ValuegetOperandSize (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static LLVM_ABI ValuegetPredicate (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static LLVM_ABI ValuegetFlags (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static void populate (InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
Static Public Member Functions inherited from llvm::instrumentor::InstructionIO< Instruction::ICmp, Instruction::FCmp >
static constexpr size_t getNumOpcodes ()
 Get the number of opcodes.
Static Public Member Functions inherited from llvm::instrumentor::InstrumentationOpportunity
static LLVM_ABI 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 LLVM_ABI ValuereplaceValue (Value &V, Value &NewV, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static LLVM_ABI ValuegetIdPre (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
 Get the opportunity identifier for the pre and post positions.
static LLVM_ABI ValuegetIdPost (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static int32_t getIdFromEpoch (uint32_t CurrentEpoch)
 }

Public Attributes

ConfigTy Config
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.
StringRef Filter
 A filter expression to be matched against runtime property values.
CallbackTy CB = nullptr

Additional Inherited Members

Static Public Attributes inherited from llvm::instrumentor::InstructionIO< Instruction::ICmp, Instruction::FCmp >
static constexpr std::array< unsigned, sizeof...(Opcodes)> OpcodesArray

Detailed Description

Definition at line 1203 of file Instrumentor.h.

Member Typedef Documentation

◆ ConfigTy

Member Enumeration Documentation

◆ ConfigKind

Enumerator
PassOpTypeId 
PassOpSize 
PassOpcode 
PassPredicate 
PassLeft 
PassRight 
PassResultTypeId 
PassResultSize 
PassResult 
ReplaceResult 
PassFlags 
PassId 
NumConfig 

Definition at line 1207 of file Instrumentor.h.

Constructor & Destructor Documentation

◆ CompareIO()

llvm::instrumentor::CompareIO::CompareIO ( InstrumentationLocation::KindTy Kind)
inline

Member Function Documentation

◆ getFlags()

◆ getName()

StringRef llvm::instrumentor::CompareIO::getName ( ) const
inlineoverridevirtual

Get the name of the instruction.

For single-opcode IOs, this defaults to the opcode name. For multi-opcode IOs, getName() MUST be overridden to provide an explicit name identifying the whole group of opcodes.

Reimplemented from llvm::instrumentor::InstructionIO< Instruction::ICmp, Instruction::FCmp >.

Definition at line 1226 of file Instrumentor.h.

◆ getOperandSize()

Value * CompareIO::getOperandSize ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 1807 of file Instrumentor.cpp.

References llvm::cast(), DL, and I.

Referenced by init().

◆ getOperandTypeId()

Value * CompareIO::getOperandTypeId ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 1800 of file Instrumentor.cpp.

References llvm::cast(), and I.

Referenced by init().

◆ getPredicate()

Value * CompareIO::getPredicate ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 1815 of file Instrumentor.cpp.

References llvm::dyn_cast().

Referenced by init().

◆ init()

◆ populate()

Member Data Documentation

◆ Config

ConfigTy llvm::instrumentor::CompareIO::Config

Definition at line 1224 of file Instrumentor.h.

Referenced by init().


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