From: Krzysztof Parzyszek Date: Fri, 22 Sep 2017 16:18:35 +0000 (+0000) Subject: Revert "[TableGen] Replace InfoByHwMode::getAsString with writeToStream" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=538a163cf2f7bcdf22c2b189e138cbd5b95bbaf0;p=llvm Revert "[TableGen] Replace InfoByHwMode::getAsString with writeToStream" This reverts commit r313989: it breaks Windows bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313990 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/TableGen/CodeGenDAGPatterns.cpp b/utils/TableGen/CodeGenDAGPatterns.cpp index 393076aa06a..d4c81c327ab 100644 --- a/utils/TableGen/CodeGenDAGPatterns.cpp +++ b/utils/TableGen/CodeGenDAGPatterns.cpp @@ -238,14 +238,10 @@ bool TypeSetByHwMode::operator==(const TypeSetByHwMode &VTS) const { return true; } -raw_ostream &operator<<(raw_ostream &OS, const TypeSetByHwMode &T) { - T.writeToStream(OS); - return OS; -} - LLVM_DUMP_METHOD void TypeSetByHwMode::dump() const { - dbgs() << *this << '\n'; + writeToStream(dbgs()); + dbgs() << '\n'; } bool TypeSetByHwMode::intersect(SetType &Out, const SetType &In) { diff --git a/utils/TableGen/CodeGenDAGPatterns.h b/utils/TableGen/CodeGenDAGPatterns.h index f75e49a3821..37bfe022b4d 100644 --- a/utils/TableGen/CodeGenDAGPatterns.h +++ b/utils/TableGen/CodeGenDAGPatterns.h @@ -240,8 +240,6 @@ private: bool intersect(SetType &Out, const SetType &In); }; -raw_ostream &operator<<(raw_ostream &OS, const TypeSetByHwMode &T); - struct TypeInfer { TypeInfer(TreePattern &T) : TP(T), ForceMode(0) {} diff --git a/utils/TableGen/CodeGenRegisters.cpp b/utils/TableGen/CodeGenRegisters.cpp index a6b0a4beb8e..f3b01eb5a94 100644 --- a/utils/TableGen/CodeGenRegisters.cpp +++ b/utils/TableGen/CodeGenRegisters.cpp @@ -836,7 +836,7 @@ bool CodeGenRegisterClass::contains(const CodeGenRegister *Reg) const { namespace llvm { raw_ostream &operator<<(raw_ostream &OS, const CodeGenRegisterClass::Key &K) { - OS << "{ " << K.RSI; + OS << "{ " << K.RSI.getAsString(); for (const auto R : *K.Members) OS << ", " << R->getName(); return OS << " }"; diff --git a/utils/TableGen/InfoByHwMode.cpp b/utils/TableGen/InfoByHwMode.cpp index d4de490feeb..aee0dd6fa6a 100644 --- a/utils/TableGen/InfoByHwMode.cpp +++ b/utils/TableGen/InfoByHwMode.cpp @@ -76,31 +76,34 @@ StringRef ValueTypeByHwMode::getMVTName(MVT T) { return N; } -void ValueTypeByHwMode::writeToStream(raw_ostream &OS) const { - if (isSimple()) { - OS << getMVTName(getSimple()); - return; - } +std::string ValueTypeByHwMode::getAsString() const { + if (isSimple()) + return getMVTName(getSimple()); std::vector Pairs; for (const auto &P : Map) Pairs.push_back(&P); std::sort(Pairs.begin(), Pairs.end(), deref>()); - OS << '{'; + std::stringstream str; + str << '{'; for (unsigned i = 0, e = Pairs.size(); i != e; ++i) { const PairType *P = Pairs[i]; - OS << '(' << getModeName(P->first) - << ':' << getMVTName(P->second).str() << ')'; + str << '(' << getModeName(P->first) + << ':' << getMVTName(P->second).str() << ')'; if (i != e-1) - OS << ','; + str << ','; } - OS << '}'; + str << '}'; + return str.str(); } LLVM_DUMP_METHOD void ValueTypeByHwMode::dump() const { - dbgs() << *this << '\n'; + dbgs() << "size=" << Map.size() << '\n'; + for (const auto &P : Map) + dbgs() << " " << P.first << " -> " + << llvm::getEnumName(P.second.SimpleTy) << '\n'; } ValueTypeByHwMode llvm::getValueTypeByHwMode(Record *Rec, @@ -133,9 +136,11 @@ bool RegSizeInfo::isSubClassOf(const RegSizeInfo &I) const { SpillSize <= I.SpillSize; } -void RegSizeInfo::writeToStream(raw_ostream &OS) const { - OS << "[R=" << RegSize << ",S=" << SpillSize - << ",A=" << SpillAlignment << ']'; +std::string RegSizeInfo::getAsString() const { + std::stringstream str; + str << "[R=" << RegSize << ",S=" << SpillSize + << ",A=" << SpillAlignment << ']'; + return str.str(); } RegSizeInfoByHwMode::RegSizeInfoByHwMode(Record *R, @@ -172,35 +177,22 @@ bool RegSizeInfoByHwMode::hasStricterSpillThan(const RegSizeInfoByHwMode &I) std::tie(B0.SpillSize, B0.SpillAlignment); } -void RegSizeInfoByHwMode::writeToStream(raw_ostream &OS) const { +std::string RegSizeInfoByHwMode::getAsString() const { typedef typename decltype(Map)::value_type PairType; std::vector Pairs; for (const auto &P : Map) Pairs.push_back(&P); std::sort(Pairs.begin(), Pairs.end(), deref>()); - OS << '{'; + std::stringstream str; + str << '{'; for (unsigned i = 0, e = Pairs.size(); i != e; ++i) { const PairType *P = Pairs[i]; - OS << '(' << getModeName(P->first) << ':' << P->second << ')'; + str << '(' << getModeName(P->first) + << ':' << P->second.getAsString() << ')'; if (i != e-1) - OS << ','; + str << ','; } - OS << '}'; + str << '}'; + return str.str(); } - -raw_ostream &operator<<(raw_ostream &OS, const ValueTypeByHwMode &T) { - T.writeToStream(OS); - return OS; -} - -raw_ostream &operator<<(raw_ostream &OS, const RegSizeInfo &T) { - T.writeToStream(OS); - return OS; -} - -raw_ostream &operator<<(raw_ostream &OS, const RegSizeInfoByHwMode &T) { - T.writeToStream(OS); - return OS; -} - diff --git a/utils/TableGen/InfoByHwMode.h b/utils/TableGen/InfoByHwMode.h index b2e21749888..57640fc3025 100644 --- a/utils/TableGen/InfoByHwMode.h +++ b/utils/TableGen/InfoByHwMode.h @@ -27,7 +27,6 @@ namespace llvm { struct CodeGenHwModes; class Record; -class raw_ostream; template struct InfoByHwMode; @@ -131,7 +130,7 @@ struct ValueTypeByHwMode : public InfoByHwMode { MVT &getOrCreateTypeForMode(unsigned Mode, MVT Type); static StringRef getMVTName(MVT T); - void writeToStream(raw_ostream &OS) const; + std::string getAsString() const; void dump() const; }; @@ -155,7 +154,7 @@ struct RegSizeInfo { } bool isSubClassOf(const RegSizeInfo &I) const; - void writeToStream(raw_ostream &OS) const; + std::string getAsString() const; }; struct RegSizeInfoByHwMode : public InfoByHwMode { @@ -170,13 +169,8 @@ struct RegSizeInfoByHwMode : public InfoByHwMode { bool isSubClassOf(const RegSizeInfoByHwMode &I) const; bool hasStricterSpillThan(const RegSizeInfoByHwMode &I) const; - void writeToStream(raw_ostream &OS) const; + std::string getAsString() const; }; - -raw_ostream &operator<<(raw_ostream &OS, const ValueTypeByHwMode &T); -raw_ostream &operator<<(raw_ostream &OS, const RegSizeInfo &T); -raw_ostream &operator<<(raw_ostream &OS, const RegSizeInfoByHwMode &T); - } // namespace llvm #endif // LLVM_UTILS_TABLEGEN_INFOBYHWMODE_H