diff options
| author | Alp Toker <alp@nuanti.com> | 2014-06-26 22:52:05 +0000 |
|---|---|---|
| committer | Alp Toker <alp@nuanti.com> | 2014-06-26 22:52:05 +0000 |
| commit | e69170a11079504e1b20ec79296925f295dc01c0 (patch) | |
| tree | 7c415eb6c14f0afb0e97e42d6ba2579dd897fb3a /llvm/lib/MC | |
| parent | 11c6f6165b76a42da7eaf4514e419be397d7fc44 (diff) | |
| download | bcm5719-llvm-e69170a11079504e1b20ec79296925f295dc01c0.tar.gz bcm5719-llvm-e69170a11079504e1b20ec79296925f295dc01c0.zip | |
Revert "Introduce a string_ostream string builder facilty"
Temporarily back out commits r211749, r211752 and r211754.
llvm-svn: 211814
Diffstat (limited to 'llvm/lib/MC')
| -rw-r--r-- | llvm/lib/MC/MCAsmStreamer.cpp | 7 | ||||
| -rw-r--r-- | llvm/lib/MC/MCContext.cpp | 14 | ||||
| -rw-r--r-- | llvm/lib/MC/MCDisassembler/Disassembler.cpp | 8 | ||||
| -rw-r--r-- | llvm/lib/MC/MCDwarf.cpp | 6 | ||||
| -rw-r--r-- | llvm/lib/MC/MCParser/AsmParser.cpp | 6 |
5 files changed, 25 insertions, 16 deletions
diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp index a3a81a6bc71..da235ec1d33 100644 --- a/llvm/lib/MC/MCAsmStreamer.cpp +++ b/llvm/lib/MC/MCAsmStreamer.cpp @@ -1175,10 +1175,9 @@ void MCAsmStreamer::AddEncodingComment(const MCInst &Inst, raw_ostream &OS = GetCommentOS(); SmallString<256> Code; SmallVector<MCFixup, 4> Fixups; - { - raw_svector_ostream VecOS(Code); - Emitter->EncodeInstruction(Inst, VecOS, Fixups, STI); - } + raw_svector_ostream VecOS(Code); + Emitter->EncodeInstruction(Inst, VecOS, Fixups, STI); + VecOS.flush(); // If we are showing fixups, create symbolic markers in the encoded // representation. We do this by making a per-bit map to the fixup item index, diff --git a/llvm/lib/MC/MCContext.cpp b/llvm/lib/MC/MCContext.cpp index 3a8cfaa947a..bd2c4e960ac 100644 --- a/llvm/lib/MC/MCContext.cpp +++ b/llvm/lib/MC/MCContext.cpp @@ -140,15 +140,17 @@ MCSymbol *MCContext::GetOrCreateSymbol(const Twine &Name) { } MCSymbol *MCContext::CreateLinkerPrivateTempSymbol() { - small_string_ostream<128> NameSV; - NameSV << MAI->getLinkerPrivateGlobalPrefix() << "tmp" << NextUniqueID++; - return CreateSymbol(NameSV.str()); + SmallString<128> NameSV; + raw_svector_ostream(NameSV) + << MAI->getLinkerPrivateGlobalPrefix() << "tmp" << NextUniqueID++; + return CreateSymbol(NameSV); } MCSymbol *MCContext::CreateTempSymbol() { - small_string_ostream<128> NameSV; - NameSV << MAI->getPrivateGlobalPrefix() << "tmp" << NextUniqueID++; - return CreateSymbol(NameSV.str()); + SmallString<128> NameSV; + raw_svector_ostream(NameSV) + << MAI->getPrivateGlobalPrefix() << "tmp" << NextUniqueID++; + return CreateSymbol(NameSV); } unsigned MCContext::NextInstance(unsigned LocalLabelVal) { diff --git a/llvm/lib/MC/MCDisassembler/Disassembler.cpp b/llvm/lib/MC/MCDisassembler/Disassembler.cpp index e3ec4eb30db..0530c26369c 100644 --- a/llvm/lib/MC/MCDisassembler/Disassembler.cpp +++ b/llvm/lib/MC/MCDisassembler/Disassembler.cpp @@ -270,7 +270,8 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DCR, uint8_t *Bytes, const MCDisassembler *DisAsm = DC->getDisAsm(); MCInstPrinter *IP = DC->getIP(); MCDisassembler::DecodeStatus S; - small_string_ostream<64> Annotations; + SmallVector<char, 64> InsnStr; + raw_svector_ostream Annotations(InsnStr); S = DisAsm->getInstruction(Inst, Size, MemoryObject, PC, /*REMOVE*/ nulls(), Annotations); switch (S) { @@ -280,10 +281,13 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DCR, uint8_t *Bytes, return 0; case MCDisassembler::Success: { + Annotations.flush(); + StringRef AnnotationsStr = Annotations.str(); + SmallVector<char, 64> InsnStr; raw_svector_ostream OS(InsnStr); formatted_raw_ostream FormattedOS(OS); - IP->printInst(&Inst, FormattedOS, Annotations.str()); + IP->printInst(&Inst, FormattedOS, AnnotationsStr); if (DC->getOptions() & LLVMDisassembler_Option_PrintLatency) emitLatency(DC, Inst); diff --git a/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp index eab4d88f253..bddbf578d80 100644 --- a/llvm/lib/MC/MCDwarf.cpp +++ b/llvm/lib/MC/MCDwarf.cpp @@ -420,7 +420,8 @@ unsigned MCDwarfLineTableHeader::getFile(StringRef &Directory, void MCDwarfLineAddr::Emit(MCStreamer *MCOS, int64_t LineDelta, uint64_t AddrDelta) { MCContext &Context = MCOS->getContext(); - small_string_ostream<256> OS; + SmallString<256> Tmp; + raw_svector_ostream OS(Tmp); MCDwarfLineAddr::Encode(Context, LineDelta, AddrDelta, OS); MCOS->EmitBytes(OS.str()); } @@ -1646,7 +1647,8 @@ void MCDwarfFrameEmitter::Emit(MCObjectStreamer &Streamer, MCAsmBackend *MAB, void MCDwarfFrameEmitter::EmitAdvanceLoc(MCObjectStreamer &Streamer, uint64_t AddrDelta) { MCContext &Context = Streamer.getContext(); - small_string_ostream<256> OS; + SmallString<256> Tmp; + raw_svector_ostream OS(Tmp); MCDwarfFrameEmitter::EncodeAdvanceLoc(Context, AddrDelta, OS); Streamer.EmitBytes(OS.str()); } diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 7bfbbf4932b..fa5dfdc9fed 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -4580,7 +4580,8 @@ bool AsmParser::parseMSInlineAsm( } // Build the IR assembly string. - string_ostream OS; + std::string AsmStringIR; + raw_string_ostream OS(AsmStringIR); const char *AsmStart = SrcMgr.getMemoryBuffer(0)->getBufferStart(); const char *AsmEnd = SrcMgr.getMemoryBuffer(0)->getBufferEnd(); array_pod_sort(AsmStrRewrites.begin(), AsmStrRewrites.end(), rewritesSort); @@ -4645,7 +4646,8 @@ bool AsmParser::parseMSInlineAsm( } case AOK_DotOperator: // Insert the dot if the user omitted it. - if (OS.str().back() != '.') + OS.flush(); + if (AsmStringIR.back() != '.') OS << '.'; OS << AR.Val; break; |

