Skip to content

Commit 2f8c6a9

Browse files
authored
Merge branch 'main' into test_reversed_strided_load
2 parents d951054 + 5719fb8 commit 2f8c6a9

File tree

6 files changed

+77
-19
lines changed

6 files changed

+77
-19
lines changed

llvm/include/llvm/ADT/DenseMap.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -887,10 +887,8 @@ class SmallDenseMap
887887
AlignedCharArrayUnion<BucketT[InlineBuckets], LargeRep> storage;
888888

889889
public:
890-
explicit SmallDenseMap(unsigned NumInitBuckets = 0) {
891-
if (NumInitBuckets > InlineBuckets)
892-
NumInitBuckets = llvm::bit_ceil(NumInitBuckets);
893-
init(NumInitBuckets);
890+
explicit SmallDenseMap(unsigned NumElementsToReservre = 0) {
891+
init(NumElementsToReservre);
894892
}
895893

896894
SmallDenseMap(const SmallDenseMap &other) : BaseT() {
@@ -905,7 +903,7 @@ class SmallDenseMap
905903

906904
template <typename InputIt>
907905
SmallDenseMap(const InputIt &I, const InputIt &E) {
908-
init(NextPowerOf2(std::distance(I, E)));
906+
init(std::distance(I, E));
909907
this->insert(I, E);
910908
}
911909

@@ -1017,7 +1015,8 @@ class SmallDenseMap
10171015
this->BaseT::copyFrom(other);
10181016
}
10191017

1020-
void init(unsigned InitBuckets) {
1018+
void init(unsigned InitNumEntries) {
1019+
auto InitBuckets = BaseT::getMinBucketToReserveForEntries(InitNumEntries);
10211020
Small = true;
10221021
if (InitBuckets > InlineBuckets) {
10231022
Small = false;

llvm/unittests/ADT/DenseMapTest.cpp

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -962,4 +962,73 @@ TEST(DenseMapCustomTest, PairPrinting) {
962962
EXPECT_EQ(R"({ (1, "one"), (2, "two") })", ::testing::PrintToString(Map));
963963
}
964964

965+
TEST(DenseMapCustomTest, InitSize) {
966+
constexpr unsigned ElemSize = sizeof(std::pair<int *, int>);
967+
968+
{
969+
DenseMap<int *, int> Map;
970+
EXPECT_EQ(ElemSize * 0U, Map.getMemorySize());
971+
}
972+
{
973+
DenseMap<int *, int> Map(0);
974+
EXPECT_EQ(ElemSize * 0U, Map.getMemorySize());
975+
}
976+
{
977+
DenseMap<int *, int> Map(1);
978+
EXPECT_EQ(ElemSize * 4U, Map.getMemorySize());
979+
}
980+
{
981+
DenseMap<int *, int> Map(2);
982+
EXPECT_EQ(ElemSize * 4U, Map.getMemorySize());
983+
}
984+
{
985+
DenseMap<int *, int> Map(3);
986+
EXPECT_EQ(ElemSize * 8U, Map.getMemorySize());
987+
}
988+
{
989+
int A, B;
990+
DenseMap<int *, int> Map = {{&A, 1}, {&B, 2}};
991+
EXPECT_EQ(ElemSize * 4U, Map.getMemorySize());
992+
}
993+
{
994+
int A, B, C;
995+
DenseMap<int *, int> Map = {{&A, 1}, {&B, 2}, {&C, 3}};
996+
EXPECT_EQ(ElemSize * 8U, Map.getMemorySize());
997+
}
998+
}
999+
1000+
TEST(SmallDenseMapCustomTest, InitSize) {
1001+
constexpr unsigned ElemSize = sizeof(std::pair<int *, int>);
1002+
{
1003+
SmallDenseMap<int *, int> Map;
1004+
EXPECT_EQ(ElemSize * 4U, Map.getMemorySize());
1005+
}
1006+
{
1007+
SmallDenseMap<int *, int> Map(0);
1008+
EXPECT_EQ(ElemSize * 4U, Map.getMemorySize());
1009+
}
1010+
{
1011+
SmallDenseMap<int *, int> Map(1);
1012+
EXPECT_EQ(ElemSize * 4U, Map.getMemorySize());
1013+
}
1014+
{
1015+
SmallDenseMap<int *, int> Map(2);
1016+
EXPECT_EQ(ElemSize * 4U, Map.getMemorySize());
1017+
}
1018+
{
1019+
SmallDenseMap<int *, int> Map(3);
1020+
EXPECT_EQ(ElemSize * 8U, Map.getMemorySize());
1021+
}
1022+
{
1023+
int A, B;
1024+
SmallDenseMap<int *, int> Map = {{&A, 1}, {&B, 2}};
1025+
EXPECT_EQ(ElemSize * 4U, Map.getMemorySize());
1026+
}
1027+
{
1028+
int A, B, C;
1029+
SmallDenseMap<int *, int> Map = {{&A, 1}, {&B, 2}, {&C, 3}};
1030+
EXPECT_EQ(ElemSize * 8U, Map.getMemorySize());
1031+
}
1032+
}
1033+
9651034
} // namespace

llvm/utils/gn/secondary/llvm/lib/Target/AVR/Disassembler/BUILD.gn

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ import("//llvm/utils/TableGen/tablegen.gni")
22

33
tablegen("AVRGenDisassemblerTables") {
44
visibility = [ ":Disassembler" ]
5-
args = [
6-
"-gen-disassembler",
7-
"-ignore-non-decodable-operands",
8-
]
5+
args = [ "-gen-disassembler" ]
96
td_file = "../AVR.td"
107
}
118

llvm/utils/gn/secondary/llvm/lib/Target/BPF/Disassembler/BUILD.gn

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ import("//llvm/utils/TableGen/tablegen.gni")
22

33
tablegen("BPFGenDisassemblerTables") {
44
visibility = [ ":Disassembler" ]
5-
args = [
6-
"-gen-disassembler",
7-
"-ignore-non-decodable-operands",
8-
]
5+
args = [ "-gen-disassembler" ]
96
td_file = "../BPF.td"
107
}
118

llvm/utils/gn/secondary/llvm/lib/Target/Hexagon/Disassembler/BUILD.gn

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ import("//llvm/utils/TableGen/tablegen.gni")
22

33
tablegen("HexagonGenDisassemblerTables") {
44
visibility = [ ":Disassembler" ]
5-
args = [
6-
"-gen-disassembler",
7-
"-ignore-non-decodable-operands",
8-
]
5+
args = [ "-gen-disassembler" ]
96
td_file = "../Hexagon.td"
107
}
118

llvm/utils/gn/secondary/llvm/lib/Target/RISCV/Disassembler/BUILD.gn

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ tablegen("RISCVGenDisassemblerTables") {
55
args = [
66
"-gen-disassembler",
77
"-specialize-decoders-per-bitwidth",
8-
"-ignore-non-decodable-operands",
98
]
109
td_file = "../RISCV.td"
1110
}

0 commit comments

Comments
 (0)