[all-commits] [llvm/llvm-project] b09fce: [LoopFusion] Reform LCSSA after peelFusionCandidat...

Madhur Amilkanthwar via All-commits all-commits at lists.llvm.org
Thu Jun 4 01:43:53 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b09fceba26bf6d34465821460deb40b3834cf50f
      https://github.com/llvm/llvm-project/commit/b09fceba26bf6d34465821460deb40b3834cf50f
  Author: Madhur Amilkanthwar <madhura at nvidia.com>
  Date:   2026-06-04 (Thu, 04 Jun 2026)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopFuse.cpp
    A llvm/test/Transforms/LoopFusion/peel-preserve-lcssa.ll

  Log Message:
  -----------
  [LoopFusion] Reform LCSSA after peelFusionCandidate's peelLoop (#200442)

peelLoop's internal simplifyLoop call requires LCSSA to be preserved
across it, but the cloned exit edges and cloned defs that peelLoop
introduces are not reflected in the existing LCSSA phis, so the contract
cannot be honoured. Pass PreserveLCSSA=false to peelLoop here and reform
LCSSA on the affected nest immediately afterward. LCSSA is expected
before and after peel+fuse, just not during it.

Caught by yarpgen fuzzing of clang -O3 -fexperimental-loop-fusion -mllvm
-loop-fusion-peel-max-count=8 on AArch64.

Fixes #199418



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