Add relax all support to the COFF object streamer.
authorMichael J. Spencer <bigcheesegs@gmail.com>
Sat, 31 Jul 2010 06:22:29 +0000 (06:22 +0000)
committerMichael J. Spencer <bigcheesegs@gmail.com>
Sat, 31 Jul 2010 06:22:29 +0000 (06:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109947 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCStreamer.h
lib/MC/WinCOFFStreamer.cpp
lib/Target/X86/X86TargetMachine.cpp

index 1ded9f785d59cb947dec2f1520b72c6f03297892..cb36564a87825aff8cf8d8de6c6dee52367de006 100644 (file)
@@ -355,7 +355,8 @@ namespace llvm {
   /// Takes ownership of \arg TAB and \arg CE.
   MCStreamer *createWinCOFFStreamer(MCContext &Ctx,
                                     TargetAsmBackend &TAB,
   /// Takes ownership of \arg TAB and \arg CE.
   MCStreamer *createWinCOFFStreamer(MCContext &Ctx,
                                     TargetAsmBackend &TAB,
-                                    MCCodeEmitter &CE, raw_ostream &OS);
+                                    MCCodeEmitter &CE, raw_ostream &OS,
+                                    bool RelaxAll = false);
 
   /// createLoggingStreamer - Create a machine code streamer which just logs the
   /// API calls and then dispatches to another streamer.
 
   /// createLoggingStreamer - Create a machine code streamer which just logs the
   /// API calls and then dispatches to another streamer.
index 71557f0a4b2da694f8a43b9641709f82d7f05626..d3a58df81d12b8a11534fa620718895ecdf287c2 100644 (file)
@@ -339,7 +339,10 @@ namespace llvm
   MCStreamer *createWinCOFFStreamer(MCContext &Context,
                                     TargetAsmBackend &TAB,
                                     MCCodeEmitter &CE,
   MCStreamer *createWinCOFFStreamer(MCContext &Context,
                                     TargetAsmBackend &TAB,
                                     MCCodeEmitter &CE,
-                                    raw_ostream &OS) {
-    return new WinCOFFStreamer(Context, TAB, CE, OS);
+                                    raw_ostream &OS,
+                                    bool RelaxAll) {
+    WinCOFFStreamer *S = new WinCOFFStreamer(Context, TAB, CE, OS);
+    S->getAssembler().setRelaxAll(RelaxAll);
+    return S;
   }
 }
   }
 }
index 0552a8e612006153de9d50290dc0183b8962ed5b..cb1bb35b5b07cd3192dfb7f91d2cb0a8554ca4a0 100644 (file)
@@ -47,7 +47,7 @@ static MCStreamer *createMCStreamer(const Target &T, const std::string &TT,
   Triple TheTriple(TT);
   switch (TheTriple.getOS()) {
   case Triple::Win32:
   Triple TheTriple(TT);
   switch (TheTriple.getOS()) {
   case Triple::Win32:
-    return createWinCOFFStreamer(Ctx, TAB, *_Emitter, _OS);
+    return createWinCOFFStreamer(Ctx, TAB, *_Emitter, _OS, RelaxAll);
   default:
     return createMachOStreamer(Ctx, TAB, _OS, _Emitter, RelaxAll);
   }
   default:
     return createMachOStreamer(Ctx, TAB, _OS, _Emitter, RelaxAll);
   }