@@ -1727,9 +1727,9 @@ static void findCSKYMultilibs(const Driver &D, const llvm::Triple &TargetTriple,
1727
1727
// / march=rv32ima are not compatible, because software and hardware
1728
1728
// / atomic operation can't work together correctly.
1729
1729
static bool
1730
- RISCVMultilibSelect (const MultilibSet &RISCVMultilibSet, StringRef Arch,
1730
+ selectRISCVMultilib (const MultilibSet &RISCVMultilibSet, StringRef Arch,
1731
1731
const Multilib::flags_list &Flags,
1732
- llvm::SmallVector <Multilib> &SelectedMultilibs) {
1732
+ llvm::SmallVectorImpl <Multilib> &SelectedMultilibs) {
1733
1733
// Try to find the perfect matching multi-lib first.
1734
1734
if (RISCVMultilibSet.select (Flags, SelectedMultilibs))
1735
1735
return true ;
@@ -1763,28 +1763,28 @@ RISCVMultilibSelect(const MultilibSet &RISCVMultilibSet, StringRef Arch,
1763
1763
llvm::StringSet<> AllArchExts;
1764
1764
// Reconstruct multi-lib list, and break march option into separated
1765
1765
// extension. e.g. march=rv32im -> +i +m
1766
- for (auto M : RISCVMultilibSet) {
1766
+ for (const auto & M : RISCVMultilibSet) {
1767
1767
bool Skip = false ;
1768
1768
1769
1769
MultilibBuilder NewMultilib =
1770
1770
MultilibBuilder (M.gccSuffix (), M.osSuffix (), M.includeSuffix ());
1771
1771
for (StringRef Flag : M.flags ()) {
1772
- // Add back the all option except -march.
1773
- if (!Flag.startswith (" -march=" )) {
1772
+ // Add back all flags except -march.
1773
+ if (!Flag.consume_front (" -march=" )) {
1774
1774
NewMultilib.flag (Flag);
1775
1775
continue ;
1776
1776
}
1777
1777
1778
1778
// Break down -march into individual extension.
1779
1779
llvm::Expected<std::unique_ptr<llvm::RISCVISAInfo>> MLConfigParseResult =
1780
1780
llvm::RISCVISAInfo::parseArchString (
1781
- Flag. drop_front ( 7 ) , /* EnableExperimentalExtension=*/ true ,
1781
+ Flag, /* EnableExperimentalExtension=*/ true ,
1782
1782
/* ExperimentalExtensionVersionCheck=*/ false );
1783
1783
if (!MLConfigParseResult) {
1784
1784
// Ignore any error here, we assume it will handled in another place.
1785
1785
llvm::consumeError (MLConfigParseResult.takeError ());
1786
1786
1787
- // We might get parsing error if rv32e in the list, we could just skip
1787
+ // We might get a parsing error if rv32e in the list, we could just skip
1788
1788
// that and process the rest of multi-lib configs.
1789
1789
Skip = true ;
1790
1790
continue ;
@@ -1797,8 +1797,7 @@ RISCVMultilibSelect(const MultilibSet &RISCVMultilibSet, StringRef Arch,
1797
1797
auto ExtName = MLConfigArchExt.first ;
1798
1798
NewMultilib.flag (Twine (" -" , ExtName).str ());
1799
1799
1800
- if (!AllArchExts.contains (ExtName)) {
1801
- AllArchExts.insert (ExtName);
1800
+ if (AllArchExts.insert (ExtName).second ) {
1802
1801
addMultilibFlag (ISAInfo->hasExtension (ExtName),
1803
1802
Twine (" -" , ExtName).str (), NewFlags);
1804
1803
}
@@ -1832,7 +1831,7 @@ RISCVMultilibSelect(const MultilibSet &RISCVMultilibSet, StringRef Arch,
1832
1831
1833
1832
if (NewRISCVMultilibs.select (NewFlags, SelectedMultilibs))
1834
1833
for (const Multilib &NewSelectedM : SelectedMultilibs)
1835
- for (auto M : RISCVMultilibSet)
1834
+ for (const auto & M : RISCVMultilibSet)
1836
1835
// Look up the corresponding multi-lib entry in original multi-lib set.
1837
1836
if (M.gccSuffix () == NewSelectedM.gccSuffix ())
1838
1837
return true ;
@@ -1891,7 +1890,7 @@ static void findRISCVBareMetalMultilibs(const Driver &D,
1891
1890
}
1892
1891
}
1893
1892
1894
- if (RISCVMultilibSelect (RISCVMultilibs, MArch, Flags,
1893
+ if (selectRISCVMultilib (RISCVMultilibs, MArch, Flags,
1895
1894
Result.SelectedMultilibs ))
1896
1895
Result.Multilibs = RISCVMultilibs;
1897
1896
}
0 commit comments