Index: llvm/trunk/utils/TableGen/InfoByHwMode.h =================================================================== --- llvm/trunk/utils/TableGen/InfoByHwMode.h +++ llvm/trunk/utils/TableGen/InfoByHwMode.h @@ -129,7 +129,7 @@ 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; }; Index: llvm/trunk/utils/TableGen/InfoByHwMode.cpp =================================================================== --- llvm/trunk/utils/TableGen/InfoByHwMode.cpp +++ llvm/trunk/utils/TableGen/InfoByHwMode.cpp @@ -70,10 +70,9 @@ 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 @@ 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 << ','; }