summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-07-19 00:35:22 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-07-19 00:35:22 +0000
commitfe358066eaea7db1a25a39b7dcf50cfaa7dd2c6d (patch)
tree60eadf08bcc745f6ddccfcd8f9cbf587317e6461 /llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
parentcb540bc03c29ad9e9c1982267135d2cee3033058 (diff)
downloadbcm5719-llvm-fe358066eaea7db1a25a39b7dcf50cfaa7dd2c6d.tar.gz
bcm5719-llvm-fe358066eaea7db1a25a39b7dcf50cfaa7dd2c6d.zip
AMDGPU/SI: Fix SI scheduler refcount issue
Without this fix, releaseSuccessors when InOrOutBlock is false could release SUs outside the schedule BasicBlock. Patch by Axel Davy llvm-svn: 275935
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp b/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
index 8de1c4a51e2..7125b411c60 100644
--- a/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
+++ b/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
@@ -464,6 +464,9 @@ void SIScheduleBlock::releaseSuccessors(SUnit *SU, bool InOrOutBlock) {
for (SDep& Succ : SU->Succs) {
SUnit *SuccSU = Succ.getSUnit();
+ if (SuccSU->NodeNum >= DAG->SUnits.size())
+ continue;
+
if (BC->isSUInBlock(SuccSU, ID) != InOrOutBlock)
continue;
OpenPOWER on IntegriCloud