[all-commits] [llvm/llvm-project] 33761d: Revert "[SimpleLoopUnswitch] Record loops from uns...

Antonio Frighetto via All-commits all-commits at lists.llvm.org
Mon Aug 18 08:41:55 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 33761df961627f9d057fa049509fc8ba8baaaf78
      https://github.com/llvm/llvm-project/commit/33761df961627f9d057fa049509fc8ba8baaaf78
  Author: Antonio Frighetto <me at antoniofrighetto.com>
  Date:   2025-08-18 (Mon, 18 Aug 2025)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
    M llvm/test/Transforms/LICM/PR116813-memoryssa-outdated.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/block_scaling_decompr_8bit.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested2.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/exponential-switch-unswitch.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/guards.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/inject-invariant-conditions.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/invalidate-block-and-loop-dispositions.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-freeze.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-select.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch-loop-and-block-dispositions.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch.ll
    R llvm/test/Transforms/SimpleLoopUnswitch/pr138509.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/update-scev-3.ll

  Log Message:
  -----------
  Revert "[SimpleLoopUnswitch] Record loops from unswitching non-trivial conditions"

This reverts commit e9de32fd159d30cfd6fcc861b57b7e99ec2742ab due to
multiple performance regressions observed across downstream Numba
benchmarks (https://github.com/llvm/llvm-project/issues/138509#issuecomment-3193855772).

While avoiding non-trivial unswitches on newly-cloned loops helps
mitigate the pathological case reported in https://github.com/llvm/llvm-project/issues/138509,
it may as well make the IR less friendly to vectorization / loop-
canonicalization (in the test reported, previously no select with
loop-carried dependence existed in the new specialized loops),
leading the abovementioned approach to be reconsidered.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list