[llvm] [Exegesis] Print epsilon value in the sched model inconsistency report (PR #80080)

Min-Yih Hsu via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 30 15:44:05 PST 2024


https://github.com/mshockwave created https://github.com/llvm/llvm-project/pull/80080

Since I've formatted the epsilon value, I don't think it's necessary to escape it.

>From 00a6365c1749c13e4dc466bf2720834f23474f50 Mon Sep 17 00:00:00 2001
From: Min Hsu <min.hsu at sifive.com>
Date: Tue, 30 Jan 2024 14:50:09 -0800
Subject: [PATCH] [Exegesis] Print epsilon value in the sched model
 inconsistency report

---
 llvm/test/tools/llvm-exegesis/X86/analysis-epsilons.test | 2 ++
 llvm/tools/llvm-exegesis/lib/Analysis.cpp                | 3 +++
 2 files changed, 5 insertions(+)

diff --git a/llvm/test/tools/llvm-exegesis/X86/analysis-epsilons.test b/llvm/test/tools/llvm-exegesis/X86/analysis-epsilons.test
index 9d9b09d0c6a10..405b15a986218 100644
--- a/llvm/test/tools/llvm-exegesis/X86/analysis-epsilons.test
+++ b/llvm/test/tools/llvm-exegesis/X86/analysis-epsilons.test
@@ -20,10 +20,12 @@
 # CHECK-CLUSTERS-ONE-NEXT: {{^}}0,
 # CHECK-CLUSTERS-ONE-SAME: ,100.00{{$}}
 
+# CHECK-INCONSISTENCIES-FAIL: Epsilon: <span class="mono">0.10</span>
 # CHECK-INCONSISTENCIES-FAIL: contains instructions whose performance characteristics do not match that of LLVM
 # CHECK-INCONSISTENCIES-FAIL: contains instructions whose performance characteristics do not match that of LLVM
 # CHECK-INCONSISTENCIES-FAIL-NOT: contains instructions whose performance characteristics do not match that of LLVM
 
+# CHECK-INCONSISTENCIES-PASS: Epsilon: <span class="mono">100.00</span>
 # CHECK-INCONSISTENCIES-PASS-NOT: contains instructions whose performance characteristics do not match that of LLVM
 
 ---
diff --git a/llvm/tools/llvm-exegesis/lib/Analysis.cpp b/llvm/tools/llvm-exegesis/lib/Analysis.cpp
index 418fee8be74f0..be10c32cf08d5 100644
--- a/llvm/tools/llvm-exegesis/lib/Analysis.cpp
+++ b/llvm/tools/llvm-exegesis/lib/Analysis.cpp
@@ -524,6 +524,9 @@ Error Analysis::run<Analysis::PrintSchedClassInconsistencies>(
   OS << "</span></h3><h3>Cpu: <span class=\"mono\">";
   writeEscaped<kEscapeHtml>(OS, FirstPoint.CpuName);
   OS << "</span></h3>";
+  OS << "<h3>Epsilon: <span class=\"mono\">"
+     << format("%0.2f", std::sqrt(AnalysisInconsistencyEpsilonSquared_))
+     << "</span></h3>";
 
   const auto &SI = State_.getSubtargetInfo();
   for (const auto &RSCAndPoints : makePointsPerSchedClass()) {



More information about the llvm-commits mailing list