Skip to content

Commit

Permalink
[RISCV] Refactor version major version parsing in parseNormalizedArch…
Browse files Browse the repository at this point in the history
…String. NFC

Use an index variable and array indexing instead of manipulating
a temporary StringRef.
  • Loading branch information
topperc committed May 1, 2024
1 parent a7e0798 commit 500dda0
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions llvm/lib/TargetParser/RISCVISAInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -460,19 +460,18 @@ RISCVISAInfo::parseNormalizedArchString(StringRef Arch) {

// Split Prefix into the extension name and the major version number
// (the trailing digits of Prefix).
int TrailingDigits = 0;
StringRef ExtName = Prefix;
while (!ExtName.empty()) {
if (!isDigit(ExtName.back()))
size_t VersionStart = Prefix.size();
while (VersionStart != 0) {
if (!isDigit(Prefix[VersionStart - 1]))
break;
ExtName = ExtName.drop_back(1);
TrailingDigits++;
--VersionStart;
}
if (!TrailingDigits)
if (VersionStart == Prefix.size())
return createStringError(errc::invalid_argument,
"extension lacks version in expected format");

StringRef MajorVersionStr = Prefix.take_back(TrailingDigits);
StringRef ExtName = Prefix.slice(0, VersionStart);
StringRef MajorVersionStr = Prefix.slice(VersionStart, StringRef::npos);
if (MajorVersionStr.getAsInteger(10, MajorVersion))
return createStringError(errc::invalid_argument,
"failed to parse major version number");
Expand Down

0 comments on commit 500dda0

Please sign in to comment.