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).
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/AMDGPU/SIMachineScheduler.cpp | ||
---|---|---|
541–544 ↗ | (On Diff #89046) | Factor into predicate function and assert on that condition |
562–563 ↗ | (On Diff #89046) | std::make_pair |
586 ↗ | (On Diff #89046) | 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 ↗ | (On Diff #89046) | Don't need enum keyword |
124 ↗ | (On Diff #89046) | Return ArrayRef |
lib/Target/AMDGPU/SIMachineScheduler.cpp | ||
---|---|---|
586 ↗ | (On Diff #89046) | It is in a function printDebug, protected by #ifndef NDEBUG |
lib/Target/AMDGPU/SIMachineScheduler.cpp | ||
---|---|---|
1365 ↗ | (On Diff #91787) | const auto &Succ |
1367 ↗ | (On Diff #91787) | 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 ↗ | (On Diff #91787) | const auto &Block |
1653 ↗ | (On Diff #91787) | if (--BlockNumPredsLeft[Block.first->getID()] == 0) |
586 ↗ | (On Diff #89046) | Please provide full context diff next time (-U9999999), it helps to avoid such misunderstandings. Better to use const reference to &S here. |