From e09ae201f207c17a67d55500f64e63fc084e592f Mon Sep 17 00:00:00 2001 From: "David L. Jones" Date: Tue, 8 Nov 2016 22:03:23 +0000 Subject: [PATCH] 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 llvm-svn: 286300 --- llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp b/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp index bd6d7e0..72e4a23b 100644 --- a/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp +++ b/llvm/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; -- 2.7.4