summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPuyan Lotfi <puyan@puyan.org>2019-05-31 17:34:25 +0000
committerPuyan Lotfi <puyan@puyan.org>2019-05-31 17:34:25 +0000
commit3ea6b24f41471358a51134f71177bc7caa2eacfc (patch)
tree15e225dc35676497408de876b1d0436978677df9
parent312f3a2bbf45ab2c0cbbbc9ad04fb5d4c0517aaf (diff)
downloadbcm5719-llvm-3ea6b24f41471358a51134f71177bc7caa2eacfc.tar.gz
bcm5719-llvm-3ea6b24f41471358a51134f71177bc7caa2eacfc.zip
[MIR-Canon] Don't do vreg skip for independent instructions if there are none.
We don't want to create vregs if there is nothing to use them for. That causes verifier errors. Differential Revision: https://reviews.llvm.org/D62740 llvm-svn: 362247
-rw-r--r--llvm/lib/CodeGen/MIRCanonicalizerPass.cpp3
-rw-r--r--llvm/test/CodeGen/MIR/AMDGPU/parse-order-reserved-regs.mir1
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp b/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp
index a4097232d7d..c7d1131d7b8 100644
--- a/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp
+++ b/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp
@@ -743,7 +743,8 @@ static bool runOnBasicBlock(MachineBasicBlock *MBB,
// of the MachineBasicBlock so that they are named in the order that we sorted
// them alphabetically. Eventually we wont need SkipVRegs because we will use
// named vregs instead.
- NVC.SkipVRegs();
+ if (IdempotentInstCount)
+ NVC.SkipVRegs();
auto MII = MBB->begin();
for (unsigned i = 0; i < IdempotentInstCount && MII != MBB->end(); ++i) {
diff --git a/llvm/test/CodeGen/MIR/AMDGPU/parse-order-reserved-regs.mir b/llvm/test/CodeGen/MIR/AMDGPU/parse-order-reserved-regs.mir
index abb2dde4d9e..629f7aefd6a 100644
--- a/llvm/test/CodeGen/MIR/AMDGPU/parse-order-reserved-regs.mir
+++ b/llvm/test/CodeGen/MIR/AMDGPU/parse-order-reserved-regs.mir
@@ -1,4 +1,5 @@
# RUN: llc -march=amdgcn -run-pass=none -verify-machineinstrs -o - %s | FileCheck %s
+# RUN: llc -march=amdgcn -run-pass mir-canonicalizer -verify-machineinstrs -o - %s
# Previously getReservedRegs was called before parsing
# machineFunctionInfo, but the AMDGPU implementation depends on
OpenPOWER on IntegriCloud