[AMDGPU] Ignore non-SUnits edges
authorPiotr Sobczak <piotr.sobczak@amd.com>
Fri, 19 Apr 2019 06:19:14 +0000 (06:19 +0000)
committerPiotr Sobczak <piotr.sobczak@amd.com>
Fri, 19 Apr 2019 06:19:14 +0000 (06:19 +0000)
commit72e2960e525a30bd8a105bd474b5c38267de02fc
treec39759215183c8acda8511f99911240c41851b1c
parentce3f75df1fffdb8bcef66ff82e83fa895e00260e
[AMDGPU] Ignore non-SUnits edges

Summary:
Ignore edges to non-SUnits (e.g. ExitSU) when checking
for low latency instructions.

When calling the function isLowLatencyInstruction(),
an ExitSU could be on the list of successors, not necessarily
a regular SU. In other places in the code there is a check
"Succ->NodeNum >= DAGSize" to prevent further processing of
ExitSU as "Succ->getInstr()" is NULL in such a case.
Also, 8 out of 9 cases of "SUnit *Succ = SuccDep.getSUnit())"
has the guard, so it is clearly an omission here.

Change-Id: Ica86f0327c7b2e6bcb56958e804ea6c71084663b

Reviewers: nhaehnle

Reviewed By: nhaehnle

Subscribers: MatzeB, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, javed.absar, llvm-commits

Tags: #llvm

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

llvm-svn: 358740
llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp