[llvm] r234950 - Use raw_pwrite_stream in the object writer/streamer.

Yaron Keren yaron.keren at gmail.com
Thu Apr 16 03:36:22 PDT 2015


Hi Kai,

Current SVN compiles on Visual C++ 2013, with warnings, but no error in
raw_ostream.

Yaron


2015-04-16 11:37 GMT+03:00 Kai Nacke <kai.nacke at redstar.de>:

> Hi!
>
> I now have a compile error with MSVC:
>
> 5>D:\Program Files\LLVM-x64\include\llvm/Support/raw_ostream.h(324):
> error C2248: 'llvm::raw_ostream::raw_ostream' : cannot access private
> member declared in class 'llvm::raw_ostream' (D:\OpenSource\ldc\ldc\driver\
> toobj.cpp)
> 5>          D:\Program Files\LLVM-x64\include\llvm/Support/raw_ostream.h(41)
> : see declaration of 'llvm::raw_ostream::raw_ostream'
> 5>          D:\Program Files\LLVM-x64\include\llvm/Support/raw_ostream.h(38)
> : see declaration of 'llvm::raw_ostream'
> 5>          This diagnostic occurred in the compiler generated function
> 'llvm::raw_pwrite_stream::raw_pwrite_stream(const llvm::raw_pwrite_stream
> &)'
>
>
> Regards,
> Kai
>
> On 15.04.2015 00:14, Rafael Espindola wrote:
>
>> Author: rafael
>> Date: Tue Apr 14 17:14:34 2015
>> New Revision: 234950
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=234950&view=rev
>> Log:
>> Use raw_pwrite_stream in the object writer/streamer.
>>
>> The ELF object writer will take advantage of that in the next commit.
>>
>> Modified:
>>      llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h
>>      llvm/trunk/include/llvm/MC/MCAsmBackend.h
>>      llvm/trunk/include/llvm/MC/MCELFObjectWriter.h
>>      llvm/trunk/include/llvm/MC/MCELFStreamer.h
>>      llvm/trunk/include/llvm/MC/MCMachObjectWriter.h
>>      llvm/trunk/include/llvm/MC/MCObjectStreamer.h
>>      llvm/trunk/include/llvm/MC/MCObjectWriter.h
>>      llvm/trunk/include/llvm/MC/MCWinCOFFObjectWriter.h
>>      llvm/trunk/include/llvm/MC/MCWinCOFFStreamer.h
>>      llvm/trunk/include/llvm/Support/TargetRegistry.h
>>      llvm/trunk/include/llvm/Target/TargetMachine.h
>>      llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
>>      llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
>>      llvm/trunk/lib/MC/ELFObjectWriter.cpp
>>      llvm/trunk/lib/MC/MCELFStreamer.cpp
>>      llvm/trunk/lib/MC/MCMachOStreamer.cpp
>>      llvm/trunk/lib/MC/MCObjectStreamer.cpp
>>      llvm/trunk/lib/MC/MachObjectWriter.cpp
>>      llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp
>>      llvm/trunk/lib/MC/WinCOFFStreamer.cpp
>>      llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
>>      llvm/trunk/lib/Target/AArch64/MCTargetDesc/
>> AArch64ELFObjectWriter.cpp
>>      llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
>>      llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h
>>      llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
>>      llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
>>      llvm/trunk/lib/Target/AArch64/MCTargetDesc/
>> AArch64MachObjectWriter.cpp
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
>>      llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
>>      llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp
>>      llvm/trunk/lib/Target/CppBackend/CPPTargetMachine.h
>>      llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
>>      llvm/trunk/lib/Target/Hexagon/MCTargetDesc/
>> HexagonELFObjectWriter.cpp
>>      llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h
>>      llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
>>      llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h
>>      llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
>>      llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp
>>      llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h
>>      llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h
>>      llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
>>      llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h
>>      llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
>>      llvm/trunk/lib/Target/NVPTX/NVPTXTargetMachine.h
>>      llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
>>      llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
>>      llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h
>>      llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
>>      llvm/trunk/lib/Target/R600/MCTargetDesc/AMDGPUAsmBackend.cpp
>>      llvm/trunk/lib/Target/R600/MCTargetDesc/AMDGPUELFObjectWriter.cpp
>>      llvm/trunk/lib/Target/R600/MCTargetDesc/AMDGPUMCTargetDesc.h
>>      llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
>>      llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
>>      llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h
>>      llvm/trunk/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp
>>      llvm/trunk/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp
>>      llvm/trunk/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h
>>      llvm/trunk/lib/Target/TargetMachineC.cpp
>>      llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
>>      llvm/trunk/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
>>      llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
>>      llvm/trunk/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
>>      llvm/trunk/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
>>      llvm/trunk/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
>>      llvm/trunk/tools/llc/llc.cpp
>>      llvm/trunk/tools/llvm-mc/llvm-mc.cpp
>>
>> Modified: llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/LTO/LTOCodeGenerator.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h (original)
>> +++ llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h Tue Apr 14 17:14:34
>> 2015
>> @@ -53,6 +53,7 @@ namespace llvm {
>>     class TargetLibraryInfo;
>>     class TargetMachine;
>>     class raw_ostream;
>> +  class raw_pwrite_stream;
>>
>>   //===-------------------------------------------------------
>> ---------------===//
>>   /// C++ class which implements the opaque lto_code_gen_t type.
>> @@ -137,7 +138,7 @@ struct LTOCodeGenerator {
>>   private:
>>     void initializeLTOPasses();
>>
>> -  bool compileOptimized(raw_ostream &out, std::string &errMsg);
>> +  bool compileOptimized(raw_pwrite_stream &out, std::string &errMsg);
>>     bool compileOptimizedToFile(const char **name, std::string &errMsg);
>>     void applyScopeRestrictions();
>>     void applyRestriction(GlobalValue &GV, ArrayRef<StringRef> Libcalls,
>>
>> Modified: llvm/trunk/include/llvm/MC/MCAsmBackend.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/MC/MCAsmBackend.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/MC/MCAsmBackend.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCAsmBackend.h Tue Apr 14 17:14:34 2015
>> @@ -48,7 +48,7 @@ public:
>>
>>     /// Create a new MCObjectWriter instance for use by the assembler
>> backend to
>>     /// emit the final object file.
>> -  virtual MCObjectWriter *createObjectWriter(raw_ostream &OS) const = 0;
>> +  virtual MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS)
>> const = 0;
>>
>>     /// Create a new ELFObjectTargetWriter to enable non-standard
>>     /// ELFObjectWriters.
>>
>> Modified: llvm/trunk/include/llvm/MC/MCELFObjectWriter.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/MC/MCELFObjectWriter.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/MC/MCELFObjectWriter.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCELFObjectWriter.h Tue Apr 14 17:14:34
>> 2015
>> @@ -24,6 +24,7 @@ class MCSectionData;
>>   class MCSymbol;
>>   class MCSymbolData;
>>   class MCValue;
>> +class raw_pwrite_stream;
>>
>>   struct ELFRelocationEntry {
>>     uint64_t Offset; // Where is the relocation.
>> @@ -130,7 +131,8 @@ public:
>>   /// \param OS - The stream to write to.
>>   /// \returns The constructed object writer.
>>   MCObjectWriter *createELFObjectWriter(MCELFObjectTargetWriter *MOTW,
>> -                                      raw_ostream &OS, bool
>> IsLittleEndian);
>> +                                      raw_pwrite_stream &OS,
>> +                                      bool IsLittleEndian);
>>   } // End llvm namespace
>>
>>   #endif
>>
>> Modified: llvm/trunk/include/llvm/MC/MCELFStreamer.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/MC/MCELFStreamer.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/MC/MCELFStreamer.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCELFStreamer.h Tue Apr 14 17:14:34 2015
>> @@ -29,10 +29,9 @@ class raw_ostream;
>>
>>   class MCELFStreamer : public MCObjectStreamer {
>>   public:
>> -  MCELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS,
>> +  MCELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_pwrite_stream
>> &OS,
>>                   MCCodeEmitter *Emitter)
>> -      : MCObjectStreamer(Context, TAB, OS, Emitter),
>> -        SeenIdent(false) {}
>> +      : MCObjectStreamer(Context, TAB, OS, Emitter), SeenIdent(false) {}
>>
>>     ~MCELFStreamer() override;
>>
>> @@ -116,8 +115,9 @@ private:
>>   };
>>
>>   MCELFStreamer *createARMELFStreamer(MCContext &Context, MCAsmBackend
>> &TAB,
>> -                                    raw_ostream &OS, MCCodeEmitter
>> *Emitter,
>> -                                    bool RelaxAll, bool IsThumb);
>> +                                    raw_pwrite_stream &OS,
>> +                                    MCCodeEmitter *Emitter, bool
>> RelaxAll,
>> +                                    bool IsThumb);
>>
>>   } // end namespace llvm
>>
>>
>> Modified: llvm/trunk/include/llvm/MC/MCMachObjectWriter.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/MC/MCMachObjectWriter.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/MC/MCMachObjectWriter.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCMachObjectWriter.h Tue Apr 14 17:14:34
>> 2015
>> @@ -119,7 +119,7 @@ class MachObjectWriter : public MCObject
>>     MachSymbolData *findSymbolData(const MCSymbol &Sym);
>>
>>   public:
>> -  MachObjectWriter(MCMachObjectTargetWriter *MOTW, raw_ostream &OS,
>> +  MachObjectWriter(MCMachObjectTargetWriter *MOTW, raw_pwrite_stream
>> &OS,
>>                      bool IsLittleEndian)
>>         : MCObjectWriter(OS, IsLittleEndian), TargetObjectWriter(MOTW) {}
>>
>> @@ -279,7 +279,8 @@ public:
>>   /// \param OS - The stream to write to.
>>   /// \returns The constructed object writer.
>>   MCObjectWriter *createMachObjectWriter(MCMachObjectTargetWriter *MOTW,
>> -                                       raw_ostream &OS, bool
>> IsLittleEndian);
>> +                                       raw_pwrite_stream &OS,
>> +                                       bool IsLittleEndian);
>>
>>   } // End llvm namespace
>>
>>
>> Modified: llvm/trunk/include/llvm/MC/MCObjectStreamer.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/MC/MCObjectStreamer.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/MC/MCObjectStreamer.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCObjectStreamer.h Tue Apr 14 17:14:34
>> 2015
>> @@ -24,6 +24,7 @@ class MCFragment;
>>   class MCDataFragment;
>>   class MCAsmBackend;
>>   class raw_ostream;
>> +class raw_pwrite_stream;
>>
>>   /// \brief Streaming object file generation interface.
>>   ///
>> @@ -45,7 +46,7 @@ class MCObjectStreamer : public MCStream
>>     void EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) override;
>>
>>   protected:
>> -  MCObjectStreamer(MCContext &Context, MCAsmBackend &TAB, raw_ostream
>> &OS,
>> +  MCObjectStreamer(MCContext &Context, MCAsmBackend &TAB,
>> raw_pwrite_stream &OS,
>>                      MCCodeEmitter *Emitter);
>>     ~MCObjectStreamer() override;
>>
>>
>> Modified: llvm/trunk/include/llvm/MC/MCObjectWriter.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/MC/MCObjectWriter.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/MC/MCObjectWriter.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCObjectWriter.h Tue Apr 14 17:14:34 2015
>> @@ -42,12 +42,12 @@ class MCObjectWriter {
>>     void operator=(const MCObjectWriter &) = delete;
>>
>>   protected:
>> -  raw_ostream &OS;
>> +  raw_pwrite_stream &OS;
>>
>>     unsigned IsLittleEndian : 1;
>>
>>   protected: // Can only create subclasses.
>> -  MCObjectWriter(raw_ostream &OS, bool IsLittleEndian)
>> +  MCObjectWriter(raw_pwrite_stream &OS, bool IsLittleEndian)
>>         : OS(OS), IsLittleEndian(IsLittleEndian) {}
>>
>>   public:
>>
>> Modified: llvm/trunk/include/llvm/MC/MCWinCOFFObjectWriter.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/MC/MCWinCOFFObjectWriter.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/MC/MCWinCOFFObjectWriter.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCWinCOFFObjectWriter.h Tue Apr 14
>> 17:14:34 2015
>> @@ -16,6 +16,7 @@ class MCFixup;
>>   class MCObjectWriter;
>>   class MCValue;
>>   class raw_ostream;
>> +class raw_pwrite_stream;
>>
>>     class MCWinCOFFObjectTargetWriter {
>>       virtual void anchor();
>> @@ -40,7 +41,7 @@ class raw_ostream;
>>     /// \param OS - The stream to write to.
>>     /// \returns The constructed object writer.
>>     MCObjectWriter *createWinCOFFObjectWriter(MCWinCOFFObjectTargetWriter
>> *MOTW,
>> -                                            raw_ostream &OS);
>> +                                            raw_pwrite_stream &OS);
>>   } // End llvm namespace
>>
>>   #endif
>>
>> Modified: llvm/trunk/include/llvm/MC/MCWinCOFFStreamer.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/MC/MCWinCOFFStreamer.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/MC/MCWinCOFFStreamer.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCWinCOFFStreamer.h Tue Apr 14 17:14:34
>> 2015
>> @@ -24,11 +24,12 @@ class MCSubtargetInfo;
>>   class MCSymbol;
>>   class StringRef;
>>   class raw_ostream;
>> +class raw_pwrite_stream;
>>
>>   class MCWinCOFFStreamer : public MCObjectStreamer {
>>   public:
>>     MCWinCOFFStreamer(MCContext &Context, MCAsmBackend &MAB,
>> MCCodeEmitter &CE,
>> -                    raw_ostream &OS);
>> +                    raw_pwrite_stream &OS);
>>
>>     /// state management
>>     void reset() override {
>>
>> Modified: llvm/trunk/include/llvm/Support/TargetRegistry.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/Support/TargetRegistry.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/Support/TargetRegistry.h (original)
>> +++ llvm/trunk/include/llvm/Support/TargetRegistry.h Tue Apr 14 17:14:34
>> 2015
>> @@ -50,6 +50,7 @@ namespace llvm {
>>     class TargetMachine;
>>     class TargetOptions;
>>     class raw_ostream;
>> +  class raw_pwrite_stream;
>>     class formatted_raw_ostream;
>>
>>     MCStreamer *createNullStreamer(MCContext &Ctx);
>> @@ -61,10 +62,10 @@ namespace llvm {
>>
>>     /// Takes ownership of \p TAB and \p CE.
>>     MCStreamer *createELFStreamer(MCContext &Ctx, MCAsmBackend &TAB,
>> -                                raw_ostream &OS, MCCodeEmitter *CE,
>> +                                raw_pwrite_stream &OS, MCCodeEmitter *CE,
>>                                   bool RelaxAll);
>>     MCStreamer *createMachOStreamer(MCContext &Ctx, MCAsmBackend &TAB,
>> -                                  raw_ostream &OS, MCCodeEmitter *CE,
>> +                                  raw_pwrite_stream &OS, MCCodeEmitter
>> *CE,
>>                                     bool RelaxAll, bool
>> DWARFMustBeAtTheEnd,
>>                                     bool LabelSections = false);
>>
>> @@ -135,14 +136,15 @@ namespace llvm {
>>                                                     const MCRegisterInfo
>> &MRI,
>>                                                     MCContext &Ctx);
>>       typedef MCStreamer *(*ELFStreamerCtorTy)(const Triple &T, MCContext
>> &Ctx,
>> -                                             MCAsmBackend &TAB,
>> raw_ostream &OS,
>> +                                             MCAsmBackend &TAB,
>> +                                             raw_pwrite_stream &OS,
>>                                                MCCodeEmitter *Emitter,
>>                                                bool RelaxAll);
>>       typedef MCStreamer *(*MachOStreamerCtorTy)(
>> -        MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &OS,
>> +        MCContext &Ctx, MCAsmBackend &TAB, raw_pwrite_stream &OS,
>>           MCCodeEmitter *Emitter, bool RelaxAll, bool
>> DWARFMustBeAtTheEnd);
>>       typedef MCStreamer *(*COFFStreamerCtorTy)(MCContext &Ctx,
>> MCAsmBackend &TAB,
>> -                                              raw_ostream &OS,
>> +                                              raw_pwrite_stream &OS,
>>                                                 MCCodeEmitter *Emitter,
>>                                                 bool RelaxAll);
>>       typedef MCTargetStreamer *(*NullTargetStreamerCtorTy)(MCStreamer
>> &S);
>> @@ -438,7 +440,7 @@ namespace llvm {
>>       /// \param Emitter The target independent assembler object.Takes
>> ownership.
>>       /// \param RelaxAll Relax all fixups?
>>       MCStreamer *createMCObjectStreamer(const Triple &T, MCContext &Ctx,
>> -                                       MCAsmBackend &TAB, raw_ostream
>> &OS,
>> +                                       MCAsmBackend &TAB,
>> raw_pwrite_stream &OS,
>>                                          MCCodeEmitter *Emitter,
>>                                          const MCSubtargetInfo &STI,
>>                                          bool RelaxAll,
>>
>> Modified: llvm/trunk/include/llvm/Target/TargetMachine.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
>> llvm/Target/TargetMachine.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/Target/TargetMachine.h (original)
>> +++ llvm/trunk/include/llvm/Target/TargetMachine.h Tue Apr 14 17:14:34
>> 2015
>> @@ -48,6 +48,7 @@ class TargetSubtargetInfo;
>>   class TargetTransformInfo;
>>   class formatted_raw_ostream;
>>   class raw_ostream;
>> +class raw_pwrite_stream;
>>   class TargetLoweringObjectFile;
>>
>>   // The old pass manager infrastructure is hidden in a legacy namespace
>> now.
>> @@ -207,7 +208,7 @@ public:
>>     /// emitted.  Typically this will involve several steps of code
>> generation.
>>     /// This method should return true if emission of this file type is
>> not
>>     /// supported, or false on success.
>> -  virtual bool addPassesToEmitFile(PassManagerBase &, raw_ostream &,
>> +  virtual bool addPassesToEmitFile(PassManagerBase &, raw_pwrite_stream
>> &,
>>                                      CodeGenFileType,
>>                                      bool /*DisableVerify*/ = true,
>>                                      AnalysisID /*StartAfter*/ = nullptr,
>> @@ -220,9 +221,8 @@ public:
>>     /// fills the MCContext Ctx pointer which can be used to build custom
>>     /// MCStreamer.
>>     ///
>> -  virtual bool addPassesToEmitMC(PassManagerBase &,
>> -                                 MCContext *&,
>> -                                 raw_ostream &,
>> +  virtual bool addPassesToEmitMC(PassManagerBase &, MCContext *&,
>> +                                 raw_pwrite_stream &,
>>                                    bool /*DisableVerify*/ = true) {
>>       return true;
>>     }
>> @@ -256,7 +256,7 @@ public:
>>
>>     /// Add passes to the specified pass manager to get the specified file
>>     /// emitted.  Typically this will involve several steps of code
>> generation.
>> -  bool addPassesToEmitFile(PassManagerBase &PM, raw_ostream &Out,
>> +  bool addPassesToEmitFile(PassManagerBase &PM, raw_pwrite_stream &Out,
>>                              CodeGenFileType FileType, bool DisableVerify
>> = true,
>>                              AnalysisID StartAfter = nullptr,
>>                              AnalysisID StopAfter = nullptr) override;
>> @@ -266,7 +266,8 @@ public:
>>     /// fills the MCContext Ctx pointer which can be used to build custom
>>     /// MCStreamer.
>>     bool addPassesToEmitMC(PassManagerBase &PM, MCContext *&Ctx,
>> -                         raw_ostream &OS, bool DisableVerify = true)
>> override;
>> +                         raw_pwrite_stream &OS,
>> +                         bool DisableVerify = true) override;
>>   };
>>
>>   } // End llvm namespace
>>
>> Modified: llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
>> CodeGen/LLVMTargetMachine.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp Tue Apr 14 17:14:34 2015
>> @@ -141,7 +141,7 @@ static MCContext *addPassesToGenerateCod
>>   }
>>
>>   bool LLVMTargetMachine::addPassesToEmitFile(
>> -    PassManagerBase &PM, raw_ostream &Out, CodeGenFileType FileType,
>> +    PassManagerBase &PM, raw_pwrite_stream &Out, CodeGenFileType
>> FileType,
>>       bool DisableVerify, AnalysisID StartAfter, AnalysisID StopAfter) {
>>     // Add common CodeGen passes.
>>     MCContext *Context = addPassesToGenerateCode(this, PM, DisableVerify,
>> @@ -227,9 +227,8 @@ bool LLVMTargetMachine::addPassesToEmitF
>>   /// code is not supported. It fills the MCContext Ctx pointer which can
>> be
>>   /// used to build custom MCStreamer.
>>   ///
>> -bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM,
>> -                                          MCContext *&Ctx,
>> -                                          raw_ostream &Out,
>> +bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM,
>> MCContext *&Ctx,
>> +                                          raw_pwrite_stream &Out,
>>                                             bool DisableVerify) {
>>     // Add common CodeGen passes.
>>     Ctx = addPassesToGenerateCode(this, PM, DisableVerify, nullptr,
>> nullptr);
>>
>> Modified: llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/
>> LTOCodeGenerator.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/LTO/LTOCodeGenerator.cpp (original)
>> +++ llvm/trunk/lib/LTO/LTOCodeGenerator.cpp Tue Apr 14 17:14:34 2015
>> @@ -566,7 +566,8 @@ bool LTOCodeGenerator::optimize(bool Dis
>>     return true;
>>   }
>>
>> -bool LTOCodeGenerator::compileOptimized(raw_ostream &out, std::string
>> &errMsg) {
>> +bool LTOCodeGenerator::compileOptimized(raw_pwrite_stream &out,
>> +                                        std::string &errMsg) {
>>     if (!this->determineTarget(errMsg))
>>       return false;
>>
>>
>> Modified: llvm/trunk/lib/MC/ELFObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
>> ELFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/MC/ELFObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/MC/ELFObjectWriter.cpp Tue Apr 14 17:14:34 2015
>> @@ -168,7 +168,7 @@ class ELFObjectWriter : public MCObjectW
>>       }
>>
>>     public:
>> -    ELFObjectWriter(MCELFObjectTargetWriter *MOTW, raw_ostream &OS,
>> +    ELFObjectWriter(MCELFObjectTargetWriter *MOTW, raw_pwrite_stream
>> &OS,
>>                       bool IsLittleEndian)
>>           : MCObjectWriter(OS, IsLittleEndian), FWriter(IsLittleEndian),
>>             TargetObjectWriter(MOTW), NeedsGOT(false) {}
>> @@ -1711,7 +1711,7 @@ bool ELFObjectWriter::isWeak(const MCSym
>>   }
>>
>>   MCObjectWriter *llvm::createELFObjectWriter(MCELFObjectTargetWriter
>> *MOTW,
>> -                                            raw_ostream &OS,
>> +                                            raw_pwrite_stream &OS,
>>                                               bool IsLittleEndian) {
>>     return new ELFObjectWriter(MOTW, OS, IsLittleEndian);
>>   }
>>
>> Modified: llvm/trunk/lib/MC/MCELFStreamer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
>> MCELFStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/MC/MCELFStreamer.cpp (original)
>> +++ llvm/trunk/lib/MC/MCELFStreamer.cpp Tue Apr 14 17:14:34 2015
>> @@ -647,7 +647,7 @@ void MCELFStreamer::FinishImpl() {
>>   }
>>
>>   MCStreamer *llvm::createELFStreamer(MCContext &Context, MCAsmBackend
>> &MAB,
>> -                                    raw_ostream &OS, MCCodeEmitter *CE,
>> +                                    raw_pwrite_stream &OS, MCCodeEmitter
>> *CE,
>>                                       bool RelaxAll) {
>>     MCELFStreamer *S = new MCELFStreamer(Context, MAB, OS, CE);
>>     if (RelaxAll)
>>
>> Modified: llvm/trunk/lib/MC/MCMachOStreamer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
>> MCMachOStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/MC/MCMachOStreamer.cpp (original)
>> +++ llvm/trunk/lib/MC/MCMachOStreamer.cpp Tue Apr 14 17:14:34 2015
>> @@ -54,7 +54,7 @@ private:
>>     void EmitDataRegionEnd();
>>
>>   public:
>> -  MCMachOStreamer(MCContext &Context, MCAsmBackend &MAB, raw_ostream &OS,
>> +  MCMachOStreamer(MCContext &Context, MCAsmBackend &MAB,
>> raw_pwrite_stream &OS,
>>                     MCCodeEmitter *Emitter, bool DWARFMustBeAtTheEnd,
>> bool label)
>>         : MCObjectStreamer(Context, MAB, OS, Emitter),
>> LabelSections(label),
>>           DWARFMustBeAtTheEnd(DWARFMustBeAtTheEnd),
>> CreatedADWARFSection(false) {}
>> @@ -491,7 +491,7 @@ void MCMachOStreamer::FinishImpl() {
>>   }
>>
>>   MCStreamer *llvm::createMachOStreamer(MCContext &Context, MCAsmBackend
>> &MAB,
>> -                                      raw_ostream &OS, MCCodeEmitter *CE,
>> +                                      raw_pwrite_stream &OS,
>> MCCodeEmitter *CE,
>>                                         bool RelaxAll, bool
>> DWARFMustBeAtTheEnd,
>>                                         bool LabelSections) {
>>     MCMachOStreamer *S = new MCMachOStreamer(Context, MAB, OS, CE,
>>
>> Modified: llvm/trunk/lib/MC/MCObjectStreamer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
>> MCObjectStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/MC/MCObjectStreamer.cpp (original)
>> +++ llvm/trunk/lib/MC/MCObjectStreamer.cpp Tue Apr 14 17:14:34 2015
>> @@ -24,7 +24,8 @@
>>   using namespace llvm;
>>
>>   MCObjectStreamer::MCObjectStreamer(MCContext &Context, MCAsmBackend
>> &TAB,
>> -                                   raw_ostream &OS, MCCodeEmitter
>> *Emitter_)
>> +                                   raw_pwrite_stream &OS,
>> +                                   MCCodeEmitter *Emitter_)
>>       : MCStreamer(Context),
>>         Assembler(new MCAssembler(Context, TAB, *Emitter_,
>>                                   *TAB.createObjectWriter(OS), OS)),
>>
>> Modified: llvm/trunk/lib/MC/MachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
>> MachObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/MC/MachObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/MC/MachObjectWriter.cpp Tue Apr 14 17:14:34 2015
>> @@ -1007,7 +1007,7 @@ void MachObjectWriter::WriteObject(MCAss
>>   }
>>
>>   MCObjectWriter *llvm::createMachObjectWriter(MCMachObjectTargetWriter
>> *MOTW,
>> -                                             raw_ostream &OS,
>> +                                             raw_pwrite_stream &OS,
>>                                                bool IsLittleEndian) {
>>     return new MachObjectWriter(MOTW, OS, IsLittleEndian);
>>   }
>>
>> Modified: llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
>> WinCOFFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp Tue Apr 14 17:14:34 2015
>> @@ -126,7 +126,7 @@ public:
>>
>>     bool UseBigObj;
>>
>> -  WinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW, raw_ostream
>> &OS);
>> +  WinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW,
>> raw_pwrite_stream &OS);
>>
>>     void reset() override {
>>       memset(&Header, 0, sizeof(Header));
>> @@ -258,7 +258,7 @@ size_t COFFSection::size() {
>>   // WinCOFFObjectWriter class implementation
>>
>>   WinCOFFObjectWriter::WinCOFFObjectWriter(MCWinCOFFObjectTargetWriter
>> *MOTW,
>> -                                         raw_ostream &OS)
>> +                                         raw_pwrite_stream &OS)
>>       : MCObjectWriter(OS, true), TargetObjectWriter(MOTW) {
>>     memset(&Header, 0, sizeof(Header));
>>
>> @@ -1075,6 +1075,6 @@ void MCWinCOFFObjectTargetWriter::anchor
>>
>>   MCObjectWriter *
>>   llvm::createWinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW,
>> -                                raw_ostream &OS) {
>> +                                raw_pwrite_stream &OS) {
>>     return new WinCOFFObjectWriter(MOTW, OS);
>>   }
>>
>> Modified: llvm/trunk/lib/MC/WinCOFFStreamer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
>> WinCOFFStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/MC/WinCOFFStreamer.cpp (original)
>> +++ llvm/trunk/lib/MC/WinCOFFStreamer.cpp Tue Apr 14 17:14:34 2015
>> @@ -39,7 +39,7 @@ using namespace llvm;
>>
>>   namespace llvm {
>>   MCWinCOFFStreamer::MCWinCOFFStreamer(MCContext &Context, MCAsmBackend
>> &MAB,
>> -                                     MCCodeEmitter &CE, raw_ostream &OS)
>> +                                     MCCodeEmitter &CE,
>> raw_pwrite_stream &OS)
>>       : MCObjectStreamer(Context, MAB, OS, &CE), CurSymbol(nullptr) {}
>>
>>   void MCWinCOFFStreamer::EmitInstToData(const MCInst &Inst,
>>
>> Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/
>> AArch64AsmBackend.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> AArch64/MCTargetDesc/AArch64AsmBackend.cpp?rev=
>> 234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp Tue
>> Apr 14 17:14:34 2015
>> @@ -313,7 +313,7 @@ public:
>>     DarwinAArch64AsmBackend(const Target &T, const MCRegisterInfo &MRI)
>>         : AArch64AsmBackend(T), MRI(MRI) {}
>>
>> -  MCObjectWriter *createObjectWriter(raw_ostream &OS) const override {
>> +  MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const
>> override {
>>       return createAArch64MachObjectWriter(OS, MachO::CPU_TYPE_ARM64,
>>                                            MachO::CPU_SUBTYPE_ARM64_ALL);
>>     }
>> @@ -461,7 +461,7 @@ public:
>>     ELFAArch64AsmBackend(const Target &T, uint8_t OSABI, bool
>> IsLittleEndian)
>>       : AArch64AsmBackend(T), OSABI(OSABI),
>> IsLittleEndian(IsLittleEndian) {}
>>
>> -  MCObjectWriter *createObjectWriter(raw_ostream &OS) const override {
>> +  MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const
>> override {
>>       return createAArch64ELFObjectWriter(OS, OSABI, IsLittleEndian);
>>     }
>>
>>
>> Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/
>> AArch64ELFObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp?rev=234950&r1=234949&r2=
>> 234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
>> Tue Apr 14 17:14:34 2015
>> @@ -248,7 +248,7 @@ unsigned AArch64ELFObjectWriter::GetRelo
>>     llvm_unreachable("Unimplemented fixup -> relocation");
>>   }
>>
>> -MCObjectWriter *llvm::createAArch64ELFObjectWriter(raw_ostream &OS,
>> +MCObjectWriter *llvm::createAArch64ELFObjectWriter(raw_pwrite_stream
>> &OS,
>>                                                      uint8_t OSABI,
>>                                                      bool IsLittleEndian)
>> {
>>     MCELFObjectTargetWriter *MOTW =
>>
>> Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/
>> AArch64ELFStreamer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> AArch64/MCTargetDesc/AArch64ELFStreamer.cpp?rev=
>> 234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
>> Tue Apr 14 17:14:34 2015
>> @@ -89,8 +89,8 @@ class AArch64ELFStreamer : public MCELFS
>>   public:
>>     friend class AArch64TargetELFStreamer;
>>
>> -  AArch64ELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_ostream
>> &OS,
>> -                     MCCodeEmitter *Emitter)
>> +  AArch64ELFStreamer(MCContext &Context, MCAsmBackend &TAB,
>> +                     raw_pwrite_stream &OS, MCCodeEmitter *Emitter)
>>         : MCELFStreamer(Context, TAB, OS, Emitter),
>> MappingSymbolCounter(0),
>>           LastEMS(EMS_None) {}
>>
>> @@ -211,8 +211,8 @@ MCTargetStreamer *createAArch64AsmTarget
>>   }
>>
>>   MCELFStreamer *createAArch64ELFStreamer(MCContext &Context,
>> MCAsmBackend &TAB,
>> -                                        raw_ostream &OS, MCCodeEmitter
>> *Emitter,
>> -                                        bool RelaxAll) {
>> +                                        raw_pwrite_stream &OS,
>> +                                        MCCodeEmitter *Emitter, bool
>> RelaxAll) {
>>     AArch64ELFStreamer *S = new AArch64ELFStreamer(Context, TAB, OS,
>> Emitter);
>>     if (RelaxAll)
>>       S->getAssembler().setRelaxAll(true);
>>
>> Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> AArch64/MCTargetDesc/AArch64ELFStreamer.h?rev=234950&r1=234949&r2=234950&
>> view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h
>> (original)
>> +++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h Tue
>> Apr 14 17:14:34 2015
>> @@ -19,8 +19,8 @@
>>   namespace llvm {
>>
>>   MCELFStreamer *createAArch64ELFStreamer(MCContext &Context,
>> MCAsmBackend &TAB,
>> -                                        raw_ostream &OS, MCCodeEmitter
>> *Emitter,
>> -                                        bool RelaxAll);
>> +                                        raw_pwrite_stream &OS,
>> +                                        MCCodeEmitter *Emitter, bool
>> RelaxAll);
>>   }
>>
>>   #endif
>>
>> Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/
>> AArch64MCTargetDesc.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp?rev=
>> 234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
>> Tue Apr 14 17:14:34 2015
>> @@ -123,14 +123,14 @@ static MCInstPrinter *createAArch64MCIns
>>   }
>>
>>   static MCStreamer *createELFStreamer(const Triple &T, MCContext &Ctx,
>> -                                     MCAsmBackend &TAB, raw_ostream &OS,
>> +                                     MCAsmBackend &TAB,
>> raw_pwrite_stream &OS,
>>                                        MCCodeEmitter *Emitter, bool
>> RelaxAll) {
>>     return createAArch64ELFStreamer(Ctx, TAB, OS, Emitter, RelaxAll);
>>   }
>>
>>   static MCStreamer *createMachOStreamer(MCContext &Ctx, MCAsmBackend
>> &TAB,
>> -                                       raw_ostream &OS, MCCodeEmitter
>> *Emitter,
>> -                                       bool RelaxAll,
>> +                                       raw_pwrite_stream &OS,
>> +                                       MCCodeEmitter *Emitter, bool
>> RelaxAll,
>>                                          bool DWARFMustBeAtTheEnd) {
>>     return createMachOStreamer(Ctx, TAB, OS, Emitter, RelaxAll,
>>                                DWARFMustBeAtTheEnd,
>>
>> Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/
>> AArch64MCTargetDesc.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> AArch64/MCTargetDesc/AArch64MCTargetDesc.h?rev=
>> 234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
>> (original)
>> +++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h Tue
>> Apr 14 17:14:34 2015
>> @@ -33,6 +33,7 @@ class StringRef;
>>   class Target;
>>   class Triple;
>>   class raw_ostream;
>> +class raw_pwrite_stream;
>>
>>   extern Target TheAArch64leTarget;
>>   extern Target TheAArch64beTarget;
>> @@ -48,10 +49,12 @@ MCAsmBackend *createAArch64beAsmBackend(
>>                                           const MCRegisterInfo &MRI,
>> StringRef TT,
>>                                           StringRef CPU);
>>
>> -MCObjectWriter *createAArch64ELFObjectWriter(raw_ostream &OS, uint8_t
>> OSABI,
>> +MCObjectWriter *createAArch64ELFObjectWriter(raw_pwrite_stream &OS,
>> +                                             uint8_t OSABI,
>>                                                bool IsLittleEndian);
>>
>> -MCObjectWriter *createAArch64MachObjectWriter(raw_ostream &OS, uint32_t
>> CPUType,
>> +MCObjectWriter *createAArch64MachObjectWriter(raw_pwrite_stream &OS,
>> +                                              uint32_t CPUType,
>>                                                 uint32_t CPUSubtype);
>>
>>   MCTargetStreamer *createAArch64AsmTargetStreamer(MCStreamer &S,
>>
>> Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/
>> AArch64MachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp?rev=234950&r1=234949&r2=
>> 234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
>> Tue Apr 14 17:14:34 2015
>> @@ -413,7 +413,7 @@ void AArch64MachObjectWriter::RecordRelo
>>     Writer->addRelocation(RelSymbol, Fragment->getParent(), MRE);
>>   }
>>
>> -MCObjectWriter *llvm::createAArch64MachObjectWriter(raw_ostream &OS,
>> +MCObjectWriter *llvm::createAArch64MachObjectWriter(raw_pwrite_stream
>> &OS,
>>                                                       uint32_t CPUType,
>>                                                       uint32_t
>> CPUSubtype) {
>>     return createMachObjectWriter(
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMAsmBackendDarwin.h?rev=234950&r1=234949&r2=234950&
>> view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h
>> (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h Tue Apr
>> 14 17:14:34 2015
>> @@ -23,7 +23,7 @@ public:
>>       HasDataInCodeSupport = true;
>>     }
>>
>> -  MCObjectWriter *createObjectWriter(raw_ostream &OS) const override {
>> +  MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const
>> override {
>>       return createARMMachObjectWriter(OS, /*Is64Bit=*/false,
>> MachO::CPU_TYPE_ARM,
>>                                        Subtype);
>>     }
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMAsmBackendELF.h?rev=234950&
>> r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h Tue Apr 14
>> 17:14:34 2015
>> @@ -18,7 +18,7 @@ public:
>>     ARMAsmBackendELF(const Target &T, StringRef TT, uint8_t OSABI, bool
>> IsLittle)
>>         : ARMAsmBackend(T, TT, IsLittle), OSABI(OSABI) {}
>>
>> -  MCObjectWriter *createObjectWriter(raw_ostream &OS) const override {
>> +  MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const
>> override {
>>       return createARMELFObjectWriter(OS, OSABI, isLittle());
>>     }
>>   };
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h?rev=234950&r1=234949&r2=234950&
>> view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h
>> (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h Tue
>> Apr 14 17:14:34 2015
>> @@ -17,7 +17,7 @@ class ARMAsmBackendWinCOFF : public ARMA
>>   public:
>>     ARMAsmBackendWinCOFF(const Target &T, StringRef Triple)
>>         : ARMAsmBackend(T, Triple, true) {}
>> -  MCObjectWriter *createObjectWriter(raw_ostream &OS) const override {
>> +  MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const
>> override {
>>       return createARMWinCOFFObjectWriter(OS, /*Is64Bit=*/false);
>>     }
>>   };
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMELFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&
>> view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp Tue
>> Apr 14 17:14:34 2015
>> @@ -251,7 +251,7 @@ unsigned ARMELFObjectWriter::GetRelocTyp
>>     return Type;
>>   }
>>
>> -MCObjectWriter *llvm::createARMELFObjectWriter(raw_ostream &OS,
>> +MCObjectWriter *llvm::createARMELFObjectWriter(raw_pwrite_stream &OS,
>>                                                  uint8_t OSABI,
>>                                                  bool IsLittleEndian) {
>>     MCELFObjectTargetWriter *MOTW = new ARMELFObjectWriter(OSABI);
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMELFStreamer.cpp?rev=234950&
>> r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp Tue Apr 14
>> 17:14:34 2015
>> @@ -472,7 +472,7 @@ class ARMELFStreamer : public MCELFStrea
>>   public:
>>     friend class ARMTargetELFStreamer;
>>
>> -  ARMELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS,
>> +  ARMELFStreamer(MCContext &Context, MCAsmBackend &TAB,
>> raw_pwrite_stream &OS,
>>                    MCCodeEmitter *Emitter, bool IsThumb)
>>         : MCELFStreamer(Context, TAB, OS, Emitter), IsThumb(IsThumb),
>>           MappingSymbolCounter(0), LastEMS(EMS_None) {
>> @@ -1382,8 +1382,9 @@ MCTargetStreamer *createARMObjectTargetS
>>   }
>>
>>   MCELFStreamer *createARMELFStreamer(MCContext &Context, MCAsmBackend
>> &TAB,
>> -                                    raw_ostream &OS, MCCodeEmitter
>> *Emitter,
>> -                                    bool RelaxAll, bool IsThumb) {
>> +                                    raw_pwrite_stream &OS,
>> +                                    MCCodeEmitter *Emitter, bool
>> RelaxAll,
>> +                                    bool IsThumb) {
>>       ARMELFStreamer *S = new ARMELFStreamer(Context, TAB, OS, Emitter,
>> IsThumb);
>>       // FIXME: This should eventually end up somewhere else where more
>>       // intelligent flag decisions can be made. For now we are just
>> maintaining
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMMCTargetDesc.cpp?rev=234950&r1=234949&r2=234950&
>> view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp Tue Apr
>> 14 17:14:34 2015
>> @@ -310,14 +310,14 @@ static MCCodeGenInfo *createARMMCCodeGen
>>   }
>>
>>   static MCStreamer *createELFStreamer(const Triple &T, MCContext &Ctx,
>> -                                     MCAsmBackend &MAB, raw_ostream &OS,
>> +                                     MCAsmBackend &MAB,
>> raw_pwrite_stream &OS,
>>                                        MCCodeEmitter *Emitter, bool
>> RelaxAll) {
>>     return createARMELFStreamer(Ctx, MAB, OS, Emitter, false,
>>                                 T.getArch() == Triple::thumb);
>>   }
>>
>>   static MCStreamer *createARMMachOStreamer(MCContext &Ctx, MCAsmBackend
>> &MAB,
>> -                                          raw_ostream &OS,
>> +                                          raw_pwrite_stream &OS,
>>                                             MCCodeEmitter *Emitter, bool
>> RelaxAll,
>>                                             bool DWARFMustBeAtTheEnd) {
>>     return createMachOStreamer(Ctx, MAB, OS, Emitter, false,
>> DWARFMustBeAtTheEnd);
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMMCTargetDesc.h?rev=234950&
>> r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h Tue Apr 14
>> 17:14:34 2015
>> @@ -34,6 +34,7 @@ class StringRef;
>>   class Target;
>>   class Triple;
>>   class raw_ostream;
>> +class raw_pwrite_stream;
>>
>>   extern Target TheARMLETarget, TheThumbLETarget;
>>   extern Target TheARMBETarget, TheThumbBETarget;
>> @@ -82,20 +83,21 @@ MCAsmBackend *createThumbBEAsmBackend(co
>>   // Construct a PE/COFF machine code streamer which will generate a
>> PE/COFF
>>   // object file.
>>   MCStreamer *createARMWinCOFFStreamer(MCContext &Context, MCAsmBackend
>> &MAB,
>> -                                     raw_ostream &OS, MCCodeEmitter
>> *Emitter,
>> -                                     bool RelaxAll);
>> +                                     raw_pwrite_stream &OS,
>> +                                     MCCodeEmitter *Emitter, bool
>> RelaxAll);
>>
>>   /// Construct an ELF Mach-O object writer.
>> -MCObjectWriter *createARMELFObjectWriter(raw_ostream &OS, uint8_t OSABI,
>> +MCObjectWriter *createARMELFObjectWriter(raw_pwrite_stream &OS, uint8_t
>> OSABI,
>>                                            bool IsLittleEndian);
>>
>>   /// Construct an ARM Mach-O object writer.
>> -MCObjectWriter *createARMMachObjectWriter(raw_ostream &OS, bool Is64Bit,
>> +MCObjectWriter *createARMMachObjectWriter(raw_pwrite_stream &OS, bool
>> Is64Bit,
>>                                             uint32_t CPUType,
>>                                             uint32_t CPUSubtype);
>>
>>   /// Construct an ARM PE/COFF object writer.
>> -MCObjectWriter *createARMWinCOFFObjectWriter(raw_ostream &OS, bool
>> Is64Bit);
>> +MCObjectWriter *createARMWinCOFFObjectWriter(raw_pwrite_stream &OS,
>> +                                             bool Is64Bit);
>>
>>   /// Construct ARM Mach-O relocation info.
>>   MCRelocationInfo *createARMMachORelocationInfo(MCContext &Ctx);
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMMachObjectWriter.cpp?rev=234950&r1=234949&r2=234950&
>> view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp Tue
>> Apr 14 17:14:34 2015
>> @@ -472,8 +472,8 @@ void ARMMachObjectWriter::RecordRelocati
>>     Writer->addRelocation(RelSymbol, Fragment->getParent(), MRE);
>>   }
>>
>> -MCObjectWriter *llvm::createARMMachObjectWriter(raw_ostream &OS, bool
>> Is64Bit,
>> -                                                uint32_t CPUType,
>> +MCObjectWriter *llvm::createARMMachObjectWriter(raw_pwrite_stream &OS,
>> +                                                bool Is64Bit, uint32_t
>> CPUType,
>>                                                   uint32_t CPUSubtype) {
>>     return createMachObjectWriter(new ARMMachObjectWriter(Is64Bit,
>>                                                           CPUType,
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/
>> ARMWinCOFFObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp?rev=234950&r1=234949&r2=
>> 234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
>> Tue Apr 14 17:14:34 2015
>> @@ -82,7 +82,8 @@ bool ARMWinCOFFObjectWriter::recordReloc
>>   }
>>
>>   namespace llvm {
>> -MCObjectWriter *createARMWinCOFFObjectWriter(raw_ostream &OS, bool
>> Is64Bit) {
>> +MCObjectWriter *createARMWinCOFFObjectWriter(raw_pwrite_stream &OS,
>> +                                             bool Is64Bit) {
>>     MCWinCOFFObjectTargetWriter *MOTW = new ARMWinCOFFObjectWriter(
>> Is64Bit);
>>     return createWinCOFFObjectWriter(MOTW, OS);
>>   }
>>
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp?rev=234950&r1=234949&r2=234950&
>> view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp Tue
>> Apr 14 17:14:34 2015
>> @@ -16,8 +16,8 @@ namespace {
>>   class ARMWinCOFFStreamer : public MCWinCOFFStreamer {
>>   public:
>>     ARMWinCOFFStreamer(MCContext &C, MCAsmBackend &AB, MCCodeEmitter &CE,
>> -                     raw_ostream &OS)
>> -    : MCWinCOFFStreamer(C, AB, CE, OS) { }
>> +                     raw_pwrite_stream &OS)
>> +      : MCWinCOFFStreamer(C, AB, CE, OS) {}
>>
>>     void EmitAssemblerFlag(MCAssemblerFlag Flag) override;
>>     void EmitThumbFunc(MCSymbol *Symbol) override;
>> @@ -38,7 +38,8 @@ void ARMWinCOFFStreamer::EmitThumbFunc(M
>>   }
>>
>>   MCStreamer *llvm::createARMWinCOFFStreamer(MCContext &Context,
>> -                                           MCAsmBackend &MAB,
>> raw_ostream &OS,
>> +                                           MCAsmBackend &MAB,
>> +                                           raw_pwrite_stream &OS,
>>                                              MCCodeEmitter *Emitter,
>>                                              bool RelaxAll) {
>>     return new ARMWinCOFFStreamer(Context, MAB, *Emitter, OS);
>>
>> Modified: llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> CppBackend/CPPBackend.cpp?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp (original)
>> +++ llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp Tue Apr 14 17:14:34
>> 2015
>> @@ -2149,11 +2149,9 @@ char CppWriter::ID = 0;
>>   //                       External Interface declaration
>>   //===-------------------------------------------------------
>> ---------------===//
>>
>> -bool CPPTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
>> raw_ostream &o,
>> -                                           CodeGenFileType FileType,
>> -                                           bool DisableVerify,
>> -                                           AnalysisID StartAfter,
>> -                                           AnalysisID StopAfter) {
>> +bool CPPTargetMachine::addPassesToEmitFile(
>> +    PassManagerBase &PM, raw_pwrite_stream &o, CodeGenFileType FileType,
>> +    bool DisableVerify, AnalysisID StartAfter, AnalysisID StopAfter) {
>>     if (FileType != TargetMachine::CGFT_AssemblyFile)
>>       return true;
>>     auto FOut = llvm::make_unique<formatted_raw_ostream>(o);
>>
>> Modified: llvm/trunk/lib/Target/CppBackend/CPPTargetMachine.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> CppBackend/CPPTargetMachine.h?rev=234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/CppBackend/CPPTargetMachine.h (original)
>> +++ llvm/trunk/lib/Target/CppBackend/CPPTargetMachine.h Tue Apr 14
>> 17:14:34 2015
>> @@ -29,7 +29,7 @@ struct CPPTargetMachine : public TargetM
>>         : TargetMachine(T, "", TT, CPU, FS, Options) {}
>>
>>   public:
>> -  bool addPassesToEmitFile(PassManagerBase &PM, raw_ostream &Out,
>> +  bool addPassesToEmitFile(PassManagerBase &PM, raw_pwrite_stream &Out,
>>                              CodeGenFileType FileType, bool DisableVerify,
>>                              AnalysisID StartAfter,
>>                              AnalysisID StopAfter) override;
>>
>> Modified: llvm/trunk/lib/Target/Hexagon/MCTargetDesc/
>> HexagonAsmBackend.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> Hexagon/MCTargetDesc/HexagonAsmBackend.cpp?rev=
>> 234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp Tue
>> Apr 14 17:14:34 2015
>> @@ -57,7 +57,7 @@ public:
>>     ELFHexagonAsmBackend(Target const &T, uint8_t OSABI)
>>         : HexagonAsmBackend(T), OSABI(OSABI) {}
>>
>> -  MCObjectWriter *createObjectWriter(raw_ostream &OS) const override {
>> +  MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const
>> override {
>>       StringRef CPU("HexagonV4");
>>       return createHexagonELFObjectWriter(OS, OSABI, CPU);
>>     }
>>
>> Modified: llvm/trunk/lib/Target/Hexagon/MCTargetDesc/
>> HexagonELFObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp?rev=234950&r1=234949&r2=
>> 234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp
>> Tue Apr 14 17:14:34 2015
>> @@ -55,7 +55,7 @@ unsigned HexagonELFObjectWriter::GetRelo
>>     return Type;
>>   }
>>
>> -MCObjectWriter *llvm::createHexagonELFObjectWriter(raw_ostream &OS,
>> +MCObjectWriter *llvm::createHexagonELFObjectWriter(raw_pwrite_stream
>> &OS,
>>                                                      uint8_t OSABI,
>>                                                      StringRef CPU) {
>>     MCELFObjectTargetWriter *MOTW = new HexagonELFObjectWriter(OSABI,
>> CPU);
>>
>> Modified: llvm/trunk/lib/Target/Hexagon/MCTargetDesc/
>> HexagonMCTargetDesc.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> Hexagon/MCTargetDesc/HexagonMCTargetDesc.h?rev=
>> 234950&r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h
>> (original)
>> +++ llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h Tue
>> Apr 14 17:14:34 2015
>> @@ -27,6 +27,7 @@ class MCSubtargetInfo;
>>   class Target;
>>   class StringRef;
>>   class raw_ostream;
>> +class raw_pwrite_stream;
>>
>>   extern Target TheHexagonTarget;
>>
>> @@ -40,8 +41,8 @@ MCAsmBackend *createHexagonAsmBackend(Ta
>>                                         MCRegisterInfo const &MRI,
>> StringRef TT,
>>                                         StringRef CPU);
>>
>> -MCObjectWriter *createHexagonELFObjectWriter(raw_ostream &OS, uint8_t
>> OSABI,
>> -                                             StringRef CPU);
>> +MCObjectWriter *createHexagonELFObjectWriter(raw_pwrite_stream &OS,
>> +                                             uint8_t OSABI, StringRef
>> CPU);
>>
>>   } // End llvm namespace
>>
>>
>> Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> Mips/MCTargetDesc/MipsAsmBackend.cpp?rev=234950&
>> r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp (original)
>> +++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp Tue Apr
>> 14 17:14:34 2015
>> @@ -155,7 +155,8 @@ static unsigned adjustFixupValue(const M
>>     return Value;
>>   }
>>
>> -MCObjectWriter *MipsAsmBackend::createObjectWriter(raw_ostream &OS)
>> const {
>> +MCObjectWriter *
>> +MipsAsmBackend::createObjectWriter(raw_pwrite_stream &OS) const {
>>     return createMipsELFObjectWriter(OS,
>>       MCELFObjectTargetWriter::getOSABI(OSType), IsLittle, Is64Bit);
>>   }
>>
>> Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> Mips/MCTargetDesc/MipsAsmBackend.h?rev=234950&
>> r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h (original)
>> +++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h Tue Apr 14
>> 17:14:34 2015
>> @@ -36,7 +36,7 @@ public:
>>                    bool Is64Bit)
>>         : MCAsmBackend(), OSType(OSType), IsLittle(IsLittle),
>> Is64Bit(Is64Bit) {}
>>
>> -  MCObjectWriter *createObjectWriter(raw_ostream &OS) const override;
>> +  MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const
>> override;
>>
>>     void applyFixup(const MCFixup &Fixup, char *Data, unsigned DataSize,
>>                     uint64_t Value, bool IsPCRel) const override;
>>
>> Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> Mips/MCTargetDesc/MipsELFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&
>> view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp Tue
>> Apr 14 17:14:34 2015
>> @@ -444,7 +444,8 @@ MipsELFObjectWriter::needsRelocateWithSy
>>     }
>>   }
>>
>> -MCObjectWriter *llvm::createMipsELFObjectWriter(raw_ostream &OS,
>> uint8_t OSABI,
>> +MCObjectWriter *llvm::createMipsELFObjectWriter(raw_pwrite_stream &OS,
>> +                                                uint8_t OSABI,
>>                                                   bool IsLittleEndian,
>>                                                   bool Is64Bit) {
>>     MCELFObjectTargetWriter *MOTW =
>>
>> Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> Mips/MCTargetDesc/MipsELFStreamer.cpp?rev=234950&r1=234949&r2=234950&
>> view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp Tue Apr
>> 14 17:14:34 2015
>> @@ -70,7 +70,8 @@ void MipsELFStreamer::EmitMipsOptionReco
>>   }
>>
>>   MCELFStreamer *llvm::createMipsELFStreamer(MCContext &Context,
>> -                                           MCAsmBackend &MAB,
>> raw_ostream &OS,
>> +                                           MCAsmBackend &MAB,
>> +                                           raw_pwrite_stream &OS,
>>                                              MCCodeEmitter *Emitter,
>>                                              bool RelaxAll) {
>>     return new MipsELFStreamer(Context, MAB, OS, Emitter);
>>
>> Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
>> Mips/MCTargetDesc/MipsELFStreamer.h?rev=234950&
>> r1=234949&r2=234950&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h (original)
>> +++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h Tue Apr 14
>> 17:14:34 2015
>> @@ -33,7 +33,7 @@ class MipsELFStreamer : public MCELFStre
>>
>>
>>   public:
>> -  MipsELFStreamer(MCContext &Context, MCAsmBackend &MAB, raw_ostream &OS,
>> +  MipsELFStreamer(MCContext &Context, MCAsmBackend &MAB,
>> raw_pwrite_stream &OS,
>>                     MCCodeEmitter *Emitter)
>>         : MCELFStreamer(Context, MAB, OS, Emitter) {
>>
>> @@ -68,7 +68,7 @@ public:
>>   };
>>
>>   MCELFStreamer *createMipsELFStreamer(MCContext &Context, MCAsmBackend
>> &MAB,
>> -                                     raw_ostream &OS, MCCodeEmitter
>> *Emitter,
>> -                                     bool RelaxAll);
>> +                                     raw_pwrite_stream &OS,
>> +                                     MCCodeEmitter *Emitter, bool
>> RelaxAll);
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150416/0ba4f2c7/attachment.html>


More information about the llvm-commits mailing list