LLVM 23.0.0git
llvm::LoopVectorizationUtils Namespace Reference

Functions

void reportVectorizationFailure (const StringRef DebugMsg, const StringRef OREMsg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, const Loop *TheLoop, Instruction *I=nullptr)
 Reports a vectorization failure: print DebugMsg for debugging purposes along with the corresponding optimization remark RemarkName.
void reportVectorizationFailure (const StringRef DebugMsg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, const Loop *TheLoop, Instruction *I=nullptr)
 Same as above, but the debug message and optimization remark are identical.
void reportVectorizationInfo (const StringRef Msg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, const Loop *TheLoop, Instruction *I=nullptr, DebugLoc DL={})
 Reports an informative message: print Msg for debugging purposes as well as an optimization remark.
void reportVectorization (OptimizationRemarkEmitter *ORE, Loop *TheLoop, ElementCount VFWidth, unsigned IC)
 Report successful vectorization of the loop.

Function Documentation

◆ reportVectorization()

void llvm::LoopVectorizationUtils::reportVectorization ( OptimizationRemarkEmitter * ORE,
Loop * TheLoop,
ElementCount VFWidth,
unsigned IC )

Report successful vectorization of the loop.

In case an outer loop is vectorized, prepend "outer" to the vectorization remark.

Definition at line 120 of file LoopVectorizationPlanner.cpp.

References DEBUG_TYPE, debugVectorizationMessage(), llvm::OptimizationRemarkEmitter::emit(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Loop::getStartLoc(), llvm::LoopBase< BlockT, LoopT >::isInnermost(), and LLVM_DEBUG.

Referenced by llvm::LoopVectorizePass::processLoop().

◆ reportVectorizationFailure() [1/2]

void llvm::LoopVectorizationUtils::reportVectorizationFailure ( const StringRef DebugMsg,
const StringRef OREMsg,
const StringRef ORETag,
OptimizationRemarkEmitter * ORE,
const Loop * TheLoop,
Instruction * I = nullptr )

Reports a vectorization failure: print DebugMsg for debugging purposes along with the corresponding optimization remark RemarkName.

If I is passed, it is an instruction that prevents vectorization. Otherwise, the loop TheLoop is used for the location of the remark.

Definition at line 105 of file LoopVectorizationPlanner.cpp.

References createLVAnalysis(), debugVectorizationMessage(), llvm::OptimizationRemarkEmitter::emit(), I, and LLVM_DEBUG.

Referenced by llvm::LoopVectorizationLegality::canVectorize(), llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::VFSelectionContext::computeVPlanOuterloopVF(), llvm::LoopVectorizePass::processLoop(), reportVectorizationFailure(), and llvm::VFSelectionContext::runtimeChecksRequired().

◆ reportVectorizationFailure() [2/2]

void llvm::LoopVectorizationUtils::reportVectorizationFailure ( const StringRef DebugMsg,
const StringRef ORETag,
OptimizationRemarkEmitter * ORE,
const Loop * TheLoop,
Instruction * I = nullptr )
inline

Same as above, but the debug message and optimization remark are identical.

Definition at line 74 of file LoopVectorizationPlanner.h.

References I, and reportVectorizationFailure().

◆ reportVectorizationInfo()

void llvm::LoopVectorizationUtils::reportVectorizationInfo ( const StringRef Msg,
const StringRef ORETag,
OptimizationRemarkEmitter * ORE,
const Loop * TheLoop,
Instruction * I = nullptr,
DebugLoc DL = {} )

Reports an informative message: print Msg for debugging purposes as well as an optimization remark.

Uses either I as location of the remark, or otherwise TheLoop. If DL is passed, use it as debug location for the remark.

Definition at line 113 of file LoopVectorizationPlanner.cpp.

References createLVAnalysis(), debugVectorizationMessage(), DL, llvm::OptimizationRemarkEmitter::emit(), I, and LLVM_DEBUG.

Referenced by llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(), getEpilogueTailLowering(), llvm::LoopVectorizationPlanner::plan(), and llvm::LoopVectorizePass::processLoop().