[PATCH] D85608: Analysis: Add GenericConvergenceUtils and related passes

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


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

Convergence utils are helper classes that maintain information
related to convergence intrinsics, such as where convergence anchors
and users of the corresponding tokens are, as well as where hearts of
cycles are.

The convergence utils will be used both by the convergence-aware
uniform analysis and by the reconvergence wave transform in the
AMDGPU backend.

This change also introduces convergence info passes for IR and tests.

v5:

- cleanup #include's
- mark some variables as unused in a release build

v6:

- rename {to,from}Generic -> {wrap,unwrap}Ref

v7:

- cleanup and refactor in terms of "convergencectrl" bundles
- add a test case for the convergenceinfo pass
- cleanup heart-adjusted post-order

Change-Id: Ia07f99b3588c78b810ef0cec2a0568c351b2b6c6


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D85608

Files:
  llvm/include/llvm/Analysis/ConvergenceUtils.h
  llvm/include/llvm/Analysis/GenericConvergenceAnalysis.h
  llvm/include/llvm/Analysis/GenericConvergenceUtils.h
  llvm/include/llvm/InitializePasses.h
  llvm/lib/Analysis/Analysis.cpp
  llvm/lib/Analysis/CMakeLists.txt
  llvm/lib/Analysis/ConvergenceUtils.cpp
  llvm/lib/Analysis/GenericConvergenceAnalysis.cpp
  llvm/lib/Analysis/GenericConvergenceUtils.cpp
  llvm/lib/Passes/PassBuilder.cpp
  llvm/lib/Passes/PassRegistry.def
  llvm/test/Analysis/ConvergenceInfo/basic.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D85608.284203.patch
Type: text/x-patch
Size: 75279 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200809/2db06b92/attachment-0001.bin>


More information about the llvm-commits mailing list