[llvm] [LV] Emit better debug and opt-report messages when vectorization is disallowed in the LoopVectorizer (PR #158513)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 4 02:56:24 PST 2025
Tibor =?utf-8?q?Győri?= <tibor.gyori at chem.u-szeged.hu>,GYT
<tiborgyri at gmail.com>,GYT <tiborgyri at gmail.com>,GYT <tiborgyri at gmail.com>,GYT
<tiborgyri at gmail.com>,GYT <tiborgyri at gmail.com>,GYT <tiborgyri at gmail.com>,GYT
<tiborgyri at gmail.com>,GYT <tiborgyri at gmail.com>,GYT <tiborgyri at gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/158513 at github.com>
================
@@ -179,17 +179,42 @@ void LoopVectorizeHints::setAlreadyVectorized() {
IsVectorized.Value = 1;
}
+void LoopVectorizeHints::reportDisallowedVectorization(
+ const StringRef DebugMsg, const StringRef RemarkName,
+ const StringRef RemarkMsg, const Loop *L) const {
+ LLVM_DEBUG(dbgs() << "LV: Not vectorizing: " << DebugMsg << ".\n");
+ ORE.emit(OptimizationRemarkMissed(LV_NAME, RemarkName, L->getStartLoc(),
+ L->getHeader())
+ << "loop not vectorized: " << RemarkMsg);
+}
+
bool LoopVectorizeHints::allowVectorization(
Function *F, Loop *L, bool VectorizeOnlyWhenForced) const {
if (getForce() == LoopVectorizeHints::FK_Disabled) {
- LLVM_DEBUG(dbgs() << "LV: Not vectorizing: #pragma vectorize disable.\n");
- emitRemarkWithHints();
+ if (Force.Value == LoopVectorizeHints::FK_Disabled) {
+ reportDisallowedVectorization("#pragma vectorize disable",
+ "MissedExplicitlyDisabled",
+ "vectorization is explicitly disabled", L);
+ } else if (hasDisableAllTransformsHint(L)) {
+ reportDisallowedVectorization("loop hasDisableAllTransformsHint",
+ "MissedTransformsDisabled",
+ "loop transformations are disabled", L);
+ } else {
+ // This should be unreachable unless there is a bug.
+ reportDisallowedVectorization(
+ "disabled for an unknown reason", "MissedUnknown",
+ "unknown reason, please file a bug report on the LLVM issue tracker",
+ L);
----------------
fhahn wrote:
```suggestion
```
https://github.com/llvm/llvm-project/pull/158513
More information about the llvm-commits
mailing list