summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-04-10 16:46:13 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-04-10 16:46:13 +0000
commit71a4c0ca074e048982eda0cabfa409157de43203 (patch)
tree14b7d625134acebfa1ea33f58e87d249a09b0fce
parenta7d936f0c06498996eab6e6e137880291a5bb776 (diff)
downloadbcm5719-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.h3
-rw-r--r--llvm/lib/CodeGen/MachineBasicBlock.cpp3
-rw-r--r--llvm/lib/CodeGen/MachineInstr.cpp8
-rw-r--r--llvm/test/CodeGen/ARM/sched-it-debug-nodes.mir3
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"
OpenPOWER on IntegriCloud