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. |