HomePhabricator

[DA][SDA] SyncDependenceAnalysis re-write

Authored by simoll on Sep 30 2020, 8:10 AM.

Description

[DA][SDA] SyncDependenceAnalysis re-write

This patch achieves two things:

  1. It breaks up the join_blocks interface between the SDA to the DA to return two separate sets for divergent loops exits and divergent,

disjoint path joins.

  1. It updates the SDA algorithm to run in O(n) time and improves the precision on divergent loop exits.

This fixes https://bugs.llvm.org/show_bug.cgi?id=46372 (by virtue of
the improved join_blocks interface) and revealed an imprecise expected
result in the Analysis/DivergenceAnalysis/AMDGPU/hidden_loopdiverge.ll
test.

Reviewed By: sameerds

Differential Revision: https://reviews.llvm.org/D84413

Details

Committed
simollSep 30 2020, 8:36 AM
Reviewer
sameerds
Differential Revision
D84413: [DA][SDA] SyncDependenceAnalysis re-write
Parents
rGd6de40f8865e: [NFC][regalloc] Make VirtRegAuxInfo part of allocator state
Branches
Unknown
Tags
Unknown