|
LLVM 23.0.0git
|
The instrumentation opportunity for type cast instructions. More...
#include "llvm/Transforms/IPO/Instrumentor.h"
Public Types | |
| enum | ConfigKind { PassInput , PassInputTypeId , PassInputSubTypeId , PassInputSize , PassResult , ReplaceResult , PassResultTypeId , PassResultSubTypeId , PassResultSize , PassOpcode , 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 Attributes | |
| ConfigTy | Config |
| Public Attributes inherited from llvm::instrumentor::InstrumentationOpportunity | |
| InstrumentationLocation | IP |
| The instrumentation location of the opportunity. | |
| SmallVector< IRTArg > | IRTArgs |
| 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::PtrToInt, Instruction::IntToPtr, Instruction::Trunc, Instruction::ZExt, Instruction::SExt, Instruction::FPToUI, Instruction::FPToSI, Instruction::UIToFP, Instruction::SIToFP, Instruction::FPTrunc, Instruction::FPExt, Instruction::AddrSpaceCast, Instruction::BitCast > | |
| static constexpr std::array< unsigned, sizeof...(Opcodes)> | OpcodesArray |
The instrumentation opportunity for type cast instructions.
This includes PtrToInt, IntToPtr, Trunc, ZExt, SExt, FPToUI, FPToSI, UIToFP, SIToFP, FPTrunc, FPExt, AddrSpaceCast, and BitCast.
Definition at line 1116 of file Instrumentor.h.
Definition at line 1140 of file Instrumentor.h.
| Enumerator | |
|---|---|
| PassInput | |
| PassInputTypeId | |
| PassInputSubTypeId | |
| PassInputSize | |
| PassResult | |
| ReplaceResult | |
| PassResultTypeId | |
| PassResultSubTypeId | |
| PassResultSize | |
| PassOpcode | |
| PassId | |
| NumConfig | |
Definition at line 1125 of file Instrumentor.h.
|
inline |
Definition at line 1123 of file Instrumentor.h.
Referenced by populate().
|
static |
|
static |
Definition at line 1762 of file Instrumentor.cpp.
References llvm::cast(), and DL.
Referenced by init().
|
static |
|
static |
|
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.
Definition at line 1143 of file Instrumentor.h.
|
static |
Definition at line 1782 of file Instrumentor.cpp.
References llvm::cast(), and DL.
Referenced by init().
|
static |
|
static |
| void CastIO::init | ( | InstrumentationConfig & | IConf, |
| InstrumentorIRBuilderTy & | IIRB, | ||
| ConfigTy * | UserConfig = nullptr ) |
CastIO {.
Definition at line 1689 of file Instrumentor.cpp.
References llvm::instrumentor::InstrumentationConfig::addChoice(), llvm::instrumentor::InstrumentationOpportunity::addCommonArgs(), Config, llvm::instrumentor::InstrumentorIRBuilderTy::Ctx, getInput(), getInputSize(), getInputSubTypeId(), getInputTypeId(), llvm::instrumentor::InstrumentationOpportunity::getLocationKind(), llvm::instrumentor::BaseInstructionIO::getOpcode(), getResultSize(), getResultSubTypeId(), getResultTypeId(), llvm::instrumentor::InstrumentationOpportunity::getValue(), llvm::instrumentor::IRTArg::INDIRECT_HAS_SIZE, llvm::instrumentor::InstrumentationLocation::INSTRUCTION_PRE, llvm::instrumentor::InstrumentorIRBuilderTy::Int32Ty, llvm::instrumentor::InstrumentorIRBuilderTy::Int64Ty, llvm::instrumentor::InstrumentationOpportunity::IRTArgs, llvm::instrumentor::IRTArg::NONE, PassId, PassInput, PassInputSize, PassInputSubTypeId, PassInputTypeId, PassOpcode, PassResult, PassResultSize, PassResultSubTypeId, PassResultTypeId, llvm::instrumentor::IRTArg::POTENTIALLY_INDIRECT, llvm::instrumentor::IRTArg::REPLACABLE, ReplaceResult, llvm::instrumentor::InstrumentationOpportunity::replaceValue(), and llvm::instrumentor::IRTArg::TYPEID.
|
inlinestatic |
Definition at line 1171 of file Instrumentor.h.
References llvm::instrumentor::InstrumentationConfig::allocate(), CastIO(), llvm::instrumentor::InstrumentationLocation::INSTRUCTION_POST, and llvm::instrumentor::InstrumentationLocation::INSTRUCTION_PRE.
Referenced by llvm::instrumentor::InstrumentationConfig::populate().
| ConfigTy llvm::instrumentor::CastIO::Config |
Definition at line 1141 of file Instrumentor.h.
Referenced by init().