diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-04-10 16:46:13 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-04-10 16:46:13 +0000 |
| commit | 71a4c0ca074e048982eda0cabfa409157de43203 (patch) | |
| tree | 14b7d625134acebfa1ea33f58e87d249a09b0fce | |
| parent | a7d936f0c06498996eab6e6e137880291a5bb776 (diff) | |
| download | bcm5719-llvm-71a4c0ca074e048982eda0cabfa409157de43203.tar.gz bcm5719-llvm-71a4c0ca074e048982eda0cabfa409157de43203.zip | |
[CodeGen] Fix printing bundles in MIR output
Delay printing the newline until after the opening bracket was
printed, e.g.
BUNDLE implicit-def $r1, implicit-def $r21, implicit $r1 {
renamable $r1 = S2_asr_i_r renamable $r1, 1
renamable $r21 = A2_tfrsi 0
}
instead of
BUNDLE implicit-def $r1, implicit-def $r21, implicit $r1
{ renamable $r1 = S2_asr_i_r renamable $r1, 1
renamable $r21 = A2_tfrsi 0
}
llvm-svn: 329719
| -rw-r--r-- | llvm/include/llvm/CodeGen/MachineInstr.h | 3 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MachineBasicBlock.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MachineInstr.cpp | 8 | ||||
| -rw-r--r-- | llvm/test/CodeGen/ARM/sched-it-debug-nodes.mir | 3 |
4 files changed, 10 insertions, 7 deletions
diff --git a/llvm/include/llvm/CodeGen/MachineInstr.h b/llvm/include/llvm/CodeGen/MachineInstr.h index ea94be02797..0e1ad9428b9 100644 --- a/llvm/include/llvm/CodeGen/MachineInstr.h +++ b/llvm/include/llvm/CodeGen/MachineInstr.h @@ -1244,10 +1244,11 @@ public: /// \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 IsStandalone = true, bool SkipOpers = false, - bool SkipDebugLoc = false, + bool SkipDebugLoc = false, bool AddNewLine = true, const TargetInstrInfo *TII = nullptr) const; void print(raw_ostream &OS, ModuleSlotTracker &MST, bool IsStandalone = true, bool SkipOpers = false, bool SkipDebugLoc = false, + bool AddNewLine = true, const TargetInstrInfo *TII = nullptr) const; void dump() const; /// @} diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp index 168a4513b96..4692cbff87d 100644 --- a/llvm/lib/CodeGen/MachineBasicBlock.cpp +++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp @@ -408,12 +408,13 @@ void MachineBasicBlock::print(raw_ostream &OS, ModuleSlotTracker &MST, OS.indent(IsInBundle ? 4 : 2); MI.print(OS, MST, IsStandalone, /*SkipOpers=*/false, /*SkipDebugLoc=*/false, - &TII); + /*AddNewLine=*/false, &TII); if (!IsInBundle && MI.getFlag(MachineInstr::BundledSucc)) { OS << " {"; IsInBundle = true; } + OS << '\n'; } if (IsInBundle) diff --git a/llvm/lib/CodeGen/MachineInstr.cpp b/llvm/lib/CodeGen/MachineInstr.cpp index 8f5e8e964ae..d3a09f06ebd 100644 --- a/llvm/lib/CodeGen/MachineInstr.cpp +++ b/llvm/lib/CodeGen/MachineInstr.cpp @@ -1235,7 +1235,8 @@ LLVM_DUMP_METHOD void MachineInstr::dump() const { #endif void MachineInstr::print(raw_ostream &OS, bool IsStandalone, bool SkipOpers, - bool SkipDebugLoc, const TargetInstrInfo *TII) const { + bool SkipDebugLoc, bool AddNewLine, + const TargetInstrInfo *TII) const { const Module *M = nullptr; const Function *F = nullptr; if (const MachineFunction *MF = getMFIfAvailable(*this)) { @@ -1253,7 +1254,7 @@ void MachineInstr::print(raw_ostream &OS, bool IsStandalone, bool SkipOpers, void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST, bool IsStandalone, bool SkipOpers, bool SkipDebugLoc, - const TargetInstrInfo *TII) const { + bool AddNewLine, const TargetInstrInfo *TII) const { // We can be a bit tidier if we know the MachineFunction. const MachineFunction *MF = nullptr; const TargetRegisterInfo *TRI = nullptr; @@ -1486,7 +1487,8 @@ void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST, OS << " indirect"; } - OS << '\n'; + if (AddNewLine) + OS << '\n'; } bool MachineInstr::addRegisterKilled(unsigned IncomingReg, diff --git a/llvm/test/CodeGen/ARM/sched-it-debug-nodes.mir b/llvm/test/CodeGen/ARM/sched-it-debug-nodes.mir index 56d6734027b..318a371e87c 100644 --- a/llvm/test/CodeGen/ARM/sched-it-debug-nodes.mir +++ b/llvm/test/CodeGen/ARM/sched-it-debug-nodes.mir @@ -32,8 +32,7 @@ ; debug value as KILL'ed, resulting in a DEBUG_VALUE node changing codegen! (or ; hopefully, triggering an assert). - ; CHECK: BUNDLE implicit-def dead $itstate{{.*}} - ; CHECK-NEXT: { + ; CHECK: BUNDLE implicit-def dead $itstate{{.*}} { ; CHECK: DBG_VALUE debug-use $r1, debug-use $noreg, !"u" ; CHECK-NOT: DBG_VALUE killed $r1, $noreg, !"u" |

