Skip to content

Commit 0123608

Browse files
authored
[RISCV] Minor improvements/cleanup to target attribute handling. NFC (#73851)
Use ArrayRef to avoid a vector copy. Replace a push_back loop with a call to std::vector::insert.
1 parent bbae59a commit 0123608

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

clang/lib/Basic/Targets/RISCV.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,7 @@ ArrayRef<Builtin::Info> RISCVTargetInfo::getTargetBuiltins() const {
236236
}
237237

238238
static std::vector<std::string>
239-
collectNonISAExtFeature(const std::vector<std::string> &FeaturesNeedOverride,
240-
int XLen) {
239+
collectNonISAExtFeature(ArrayRef<std::string> FeaturesNeedOverride, int XLen) {
241240
auto ParseResult =
242241
llvm::RISCVISAInfo::parseFeatures(XLen, FeaturesNeedOverride);
243242

@@ -265,11 +264,11 @@ resolveTargetAttrOverride(const std::vector<std::string> &FeaturesVec,
265264
if (I == FeaturesVec.end())
266265
return FeaturesVec;
267266

268-
const std::vector<std::string> FeaturesNeedOverride(FeaturesVec.begin(), I);
267+
ArrayRef<std::string> FeaturesNeedOverride(&*FeaturesVec.begin(), &*I);
269268
std::vector<std::string> NonISAExtFeature =
270269
collectNonISAExtFeature(FeaturesNeedOverride, XLen);
271270

272-
auto ResolvedFeature = std::vector<std::string>(++I, FeaturesVec.end());
271+
std::vector<std::string> ResolvedFeature(++I, FeaturesVec.end());
273272
ResolvedFeature.insert(ResolvedFeature.end(), NonISAExtFeature.begin(),
274273
NonISAExtFeature.end());
275274

@@ -415,8 +414,7 @@ static void handleFullArchString(StringRef FullArchStr,
415414
Features.push_back("+" + FullArchStr.str());
416415
} else {
417416
std::vector<std::string> FeatStrings = (*RII)->toFeatureVector();
418-
for (auto FeatString : FeatStrings)
419-
Features.push_back(FeatString);
417+
Features.insert(Features.end(), FeatStrings.begin(), FeatStrings.end());
420418
}
421419
}
422420

0 commit comments

Comments
 (0)