From: Simon Pilgrim Date: Fri, 22 Sep 2017 13:32:26 +0000 (+0000) Subject: [TableGen] Return StringRef from ValueTypeByHwMode::getMVTName X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=925005914c596ff43a7469dade3bf70b26912395;p=llvm [TableGen] Return StringRef from ValueTypeByHwMode::getMVTName Avoid unnecessary std::string creations during TypeSetByHwMode::writeToStream. Found during investigations into PR28222 Differential Revision: https://reviews.llvm.org/D38174 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313983 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/TableGen/InfoByHwMode.cpp b/utils/TableGen/InfoByHwMode.cpp index 882a6a78509..aee0dd6fa6a 100644 --- a/utils/TableGen/InfoByHwMode.cpp +++ b/utils/TableGen/InfoByHwMode.cpp @@ -70,10 +70,9 @@ MVT &ValueTypeByHwMode::getOrCreateTypeForMode(unsigned Mode, MVT Type) { return Map.insert(std::make_pair(Mode, Type)).first->second; } -std::string ValueTypeByHwMode::getMVTName(MVT T) { - std::string N = llvm::getEnumName(T.SimpleTy); - if (N.substr(0,5) == "MVT::") - N = N.substr(5); +StringRef ValueTypeByHwMode::getMVTName(MVT T) { + StringRef N = llvm::getEnumName(T.SimpleTy); + N.consume_front("MVT::"); return N; } @@ -91,7 +90,7 @@ std::string ValueTypeByHwMode::getAsString() const { for (unsigned i = 0, e = Pairs.size(); i != e; ++i) { const PairType *P = Pairs[i]; str << '(' << getModeName(P->first) - << ':' << getMVTName(P->second) << ')'; + << ':' << getMVTName(P->second).str() << ')'; if (i != e-1) str << ','; } diff --git a/utils/TableGen/InfoByHwMode.h b/utils/TableGen/InfoByHwMode.h index 71149e8da19..57640fc3025 100644 --- a/utils/TableGen/InfoByHwMode.h +++ b/utils/TableGen/InfoByHwMode.h @@ -129,7 +129,7 @@ struct ValueTypeByHwMode : public InfoByHwMode { MVT getType(unsigned Mode) const { return get(Mode); } MVT &getOrCreateTypeForMode(unsigned Mode, MVT Type); - static std::string getMVTName(MVT T); + static StringRef getMVTName(MVT T); std::string getAsString() const; void dump() const; };