LLVM: llvm::OptimizationRemarkEmitter Class Reference (original) (raw)
The optimization diagnostic interface. More...
#include "[llvm/Analysis/OptimizationRemarkEmitter.h](OptimizationRemarkEmitter%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| OptimizationRemarkEmitter (const Function *F, BlockFrequencyInfo *BFI) | |
| LLVM_ABI | OptimizationRemarkEmitter (const Function *F) |
| This variant can be used to generate ORE on demand (without the analysis pass). | |
| OptimizationRemarkEmitter (OptimizationRemarkEmitter &&Arg) | |
| OptimizationRemarkEmitter & | operator= (OptimizationRemarkEmitter &&RHS) |
| LLVM_ABI bool | invalidate (Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv) |
| Handle invalidation events in the new pass manager. | |
| bool | enabled () const |
| Return true iff at least some remarks are enabled. | |
| LLVM_ABI void | emit (DiagnosticInfoOptimizationBase &OptDiag) |
| Output the remark via the diagnostic handler and to the optimization record file. | |
| void | emit (DiagnosticInfoOptimizationBase &&OptDiag) |
| Also allow r-value for OptDiag to allow emitting a temporarily-constructed diagnostic. | |
| template<typename T> | |
| void | emit (T RemarkBuilder, decltype(RemarkBuilder()) *=nullptr) |
| Take a lambda that returns a remark which will be emitted. | |
| bool | allowExtraAnalysis (StringRef PassName) const |
| Whether we allow for extra compile-time budget to perform more analysis to produce fewer false positives. |
The optimization diagnostic interface.
It allows reporting when optimizations are performed and when they are not along with the reasons for it. Hotness information of the corresponding code region can be included in the remark if DiagnosticsHotnessRequested is enabled in the LLVM context.
Definition at line 33 of file OptimizationRemarkEmitter.h.
◆ OptimizationRemarkEmitter() [2/3]
| OptimizationRemarkEmitter::OptimizationRemarkEmitter | ( | const Function * | F | ) |
|---|
◆ OptimizationRemarkEmitter() [3/3]
◆ allowExtraAnalysis() [1/3]
◆ allowExtraAnalysis() [2/3]
◆ allowExtraAnalysis() [3/3]
| bool llvm::OptimizationRemarkEmitter::allowExtraAnalysis ( StringRef PassName) const | inline |
|---|
◆ emit() [1/3]
◆ emit() [2/3]
Output the remark via the diagnostic handler and to the optimization record file.
Definition at line 79 of file OptimizationRemarkEmitter.cpp.
References llvm::cast(), and llvm::DiagnosticInfoOptimizationBase::getHotness().
Referenced by llvm::canSinkOrHoistInst(), checkMixedPrecision(), llvm::computeUnrollCount(), createFunctionClones(), deleteLoopIfDead(), DoFlattenLoopPair(), doPromotion(), emit(), EmitAndPrintRemark(), llvm::emitInlinedInto(), emitMisexpectDiagnostic(), emitRemark(), emitRemark(), expandToSwitch(), llvm::BasicTTIImplBase< BasicTTIImpl >::getUnrollingPreferences(), handleAllocSite(), handleCallSite(), hasSupportedLoopDepth(), hoist(), isSafeToExecuteUnconditionally(), markTails(), populateDependencyMatrix(), llvm::pgo::promoteIndirectCall(), llvm::promoteLoopAccessesToScalars(), remarkAlloca(), remarkCall(), remarkFlatAddrspaceAccess(), remarkProperty(), reportFastISelFailure(), reportLoadElim(), reportMayClobberedLoad(), llvm::reportVectorization(), llvm::reportVectorizationFailure(), llvm::SSPLayoutAnalysis::requiresStackProtector(), llvm::LoopInterchangePass::run(), runImpl(), llvm::setProfMetadata(), llvm::SITargetLowering::shouldExpandAtomicRMWInIR(), llvm::shouldInline(), sink(), tryToUnrollLoop(), llvm::UnrollAndJamLoop(), llvm::UnrollLoop(), verifyFuncBFI(), llvm::memtag::StackInfoBuilder::visit(), and warnAboutLeftoverTransformations().
◆ emit() [3/3]
template<typename T>
| void llvm::OptimizationRemarkEmitter::emit ( T RemarkBuilder, decltype(RemarkBuilder()) * = nullptr ) | inline |
|---|
◆ enabled()
| bool llvm::OptimizationRemarkEmitter::enabled ( ) const | inline |
|---|
◆ invalidate()
◆ operator=()
The documentation for this class was generated from the following files:
- include/llvm/Analysis/OptimizationRemarkEmitter.h
- lib/Analysis/OptimizationRemarkEmitter.cpp