[all-commits] [llvm/llvm-project] df3442: [IR] Relax convergence requirements on call (#135794)

Nathan Gauër via All-commits all-commits at lists.llvm.org
Fri May 2 01:18:19 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: df344285e260109e016e28a14e663f376d8e903c
      https://github.com/llvm/llvm-project/commit/df344285e260109e016e28a14e663f376d8e903c
  Author: Nathan Gauër <brioche at google.com>
  Date:   2025-05-02 (Fri, 02 May 2025)

  Changed paths:
    M llvm/include/llvm/IR/GenericConvergenceVerifierImpl.h
    M llvm/test/Assembler/convergence-control.ll
    A llvm/test/Transforms/ADCE/convergence.ll
    A llvm/test/Transforms/BDCE/convergence.ll
    M llvm/test/Transforms/FunctionAttrs/convergent.ll
    M llvm/test/Verifier/convergencectrl-invalid.ll

  Log Message:
  -----------
  [IR] Relax convergence requirements on call (#135794)

Before this commit, having a convergence token on a non-convergent call
was considered to be an error.
This commit relaxes this requirement and allows convergence tokens to be
present on non-convergent calls.

When such token is present, they have no effect as the underlying call
is non-convergent.
This allows passes like DCE to strip `convergent` attribute from
functions for which all convergent operations have been stripped. When
this happens, a convergence token can still exist in the call-site,
causing the verifier to complain.

Alternatives have been considered in #134863 and #134844.



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