[all-commits] [llvm/llvm-project] da61c8: [RFC] Introduce convergence control intrinsics
Sameer Sahasrabuddhe via All-commits
all-commits at lists.llvm.org
Wed Jul 12 00:02:52 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: da61c865e734d5520c34907add970911f49b5796
https://github.com/llvm/llvm-project/commit/da61c865e734d5520c34907add970911f49b5796
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2023-07-12 (Wed, 12 Jul 2023)
Changed paths:
M llvm/docs/ConvergenceAndUniformity.rst
A llvm/docs/ConvergentOperations.rst
M llvm/docs/LangRef.rst
M llvm/docs/Reference.rst
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm/ADT/GenericCycleImpl.h
M llvm/include/llvm/ADT/GenericCycleInfo.h
M llvm/include/llvm/Analysis/CycleAnalysis.h
A llvm/include/llvm/IR/CycleInfo.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/LLVMContext.h
M llvm/lib/Analysis/CycleAnalysis.cpp
M llvm/lib/IR/CMakeLists.txt
A llvm/lib/IR/CycleInfo.cpp
M llvm/lib/IR/LLVMContext.cpp
M llvm/lib/IR/Verifier.cpp
R llvm/test/Analysis/UniformityAnalysis/AMDGPU/join-at-loop-heart.ll
A llvm/test/Assembler/convergence-control.ll
A llvm/test/Bitcode/convergence-control.ll
A llvm/test/Bitcode/convergence-control.ll.bc
M llvm/test/Bitcode/operand-bundles-bc-analyzer.ll
A llvm/test/Verifier/convergencectrl-invalid.ll
Log Message:
-----------
[RFC] Introduce convergence control intrinsics
This is a reboot of the original design and implementation by
Nicolai Haehnle <nicolai.haehnle at amd.com>:
https://reviews.llvm.org/D85603
This change also obsoletes an earlier attempt at restarting the work on
convergence tokens:
https://reviews.llvm.org/D104504
Changes relative to D85603:
1. Clean up the definition of a "convergent operation", a convergent
call and convergent function.
2. Clean up the relationship between dynamic instances, sets of threads and
convergence tokens.
3. Redistribute the formal rules into the definitions of the convergence
intrinsics.
4. Expand on the semantics of entering a function from outside LLVM,
and the environment-defined outcome of the entry intrinsic.
5. Replace the term "cycle" with "closed path". The static rules are defined
in terms of closed paths, and then a relation is established with cycles.
6. Specify that if a function contains a controlled convergent operation, then
all convergent operations in that function must be controlled.
7. Describe an optional procedure to infer tokens for uncontrolled convergent
operations.
8. Introduce controlled maximal convergence-before and controlled m-converged
property as an update to the original properties in UniformityAnalysis.
9. Additional constraint that a cycle heart can only occur in the header of a
reducible cycle (natural loop).
Reviewed By: nhaehnle
Differential Revision: https://reviews.llvm.org/D147116
More information about the All-commits
mailing list