summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU
diff options
context:
space:
mode:
authorYaxun Liu <Yaxun.Liu@amd.com>2017-12-15 03:56:57 +0000
committerYaxun Liu <Yaxun.Liu@amd.com>2017-12-15 03:56:57 +0000
commitc41e2f6e7b71530bf1b3fed95e0f67ddbba29d3f (patch)
treef61a9cfeee07ada16e54862c680ea6a73c08d7db /llvm/lib/Target/AMDGPU
parentb99a7102c13bd6bf629789750d2e5c08e9862da1 (diff)
downloadbcm5719-llvm-c41e2f6e7b71530bf1b3fed95e0f67ddbba29d3f.tar.gz
bcm5719-llvm-c41e2f6e7b71530bf1b3fed95e0f67ddbba29d3f.zip
Recommit CodeGen: Fix assertion in machine inst sheduler due to llvm.dbg.value
The regression on ppc64 was not due to this commit. llvm-svn: 320788
Diffstat (limited to 'llvm/lib/Target/AMDGPU')
-rw-r--r--llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp b/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
index b325a49e11f..0e80e936ab8 100644
--- a/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+++ b/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
@@ -394,7 +394,8 @@ void GCNScheduleDAGMILive::schedule() {
if (MI->getIterator() != RegionEnd) {
BB->remove(MI);
BB->insert(RegionEnd, MI);
- LIS->handleMove(*MI, true);
+ if (!MI->isDebugValue())
+ LIS->handleMove(*MI, true);
}
// Reset read-undef flags and update them later.
for (auto &Op : MI->operands())
@@ -402,13 +403,15 @@ void GCNScheduleDAGMILive::schedule() {
Op.setIsUndef(false);
RegisterOperands RegOpers;
RegOpers.collect(*MI, *TRI, MRI, ShouldTrackLaneMasks, false);
- if (ShouldTrackLaneMasks) {
- // Adjust liveness and add missing dead+read-undef flags.
- SlotIndex SlotIdx = LIS->getInstructionIndex(*MI).getRegSlot();
- RegOpers.adjustLaneLiveness(*LIS, MRI, SlotIdx, MI);
- } else {
- // Adjust for missing dead-def flags.
- RegOpers.detectDeadDefs(*MI, *LIS);
+ if (!MI->isDebugValue()) {
+ if (ShouldTrackLaneMasks) {
+ // Adjust liveness and add missing dead+read-undef flags.
+ SlotIndex SlotIdx = LIS->getInstructionIndex(*MI).getRegSlot();
+ RegOpers.adjustLaneLiveness(*LIS, MRI, SlotIdx, MI);
+ } else {
+ // Adjust for missing dead-def flags.
+ RegOpers.detectDeadDefs(*MI, *LIS);
+ }
}
RegionEnd = MI->getIterator();
++RegionEnd;
OpenPOWER on IntegriCloud