[llvm] 8cd8ebe - [MLGO] Use double comparison facilities for reg alloc scoring tests (#88862)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 16 10:25:06 PDT 2024
Author: Aiden Grossman
Date: 2024-04-16T10:25:02-07:00
New Revision: 8cd8ebe153391993a3668d2ac8d2994d9491f3ef
URL: https://github.com/llvm/llvm-project/commit/8cd8ebe153391993a3668d2ac8d2994d9491f3ef
DIFF: https://github.com/llvm/llvm-project/commit/8cd8ebe153391993a3668d2ac8d2994d9491f3ef.diff
LOG: [MLGO] Use double comparison facilities for reg alloc scoring tests (#88862)
This patch switches from using direct equality (ASSERT_EQ) to the
floating point comparison facilities (ASSERT_DOUBLE_EQ) within google
test to avoid weird floating point problems. There is at least one
downstream that maintains a patch for issues cropping up from the direct
equality.
https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/llvm17/allocscore.patch
Added:
Modified:
llvm/unittests/CodeGen/RegAllocScoreTest.cpp
Removed:
################################################################################
diff --git a/llvm/unittests/CodeGen/RegAllocScoreTest.cpp b/llvm/unittests/CodeGen/RegAllocScoreTest.cpp
index ff7146eaf9439a..eae517f9d01cf2 100644
--- a/llvm/unittests/CodeGen/RegAllocScoreTest.cpp
+++ b/llvm/unittests/CodeGen/RegAllocScoreTest.cpp
@@ -166,19 +166,20 @@ TEST(RegAllocScoreTest, Counts) {
ASSERT_EQ(MF->size(), 2U);
const auto TotalScore =
llvm::calculateRegAllocScore(*MF, MBBFreqMock, IsRemat);
- ASSERT_EQ(Freq1, TotalScore.copyCounts());
- ASSERT_EQ(2.0 * Freq1 + Freq2, TotalScore.loadCounts());
- ASSERT_EQ(Freq1 + Freq2, TotalScore.storeCounts());
- ASSERT_EQ(Freq2, TotalScore.loadStoreCounts());
- ASSERT_EQ(Freq1, TotalScore.cheapRematCounts());
- ASSERT_EQ(Freq2, TotalScore.expensiveRematCounts());
- ASSERT_EQ(TotalScore.getScore(),
- TotalScore.copyCounts() * CopyWeight +
- TotalScore.loadCounts() * LoadWeight +
- TotalScore.storeCounts() * StoreWeight +
- TotalScore.loadStoreCounts() * (LoadWeight + StoreWeight) +
- TotalScore.cheapRematCounts() * CheapRematWeight +
- TotalScore.expensiveRematCounts() * ExpensiveRematWeight
+ ASSERT_DOUBLE_EQ(Freq1, TotalScore.copyCounts());
+ ASSERT_DOUBLE_EQ(2.0 * Freq1 + Freq2, TotalScore.loadCounts());
+ ASSERT_DOUBLE_EQ(Freq1 + Freq2, TotalScore.storeCounts());
+ ASSERT_DOUBLE_EQ(Freq2, TotalScore.loadStoreCounts());
+ ASSERT_DOUBLE_EQ(Freq1, TotalScore.cheapRematCounts());
+ ASSERT_DOUBLE_EQ(Freq2, TotalScore.expensiveRematCounts());
+ ASSERT_DOUBLE_EQ(
+ TotalScore.getScore(),
+ TotalScore.copyCounts() * CopyWeight +
+ TotalScore.loadCounts() * LoadWeight +
+ TotalScore.storeCounts() * StoreWeight +
+ TotalScore.loadStoreCounts() * (LoadWeight + StoreWeight) +
+ TotalScore.cheapRematCounts() * CheapRematWeight +
+ TotalScore.expensiveRematCounts() * ExpensiveRematWeight
);
}
More information about the llvm-commits
mailing list