[llvm] [LTO] Introduce a new class ImportIDTable (PR #106503)
Jan Voung via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 29 07:46:31 PDT 2024
================
@@ -0,0 +1,79 @@
+//===- ImportIDTableTests.cpp - Unit tests for ImportIDTable --------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Transforms/IPO/FunctionImport.h"
+#include "gmock/gmock.h"
+#include "gtest/gtest.h"
+#include <set>
+#include <type_traits>
+
+using namespace llvm;
+
+TEST(ImportIDTableTests, Basic) {
+ FunctionImporter::ImportIDTable Table;
+
+ auto [Def, Decl] = Table.createImportIDs("mod", 123U);
+ auto [Def2, Decl2] = Table.createImportIDs("stuff", 456U);
+
+ // Def and Decl must be of the same unsigned integer type.
+ static_assert(
+ std::is_unsigned_v<FunctionImporter::ImportIDTable::ImportIDTy>);
+ static_assert(std::is_same_v<FunctionImporter::ImportIDTable::ImportIDTy,
+ decltype(Def)>);
+ static_assert(std::is_same_v<FunctionImporter::ImportIDTable::ImportIDTy,
+ decltype(Decl)>);
+
+ // Check that all IDs are unique.
+ std::set<FunctionImporter::ImportIDTable::ImportIDTy> IDs = {Def, Decl, Def2,
+ Decl2};
+ EXPECT_THAT(IDs, ::testing::SizeIs(4));
+
+ // Verify what Def maps to.
+ auto DefTuple = Table.lookup(Def);
+ EXPECT_EQ(std::get<0>(DefTuple), StringRef("mod"));
+ EXPECT_EQ(std::get<1>(DefTuple), 123U);
+ EXPECT_EQ(std::get<2>(DefTuple), GlobalValueSummary::Definition);
+
+ // Verify what Def maps to.
----------------
jvoung wrote:
Decl maps to ?
Same below for Decl2 ?
https://github.com/llvm/llvm-project/pull/106503
More information about the llvm-commits
mailing list