[all-commits] [llvm/llvm-project] 96b6bb: [DAGCombiner] Loop unfreeze step in visitFREEZE fr...

lijinpei-amd via All-commits all-commits at lists.llvm.org
Thu May 28 08:18:03 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 96b6bb78aa04c489fcd95e844a74bbcc64f8a2ef
      https://github.com/llvm/llvm-project/commit/96b6bb78aa04c489fcd95e844a74bbcc64f8a2ef
  Author: lijinpei-amd <jinpli at amd.com>
  Date:   2026-05-28 (Thu, 28 May 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    A llvm/test/CodeGen/AMDGPU/freeze-other-uses-issue-198094.ll

  Log Message:
  -----------
  [DAGCombiner] Loop unfreeze step in visitFREEZE freezeOtherUses (#200120)

The first ReplaceAllUsesOfValueWith in visitFREEZE's freezeOtherUses
block can leave users of N behind: when the inner RAUW cascade
encounters a freeze user whose hash collides post-mutation, the
recursive merge prepends new freeze users to N's use-list that the outer
iterator deliberately skips (PR3018 invariant). Those leftover users
then collide with the self-cycle the next RAUW step creates, firing
"Node is not in map!" in RemoveNodeFromCSEMaps.

Wrap the unfreeze in a convergence loop so all such prepended users are
drained before the second RAUW. Each iteration strictly shrinks N's
use-set, bounded by the depth of the freeze chain.

Fixes #198094



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