From 8b200ec55e74d554fe260b1bbbe01f6006a827f1 Mon Sep 17 00:00:00 2001 From: Ahmed Bougacha Date: Thu, 23 Feb 2017 21:05:29 +0000 Subject: [PATCH] [CodeGen] Print MI without a newline when skipping debugloc. NFC. This matches the behavior for skip-operands. While there, document it. This is a follow-up to r296007. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296011 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/MachineInstr.h | 12 +++++++++--- lib/CodeGen/MachineInstr.cpp | 4 +++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h index 3331452ce8e..4a24a004230 100644 --- a/include/llvm/CodeGen/MachineInstr.h +++ b/include/llvm/CodeGen/MachineInstr.h @@ -1146,15 +1146,21 @@ public: /// instruction to this instruction. void copyImplicitOps(MachineFunction &MF, const MachineInstr &MI); - // - // Debugging support - // + /// Debugging support + /// @{ + /// Print this MI to \p OS. + /// Only print the defs and the opcode if \p SkipOpers is true. + /// Otherwise, also print operands if \p SkipDebugLoc is true. + /// Otherwise, also print the debug loc, with a terminating newline. + /// \p TII is used to print the opcode name. If it's not present, but the + /// MI is in a function, the opcode will be printed using the function's TII. void print(raw_ostream &OS, bool SkipOpers = false, bool SkipDebugLoc = false, const TargetInstrInfo *TII = nullptr) const; void print(raw_ostream &OS, ModuleSlotTracker &MST, bool SkipOpers = false, bool SkipDebugLoc = false, const TargetInstrInfo *TII = nullptr) const; void dump() const; + /// @} //===--------------------------------------------------------------------===// // Accessors used to build up machine instructions. diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp index acd61dddd20..f1e16565bca 100644 --- a/lib/CodeGen/MachineInstr.cpp +++ b/lib/CodeGen/MachineInstr.cpp @@ -1988,7 +1988,9 @@ void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST, } if (isIndirectDebugValue()) OS << " indirect"; - } else if (debugLoc && MF && !SkipDebugLoc) { + } else if (SkipDebugLoc) { + return; + } else if (debugLoc && MF) { if (!HaveSemi) OS << ";"; OS << " dbg:"; -- 2.40.0