[all-commits] [llvm/llvm-project] 08da34: [Convergence] allow non-convergent ops before entr...

Sameer Sahasrabuddhe via All-commits all-commits at lists.llvm.org
Mon Sep 11 05:56:20 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 08da343750be3ff6940ebca35be6a3bfd38cc5de
      https://github.com/llvm/llvm-project/commit/08da343750be3ff6940ebca35be6a3bfd38cc5de
  Author: Sameer Sahasrabuddhe <41661541+ssahasra at users.noreply.github.com>
  Date:   2023-09-11 (Mon, 11 Sep 2023)

  Changed paths:
    M llvm/docs/ConvergentOperations.rst
    M llvm/include/llvm/ADT/GenericConvergenceVerifier.h
    M llvm/include/llvm/IR/GenericConvergenceVerifierImpl.h
    M llvm/test/Verifier/convergencectrl-invalid.ll

  Log Message:
  -----------
  [Convergence] allow non-convergent ops before entry and loop intrinsics (#65939)

The only real requirement is that entry and loop intrinsics should not
be preceded by convergent operations in the same basic block. They do
not need to be the first in the block.

Relaxing the constraint on the entry and loop intrinsics avoids having
to make changes in the construction of LLVM IR, such as
getFirstInsertionPt(). It also avoids added complexity in the lowering
to Machine IR, where COPY instructions may be added to the start of the
basic block.




More information about the All-commits mailing list