From: Roman Lebedev Date: Mon, 4 Feb 2019 09:12:08 +0000 (+0000) Subject: [llvm-exegesis] Don't default to running&dumping all analyses to '-' X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7bbe219e0a39d21f348057daa222569378ac3124;p=llvm [llvm-exegesis] Don't default to running&dumping all analyses to '-' Summary: Up until the point i have looked in the source, i didn't even understood that i can disable 'cluster' output. I have always silenced it via ` &> /dev/null`. (And hoped it wasn't contributing much of the run time.) While i expect that it has it's use-cases i never once needed it so far. If i forget to silence it, console is completely flooded with that output. How about not expecting users to opt-out of analyses, but to explicitly specify the analyses that should be performed? Reviewers: courbet, gchatelet Reviewed By: courbet Subscribers: tschuett, RKSimon, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57648 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353021 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/CommandGuide/llvm-exegesis.rst b/docs/CommandGuide/llvm-exegesis.rst index bbd90563005..878ced3c3bf 100644 --- a/docs/CommandGuide/llvm-exegesis.rst +++ b/docs/CommandGuide/llvm-exegesis.rst @@ -190,7 +190,9 @@ OPTIONS .. option:: -mode=[latency|uops|inverse_throughput|analysis] - Specify the run mode. + Specify the run mode. Note that if you pick `analysis` mode, you also need + to specify at least one of the `-analysis-clusters-output-file=` and + `-analysis-inconsistencies-output-file=`. .. option:: -num-repetitions= @@ -205,12 +207,12 @@ OPTIONS .. option:: -analysis-clusters-output-file= If provided, write the analysis clusters as CSV to this file. "-" prints to - stdout. + stdout. By default, this analysis is not run. .. option:: -analysis-inconsistencies-output-file= If non-empty, write inconsistencies found during analysis to this file. `-` - prints to stdout. + prints to stdout. By default, this analysis is not run. .. option:: -analysis-numpoints= diff --git a/test/tools/llvm-exegesis/X86/analysis-uops-backwards.test b/test/tools/llvm-exegesis/X86/analysis-uops-backwards.test index 4c758ba9379..ac806da4869 100644 --- a/test/tools/llvm-exegesis/X86/analysis-uops-backwards.test +++ b/test/tools/llvm-exegesis/X86/analysis-uops-backwards.test @@ -1,5 +1,5 @@ # This tests backwards-compatibility of the yaml schema (see PR39082). -# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-inconsistencies-output-file="" -analysis-numpoints=1 | FileCheck %s +# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-numpoints=1 | FileCheck %s # CHECK: cluster_id,opcode_name,config,sched_class,HWPort0,HWPort1,HWPort2,HWPort3,HWPort4,HWPort5,HWPort6,HWPort7,NumMicroOps # CHECK-NEXT: vzeroall diff --git a/test/tools/llvm-exegesis/X86/analysis-uops-variant.test b/test/tools/llvm-exegesis/X86/analysis-uops-variant.test index 507e979e5dc..f1efa3af050 100644 --- a/test/tools/llvm-exegesis/X86/analysis-uops-variant.test +++ b/test/tools/llvm-exegesis/X86/analysis-uops-variant.test @@ -1,4 +1,4 @@ -# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-inconsistencies-output-file="" -analysis-numpoints=1 | FileCheck %s +# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-numpoints=1 | FileCheck %s # REQUIRES: asserts # (sched class name is NDEBUG only) diff --git a/test/tools/llvm-exegesis/X86/analysis-uops.test b/test/tools/llvm-exegesis/X86/analysis-uops.test index f1aae9750c4..95737e5d545 100644 --- a/test/tools/llvm-exegesis/X86/analysis-uops.test +++ b/test/tools/llvm-exegesis/X86/analysis-uops.test @@ -1,4 +1,4 @@ -# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-inconsistencies-output-file="" -analysis-numpoints=1 | FileCheck %s +# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-numpoints=1 | FileCheck %s # CHECK: cluster_id,opcode_name,config,sched_class,HWPort0,HWPort1,HWPort2,HWPort3,HWPort4,HWPort5,HWPort6,HWPort7,NumMicroOps # CHECK-NEXT: vzeroall diff --git a/tools/llvm-exegesis/llvm-exegesis.cpp b/tools/llvm-exegesis/llvm-exegesis.cpp index ce11fadbf6e..55903728f9d 100644 --- a/tools/llvm-exegesis/llvm-exegesis.cpp +++ b/tools/llvm-exegesis/llvm-exegesis.cpp @@ -91,10 +91,10 @@ static cl::opt static cl::opt AnalysisClustersOutputFile("analysis-clusters-output-file", cl::desc(""), - cl::init("-")); + cl::init("")); static cl::opt AnalysisInconsistenciesOutputFile("analysis-inconsistencies-output-file", - cl::desc(""), cl::init("-")); + cl::desc(""), cl::init("")); static cl::opt CpuName("mcpu", @@ -404,6 +404,13 @@ static void analysisMain() { if (BenchmarkFile.empty()) llvm::report_fatal_error("--benchmarks-file must be set."); + if (AnalysisClustersOutputFile.empty() && + AnalysisInconsistenciesOutputFile.empty()) { + llvm::report_fatal_error( + "At least one of --analysis-clusters-output-file and " + "--analysis-inconsistencies-output-file must be specified."); + } + llvm::InitializeNativeTarget(); llvm::InitializeNativeTargetAsmPrinter(); llvm::InitializeNativeTargetDisassembler();