LLVM 20.0.0git
|
Capture state between an inlining decision having had been made, and its impact being observable. More...
#include "llvm/Analysis/InlineAdvisor.h"
Public Member Functions | |
InlineAdvice (InlineAdvisor *Advisor, CallBase &CB, OptimizationRemarkEmitter &ORE, bool IsInliningRecommended) | |
InlineAdvice (InlineAdvice &&)=delete | |
InlineAdvice (const InlineAdvice &)=delete | |
virtual | ~InlineAdvice () |
void | recordInlining () |
Exactly one of the record* APIs must be called. | |
void | recordInliningWithCalleeDeleted () |
Call after inlining succeeded, and results in the callee being delete-able, meaning, it has no more users, and will be cleaned up subsequently. | |
void | recordUnsuccessfulInlining (const InlineResult &Result) |
Call after the decision for a call site was to not inline. | |
void | recordUnattemptedInlining () |
Call to indicate inlining was not attempted. | |
bool | isInliningRecommended () const |
Get the inlining recommendation. | |
const DebugLoc & | getOriginalCallSiteDebugLoc () const |
const BasicBlock * | getOriginalCallSiteBasicBlock () const |
Protected Member Functions | |
virtual void | recordInliningImpl () |
virtual void | recordInliningWithCalleeDeletedImpl () |
virtual void | recordUnsuccessfulInliningImpl (const InlineResult &Result) |
virtual void | recordUnattemptedInliningImpl () |
Protected Attributes | |
InlineAdvisor *const | Advisor |
Function *const | Caller |
Caller and Callee are pre-inlining. | |
Function *const | Callee |
const DebugLoc | DLoc |
const BasicBlock *const | Block |
OptimizationRemarkEmitter & | ORE |
const bool | IsInliningRecommended |
Capture state between an inlining decision having had been made, and its impact being observable.
When collecting model training data, this allows recording features/decisions/partial reward data sets.
Derivations of this type are expected to be tightly coupled with their InliningAdvisors. The base type implements the minimal contractual obligations.
Definition at line 74 of file InlineAdvisor.h.
InlineAdvice::InlineAdvice | ( | InlineAdvisor * | Advisor, |
CallBase & | CB, | ||
OptimizationRemarkEmitter & | ORE, | ||
bool | IsInliningRecommended | ||
) |
Definition at line 176 of file InlineAdvisor.cpp.
|
delete |
|
delete |
|
inlinevirtual |
Definition at line 81 of file InlineAdvisor.h.
References assert().
|
inline |
Definition at line 112 of file InlineAdvisor.h.
References Block.
Definition at line 111 of file InlineAdvisor.h.
References DLoc.
|
inline |
Get the inlining recommendation.
Definition at line 110 of file InlineAdvisor.h.
References IsInliningRecommended.
void InlineAdvice::recordInlining | ( | ) |
Exactly one of the record* APIs must be called.
Implementers may extend behavior by implementing the corresponding record*Impl.
Call after inlining succeeded, and did not result in deleting the callee.
Definition at line 188 of file InlineAdvisor.cpp.
References recordInliningImpl().
|
inlineprotectedvirtual |
Reimplemented in llvm::MLInlineAdvice.
Definition at line 115 of file InlineAdvisor.h.
Referenced by recordInlining().
void InlineAdvice::recordInliningWithCalleeDeleted | ( | ) |
Call after inlining succeeded, and results in the callee being delete-able, meaning, it has no more users, and will be cleaned up subsequently.
Definition at line 194 of file InlineAdvisor.cpp.
References recordInliningWithCalleeDeletedImpl().
|
inlineprotectedvirtual |
Reimplemented in llvm::MLInlineAdvice.
Definition at line 116 of file InlineAdvisor.h.
Referenced by recordInliningWithCalleeDeleted().
|
inline |
Call to indicate inlining was not attempted.
Definition at line 104 of file InlineAdvisor.h.
References recordUnattemptedInliningImpl().
|
inlineprotectedvirtual |
Reimplemented in llvm::MLInlineAdvice.
Definition at line 118 of file InlineAdvisor.h.
Referenced by recordUnattemptedInlining().
|
inline |
Call after the decision for a call site was to not inline.
Definition at line 98 of file InlineAdvisor.h.
References recordUnsuccessfulInliningImpl().
|
inlineprotectedvirtual |
Reimplemented in llvm::MLInlineAdvice.
Definition at line 117 of file InlineAdvisor.h.
Referenced by recordUnsuccessfulInlining().
|
protected |
Definition at line 120 of file InlineAdvisor.h.
Referenced by llvm::MLInlineAdvice::MLInlineAdvice().
|
protected |
Definition at line 129 of file InlineAdvisor.h.
Referenced by getOriginalCallSiteBasicBlock(), llvm::MLInlineAdvice::recordInliningImpl(), llvm::MLInlineAdvice::recordInliningWithCalleeDeletedImpl(), llvm::MLInlineAdvice::recordUnattemptedInliningImpl(), and llvm::MLInlineAdvice::recordUnsuccessfulInliningImpl().
Definition at line 123 of file InlineAdvisor.h.
Referenced by llvm::MLInlineAdvice::getCallee().
Caller and Callee are pre-inlining.
Definition at line 122 of file InlineAdvisor.h.
Referenced by llvm::MLInlineAdvice::getCaller(), and llvm::MLInlineAdvice::recordUnsuccessfulInliningImpl().
Definition at line 128 of file InlineAdvisor.h.
Referenced by getOriginalCallSiteDebugLoc(), llvm::MLInlineAdvice::recordInliningImpl(), llvm::MLInlineAdvice::recordInliningWithCalleeDeletedImpl(), llvm::MLInlineAdvice::recordUnattemptedInliningImpl(), and llvm::MLInlineAdvice::recordUnsuccessfulInliningImpl().
Definition at line 131 of file InlineAdvisor.h.
Referenced by isInliningRecommended().
|
protected |