struct MemoryOpRemark
Declaration
struct MemoryOpRemark { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:34
Member Variables
- public llvm::OptimizationRemarkEmitter& ORE
- public llvm::StringRef RemarkPass
- public const llvm::DataLayout& DL
- public const llvm::TargetLibraryInfo& TLI
Method Overview
- public MemoryOpRemark(llvm::OptimizationRemarkEmitter & ORE, llvm::StringRef RemarkPass, const llvm::DataLayout & DL, const llvm::TargetLibraryInfo & TLI)
- public static bool canHandle(const llvm::Instruction * I, const llvm::TargetLibraryInfo & TLI)
- protected virtual llvm::DiagnosticKind diagnosticKind() const
- protected virtual std::string explainSource(llvm::StringRef Type) const
- private template <typename... Ts>std::unique_ptr<DiagnosticInfoIROptimization> makeRemark(Ts... Args)
- protected virtual llvm::StringRef remarkName(llvm::MemoryOpRemark::RemarkKind RK) const
- public void visit(const llvm::Instruction * I)
- private void visitCall(const llvm::CallInst & CI)
- private template <typename FTy>void visitCallee(FTy F, bool KnownLibCall, llvm::DiagnosticInfoIROptimization & R)
- private void visitIntrinsicCall(const llvm::IntrinsicInst & II)
- private void visitKnownLibCall(const llvm::CallInst & CI, llvm::LibFunc LF, llvm::DiagnosticInfoIROptimization & R)
- private void visitPtr(llvm::Value * V, bool IsSrc, llvm::DiagnosticInfoIROptimization & R)
- private void visitSizeOperand(llvm::Value * V, llvm::DiagnosticInfoIROptimization & R)
- private void visitStore(const llvm::StoreInst & SI)
- private void visitUnknown(const llvm::Instruction & I)
- private void visitVariable(const llvm::Value * V, SmallVectorImpl<llvm::MemoryOpRemark::VariableInfo> & Result)
- public virtual ~MemoryOpRemark()
Methods
¶MemoryOpRemark(
llvm::OptimizationRemarkEmitter& ORE,
llvm::StringRef RemarkPass,
const llvm::DataLayout& DL,
const llvm::TargetLibraryInfo& TLI)
MemoryOpRemark(
llvm::OptimizationRemarkEmitter& ORE,
llvm::StringRef RemarkPass,
const llvm::DataLayout& DL,
const llvm::TargetLibraryInfo& TLI)
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:40
Parameters
- llvm::OptimizationRemarkEmitter& ORE
- llvm::StringRef RemarkPass
- const llvm::DataLayout& DL
- const llvm::TargetLibraryInfo& TLI
¶static bool canHandle(
const llvm::Instruction* I,
const llvm::TargetLibraryInfo& TLI)
static bool canHandle(
const llvm::Instruction* I,
const llvm::TargetLibraryInfo& TLI)
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:47
Parameters
- const llvm::Instruction* I
- const llvm::TargetLibraryInfo& TLI
Returns
true iff the instruction is understood by MemoryOpRemark.
¶virtual llvm::DiagnosticKind diagnosticKind()
const
virtual llvm::DiagnosticKind diagnosticKind()
const
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:57
¶virtual std::string explainSource(
llvm::StringRef Type) const
virtual std::string explainSource(
llvm::StringRef Type) const
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:52
Parameters
- llvm::StringRef Type
¶template <typename... Ts>
std::unique_ptr<DiagnosticInfoIROptimization>
makeRemark(Ts... Args)
template <typename... Ts>
std::unique_ptr<DiagnosticInfoIROptimization>
makeRemark(Ts... Args)
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:61
Templates
- Ts
Parameters
- Ts... Args
¶virtual llvm::StringRef remarkName(
llvm::MemoryOpRemark::RemarkKind RK) const
virtual llvm::StringRef remarkName(
llvm::MemoryOpRemark::RemarkKind RK) const
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:55
Parameters
- llvm::MemoryOpRemark::RemarkKind RK
¶void visit(const llvm::Instruction* I)
void visit(const llvm::Instruction* I)
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:49
Parameters
- const llvm::Instruction* I
¶void visitCall(const llvm::CallInst& CI)
void visitCall(const llvm::CallInst& CI)
Description
Emit a remark using information from known function calls.
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:70
Parameters
- const llvm::CallInst& CI
¶template <typename FTy>
void visitCallee(
FTy F,
bool KnownLibCall,
llvm::DiagnosticInfoIROptimization& R)
template <typename FTy>
void visitCallee(
FTy F,
bool KnownLibCall,
llvm::DiagnosticInfoIROptimization& R)
Description
Add callee information to a remark: whether it's known, the function name, etc.
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:75
Templates
- FTy
Parameters
- FTy F
- bool KnownLibCall
- llvm::DiagnosticInfoIROptimization& R
¶void visitIntrinsicCall(
const llvm::IntrinsicInst& II)
void visitIntrinsicCall(
const llvm::IntrinsicInst& II)
Description
Emit a remark using information from known intrinsic calls.
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:68
Parameters
- const llvm::IntrinsicInst& II
¶void visitKnownLibCall(
const llvm::CallInst& CI,
llvm::LibFunc LF,
llvm::DiagnosticInfoIROptimization& R)
void visitKnownLibCall(
const llvm::CallInst& CI,
llvm::LibFunc LF,
llvm::DiagnosticInfoIROptimization& R)
Description
Add operand information to a remark based on knowledge we have for known libcalls.
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:78
Parameters
- const llvm::CallInst& CI
- llvm::LibFunc LF
- llvm::DiagnosticInfoIROptimization& R
¶void visitPtr(
llvm::Value* V,
bool IsSrc,
llvm::DiagnosticInfoIROptimization& R)
void visitPtr(
llvm::Value* V,
bool IsSrc,
llvm::DiagnosticInfoIROptimization& R)
Description
Gather more information about \p V as a variable. This can be debug info, information from the alloca, etc. Since \p V can represent more than a single variable, they will all be added to the remark.
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:91
Parameters
- llvm::Value* V
- bool IsSrc
- llvm::DiagnosticInfoIROptimization& R
¶void visitSizeOperand(
llvm::Value* V,
llvm::DiagnosticInfoIROptimization& R)
void visitSizeOperand(
llvm::Value* V,
llvm::DiagnosticInfoIROptimization& R)
Description
Add the memory operation size to a remark.
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:81
Parameters
¶void visitStore(const llvm::StoreInst& SI)
void visitStore(const llvm::StoreInst& SI)
Description
Emit a remark using information from the store's destination, size, etc.
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:64
Parameters
- const llvm::StoreInst& SI
¶void visitUnknown(const llvm::Instruction& I)
void visitUnknown(const llvm::Instruction& I)
Description
Emit a generic auto-init remark.
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:66
Parameters
- const llvm::Instruction& I
¶void visitVariable(
const llvm::Value* V,
SmallVectorImpl<
llvm::MemoryOpRemark::VariableInfo>&
Result)
void visitVariable(
const llvm::Value* V,
SmallVectorImpl<
llvm::MemoryOpRemark::VariableInfo>&
Result)
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:92
Parameters
- const llvm::Value* V
- SmallVectorImpl< llvm::MemoryOpRemark::VariableInfo>& Result
¶virtual ~MemoryOpRemark()
virtual ~MemoryOpRemark()
Declared at: llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h:44