mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
[SlotIndexes] Add print-slotindexes to disable printing slotindexes
Summary: When we print the IR with --print-after/before-*, SlotIndexes will be printed whenever available (We haven't freed it). This introduces some noises when we try to compare the IR among different optimizations. eg: -print-before=machine-cp will print SlotIndexes for 1st machine-cp pass, but NOT for 2nd machine-cp; -print-after=machine-cp will NOT print SlotIndexes for both machine-cp passes. So SlotIndexes in 1st pass introduce noises when differing these IRs. This patch introduces an option to hide indexes. Reviewers: stoklund, thegameg, qcolombet Reviewed By: thegameg Subscribers: hiraditya, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66500 llvm-svn: 369650
This commit is contained in:
parent
14754dff2b
commit
f8fd02f6e7
@ -39,6 +39,12 @@ using namespace llvm;
|
||||
|
||||
#define DEBUG_TYPE "codegen"
|
||||
|
||||
static cl::opt<bool> PrintSlotIndexes(
|
||||
"print-slotindexes",
|
||||
cl::desc("When printing machine IR, annotate instructions and blocks with "
|
||||
"SlotIndexes when available"),
|
||||
cl::init(true), cl::Hidden);
|
||||
|
||||
MachineBasicBlock::MachineBasicBlock(MachineFunction &MF, const BasicBlock *B)
|
||||
: BB(B), Number(-1), xParent(&MF) {
|
||||
Insts.Parent = this;
|
||||
@ -291,7 +297,7 @@ void MachineBasicBlock::print(raw_ostream &OS, ModuleSlotTracker &MST,
|
||||
return;
|
||||
}
|
||||
|
||||
if (Indexes)
|
||||
if (Indexes && PrintSlotIndexes)
|
||||
OS << Indexes->getMBBStartIdx(this) << '\t';
|
||||
|
||||
OS << "bb." << getNumber();
|
||||
@ -402,7 +408,7 @@ void MachineBasicBlock::print(raw_ostream &OS, ModuleSlotTracker &MST,
|
||||
|
||||
bool IsInBundle = false;
|
||||
for (const MachineInstr &MI : instrs()) {
|
||||
if (Indexes) {
|
||||
if (Indexes && PrintSlotIndexes) {
|
||||
if (Indexes->hasIndex(MI))
|
||||
OS << Indexes->getInstructionIndex(MI);
|
||||
OS << '\t';
|
||||
|
12
test/Other/print-slotindexes.ll
Normal file
12
test/Other/print-slotindexes.ll
Normal file
@ -0,0 +1,12 @@
|
||||
; RUN: llc -print-after=slotindexes < %s 2>&1 | FileCheck %s --check-prefixes=ALL,SI
|
||||
; RUN: llc -print-after=slotindexes -print-slotindexes=false < %s 2>&1 | FileCheck %s --check-prefixes=ALL,NOSI
|
||||
; REQUIRES: default_triple
|
||||
define void @foo(){
|
||||
ret void
|
||||
}
|
||||
|
||||
;CHECK: IR Dump {{.*}}
|
||||
;CHECK: # Machine code for function foo{{.*}}
|
||||
;SI: {{[0-9]+}}B bb.0 (%ir-block.0)
|
||||
;NOSI: {{^}}bb.0 (%ir-block.0)
|
||||
|
Loading…
Reference in New Issue
Block a user