[PATCH] D85609: Transforms: add ConvergenceControlHeuristic pass

Nicolai Hähnle via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 9 07:45:57 PDT 2020


nhaehnle created this revision.
nhaehnle added reviewers: arsenm, foad, sameerds.
Herald added subscribers: hiraditya, mgorny.
Herald added a project: LLVM.
nhaehnle requested review of this revision.
Herald added a subscriber: wdng.

This pass turns uncontrolled convergent operations into controlled ones
by adding appropriate "convergencectrl" bundles and inserting
convergence control intrinsics.

When this pass is used immediately after generating LLVM IR, it will in
many cases establish convergence control that enforces the semantics
that a programmer would likely expect based on the high-level language
source. However, there are exceptions.

This pass is not intended to be used by default. Frontends that care
about semantics of convergent operations should really emit convergence
control information directly, but this pass can serve as a convenient
stop-gap.

Change-Id: I1c72b53567cb4e8b9b82f31f9c8525f2622cd242


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D85609

Files:
  llvm/include/llvm/InitializePasses.h
  llvm/lib/Transforms/Utils/CMakeLists.txt
  llvm/lib/Transforms/Utils/ConvergenceControlHeuristic.cpp
  llvm/lib/Transforms/Utils/Utils.cpp
  llvm/test/Transforms/ConvergenceControlHeuristic/basic.ll
  llvm/test/Transforms/ConvergenceControlHeuristic/preexisting.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D85609.284205.patch
Type: text/x-patch
Size: 30759 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200809/162575bb/attachment.bin>


More information about the llvm-commits mailing list