[llvm-commits] [llvm] r78724 - in /llvm/trunk/lib/Target/X86: X86TargetAsmInfo.cpp X86TargetAsmInfo.h

Chris Lattner sabre at nondot.org
Tue Aug 11 14:57:08 PDT 2009


Author: lattner
Date: Tue Aug 11 16:57:08 2009
New Revision: 78724

URL: http://llvm.org/viewvc/llvm-project?rev=78724&view=rev
Log:
eliminate the X86TargetAsmInfo template.

Modified:
    llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp
    llvm/trunk/lib/Target/X86/X86TargetAsmInfo.h

Modified: llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp?rev=78724&r1=78723&r2=78724&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp Tue Aug 11 16:57:08 2009
@@ -26,7 +26,7 @@
 using namespace llvm;
 using namespace llvm::dwarf;
 
-const char *const llvm::x86_asm_table[] = {
+static const char *const x86_asm_table[] = {
   "{si}", "S",
   "{di}", "D",
   "{ax}", "a",
@@ -38,8 +38,10 @@
   "{cc}", "cc",
   0,0};
 
-X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM):
-  X86TargetAsmInfo<DarwinTargetAsmInfo>(TM) {
+X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM) {
+  AsmTransCBE = x86_asm_table;
+  AssemblerDialect = TM.getSubtarget<X86Subtarget>().getAsmFlavor();
+    
   const X86Subtarget *Subtarget = &TM.getSubtarget<X86Subtarget>();
   bool is64Bit = Subtarget->is64Bit();
 
@@ -83,8 +85,9 @@
   AbsoluteEHSectionOffsets = false;
 }
 
-X86ELFTargetAsmInfo::X86ELFTargetAsmInfo(const X86TargetMachine &TM) :
-  X86TargetAsmInfo<TargetAsmInfo>(TM) {
+X86ELFTargetAsmInfo::X86ELFTargetAsmInfo(const X86TargetMachine &TM) {
+  AsmTransCBE = x86_asm_table;
+  AssemblerDialect = TM.getSubtarget<X86Subtarget>().getAsmFlavor();
 
   PrivateGlobalPrefix = ".L";
   WeakRefDirective = "\t.weak\t";
@@ -107,9 +110,17 @@
     NonexecutableStackDirective = "\t.section\t.note.GNU-stack,\"\", at progbits";
 }
 
+X86COFFTargetAsmInfo::X86COFFTargetAsmInfo(const X86TargetMachine &TM) {
+  AsmTransCBE = x86_asm_table;
+  AssemblerDialect = TM.getSubtarget<X86Subtarget>().getAsmFlavor();
+
+}
+
+
+X86WinTargetAsmInfo::X86WinTargetAsmInfo(const X86TargetMachine &TM) {
+  AsmTransCBE = x86_asm_table;
+  AssemblerDialect = TM.getSubtarget<X86Subtarget>().getAsmFlavor();
 
-X86WinTargetAsmInfo::X86WinTargetAsmInfo(const X86TargetMachine &TM):
-  X86TargetAsmInfo<TargetAsmInfo>(TM) {
   GlobalPrefix = "_";
   CommentString = ";";
 
@@ -131,6 +142,3 @@
 
   AlignmentIsInBytes = true;
 }
-
-// Instantiate default implementation.
-TEMPLATE_INSTANTIATION(class X86TargetAsmInfo<TargetAsmInfo>);

Modified: llvm/trunk/lib/Target/X86/X86TargetAsmInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetAsmInfo.h?rev=78724&r1=78723&r2=78724&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86TargetAsmInfo.h (original)
+++ llvm/trunk/lib/Target/X86/X86TargetAsmInfo.h Tue Aug 11 16:57:08 2009
@@ -22,29 +22,19 @@
 
 namespace llvm {
 
-  extern const char *const x86_asm_table[];
-
-  template <class BaseTAI>
-  struct X86TargetAsmInfo : public BaseTAI {
-    explicit X86TargetAsmInfo(const TargetMachine &TM) {
-      BaseTAI::AsmTransCBE = x86_asm_table;
-      BaseTAI::AssemblerDialect =TM.getSubtarget<X86Subtarget>().getAsmFlavor();
-    }
-  };
-
-  EXTERN_TEMPLATE_INSTANTIATION(class X86TargetAsmInfo<TargetAsmInfo>);
-
-  struct X86DarwinTargetAsmInfo : public X86TargetAsmInfo<DarwinTargetAsmInfo> {
+  struct X86DarwinTargetAsmInfo : public DarwinTargetAsmInfo {
     explicit X86DarwinTargetAsmInfo(const X86TargetMachine &TM);
   };
 
-  struct X86ELFTargetAsmInfo : public X86TargetAsmInfo<TargetAsmInfo> {
+  struct X86ELFTargetAsmInfo : public TargetAsmInfo {
     explicit X86ELFTargetAsmInfo(const X86TargetMachine &TM);
   };
 
-  typedef X86TargetAsmInfo<COFFTargetAsmInfo> X86COFFTargetAsmInfo;
+  struct X86COFFTargetAsmInfo : public TargetAsmInfo {
+    explicit X86COFFTargetAsmInfo(const X86TargetMachine &TM);
+  };
 
-  struct X86WinTargetAsmInfo : public X86TargetAsmInfo<TargetAsmInfo> {
+  struct X86WinTargetAsmInfo : public TargetAsmInfo {
     explicit X86WinTargetAsmInfo(const X86TargetMachine &TM);
   };
 





More information about the llvm-commits mailing list