Skip to content

Commit

Permalink
Use StringRef::{starts,ends}_with (NFC)
Browse files Browse the repository at this point in the history
This patch replaces uses of StringRef::{starts,ends}with with
StringRef::{starts,ends}_with for consistency with
std::{string,string_view}::{starts,ends}_with in C++20.

I'm planning to deprecate and eventually remove
StringRef::{starts,ends}with.
  • Loading branch information
kazutakahirata committed Dec 16, 2023
1 parent f49e2b0 commit 395f9ce
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 39 deletions.
2 changes: 1 addition & 1 deletion clang/lib/Lex/HeaderSearch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1671,7 +1671,7 @@ static OptionalFileEntryRef getPrivateModuleMap(FileEntryRef File,
if (Filename == "module.map")
Diags.Report(diag::warn_deprecated_module_dot_map)
<< PrivateFilename << 1
<< File.getDir().getName().endswith(".framework");
<< File.getDir().getName().ends_with(".framework");
}
return PMMFile;
}
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/IR/AutoUpgrade.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5220,7 +5220,7 @@ std::string llvm::UpgradeDataLayoutString(StringRef DL, StringRef TT) {
Res.append("-p7:160:256:256:32");
if (!DL.contains("-p8") && !DL.starts_with("p8"))
Res.append("-p8:128:128");
if (!DL.contains("-p9") && !DL.startswith("p9"))
if (!DL.contains("-p9") && !DL.starts_with("p9"))
Res.append("-p9:192:256:256:32");

return Res;
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/Target/DirectX/DXILResource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ void UAVResource::parseSourceType(StringRef S) {
S = S.substr(S.find("<") + 1);

constexpr size_t PrefixLen = StringRef("vector<").size();
if (S.startswith("vector<"))
if (S.starts_with("vector<"))
S = S.substr(PrefixLen, S.find(",") - PrefixLen);
else
S = S.substr(0, S.find(">"));
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ std::string getLinkStringForBuiltIn(SPIRV::BuiltIn::BuiltIn BuiltInValue) {
bool getSpirvBuiltInIdByName(llvm::StringRef Name,
SPIRV::BuiltIn::BuiltIn &BI) {
const std::string Prefix = "__spirv_BuiltIn";
if (!Name.startswith(Prefix))
if (!Name.starts_with(Prefix))
return false;

const SPIRV::SymbolicOperand *Lookup =
Expand Down
16 changes: 8 additions & 8 deletions llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -872,8 +872,8 @@ static bool generateGroupInst(const SPIRV::IncomingCall *Call,
std::tie(GroupResultRegister, GroupResultType) =
buildBoolRegister(MIRBuilder, Call->ReturnType, GR);

auto Scope = Builtin->Name.startswith("sub_group") ? SPIRV::Scope::Subgroup
: SPIRV::Scope::Workgroup;
auto Scope = Builtin->Name.starts_with("sub_group") ? SPIRV::Scope::Subgroup
: SPIRV::Scope::Workgroup;
Register ScopeRegister = buildConstantIntReg(Scope, MIRBuilder, GR);

// Build work/sub group instruction.
Expand Down Expand Up @@ -1999,13 +1999,13 @@ struct OpenCLType {
//===----------------------------------------------------------------------===//

static Type *parseTypeString(const StringRef Name, LLVMContext &Context) {
if (Name.startswith("void"))
if (Name.starts_with("void"))
return Type::getVoidTy(Context);
else if (Name.startswith("int") || Name.startswith("uint"))
else if (Name.starts_with("int") || Name.starts_with("uint"))
return Type::getInt32Ty(Context);
else if (Name.startswith("float"))
else if (Name.starts_with("float"))
return Type::getFloatTy(Context);
else if (Name.startswith("half"))
else if (Name.starts_with("half"))
return Type::getHalfTy(Context);
llvm_unreachable("Unable to recognize type!");
}
Expand Down Expand Up @@ -2081,7 +2081,7 @@ parseBuiltinTypeNameToTargetExtType(std::string TypeName,
// Pointers-to-opaque-structs representing OpenCL types are first translated
// to equivalent SPIR-V types. OpenCL builtin type names should have the
// following format: e.g. %opencl.event_t
if (NameWithParameters.startswith("opencl.")) {
if (NameWithParameters.starts_with("opencl.")) {
const SPIRV::OpenCLType *OCLTypeRecord =
SPIRV::lookupOpenCLType(NameWithParameters);
if (!OCLTypeRecord)
Expand All @@ -2093,7 +2093,7 @@ parseBuiltinTypeNameToTargetExtType(std::string TypeName,

// Names of the opaque structs representing a SPIR-V builtins without
// parameters should have the following format: e.g. %spirv.Event
assert(NameWithParameters.startswith("spirv.") &&
assert(NameWithParameters.starts_with("spirv.") &&
"Unknown builtin opaque type!");

// Parameterized SPIR-V builtins names follow this format:
Expand Down
34 changes: 17 additions & 17 deletions llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -962,35 +962,35 @@ SPIRVType *SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(
if (TypeStr.starts_with("atomic_"))
TypeStr = TypeStr.substr(strlen("atomic_"));

if (TypeStr.startswith("void")) {
if (TypeStr.starts_with("void")) {
Ty = Type::getVoidTy(Ctx);
TypeStr = TypeStr.substr(strlen("void"));
} else if (TypeStr.startswith("bool")) {
} else if (TypeStr.starts_with("bool")) {
Ty = Type::getIntNTy(Ctx, 1);
TypeStr = TypeStr.substr(strlen("bool"));
} else if (TypeStr.startswith("char") || TypeStr.startswith("uchar")) {
} else if (TypeStr.starts_with("char") || TypeStr.starts_with("uchar")) {
Ty = Type::getInt8Ty(Ctx);
TypeStr = TypeStr.startswith("char") ? TypeStr.substr(strlen("char"))
: TypeStr.substr(strlen("uchar"));
} else if (TypeStr.startswith("short") || TypeStr.startswith("ushort")) {
TypeStr = TypeStr.starts_with("char") ? TypeStr.substr(strlen("char"))
: TypeStr.substr(strlen("uchar"));
} else if (TypeStr.starts_with("short") || TypeStr.starts_with("ushort")) {
Ty = Type::getInt16Ty(Ctx);
TypeStr = TypeStr.startswith("short") ? TypeStr.substr(strlen("short"))
: TypeStr.substr(strlen("ushort"));
} else if (TypeStr.startswith("int") || TypeStr.startswith("uint")) {
TypeStr = TypeStr.starts_with("short") ? TypeStr.substr(strlen("short"))
: TypeStr.substr(strlen("ushort"));
} else if (TypeStr.starts_with("int") || TypeStr.starts_with("uint")) {
Ty = Type::getInt32Ty(Ctx);
TypeStr = TypeStr.startswith("int") ? TypeStr.substr(strlen("int"))
: TypeStr.substr(strlen("uint"));
TypeStr = TypeStr.starts_with("int") ? TypeStr.substr(strlen("int"))
: TypeStr.substr(strlen("uint"));
} else if (TypeStr.starts_with("long") || TypeStr.starts_with("ulong")) {
Ty = Type::getInt64Ty(Ctx);
TypeStr = TypeStr.startswith("long") ? TypeStr.substr(strlen("long"))
: TypeStr.substr(strlen("ulong"));
} else if (TypeStr.startswith("half")) {
TypeStr = TypeStr.starts_with("long") ? TypeStr.substr(strlen("long"))
: TypeStr.substr(strlen("ulong"));
} else if (TypeStr.starts_with("half")) {
Ty = Type::getHalfTy(Ctx);
TypeStr = TypeStr.substr(strlen("half"));
} else if (TypeStr.startswith("float")) {
} else if (TypeStr.starts_with("float")) {
Ty = Type::getFloatTy(Ctx);
TypeStr = TypeStr.substr(strlen("float"));
} else if (TypeStr.startswith("double")) {
} else if (TypeStr.starts_with("double")) {
Ty = Type::getDoubleTy(Ctx);
TypeStr = TypeStr.substr(strlen("double"));
} else
Expand All @@ -1007,7 +1007,7 @@ SPIRVType *SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(
// Handle "typeN*" or "type vector[N]*".
bool IsPtrToVec = TypeStr.consume_back("*");

if (TypeStr.startswith(" vector[")) {
if (TypeStr.starts_with(" vector[")) {
TypeStr = TypeStr.substr(strlen(" vector["));
TypeStr = TypeStr.substr(0, TypeStr.find(']'));
}
Expand Down
4 changes: 2 additions & 2 deletions llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,8 @@ void SPIRVRegularizer::visitCallInst(CallInst &CI) {
StringRef DemangledName(NameStr);

// TODO: add support for other builtins.
if (DemangledName.startswith("fmin") || DemangledName.startswith("fmax") ||
DemangledName.startswith("min") || DemangledName.startswith("max"))
if (DemangledName.starts_with("fmin") || DemangledName.starts_with("fmax") ||
DemangledName.starts_with("min") || DemangledName.starts_with("max"))
visitCallScalToVec(&CI, MangledName, DemangledName);
free(NameStr);
}
Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/Target/SPIRV/SPIRVUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ static bool isKernelQueryBI(const StringRef MangledName) {
}

static bool isNonMangledOCLBuiltin(StringRef Name) {
if (!Name.startswith("__"))
if (!Name.starts_with("__"))
return false;

return isEnqueueKernelBI(Name) || isKernelQueryBI(Name) ||
Expand All @@ -289,8 +289,8 @@ static bool isNonMangledOCLBuiltin(StringRef Name) {

std::string getOclOrSpirvBuiltinDemangledName(StringRef Name) {
bool IsNonMangledOCL = isNonMangledOCLBuiltin(Name);
bool IsNonMangledSPIRV = Name.startswith("__spirv_");
bool IsMangled = Name.startswith("_Z");
bool IsNonMangledSPIRV = Name.starts_with("__spirv_");
bool IsMangled = Name.starts_with("_Z");

if (!IsNonMangledOCL && !IsNonMangledSPIRV && !IsMangled)
return std::string();
Expand All @@ -311,7 +311,7 @@ std::string getOclOrSpirvBuiltinDemangledName(StringRef Name) {
// Similar to ::std:: in C++.
size_t Start, Len = 0;
size_t DemangledNameLenStart = 2;
if (Name.startswith("_ZN")) {
if (Name.starts_with("_ZN")) {
// Skip CV and ref qualifiers.
size_t NameSpaceStart = Name.find_first_not_of("rVKRO", 3);
// All built-ins are in the ::cl:: namespace.
Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -598,8 +598,8 @@ bool XtensaAsmParser::parseOperand(OperandVector &Operands, StringRef Mnemonic,
bool XtensaAsmParser::ParseInstructionWithSR(ParseInstructionInfo &Info,
StringRef Name, SMLoc NameLoc,
OperandVector &Operands) {
if ((Name.startswith("wsr.") || Name.startswith("rsr.") ||
Name.startswith("xsr.")) &&
if ((Name.starts_with("wsr.") || Name.starts_with("rsr.") ||
Name.starts_with("xsr.")) &&
(Name.size() > 4)) {
// Parse case when instruction name is concatenated with SR register
// name, like "wsr.sar a1"
Expand Down Expand Up @@ -655,8 +655,8 @@ bool XtensaAsmParser::ParseInstructionWithSR(ParseInstructionInfo &Info,
bool XtensaAsmParser::ParseInstruction(ParseInstructionInfo &Info,
StringRef Name, SMLoc NameLoc,
OperandVector &Operands) {
if (Name.startswith("wsr") || Name.startswith("rsr") ||
Name.startswith("xsr")) {
if (Name.starts_with("wsr") || Name.starts_with("rsr") ||
Name.starts_with("xsr")) {
return ParseInstructionWithSR(Info, Name, NameLoc, Operands);
}

Expand Down

0 comments on commit 395f9ce

Please sign in to comment.