[llvm] [ProfCheck] Disable more passes not used in CPU pipelines (PR #182414)

Aiden Grossman via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 19 17:47:50 PST 2026


https://github.com/boomanaiden154 updated https://github.com/llvm/llvm-project/pull/182414

>From af5e934925812a4d044d02dea11b89812792c0a4 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 20 Feb 2026 00:56:18 +0000
Subject: [PATCH 1/2] [ProfCheck] Disable more passes not used in CPU pipelines

This is another comb over the current xfail list. This patch disables
all passes that are not enabled by default for CPUs such as passes not
enabled anywhere by default or only used in GPU backends.
---
 llvm/test/lit.cfg.py           | 18 ++++++++++---
 llvm/utils/profcheck-xfail.txt | 46 ----------------------------------
 2 files changed, 14 insertions(+), 50 deletions(-)

diff --git a/llvm/test/lit.cfg.py b/llvm/test/lit.cfg.py
index 7837e7c1cbead..3a008fe3b4c07 100644
--- a/llvm/test/lit.cfg.py
+++ b/llvm/test/lit.cfg.py
@@ -74,14 +74,24 @@
         ["Hexagon", "NVPTX", "PowerPC", "RISCV", "SPARC", "WebAssembly"]
     )
     # these passes aren't hooked up to the pass pipeline:
-    config.excludes.append("IRCE")
+    config.excludes.extend(["IRCE", "LoopBoundSplit", "LoopInterchange", "Scalarizer"])
     # Not on by default in any standard CPU pipeline.
     config.excludes.extend(
-        ["Attributor", "IROutliner", "BlockExtractor", "CodeExtractor", "HotColdSplit"]
+        [
+            "Attributor",
+            "IROutliner",
+            "BlockExtractor",
+            "CodeExtractor",
+            "HotColdSplit",
+            "LowerGlobalDestructors",
+            "LowerSwitch",
+            "StructurizeCFG",
+            "UnifyLoopExits",
+        ]
     )
     # Not aimed at being used for peak-optimized binaries. These will be
-    # addressed later.
-    config.excludes.extend(["GCOVProfiling", "MergeFunc"])
+    # addressed later. PhaseOrdering has a couple merge function tests.
+    config.excludes.extend(["GCOVProfiling", "MergeFunc", "PhaseOrdering"])
 
 # test_source_root: The root path where tests are located.
 config.test_source_root = os.path.dirname(__file__)
diff --git a/llvm/utils/profcheck-xfail.txt b/llvm/utils/profcheck-xfail.txt
index 7171b8879a03e..72bf53e751864 100644
--- a/llvm/utils/profcheck-xfail.txt
+++ b/llvm/utils/profcheck-xfail.txt
@@ -142,32 +142,13 @@ Transforms/InstCombine/wcslen-1.ll
 Transforms/InstCombine/wcslen-3.ll
 Transforms/InstCombine/xor-and-or.ll
 Transforms/InstCombine/zext-bool-add-sub.ll
-Transforms/LoopBoundSplit/bug-loop-bound-split-phi-in-exit-block.ll
-Transforms/LoopBoundSplit/bug51866.ll
-Transforms/LoopBoundSplit/loop-bound-split.ll
 Transforms/LoopDeletion/invalidate-scev-after-hoisting.ll
 Transforms/LoopIdiom/AArch64/byte-compare-index.ll
 Transforms/LoopIdiom/AArch64/find-first-byte.ll
-Transforms/LoopInterchange/reduction2mem.ll
 Transforms/LowerAtomic/atomic-load.ll
 Transforms/LowerAtomic/atomic-swap.ll
 Transforms/LowerConstantIntrinsics/builtin-object-size-phi.ll
 Transforms/LowerConstantIntrinsics/objectsize_basic.ll
-Transforms/LowerGlobalDestructors/lower-global-dtors-existing-dos_handle.ll
-Transforms/LowerGlobalDestructors/lower-global-dtors.ll
-Transforms/LowerGlobalDestructors/non-literal-type.ll
-Transforms/LowerSwitch/2003-05-01-PHIProblem.ll
-Transforms/LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll
-Transforms/LowerSwitch/2014-06-10-SwitchContiguousOpt.ll
-Transforms/LowerSwitch/2014-06-11-SwitchDefaultUnreachableOpt.ll
-Transforms/LowerSwitch/2014-06-23-PHIlowering.ll
-Transforms/LowerSwitch/93152.ll
-Transforms/LowerSwitch/condition-phi-unreachable-default.ll
-Transforms/LowerSwitch/delete-default-block-crash.ll
-Transforms/LowerSwitch/do-not-handle-impossible-values.ll
-Transforms/LowerSwitch/feature.ll
-Transforms/LowerSwitch/fold-popular-case-to-unreachable-default.ll
-Transforms/LowerSwitch/pr59316.ll
 Transforms/OpenMP/always_inline_device.ll
 Transforms/OpenMP/custom_state_machines.ll
 Transforms/OpenMP/custom_state_machines_remarks.ll
@@ -182,13 +163,6 @@ Transforms/OpenMP/spmdization_guarding_two_reaching_kernels.ll
 Transforms/OpenMP/spmdization_indirect.ll
 Transforms/OpenMP/spmdization_no_guarding_two_reaching_kernels.ll
 Transforms/OpenMP/spmdization_remarks.ll
-Transforms/PhaseOrdering/AArch64/globals-aa-required-for-vectorization.ll
-Transforms/PhaseOrdering/AArch64/hoist-load-from-vector-loop.ll
-Transforms/PhaseOrdering/AArch64/std-find.ll
-Transforms/PhaseOrdering/X86/merge-functions.ll
-Transforms/PhaseOrdering/X86/merge-functions2.ll
-Transforms/PhaseOrdering/X86/merge-functions3.ll
-Transforms/PhaseOrdering/X86/pr52078.ll
 Transforms/PreISelIntrinsicLowering/AArch64/expand-exp.ll
 Transforms/PreISelIntrinsicLowering/AArch64/expand-log.ll
 Transforms/ScalarizeMaskedMemIntrin/AArch64/expand-masked-load.ll
@@ -197,33 +171,13 @@ Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-compressstore.ll
 Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-expandload.ll
 Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-load.ll
 Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-store.ll
-Transforms/Scalarizer/basic-inseltpoison.ll
-Transforms/Scalarizer/basic.ll
-Transforms/Scalarizer/min-bits.ll
-Transforms/Scalarizer/scatter-order.ll
-Transforms/Scalarizer/variable-extractelement.ll
-Transforms/Scalarizer/variable-insertelement.ll
-Transforms/Scalarizer/vector-of-pointer-to-vector.ll
 Transforms/StackProtector/cross-dso-cfi-stack-chk-fail.ll
-Transforms/StructurizeCFG/callbr.ll
-Transforms/StructurizeCFG/hoist-zerocost.ll
-Transforms/StructurizeCFG/loop-break-phi.ll
-Transforms/StructurizeCFG/nested-loop-order.ll
-Transforms/StructurizeCFG/simple-structurizecfg-crash.ll
-Transforms/StructurizeCFG/structurizer-keep-perf-md.ll
-Transforms/StructurizeCFG/switch.ll
 Transforms/TailCallElim/2010-06-26-MultipleReturnValues.ll
 Transforms/TailCallElim/accum_recursion.ll
 Transforms/TailCallElim/basic.ll
 Transforms/TailCallElim/debugloc.ll
 Transforms/TailCallElim/dropping_debugloc_acc_rec_inst_rnew.ll
 Transforms/TailCallElim/inf-recursion.ll
-Transforms/UnifyLoopExits/basic.ll
-Transforms/UnifyLoopExits/integer_guards.ll
-Transforms/UnifyLoopExits/nested.ll
-Transforms/UnifyLoopExits/restore-ssa.ll
-Transforms/UnifyLoopExits/switch.ll
-Transforms/UnifyLoopExits/undef-phis.ll
 Transforms/Util/control-flow-hub-finalize-same-succ-crash.ll
 Transforms/Util/libcalls-opt-remarks.ll
 Transforms/Util/lowerswitch.ll

>From 5663bbab08f07da3795c858f7a575d5cd3f0f0a8 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 20 Feb 2026 01:47:38 +0000
Subject: [PATCH 2/2] feedback

---
 llvm/test/lit.cfg.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/test/lit.cfg.py b/llvm/test/lit.cfg.py
index 3a008fe3b4c07..58695cf54b6f0 100644
--- a/llvm/test/lit.cfg.py
+++ b/llvm/test/lit.cfg.py
@@ -90,7 +90,7 @@
         ]
     )
     # Not aimed at being used for peak-optimized binaries. These will be
-    # addressed later. PhaseOrdering has a couple merge function tests.
+    # addressed later. PhaseOrdering has a couple of merge function tests.
     config.excludes.extend(["GCOVProfiling", "MergeFunc", "PhaseOrdering"])
 
 # test_source_root: The root path where tests are located.



More information about the llvm-commits mailing list