diff --git a/llvm/include/llvm/Support/RISCVISAInfo.h b/llvm/include/llvm/Support/RISCVISAInfo.h --- a/llvm/include/llvm/Support/RISCVISAInfo.h +++ b/llvm/include/llvm/Support/RISCVISAInfo.h @@ -18,7 +18,6 @@ namespace llvm { struct RISCVExtensionInfo { - std::string ExtName; unsigned MajorVersion; unsigned MinorVersion; }; diff --git a/llvm/lib/Support/RISCVISAInfo.cpp b/llvm/lib/Support/RISCVISAInfo.cpp --- a/llvm/lib/Support/RISCVISAInfo.cpp +++ b/llvm/lib/Support/RISCVISAInfo.cpp @@ -194,7 +194,6 @@ void RISCVISAInfo::addExtension(StringRef ExtName, unsigned MajorVersion, unsigned MinorVersion) { RISCVExtensionInfo Ext; - Ext.ExtName = ExtName.str(); Ext.MajorVersion = MajorVersion; Ext.MinorVersion = MinorVersion; Exts[ExtName.str()] = Ext; diff --git a/llvm/unittests/Support/RISCVISAInfoTest.cpp b/llvm/unittests/Support/RISCVISAInfoTest.cpp --- a/llvm/unittests/Support/RISCVISAInfoTest.cpp +++ b/llvm/unittests/Support/RISCVISAInfoTest.cpp @@ -16,8 +16,7 @@ bool operator==(const llvm::RISCVExtensionInfo &A, const llvm::RISCVExtensionInfo &B) { - return A.ExtName == B.ExtName && A.MajorVersion == B.MajorVersion && - A.MinorVersion == B.MinorVersion; + return A.MajorVersion == B.MajorVersion && A.MinorVersion == B.MinorVersion; } TEST(ParseNormalizedArchString, RejectsUpperCase) { @@ -50,32 +49,28 @@ ASSERT_THAT_EXPECTED(MaybeRV32I, Succeeded()); RISCVISAInfo &InfoRV32I = **MaybeRV32I; EXPECT_EQ(InfoRV32I.getExtensions().size(), 1UL); - EXPECT_TRUE(InfoRV32I.getExtensions().at("i") == - (RISCVExtensionInfo{"i", 2, 0})); + EXPECT_TRUE(InfoRV32I.getExtensions().at("i") == (RISCVExtensionInfo{2, 0})); EXPECT_EQ(InfoRV32I.getXLen(), 32U); auto MaybeRV32E = RISCVISAInfo::parseNormalizedArchString("rv32e2p0"); ASSERT_THAT_EXPECTED(MaybeRV32E, Succeeded()); RISCVISAInfo &InfoRV32E = **MaybeRV32E; EXPECT_EQ(InfoRV32E.getExtensions().size(), 1UL); - EXPECT_TRUE(InfoRV32E.getExtensions().at("e") == - (RISCVExtensionInfo{"e", 2, 0})); + EXPECT_TRUE(InfoRV32E.getExtensions().at("e") == (RISCVExtensionInfo{2, 0})); EXPECT_EQ(InfoRV32E.getXLen(), 32U); auto MaybeRV64I = RISCVISAInfo::parseNormalizedArchString("rv64i2p0"); ASSERT_THAT_EXPECTED(MaybeRV64I, Succeeded()); RISCVISAInfo &InfoRV64I = **MaybeRV64I; EXPECT_EQ(InfoRV64I.getExtensions().size(), 1UL); - EXPECT_TRUE(InfoRV64I.getExtensions().at("i") == - (RISCVExtensionInfo{"i", 2, 0})); + EXPECT_TRUE(InfoRV64I.getExtensions().at("i") == (RISCVExtensionInfo{2, 0})); EXPECT_EQ(InfoRV64I.getXLen(), 64U); auto MaybeRV64E = RISCVISAInfo::parseNormalizedArchString("rv64e2p0"); ASSERT_THAT_EXPECTED(MaybeRV64E, Succeeded()); RISCVISAInfo &InfoRV64E = **MaybeRV64E; EXPECT_EQ(InfoRV64E.getExtensions().size(), 1UL); - EXPECT_TRUE(InfoRV64E.getExtensions().at("e") == - (RISCVExtensionInfo{"e", 2, 0})); + EXPECT_TRUE(InfoRV64E.getExtensions().at("e") == (RISCVExtensionInfo{2, 0})); EXPECT_EQ(InfoRV64E.getXLen(), 64U); } @@ -85,14 +80,12 @@ ASSERT_THAT_EXPECTED(MaybeISAInfo, Succeeded()); RISCVISAInfo &Info = **MaybeISAInfo; EXPECT_EQ(Info.getExtensions().size(), 5UL); - EXPECT_TRUE(Info.getExtensions().at("i") == (RISCVExtensionInfo{"i", 5, 1})); - EXPECT_TRUE(Info.getExtensions().at("m") == (RISCVExtensionInfo{"m", 3, 2})); + EXPECT_TRUE(Info.getExtensions().at("i") == (RISCVExtensionInfo{5, 1})); + EXPECT_TRUE(Info.getExtensions().at("m") == (RISCVExtensionInfo{3, 2})); EXPECT_TRUE(Info.getExtensions().at("zmadeup") == - (RISCVExtensionInfo{"zmadeup", 11, 12})); - EXPECT_TRUE(Info.getExtensions().at("sfoo") == - (RISCVExtensionInfo{"sfoo", 2, 0})); - EXPECT_TRUE(Info.getExtensions().at("xbar") == - (RISCVExtensionInfo{"xbar", 3, 0})); + (RISCVExtensionInfo{11, 12})); + EXPECT_TRUE(Info.getExtensions().at("sfoo") == (RISCVExtensionInfo{2, 0})); + EXPECT_TRUE(Info.getExtensions().at("xbar") == (RISCVExtensionInfo{3, 0})); } TEST(ParseNormalizedArchString, UpdatesFLenMinVLenMaxELen) { @@ -139,7 +132,7 @@ RISCVISAInfo &InfoRV32I = **MaybeRV32I; RISCVISAInfo::OrderedExtensionMap ExtsRV32I = InfoRV32I.getExtensions(); EXPECT_EQ(ExtsRV32I.size(), 1UL); - EXPECT_TRUE(ExtsRV32I.at("i") == (RISCVExtensionInfo{"i", 2, 0})); + EXPECT_TRUE(ExtsRV32I.at("i") == (RISCVExtensionInfo{2, 0})); EXPECT_EQ(InfoRV32I.getXLen(), 32U); EXPECT_EQ(InfoRV32I.getFLen(), 0U); @@ -148,7 +141,7 @@ RISCVISAInfo &InfoRV32E = **MaybeRV32E; RISCVISAInfo::OrderedExtensionMap ExtsRV32E = InfoRV32E.getExtensions(); EXPECT_EQ(ExtsRV32E.size(), 1UL); - EXPECT_TRUE(ExtsRV32E.at("e") == (RISCVExtensionInfo{"e", 1, 9})); + EXPECT_TRUE(ExtsRV32E.at("e") == (RISCVExtensionInfo{1, 9})); EXPECT_EQ(InfoRV32E.getXLen(), 32U); EXPECT_EQ(InfoRV32E.getFLen(), 0U); @@ -157,11 +150,11 @@ RISCVISAInfo &InfoRV32G = **MaybeRV32G; RISCVISAInfo::OrderedExtensionMap ExtsRV32G = InfoRV32G.getExtensions(); EXPECT_EQ(ExtsRV32G.size(), 5UL); - EXPECT_TRUE(ExtsRV32G.at("i") == (RISCVExtensionInfo{"i", 2, 0})); - EXPECT_TRUE(ExtsRV32G.at("m") == (RISCVExtensionInfo{"m", 2, 0})); - EXPECT_TRUE(ExtsRV32G.at("a") == (RISCVExtensionInfo{"a", 2, 0})); - EXPECT_TRUE(ExtsRV32G.at("f") == (RISCVExtensionInfo{"f", 2, 0})); - EXPECT_TRUE(ExtsRV32G.at("d") == (RISCVExtensionInfo{"d", 2, 0})); + EXPECT_TRUE(ExtsRV32G.at("i") == (RISCVExtensionInfo{2, 0})); + EXPECT_TRUE(ExtsRV32G.at("m") == (RISCVExtensionInfo{2, 0})); + EXPECT_TRUE(ExtsRV32G.at("a") == (RISCVExtensionInfo{2, 0})); + EXPECT_TRUE(ExtsRV32G.at("f") == (RISCVExtensionInfo{2, 0})); + EXPECT_TRUE(ExtsRV32G.at("d") == (RISCVExtensionInfo{2, 0})); EXPECT_EQ(InfoRV32G.getXLen(), 32U); EXPECT_EQ(InfoRV32G.getFLen(), 64U); @@ -170,7 +163,7 @@ RISCVISAInfo &InfoRV64I = **MaybeRV64I; RISCVISAInfo::OrderedExtensionMap ExtsRV64I = InfoRV64I.getExtensions(); EXPECT_EQ(ExtsRV64I.size(), 1UL); - EXPECT_TRUE(ExtsRV64I.at("i") == (RISCVExtensionInfo{"i", 2, 0})); + EXPECT_TRUE(ExtsRV64I.at("i") == (RISCVExtensionInfo{2, 0})); EXPECT_EQ(InfoRV64I.getXLen(), 64U); EXPECT_EQ(InfoRV64I.getFLen(), 0U); @@ -179,11 +172,11 @@ RISCVISAInfo &InfoRV64G = **MaybeRV64G; RISCVISAInfo::OrderedExtensionMap ExtsRV64G = InfoRV64G.getExtensions(); EXPECT_EQ(ExtsRV64G.size(), 5UL); - EXPECT_TRUE(ExtsRV64G.at("i") == (RISCVExtensionInfo{"i", 2, 0})); - EXPECT_TRUE(ExtsRV64G.at("m") == (RISCVExtensionInfo{"m", 2, 0})); - EXPECT_TRUE(ExtsRV64G.at("a") == (RISCVExtensionInfo{"a", 2, 0})); - EXPECT_TRUE(ExtsRV64G.at("f") == (RISCVExtensionInfo{"f", 2, 0})); - EXPECT_TRUE(ExtsRV64G.at("d") == (RISCVExtensionInfo{"d", 2, 0})); + EXPECT_TRUE(ExtsRV64G.at("i") == (RISCVExtensionInfo{2, 0})); + EXPECT_TRUE(ExtsRV64G.at("m") == (RISCVExtensionInfo{2, 0})); + EXPECT_TRUE(ExtsRV64G.at("a") == (RISCVExtensionInfo{2, 0})); + EXPECT_TRUE(ExtsRV64G.at("f") == (RISCVExtensionInfo{2, 0})); + EXPECT_TRUE(ExtsRV64G.at("d") == (RISCVExtensionInfo{2, 0})); EXPECT_EQ(InfoRV64G.getXLen(), 64U); EXPECT_EQ(InfoRV64G.getFLen(), 64U); } @@ -237,7 +230,7 @@ RISCVISAInfo &Info = **MaybeISAInfo; RISCVISAInfo::OrderedExtensionMap Exts = Info.getExtensions(); EXPECT_EQ(Exts.size(), 1UL); - EXPECT_TRUE(Exts.at("i") == (RISCVExtensionInfo{"i", 2, 0})); + EXPECT_TRUE(Exts.at("i") == (RISCVExtensionInfo{2, 0})); } // Checks that supported extensions aren't incorrectly ignored when a @@ -246,7 +239,7 @@ RISCVISAInfo::parseArchString("rv32i_zbc1p0_xmadeup", true, false, true); ASSERT_THAT_EXPECTED(MaybeISAInfo, Succeeded()); RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions(); - EXPECT_TRUE(Exts.at("zbc") == (RISCVExtensionInfo{"zbc", 1, 0})); + EXPECT_TRUE(Exts.at("zbc") == (RISCVExtensionInfo{1, 0})); } TEST(ParseArchString, AcceptsVersionInLongOrShortForm) { @@ -254,13 +247,13 @@ auto MaybeISAInfo = RISCVISAInfo::parseArchString(Input, true); ASSERT_THAT_EXPECTED(MaybeISAInfo, Succeeded()); RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions(); - EXPECT_TRUE(Exts.at("i") == (RISCVExtensionInfo{"i", 2, 0})); + EXPECT_TRUE(Exts.at("i") == (RISCVExtensionInfo{2, 0})); } for (StringRef Input : {"rv32i_zfinx1", "rv32i_zfinx1p0"}) { auto MaybeISAInfo = RISCVISAInfo::parseArchString(Input, true); ASSERT_THAT_EXPECTED(MaybeISAInfo, Succeeded()); RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions(); - EXPECT_TRUE(Exts.at("zfinx") == (RISCVExtensionInfo{"zfinx", 1, 0})); + EXPECT_TRUE(Exts.at("zfinx") == (RISCVExtensionInfo{1, 0})); } } @@ -293,7 +286,7 @@ ASSERT_THAT_EXPECTED(MaybeISAInfo, Succeeded()); RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions(); EXPECT_EQ(Exts.size(), 1UL); - EXPECT_TRUE(Exts.at("i") == (RISCVExtensionInfo{"i", 2, 0})); + EXPECT_TRUE(Exts.at("i") == (RISCVExtensionInfo{2, 0})); } } @@ -303,13 +296,13 @@ ASSERT_THAT_EXPECTED(MaybeISAInfo, Succeeded()); RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions(); EXPECT_EQ(Exts.size(), 7UL); - EXPECT_EQ(Exts.at("i").ExtName, "i"); - EXPECT_EQ(Exts.at("m").ExtName, "m"); - EXPECT_EQ(Exts.at("a").ExtName, "a"); - EXPECT_EQ(Exts.at("f").ExtName, "f"); - EXPECT_EQ(Exts.at("d").ExtName, "d"); - EXPECT_EQ(Exts.at("c").ExtName, "c"); - EXPECT_EQ(Exts.at("zifencei").ExtName, "zifencei"); + EXPECT_EQ(Exts.count("i"), 1U); + EXPECT_EQ(Exts.count("m"), 1U); + EXPECT_EQ(Exts.count("a"), 1U); + EXPECT_EQ(Exts.count("f"), 1U); + EXPECT_EQ(Exts.count("d"), 1U); + EXPECT_EQ(Exts.count("c"), 1U); + EXPECT_EQ(Exts.count("zifencei"), 1U); } } @@ -359,12 +352,12 @@ ASSERT_THAT_EXPECTED(MaybeISAInfo, Succeeded()); RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions(); EXPECT_EQ(Exts.size(), 2UL); - EXPECT_EQ(Exts.at("zihintntl").ExtName, "zihintntl"); + EXPECT_EQ(Exts.count("zihintntl"), 1U); auto MaybeISAInfo2 = RISCVISAInfo::parseArchString("rv64izihintntl0p2", true); ASSERT_THAT_EXPECTED(MaybeISAInfo2, Succeeded()); RISCVISAInfo::OrderedExtensionMap Exts2 = (*MaybeISAInfo2)->getExtensions(); EXPECT_EQ(Exts2.size(), 2UL); - EXPECT_EQ(Exts2.at("zihintntl").ExtName, "zihintntl"); + EXPECT_EQ(Exts2.count("zihintntl"), 1U); } TEST(ParseArchString, @@ -382,7 +375,7 @@ ASSERT_THAT_EXPECTED(MaybeISAInfo, Succeeded()); RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions(); EXPECT_EQ(Exts.size(), 2UL); - EXPECT_TRUE(Exts.at("zihintntl") == (RISCVExtensionInfo{"zihintntl", 9, 9})); + EXPECT_TRUE(Exts.at("zihintntl") == (RISCVExtensionInfo{9, 9})); } TEST(ParseArchString, RejectsUnrecognizedVersionForExperimentalExtension) { @@ -407,23 +400,23 @@ RISCVISAInfo::OrderedExtensionMap ExtsRV64ID = (*MaybeRV64ID)->getExtensions(); EXPECT_EQ(ExtsRV64ID.size(), 3UL); - EXPECT_EQ(ExtsRV64ID.at("i").ExtName, "i"); - EXPECT_EQ(ExtsRV64ID.at("f").ExtName, "f"); - EXPECT_EQ(ExtsRV64ID.at("d").ExtName, "d"); + EXPECT_EQ(ExtsRV64ID.count("i"), 1U); + EXPECT_EQ(ExtsRV64ID.count("f"), 1U); + EXPECT_EQ(ExtsRV64ID.count("d"), 1U); auto MaybeRV32IZKN = RISCVISAInfo::parseArchString("rv64izkn", true); ASSERT_THAT_EXPECTED(MaybeRV32IZKN, Succeeded()); RISCVISAInfo::OrderedExtensionMap ExtsRV32IZKN = (*MaybeRV32IZKN)->getExtensions(); EXPECT_EQ(ExtsRV32IZKN.size(), 8UL); - EXPECT_EQ(ExtsRV32IZKN.at("i").ExtName, "i"); - EXPECT_EQ(ExtsRV32IZKN.at("zbkb").ExtName, "zbkb"); - EXPECT_EQ(ExtsRV32IZKN.at("zbkc").ExtName, "zbkc"); - EXPECT_EQ(ExtsRV32IZKN.at("zbkx").ExtName, "zbkx"); - EXPECT_EQ(ExtsRV32IZKN.at("zkne").ExtName, "zkne"); - EXPECT_EQ(ExtsRV32IZKN.at("zknd").ExtName, "zknd"); - EXPECT_EQ(ExtsRV32IZKN.at("zknh").ExtName, "zknh"); - EXPECT_EQ(ExtsRV32IZKN.at("zkn").ExtName, "zkn"); + EXPECT_EQ(ExtsRV32IZKN.count("i"), 1U); + EXPECT_EQ(ExtsRV32IZKN.count("zbkb"), 1U); + EXPECT_EQ(ExtsRV32IZKN.count("zbkc"), 1U); + EXPECT_EQ(ExtsRV32IZKN.count("zbkx"), 1U); + EXPECT_EQ(ExtsRV32IZKN.count("zkne"), 1U); + EXPECT_EQ(ExtsRV32IZKN.count("zknd"), 1U); + EXPECT_EQ(ExtsRV32IZKN.count("zknh"), 1U); + EXPECT_EQ(ExtsRV32IZKN.count("zkn"), 1U); } TEST(ParseArchString, RejectsConflictingExtensions) {