This is an archive of the discontinued LLVM Phabricator instance.

Analysis: Add GenericConvergenceUtils and related passes
Needs RevisionPublic

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

Event Timeline

nhaehnle created this revision.Aug 9 2020, 7:43 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 9 2020, 7:43 AM
nhaehnle requested review of this revision.Aug 9 2020, 7:43 AM
arsenm requested changes to this revision.Jun 22 2023, 10:54 AM

Has this been replaced by one of the newer convergence token reviews and can be closed?

This revision now requires changes to proceed.Jun 22 2023, 10:54 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 22 2023, 10:54 AM
Herald added a subscriber: StephenFan. · View Herald Transcript

Has this been replaced by one of the newer convergence token reviews and can be closed?

That's the plan. I am working through this stack of reviews and mapping them to new reviews.