LLVM 23.0.0git
llvm::instrumentor::StoreIO Struct Reference

The instrumentation opportunity for store instructions. More...

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

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

Public Types

enum  ConfigKind {
  PassPointer = 0 , ReplacePointer , PassPointerAS , PassStoredValue ,
  PassStoredValueSize , PassAlignment , PassValueTypeId , PassAtomicityOrdering ,
  PassSyncScopeId , PassIsVolatile , PassId , NumConfig
}
 The selector of arguments for store opportunities. More...
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

virtual ~StoreIO ()
 StoreIO (bool IsPRE)
 Construct a store instruction opportunity.
virtual TypegetValueType (InstrumentorIRBuilderTy &IIRB) const
 }
void init (InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB, ConfigTy *UserConfig=nullptr)
 Initialize the store opportunity using the instrumentation config IConf and the user config UserConfig.
Public Member Functions inherited from llvm::instrumentor::InstructionIO< Instruction::Store >
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)
 }

Static Public Member Functions

static ValuegetPointer (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
 Getters and setters for the arguments of the instrumentation function for the store opportunity.
static ValuesetPointer (Value &V, Value &NewV, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValuegetPointerAS (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValuegetValue (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValuegetValueSize (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValuegetAlignment (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValuegetValueTypeId (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValuegetAtomicityOrdering (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValuegetSyncScopeId (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static ValueisVolatile (Value &V, Type &Ty, InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
static void populate (InstrumentationConfig &IConf, InstrumentorIRBuilderTy &IIRB)
 }
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

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.
CallbackTy CB = nullptr

Detailed Description

The instrumentation opportunity for store instructions.

Definition at line 528 of file Instrumentor.h.

Member Typedef Documentation

◆ ConfigTy

Member Enumeration Documentation

◆ ConfigKind

The selector of arguments for store opportunities.

{

Enumerator
PassPointer 
ReplacePointer 
PassPointerAS 
PassStoredValue 
PassStoredValueSize 
PassAlignment 
PassValueTypeId 
PassAtomicityOrdering 
PassSyncScopeId 
PassIsVolatile 
PassId 
NumConfig 

Definition at line 536 of file Instrumentor.h.

Constructor & Destructor Documentation

◆ ~StoreIO()

virtual llvm::instrumentor::StoreIO::~StoreIO ( )
inlinevirtual

Definition at line 529 of file Instrumentor.h.

◆ StoreIO()

llvm::instrumentor::StoreIO::StoreIO ( bool IsPRE)
inline

Construct a store instruction opportunity.

Definition at line 532 of file Instrumentor.h.

References llvm::instrumentor::InstructionIO< Instruction::Store >::InstructionIO().

Referenced by populate().

Member Function Documentation

◆ getAlignment()

Value * StoreIO::getAlignment ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 614 of file Instrumentor.cpp.

References llvm::cast().

Referenced by init().

◆ getAtomicityOrdering()

Value * StoreIO::getAtomicityOrdering ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 626 of file Instrumentor.cpp.

References llvm::cast().

Referenced by init().

◆ getPointer()

Value * StoreIO::getPointer ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Getters and setters for the arguments of the instrumentation function for the store opportunity.

{

Definition at line 582 of file Instrumentor.cpp.

References llvm::cast().

Referenced by init().

◆ getPointerAS()

Value * StoreIO::getPointerAS ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 595 of file Instrumentor.cpp.

References llvm::cast().

Referenced by init().

◆ getSyncScopeId()

Value * StoreIO::getSyncScopeId ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 633 of file Instrumentor.cpp.

References llvm::cast().

Referenced by init().

◆ getValue()

Value * StoreIO::getValue ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 601 of file Instrumentor.cpp.

References llvm::cast().

Referenced by init().

◆ getValueSize()

Value * StoreIO::getValueSize ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 607 of file Instrumentor.cpp.

References llvm::cast(), and DL.

Referenced by init().

◆ getValueType()

virtual Type * llvm::instrumentor::StoreIO::getValueType ( InstrumentorIRBuilderTy & IIRB) const
inlinevirtual

}

Get the type of the stored value.

Definition at line 556 of file Instrumentor.h.

References llvm::instrumentor::InstrumentorIRBuilderTy::Int64Ty.

Referenced by init().

◆ getValueTypeId()

Value * StoreIO::getValueTypeId ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 620 of file Instrumentor.cpp.

References llvm::cast().

Referenced by init().

◆ init()

◆ isVolatile()

Value * StoreIO::isVolatile ( Value & V,
Type & Ty,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 639 of file Instrumentor.cpp.

References llvm::cast().

Referenced by init().

◆ populate()

void llvm::instrumentor::StoreIO::populate ( InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
inlinestatic

}

Create the store opportunities for pre and post positions. The opportunities are also initialized with the arguments for their instrumentation calls.

Definition at line 594 of file Instrumentor.h.

References llvm::instrumentor::InstrumentationConfig::allocate(), and StoreIO().

Referenced by llvm::instrumentor::InstrumentationConfig::populate().

◆ setPointer()

Value * StoreIO::setPointer ( Value & V,
Value & NewV,
InstrumentationConfig & IConf,
InstrumentorIRBuilderTy & IIRB )
static

Definition at line 588 of file Instrumentor.cpp.

References llvm::cast().

Referenced by init().

Member Data Documentation

◆ Config

ConfigTy llvm::instrumentor::StoreIO::Config

Definition at line 552 of file Instrumentor.h.

Referenced by init().


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