Page MenuHomePhabricator

Analysis: Add GenericConvergenceUtils and related passes
Needs ReviewPublic

Authored by nhaehnle on Aug 9 2020, 7:43 AM.

Details

Summary

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

Diff Detail