This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU/SI: Detect dependency types between blocks
ClosedPublic

Authored by axeldavy on Feb 18 2017, 1:33 PM.

Details

Summary

Detecting the type of dependencies between blocks
enables better handling of high latencies, as
order dependencies can be differentiated from
data dependencies (in the former you don't need
to insert a wait, whereas you need in the latter).

Diff Detail

Repository
rL LLVM

Event Timeline

axeldavy created this revision.Feb 18 2017, 1:33 PM
arsenm added inline comments.Feb 21 2017, 3:24 PM
lib/Target/AMDGPU/SIMachineScheduler.cpp
541–544

Factor into predicate function and assert on that condition

562–563

std::make_pair

586

Debug printing not guarded by DEBUG. Looks like this problem existed already, so this whole block should be under DEBUG

lib/Target/AMDGPU/SIMachineScheduler.h
101

Don't need enum keyword

124–125

Return ArrayRef

axeldavy added inline comments.Mar 10 2017, 1:53 PM
lib/Target/AMDGPU/SIMachineScheduler.cpp
586

It is in a function printDebug, protected by #ifndef NDEBUG

axeldavy updated this revision to Diff 91407.Mar 10 2017, 1:56 PM
vpykhtin added inline comments.
lib/Target/AMDGPU/SIMachineScheduler.cpp
586

Please provide full context diff next time (-U9999999), it helps to avoid such misunderstandings.

Better to use const reference to &S here.

1365

const auto &Succ

1367

In genereal please don't duplicate expressions. Compilers are good in CSE, but my eyes aren't :-)

This can be rewritten as Height = std::min(Height, Succ.first->Height + 1)

1650

const auto &Block

1653

if (--BlockNumPredsLeft[Block.first->getID()] == 0)

axeldavy updated this revision to Diff 92677.Mar 22 2017, 12:18 PM

Updated according to comments

t-tye added a subscriber: t-tye.Mar 22 2017, 6:39 PM
tony-tye removed a subscriber: tony-tye.Mar 22 2017, 6:46 PM
vpykhtin accepted this revision.Mar 23 2017, 7:46 AM

LGTM.

This revision is now accepted and ready to land.Mar 23 2017, 7:46 AM
This revision was automatically updated to reflect the committed changes.