[all-commits] [llvm/llvm-project] f91434: [SimplifyCFG] Do not thread branches into uncontro...

Shilei Tian via All-commits all-commits at lists.llvm.org
Mon Aug 3 22:08:43 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f914343e531e2feb35e29bab1c42e103ab15aaf5
      https://github.com/llvm/llvm-project/commit/f914343e531e2feb35e29bab1c42e103ab15aaf5
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2026-08-04 (Tue, 04 Aug 2026)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/SimplifyCFG/AMDGPU/convergent-jump-threading.ll

  Log Message:
  -----------
  [SimplifyCFG] Do not thread branches into uncontrolled convergent regions (#204958)

SimplifyCFG's foldCondBranchOnValueKnownInPredecessor redirects a
predecessor edge around a block whose branch condition is known on that
edge. When the bypassed block and the threading destination are on a
common cycle, this can change the cycle structure and with it the
dynamic instance of an uncontrolled convergent operation inside that
cycle.

On targets with branch divergence, this PR skips the candidate when the
destination can reach an uncontrolled convergent call on a path back to
the bypassed block. Operations using convergence control tokens are left
alone.

Fixes ROCM-26496.



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