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

via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 30 15:44:31 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-tools-llvm-exegesis

Author: Min-Yih Hsu (mshockwave)

<details>
<summary>Changes</summary>

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

---
Full diff: https://github.com/llvm/llvm-project/pull/80080.diff


2 Files Affected:

- (modified) llvm/test/tools/llvm-exegesis/X86/analysis-epsilons.test (+2) 
- (modified) llvm/tools/llvm-exegesis/lib/Analysis.cpp (+3) 


``````````diff
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()) {

``````````

</details>


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


More information about the llvm-commits mailing list