Changes in directory llvm/lib/Target/X86:
X86ATTAsmPrinter.cpp updated: 1.59 -> 1.60 X86ATTAsmPrinter.h updated: 1.14 -> 1.15 X86AsmPrinter.cpp updated: 1.194 -> 1.195 X86AsmPrinter.h updated: 1.28 -> 1.29 X86IntelAsmPrinter.cpp updated: 1.53 -> 1.54 X86IntelAsmPrinter.h updated: 1.22 -> 1.23 X86TargetMachine.h updated: 1.38 -> 1.39 --- Log message: Make target asm info a property of the target machine. --- Diffs of the changes: (+15 -88) X86ATTAsmPrinter.cpp | 2 + X86ATTAsmPrinter.h | 2 - X86AsmPrinter.cpp | 83 +------------------------------------------------ X86AsmPrinter.h | 7 ---- X86IntelAsmPrinter.cpp | 2 + X86IntelAsmPrinter.h | 3 + X86TargetMachine.h | 4 ++ 7 files changed, 15 insertions(+), 88 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.59 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.60 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.59 Wed Sep 6 13:34:40 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cpp Thu Sep 7 17:06:40 2006 @@ -16,8 +16,10 @@ #include "X86ATTAsmPrinter.h" #include "X86.h" #include "X86TargetMachine.h" +#include "X86TargetAsmInfo.h" #include "llvm/Module.h" #include "llvm/Support/Mangler.h" +#include "llvm/Target/TargetAsmInfo.h" #include "llvm/Target/TargetOptions.h" #include <iostream> using namespace llvm; Index: llvm/lib/Target/X86/X86ATTAsmPrinter.h diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.h:1.14 llvm/lib/Target/X86/X86ATTAsmPrinter.h:1.15 --- llvm/lib/Target/X86/X86ATTAsmPrinter.h:1.14 Wed Sep 6 13:34:40 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.h Thu Sep 7 17:06:40 2006 @@ -20,7 +20,7 @@ namespace llvm { struct X86ATTAsmPrinter : public X86SharedAsmPrinter { - X86ATTAsmPrinter(std::ostream &O, X86TargetMachine &TM, TargetAsmInfo *T) + X86ATTAsmPrinter(std::ostream &O, X86TargetMachine &TM, const TargetAsmInfo *T) : X86SharedAsmPrinter(O, TM, T) { } virtual const char *getPassName() const { Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.194 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.195 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.194 Thu Sep 7 07:23:47 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Thu Sep 7 17:06:40 2006 @@ -23,88 +23,12 @@ #include "llvm/Type.h" #include "llvm/Assembly/Writer.h" #include "llvm/Support/Mangler.h" +#include "llvm/Target/TargetAsmInfo.h" using namespace llvm; Statistic<> llvm::EmittedInsts("asm-printer", "Number of machine instrs printed"); -X86TargetAsmInfo::X86TargetAsmInfo(X86TargetMachine &TM) { - const X86Subtarget *Subtarget = &TM.getSubtarget<X86Subtarget>(); - - //FIXME - Should to be simplified. - - switch (Subtarget->TargetType) { - case X86Subtarget::isDarwin: - AlignmentIsInBytes = false; - GlobalPrefix = "_"; - Data64bitsDirective = 0; // we can't emit a 64-bit unit - ZeroDirective = "\t.space\t"; // ".space N" emits N zeros. - PrivateGlobalPrefix = "L"; // Marker for constant pool idxs - ConstantPoolSection = "\t.const\n"; - JumpTableDataSection = "\t.const\n"; // FIXME: depends on PIC mode - FourByteConstantSection = "\t.literal4\n"; - EightByteConstantSection = "\t.literal8\n"; - LCOMMDirective = "\t.lcomm\t"; - COMMDirectiveTakesAlignment = false; - HasDotTypeDotSizeDirective = false; - StaticCtorsSection = ".mod_init_func"; - StaticDtorsSection = ".mod_term_func"; - InlineAsmStart = "# InlineAsm Start"; - InlineAsmEnd = "# InlineAsm End"; - SetDirective = "\t.set"; - - NeedsSet = true; - DwarfAbbrevSection = ".section __DWARF,__debug_abbrev,regular,debug"; - DwarfInfoSection = ".section __DWARF,__debug_info,regular,debug"; - DwarfLineSection = ".section __DWARF,__debug_line,regular,debug"; - DwarfFrameSection = ".section __DWARF,__debug_frame,regular,debug"; - DwarfPubNamesSection = ".section __DWARF,__debug_pubnames,regular,debug"; - DwarfPubTypesSection = ".section __DWARF,__debug_pubtypes,regular,debug"; - DwarfStrSection = ".section __DWARF,__debug_str,regular,debug"; - DwarfLocSection = ".section __DWARF,__debug_loc,regular,debug"; - DwarfARangesSection = ".section __DWARF,__debug_aranges,regular,debug"; - DwarfRangesSection = ".section __DWARF,__debug_ranges,regular,debug"; - DwarfMacInfoSection = ".section __DWARF,__debug_macinfo,regular,debug"; - break; - case X86Subtarget::isCygwin: - GlobalPrefix = "_"; - COMMDirectiveTakesAlignment = false; - HasDotTypeDotSizeDirective = false; - StaticCtorsSection = "\t.section .ctors,\"aw\""; - StaticDtorsSection = "\t.section .dtors,\"aw\""; - break; - case X86Subtarget::isWindows: - GlobalPrefix = "_"; - HasDotTypeDotSizeDirective = false; - break; - default: break; - } - - if (Subtarget->isFlavorIntel()) { - GlobalPrefix = "_"; - CommentString = ";"; - - PrivateGlobalPrefix = "$"; - AlignDirective = "\talign\t"; - ZeroDirective = "\tdb\t"; - ZeroDirectiveSuffix = " dup(0)"; - AsciiDirective = "\tdb\t"; - AscizDirective = 0; - Data8bitsDirective = "\tdb\t"; - Data16bitsDirective = "\tdw\t"; - Data32bitsDirective = "\tdd\t"; - Data64bitsDirective = "\tdq\t"; - HasDotTypeDotSizeDirective = false; - - TextSection = "_text"; - DataSection = "_data"; - SwitchToSectionDirective = ""; - TextSectionStartSuffix = "\tsegment 'CODE'"; - DataSectionStartSuffix = "\tsegment 'DATA'"; - SectionEndDirectiveSuffix = "\tends\n"; - } -} - /// doInitialization bool X86SharedAsmPrinter::doInitialization(Module &M) { if (Subtarget->isTargetDarwin()) { @@ -255,11 +179,10 @@ FunctionPass *llvm::createX86CodePrinterPass(std::ostream &o, X86TargetMachine &tm) { const X86Subtarget *Subtarget = &tm.getSubtarget<X86Subtarget>(); - TargetAsmInfo *TAI = new X86TargetAsmInfo(tm); if (Subtarget->isFlavorIntel()) { - return new X86IntelAsmPrinter(o, tm, TAI); + return new X86IntelAsmPrinter(o, tm, tm.getTargetAsmInfo()); } else { - return new X86ATTAsmPrinter(o, tm, TAI); + return new X86ATTAsmPrinter(o, tm, tm.getTargetAsmInfo()); } } Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.28 llvm/lib/Target/X86/X86AsmPrinter.h:1.29 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.28 Wed Sep 6 13:34:40 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Thu Sep 7 17:06:40 2006 @@ -22,7 +22,6 @@ #include "llvm/CodeGen/DwarfWriter.h" #include "llvm/CodeGen/MachineDebugInfo.h" #include "llvm/ADT/Statistic.h" -#include "llvm/Target/TargetAsmInfo.h" #include <set> @@ -30,15 +29,11 @@ extern Statistic<> EmittedInsts; -struct VISIBILITY_HIDDEN X86TargetAsmInfo : public TargetAsmInfo { - X86TargetAsmInfo(X86TargetMachine &TM); -}; - struct VISIBILITY_HIDDEN X86SharedAsmPrinter : public AsmPrinter { DwarfWriter DW; X86SharedAsmPrinter(std::ostream &O, X86TargetMachine &TM, - TargetAsmInfo *T) + const TargetAsmInfo *T) : AsmPrinter(O, TM, T), DW(O, this, T) { Subtarget = &TM.getSubtarget<X86Subtarget>(); } Index: llvm/lib/Target/X86/X86IntelAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.53 llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.54 --- llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.53 Wed Sep 6 13:34:40 2006 +++ llvm/lib/Target/X86/X86IntelAsmPrinter.cpp Thu Sep 7 17:06:40 2006 @@ -14,11 +14,13 @@ //===----------------------------------------------------------------------===// #include "X86IntelAsmPrinter.h" +#include "X86TargetAsmInfo.h" #include "X86.h" #include "llvm/Constants.h" #include "llvm/Module.h" #include "llvm/Assembly/Writer.h" #include "llvm/Support/Mangler.h" +#include "llvm/Target/TargetAsmInfo.h" #include "llvm/Target/TargetOptions.h" using namespace llvm; Index: llvm/lib/Target/X86/X86IntelAsmPrinter.h diff -u llvm/lib/Target/X86/X86IntelAsmPrinter.h:1.22 llvm/lib/Target/X86/X86IntelAsmPrinter.h:1.23 --- llvm/lib/Target/X86/X86IntelAsmPrinter.h:1.22 Wed Sep 6 13:34:40 2006 +++ llvm/lib/Target/X86/X86IntelAsmPrinter.h Thu Sep 7 17:06:40 2006 @@ -21,7 +21,8 @@ namespace llvm { struct X86IntelAsmPrinter : public X86SharedAsmPrinter { - X86IntelAsmPrinter(std::ostream &O, X86TargetMachine &TM, TargetAsmInfo *T) + X86IntelAsmPrinter(std::ostream &O, X86TargetMachine &TM, + const TargetAsmInfo *T) : X86SharedAsmPrinter(O, TM, T) { } Index: llvm/lib/Target/X86/X86TargetMachine.h diff -u llvm/lib/Target/X86/X86TargetMachine.h:1.38 llvm/lib/Target/X86/X86TargetMachine.h:1.39 --- llvm/lib/Target/X86/X86TargetMachine.h:1.38 Sun Sep 3 23:14:57 2006 +++ llvm/lib/Target/X86/X86TargetMachine.h Thu Sep 7 17:06:40 2006 @@ -21,6 +21,7 @@ #include "X86InstrInfo.h" #include "X86JITInfo.h" #include "X86Subtarget.h" +#include "X86TargetAsmInfo.h" #include "X86ISelLowering.h" namespace llvm { @@ -50,6 +51,9 @@ static unsigned getModuleMatchQuality(const Module &M); static unsigned getJITMatchQuality(); + virtual const TargetAsmInfo *createTargetAsmInfo() const { + return static_cast<const TargetAsmInfo *>(new X86TargetAsmInfo(*this)); + } // Set up the pass pipeline. virtual bool addInstSelector(FunctionPassManager &PM, bool Fast); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits