mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
[ADT] Switch a bunch of places in LLVM that were doing single-character
splits to actually use the single character split routine which does less work, and in a debug build is *substantially* faster. llvm-svn: 247245
This commit is contained in:
parent
5e0afb35b0
commit
c484a28f0a
@ -177,7 +177,7 @@ std::string MCSectionMachO::ParseSectionSpecifier(StringRef Spec, // In.
|
||||
TAAParsed = false;
|
||||
|
||||
SmallVector<StringRef, 5> SplitSpec;
|
||||
Spec.split(SplitSpec, ",");
|
||||
Spec.split(SplitSpec, ',');
|
||||
// Remove leading and trailing whitespace.
|
||||
auto GetEmptyOrTrim = [&SplitSpec](size_t Idx) -> StringRef {
|
||||
return SplitSpec.size() > Idx ? SplitSpec[Idx].trim() : StringRef();
|
||||
@ -235,7 +235,7 @@ std::string MCSectionMachO::ParseSectionSpecifier(StringRef Spec, // In.
|
||||
|
||||
// The attribute list is a '+' separated list of attributes.
|
||||
SmallVector<StringRef, 1> SectionAttrs;
|
||||
Attrs.split(SectionAttrs, "+", /*MaxSplit=*/-1, /*KeepEmpty=*/false);
|
||||
Attrs.split(SectionAttrs, '+', /*MaxSplit=*/-1, /*KeepEmpty=*/false);
|
||||
|
||||
for (StringRef &SectionAttr : SectionAttrs) {
|
||||
auto AttrDescriptorI = std::find_if(
|
||||
|
@ -56,7 +56,7 @@ static inline bool isEnabled(StringRef Feature) {
|
||||
///
|
||||
static void Split(std::vector<std::string> &V, StringRef S) {
|
||||
SmallVector<StringRef, 3> Tmp;
|
||||
S.split(Tmp, ",", -1, false /* KeepEmpty */);
|
||||
S.split(Tmp, ',', -1, false /* KeepEmpty */);
|
||||
V.assign(Tmp.begin(), Tmp.end());
|
||||
}
|
||||
|
||||
|
@ -103,7 +103,7 @@ struct GraphSession {
|
||||
bool TryFindProgram(StringRef Names, std::string &ProgramPath) {
|
||||
raw_string_ostream Log(LogBuffer);
|
||||
SmallVector<StringRef, 8> parts;
|
||||
Names.split(parts, "|");
|
||||
Names.split(parts, '|');
|
||||
for (auto Name : parts) {
|
||||
if (ErrorOr<std::string> P = sys::findProgramByName(Name)) {
|
||||
ProgramPath = *P;
|
||||
|
@ -697,7 +697,7 @@ StringRef sys::getHostCPUName() {
|
||||
if (Lines[I].startswith("features")) {
|
||||
size_t Pos = Lines[I].find(":");
|
||||
if (Pos != StringRef::npos) {
|
||||
Lines[I].drop_front(Pos + 1).split(CPUFeatures, " ");
|
||||
Lines[I].drop_front(Pos + 1).split(CPUFeatures, ' ');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -840,7 +840,7 @@ bool sys::getHostCPUFeatures(StringMap<bool> &Features) {
|
||||
// Look for the CPU features.
|
||||
for (unsigned I = 0, E = Lines.size(); I != E; ++I)
|
||||
if (Lines[I].startswith("Features")) {
|
||||
Lines[I].split(CPUFeatures, " ");
|
||||
Lines[I].split(CPUFeatures, ' ');
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2283,7 +2283,7 @@ AArch64DAGToDAGISel::SelectCVTFixedPosOperand(SDValue N, SDValue &FixedPos,
|
||||
// into a single value to be used in the MRS/MSR instruction.
|
||||
static int getIntOperandFromRegisterString(StringRef RegString) {
|
||||
SmallVector<StringRef, 5> Fields;
|
||||
RegString.split(Fields, ":");
|
||||
RegString.split(Fields, ':');
|
||||
|
||||
if (Fields.size() == 1)
|
||||
return -1;
|
||||
|
@ -3265,7 +3265,7 @@ static void getIntOperandsFromRegisterString(StringRef RegString,
|
||||
SelectionDAG *CurDAG, SDLoc DL,
|
||||
std::vector<SDValue>& Ops) {
|
||||
SmallVector<StringRef, 5> Fields;
|
||||
RegString.split(Fields, ":");
|
||||
RegString.split(Fields, ':');
|
||||
|
||||
if (Fields.size() > 1) {
|
||||
bool AllIntFields = true;
|
||||
@ -3631,7 +3631,7 @@ SDNode *ARMDAGToDAGISel::SelectWriteRegister(SDNode *N){
|
||||
}
|
||||
|
||||
SmallVector<StringRef, 5> Fields;
|
||||
StringRef(SpecialReg).split(Fields, "_", 1, false);
|
||||
StringRef(SpecialReg).split(Fields, '_', 1, false);
|
||||
std::string Reg = Fields[0].str();
|
||||
StringRef Flags = Fields.size() == 2 ? Fields[1] : "";
|
||||
|
||||
|
@ -109,10 +109,10 @@ void NVVMReflect::setVarMap() {
|
||||
for (unsigned i = 0, e = ReflectList.size(); i != e; ++i) {
|
||||
DEBUG(dbgs() << "Option : " << ReflectList[i] << "\n");
|
||||
SmallVector<StringRef, 4> NameValList;
|
||||
StringRef(ReflectList[i]).split(NameValList, ",");
|
||||
StringRef(ReflectList[i]).split(NameValList, ',');
|
||||
for (unsigned j = 0, ej = NameValList.size(); j != ej; ++j) {
|
||||
SmallVector<StringRef, 2> NameValPair;
|
||||
NameValList[j].split(NameValPair, "=");
|
||||
NameValList[j].split(NameValPair, '=');
|
||||
assert(NameValPair.size() == 2 && "name=val expected");
|
||||
std::stringstream ValStream(NameValPair[1]);
|
||||
int Val;
|
||||
|
@ -32,7 +32,7 @@ static bool UsesVectorABI(StringRef CPU, StringRef FS) {
|
||||
VectorABI = false;
|
||||
|
||||
SmallVector<StringRef, 3> Features;
|
||||
FS.split(Features, ",", -1, false /* KeepEmpty */);
|
||||
FS.split(Features, ',', -1, false /* KeepEmpty */);
|
||||
for (auto &Feature : Features) {
|
||||
if (Feature == "vector" || Feature == "+vector")
|
||||
VectorABI = true;
|
||||
|
@ -158,7 +158,7 @@ TEST(Support, RelativePathIterator) {
|
||||
PathComponents ExpectedPathComponents;
|
||||
PathComponents ActualPathComponents;
|
||||
|
||||
StringRef(Path).split(ExpectedPathComponents, "/");
|
||||
StringRef(Path).split(ExpectedPathComponents, '/');
|
||||
|
||||
for (path::const_iterator I = path::begin(Path), E = path::end(Path); I != E;
|
||||
++I) {
|
||||
@ -178,7 +178,7 @@ TEST(Support, RelativePathDotIterator) {
|
||||
PathComponents ExpectedPathComponents;
|
||||
PathComponents ActualPathComponents;
|
||||
|
||||
StringRef(Path).split(ExpectedPathComponents, "/");
|
||||
StringRef(Path).split(ExpectedPathComponents, '/');
|
||||
|
||||
for (path::const_iterator I = path::begin(Path), E = path::end(Path); I != E;
|
||||
++I) {
|
||||
@ -198,7 +198,7 @@ TEST(Support, AbsolutePathIterator) {
|
||||
PathComponents ExpectedPathComponents;
|
||||
PathComponents ActualPathComponents;
|
||||
|
||||
StringRef(Path).split(ExpectedPathComponents, "/");
|
||||
StringRef(Path).split(ExpectedPathComponents, '/');
|
||||
|
||||
// The root path will also be a component when iterating
|
||||
ExpectedPathComponents[0] = "/";
|
||||
@ -221,7 +221,7 @@ TEST(Support, AbsolutePathDotIterator) {
|
||||
PathComponents ExpectedPathComponents;
|
||||
PathComponents ActualPathComponents;
|
||||
|
||||
StringRef(Path).split(ExpectedPathComponents, "/");
|
||||
StringRef(Path).split(ExpectedPathComponents, '/');
|
||||
|
||||
// The root path will also be a component when iterating
|
||||
ExpectedPathComponents[0] = "/";
|
||||
|
Loading…
Reference in New Issue
Block a user