Add a ProfileCount class to represent entry counts.
Summary:
The class wraps a uint64_t and an enum to represent the type of profile
count (real and synthetic) with some helper methods.
Reviewers: davidxl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D41883
llvm-svn: 322771
diff --git a/llvm/unittests/IR/MetadataTest.cpp b/llvm/unittests/IR/MetadataTest.cpp
index 672de55..51ca840 100644
--- a/llvm/unittests/IR/MetadataTest.cpp
+++ b/llvm/unittests/IR/MetadataTest.cpp
@@ -2436,9 +2436,20 @@
TEST_F(FunctionAttachmentTest, EntryCount) {
Function *F = getFunction("foo");
EXPECT_FALSE(F->getEntryCount().hasValue());
- F->setEntryCount(12304);
- EXPECT_TRUE(F->getEntryCount().hasValue());
- EXPECT_EQ(12304u, *F->getEntryCount());
+ F->setEntryCount(12304, Function::PCT_Real);
+ auto Count = F->getEntryCount();
+ EXPECT_TRUE(Count.hasValue());
+ EXPECT_EQ(12304u, Count.getCount());
+ EXPECT_EQ(Function::PCT_Real, Count.getType());
+
+ // Repeat the same for synthetic counts.
+ F = getFunction("bar");
+ EXPECT_FALSE(F->getEntryCount().hasValue());
+ F->setEntryCount(123, Function::PCT_Synthetic);
+ Count = F->getEntryCount();
+ EXPECT_TRUE(Count.hasValue());
+ EXPECT_EQ(123u, Count.getCount());
+ EXPECT_EQ(Function::PCT_Synthetic, Count.getType());
}
TEST_F(FunctionAttachmentTest, SubprogramAttachment) {