[llvm] r234507 - Use a raw_svector_ostream instead of a raw_string_ostream.
Rafael Espindola
rafael.espindola at gmail.com
Thu Apr 9 10:16:25 PDT 2015
Author: rafael
Date: Thu Apr 9 12:16:25 2015
New Revision: 234507
URL: http://llvm.org/viewvc/llvm-project?rev=234507&view=rev
Log:
Use a raw_svector_ostream instead of a raw_string_ostream.
It saves a bit of copying.
Modified:
llvm/trunk/lib/Target/TargetMachineC.cpp
Modified: llvm/trunk/lib/Target/TargetMachineC.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetMachineC.cpp?rev=234507&r1=234506&r2=234507&view=diff
==============================================================================
--- llvm/trunk/lib/Target/TargetMachineC.cpp (original)
+++ llvm/trunk/lib/Target/TargetMachineC.cpp Thu Apr 9 12:16:25 2015
@@ -183,7 +183,9 @@ void LLVMSetTargetMachineAsmVerbosity(LL
}
static LLVMBool LLVMTargetMachineEmit(LLVMTargetMachineRef T, LLVMModuleRef M,
- formatted_raw_ostream &OS, LLVMCodeGenFileType codegen, char **ErrorMessage) {
+ formatted_raw_ostream &OS,
+ LLVMCodeGenFileType codegen,
+ char **ErrorMessage) {
TargetMachine* TM = unwrap(T);
Module* Mod = unwrap(M);
@@ -238,15 +240,15 @@ LLVMBool LLVMTargetMachineEmitToFile(LLV
LLVMBool LLVMTargetMachineEmitToMemoryBuffer(LLVMTargetMachineRef T,
LLVMModuleRef M, LLVMCodeGenFileType codegen, char** ErrorMessage,
LLVMMemoryBufferRef *OutMemBuf) {
- std::string CodeString;
- raw_string_ostream OStream(CodeString);
+ SmallString<0> CodeString;
+ raw_svector_ostream OStream(CodeString);
formatted_raw_ostream Out(OStream);
bool Result = LLVMTargetMachineEmit(T, M, Out, codegen, ErrorMessage);
OStream.flush();
- std::string &Data = OStream.str();
- *OutMemBuf = LLVMCreateMemoryBufferWithMemoryRangeCopy(Data.c_str(),
- Data.length(), "");
+ StringRef Data = OStream.str();
+ *OutMemBuf =
+ LLVMCreateMemoryBufferWithMemoryRangeCopy(Data.data(), Data.size(), "");
return Result;
}
More information about the llvm-commits
mailing list