|
LLVM 24.0.0git
|
This file implements VFSelectionContext methods for loop vectorization VF selection, independent of cost-modeling decisions. More...
#include "LoopVectorizationPlanner.h"#include "VPlanUtils.h"#include "VectorizeOptions.h"#include "llvm/Analysis/LoopInfo.h"#include "llvm/Analysis/OptimizationRemarkEmitter.h"#include "llvm/Analysis/ScalarEvolution.h"#include "llvm/IR/DiagnosticInfo.h"#include "llvm/Support/Debug.h"#include "llvm/Support/MathExtras.h"#include "llvm/Transforms/Vectorize/LoopVectorizationLegality.h"#include "llvm/Transforms/Vectorize/LoopVectorize.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "loop-vectorize" |
Functions | |
| static void | debugVectorizationMessage (const StringRef Prefix, const StringRef DebugMsg, Instruction *I) |
Write a DebugMsg about vectorization to the debug output stream. | |
| static OptimizationRemarkAnalysis | createLVAnalysis (StringRef RemarkName, const Loop *TheLoop, Instruction *I, DebugLoc DL={}) |
Create an analysis remark that explains why vectorization failed RemarkName is the identifier for the remark. | |
| static bool | hasUnsupportedHeaderPhiRecipe (VPlan &Plan) |
This file implements VFSelectionContext methods for loop vectorization VF selection, independent of cost-modeling decisions.
Definition in file LoopVectorizationPlanner.cpp.
| #define DEBUG_TYPE "loop-vectorize" |
Definition at line 30 of file LoopVectorizationPlanner.cpp.
|
static |
Create an analysis remark that explains why vectorization failed RemarkName is the identifier for the remark.
If I is passed it is an instruction that prevents vectorization. Otherwise TheLoop is used for the location of the remark. If DL is passed, use it as debug location for the remark.
Definition at line 52 of file LoopVectorizationPlanner.cpp.
Referenced by llvm::LoopVectorizationUtils::reportVectorizationFailure(), and llvm::LoopVectorizationUtils::reportVectorizationInfo().
|
static |
Write a DebugMsg about vectorization to the debug output stream.
If I is passed, the message relates to that particular instruction.
Definition at line 35 of file LoopVectorizationPlanner.cpp.
References llvm::dbgs(), and I.
Referenced by llvm::LoopVectorizationUtils::reportVectorization(), llvm::LoopVectorizationUtils::reportVectorizationFailure(), and llvm::LoopVectorizationUtils::reportVectorizationInfo().
Definition at line 816 of file LoopVectorizationPlanner.cpp.
References llvm::any_of(), llvm::VPBlockBase::getEntryBasicBlock(), llvm::VPlan::getVectorLoopRegion(), and llvm::VPBasicBlock::phis().