From: David L. Jones <dlj@google.com>
Date: Tue, 8 Nov 2016 22:03:23 +0000 (+0000)
Subject: GlobalISel: make sure debugging variables are appropriately elided in release builds.
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c457ee1edb66646224fa2d454557688152f1776b;p=llvm

GlobalISel: make sure debugging variables are appropriately elided in release builds.

Summary:
There are two variables here that break. This change constrains both of them to
debug builds (via DEBUG() or #ifndef NDEBUG).

Reviewers: bkramer, t.p.northover

Subscribers: mehdi_amini, vkalintiris

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286300 91177308-0d34-0410-b5e6-96231b3b80d8
---

diff --git a/lib/CodeGen/GlobalISel/InstructionSelect.cpp b/lib/CodeGen/GlobalISel/InstructionSelect.cpp
index bd6d7e09091..72e4a23bb40 100644
--- a/lib/CodeGen/GlobalISel/InstructionSelect.cpp
+++ b/lib/CodeGen/GlobalISel/InstructionSelect.cpp
@@ -69,6 +69,8 @@ bool InstructionSelect::runOnMachineFunction(MachineFunction &MF) {
   // FIXME: freezeReservedRegs is now done in IRTranslator, but there are many
   // other MF/MFI fields we need to initialize.
 
+  const MachineRegisterInfo &MRI = MF.getRegInfo();
+
 #ifndef NDEBUG
   // Check that our input is fully legal: we require the function to have the
   // Legalized property, so it should be.
@@ -77,7 +79,6 @@ bool InstructionSelect::runOnMachineFunction(MachineFunction &MF) {
   // The RegBankSelected property is already checked in the verifier. Note
   // that it has the same layering problem, but we only use inline methods so
   // end up not needing to link against the GlobalISel library.
-  const MachineRegisterInfo &MRI = MF.getRegInfo();
   if (const LegalizerInfo *MLI = MF.getSubtarget().getLegalizerInfo())
     for (const MachineBasicBlock &MBB : MF)
       for (const MachineInstr &MI : MBB)
@@ -99,9 +100,10 @@ bool InstructionSelect::runOnMachineFunction(MachineFunction &MF) {
     bool ReachedBegin = false;
     for (auto MII = std::prev(MBB->end()), Begin = MBB->begin();
          !ReachedBegin;) {
+#ifndef NDEBUG
       // Keep track of the insertion range for debug printing.
       const auto AfterIt = std::next(MII);
-
+#endif
       // Select this instruction.
       MachineInstr &MI = *MII;