[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