[MCA] Add -summary-view option

Summary:
While that is indeed a quite interesting summary stat,
there are cases where it does not really add anything
other than consuming extra lines.

Declutters the output of D48190.

Reviewers: RKSimon, andreadb, courbet, craig.topper

Reviewed By: andreadb

Subscribers: javed.absar, gbedwell, llvm-commits

Differential Revision: https://reviews.llvm.org/D48209

llvm-svn: 334833
This commit is contained in:
Roman Lebedev 2018-06-15 14:01:43 +00:00
parent 7c423001e4
commit 9ddf128f79
5 changed files with 28 additions and 73 deletions

View File

@ -6,12 +6,12 @@
add %eax, %eax
# ALL: Iterations: 100
# ALL-NEXT: Instructions: 100
# ALL-NEXT: Total Cycles: 103
# ALL-NEXT: Dispatch Width: 2
# ALL-NEXT: IPC: 0.97
# ALL-NEXT: Block RThroughput: 0.5
# FULLREPORT: Iterations: 100
# FULLREPORT-NEXT: Instructions: 100
# FULLREPORT-NEXT: Total Cycles: 103
# FULLREPORT-NEXT: Dispatch Width: 2
# FULLREPORT-NEXT: IPC: 0.97
# FULLREPORT-NEXT: Block RThroughput: 0.5
# ALL: Instruction Info:
# ALL-NEXT: [1]: #uOps

View File

@ -1,17 +1,19 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -all-views < %s | FileCheck %s -check-prefix=ALL -check-prefix=DEFAULTREPORT -check-prefix=FULLREPORT
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -all-views=true < %s | FileCheck %s -check-prefix=ALL -check-prefix=DEFAULTREPORT -check-prefix=FULLREPORT
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -all-views=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=NOREPORT
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s -check-prefix=ALL -check-prefix=DEFAULTREPORT
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -all-views < %s | FileCheck %s -check-prefix=DEFAULTREPORT -check-prefix=FULLREPORT
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -all-views=true < %s | FileCheck %s -check-prefix=DEFAULTREPORT -check-prefix=FULLREPORT
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -all-views=false < %s | FileCheck %s -check-prefix=NOREPORT -allow-empty
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s -check-prefix=DEFAULTREPORT
add %eax, %eax
# ALL: Iterations: 100
# ALL-NEXT: Instructions: 100
# ALL-NEXT: Total Cycles: 103
# ALL-NEXT: Dispatch Width: 2
# ALL-NEXT: IPC: 0.97
# ALL-NEXT: Block RThroughput: 0.5
# NOREPORT-NOT: {{.}}
# DEFAULTREPORT: Iterations: 100
# DEFAULTREPORT-NEXT: Instructions: 100
# DEFAULTREPORT-NEXT: Total Cycles: 103
# DEFAULTREPORT-NEXT: Dispatch Width: 2
# DEFAULTREPORT-NEXT: IPC: 0.97
# DEFAULTREPORT-NEXT: Block RThroughput: 0.5
# DEFAULTREPORT: Instruction Info:
# DEFAULTREPORT-NEXT: [1]: #uOps

View File

@ -12,34 +12,6 @@
xor %eax, %ebx
# ALL: Iterations: 1
# ALL-NEXT: Instructions: 1
# ALL-NEXT: Total Cycles: 4
# BDW-NEXT: Dispatch Width: 4
# BTVER2-NEXT: Dispatch Width: 2
# HSW-NEXT: Dispatch Width: 4
# IVB-NEXT: Dispatch Width: 4
# KNL-NEXT: Dispatch Width: 4
# SKX-NEXT: Dispatch Width: 6
# SKX-AVX512-NEXT: Dispatch Width: 6
# SLM-NEXT: Dispatch Width: 2
# SNB-NEXT: Dispatch Width: 4
# ZNVER1-NEXT: Dispatch Width: 4
# ALL-NEXT: IPC: 0.25
# BDW-NEXT: Block RThroughput: 0.3
# BTVER2-NEXT: Block RThroughput: 0.5
# HSW-NEXT: Block RThroughput: 0.3
# IVB-NEXT: Block RThroughput: 0.3
# KNL-NEXT: Block RThroughput: 0.3
# SKX-NEXT: Block RThroughput: 0.3
# SKX-AVX512-NEXT: Block RThroughput: 0.3
# SLM-NEXT: Block RThroughput: 0.5
# SNB-NEXT: Block RThroughput: 0.3
# ZNVER1-NEXT: Block RThroughput: 0.3
# ALL: Register File statistics:
# ALL-NEXT: Total number of mappings created: 2
# ALL-NEXT: Max number of mappings used: 2

View File

@ -12,34 +12,6 @@
xor %eax, %ebx
# ALL: Iterations: 1
# ALL-NEXT: Instructions: 1
# ALL-NEXT: Total Cycles: 4
# BDW-NEXT: Dispatch Width: 4
# BTVER2-NEXT: Dispatch Width: 2
# HSW-NEXT: Dispatch Width: 4
# IVB-NEXT: Dispatch Width: 4
# KNL-NEXT: Dispatch Width: 4
# SKX-NEXT: Dispatch Width: 6
# SKX-AVX512-NEXT: Dispatch Width: 6
# SLM-NEXT: Dispatch Width: 2
# SNB-NEXT: Dispatch Width: 4
# ZNVER1-NEXT: Dispatch Width: 4
# ALL-NEXT: IPC: 0.25
# BDW-NEXT: Block RThroughput: 0.3
# BTVER2-NEXT: Block RThroughput: 0.5
# HSW-NEXT: Block RThroughput: 0.3
# IVB-NEXT: Block RThroughput: 0.3
# KNL-NEXT: Block RThroughput: 0.3
# SKX-NEXT: Block RThroughput: 0.3
# SKX-AVX512-NEXT: Block RThroughput: 0.3
# SLM-NEXT: Block RThroughput: 0.5
# SNB-NEXT: Block RThroughput: 0.3
# ZNVER1-NEXT: Block RThroughput: 0.3
# ALL: Schedulers - number of cycles where we saw N instructions issued:
# ALL-NEXT: [# issued], [# cycles]
# ALL-NEXT: 0, 3 (75.0%)

View File

@ -109,6 +109,11 @@ static cl::opt<bool> PrintDispatchStats("dispatch-stats",
cl::desc("Print dispatch statistics"),
cl::cat(ViewOptions), cl::init(false));
static cl::opt<bool>
PrintSummaryView("summary-view", cl::Hidden,
cl::desc("Print summary view (enabled by default)"),
cl::cat(ViewOptions), cl::init(true));
static cl::opt<bool> PrintSchedulerStats("scheduler-stats",
cl::desc("Print scheduler statistics"),
cl::cat(ViewOptions), cl::init(false));
@ -302,6 +307,7 @@ static void processViewOptions() {
return;
if (EnableAllViews.getNumOccurrences()) {
processOptionImpl(PrintSummaryView, EnableAllViews);
processOptionImpl(PrintResourcePressureView, EnableAllViews);
processOptionImpl(PrintTimelineView, EnableAllViews);
processOptionImpl(PrintInstructionInfoView, EnableAllViews);
@ -311,6 +317,7 @@ static void processViewOptions() {
EnableAllViews.getPosition() < EnableAllStats.getPosition()
? EnableAllStats
: EnableAllViews;
processOptionImpl(PrintSummaryView, Default);
processOptionImpl(PrintRegisterFileStats, Default);
processOptionImpl(PrintDispatchStats, Default);
processOptionImpl(PrintSchedulerStats, Default);
@ -495,7 +502,9 @@ int main(int argc, char **argv) {
LoadQueueSize, StoreQueueSize, AssumeNoAlias);
mca::BackendPrinter Printer(B);
Printer.addView(llvm::make_unique<mca::SummaryView>(SM, S, Width));
if (PrintSummaryView)
Printer.addView(llvm::make_unique<mca::SummaryView>(SM, S, Width));
if (PrintInstructionInfoView)
Printer.addView(
llvm::make_unique<mca::InstructionInfoView>(*STI, *MCII, S, *IP));