[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