ARM TAI no longer needs a TM, but createTargetAsmInfo() still does.
authorChris Lattner <sabre@nondot.org>
Sun, 2 Aug 2009 05:23:52 +0000 (05:23 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 2 Aug 2009 05:23:52 +0000 (05:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77878 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMTargetAsmInfo.cpp
lib/Target/ARM/ARMTargetAsmInfo.h
lib/Target/ARM/ARMTargetMachine.cpp

index b1ae524bba3585bfc4b8f424f649f6a6bcd38623..3ff777c73d34b0e941b2901d570a3cfdcf668ba7 100644 (file)
@@ -12,9 +12,6 @@
 //===----------------------------------------------------------------------===//
 
 #include "ARMTargetAsmInfo.h"
-#include "ARMTargetMachine.h"
-#include <cstring>
-#include <cctype>
 using namespace llvm;
 
 const char *const llvm::arm_asm_table[] = {
@@ -43,10 +40,7 @@ const char *const llvm::arm_asm_table[] = {
   0,0
 };
 
-ARMDarwinTargetAsmInfo::ARMDarwinTargetAsmInfo(const ARMBaseTargetMachine &TM):
-  ARMTargetAsmInfo<DarwinTargetAsmInfo>(TM) {
-  Subtarget = &TM.getSubtarget<ARMSubtarget>();
-
+ARMDarwinTargetAsmInfo::ARMDarwinTargetAsmInfo() {
   ZeroDirective = "\t.space\t";
   ZeroFillDirective = "\t.zerofill\t";  // Uses .zerofill
   SetDirective = "\t.set\t";
@@ -55,10 +49,7 @@ ARMDarwinTargetAsmInfo::ARMDarwinTargetAsmInfo(const ARMBaseTargetMachine &TM):
   SupportsDebugInformation = true;
 }
 
-ARMELFTargetAsmInfo::ARMELFTargetAsmInfo(const ARMBaseTargetMachine &TM):
-  ARMTargetAsmInfo<TargetAsmInfo>(TM) {
-  Subtarget = &TM.getSubtarget<ARMSubtarget>();
-
+ARMELFTargetAsmInfo::ARMELFTargetAsmInfo() {
   NeedsSet = false;
   HasLEB128 = true;
   AbsoluteDebugSectionOffsets = true;
@@ -82,4 +73,5 @@ ARMELFTargetAsmInfo::ARMELFTargetAsmInfo(const ARMBaseTargetMachine &TM):
 }
 
 // Instantiate default implementation.
+TEMPLATE_INSTANTIATION(class ARMTargetAsmInfo<DarwinTargetAsmInfo>);
 TEMPLATE_INSTANTIATION(class ARMTargetAsmInfo<TargetAsmInfo>);
index fb46be9140cb7a356a7477ea6d462ea46f323e77..9b97cbdc17a5e1941e87f753769a18771bd8e8e0 100644 (file)
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef ARMTARGETASMINFO_H
-#define ARMTARGETASMINFO_H
+#ifndef LLVM_ARMTARGETASMINFO_H
+#define LLVM_ARMTARGETASMINFO_H
 
-#include "ARMTargetMachine.h"
-#include "llvm/Target/TargetAsmInfo.h"
 #include "llvm/Target/DarwinTargetAsmInfo.h"
 #include "llvm/Support/Compiler.h"
 
@@ -25,7 +23,7 @@ namespace llvm {
 
   template <class BaseTAI>
   struct ARMTargetAsmInfo : public BaseTAI {
-    explicit ARMTargetAsmInfo(const ARMBaseTargetMachine &TM) {
+    explicit ARMTargetAsmInfo() {
       BaseTAI::AsmTransCBE = arm_asm_table;
 
       BaseTAI::AlignmentIsInBytes = false;
@@ -36,18 +34,17 @@ namespace llvm {
       BaseTAI::InlineAsmEnd = "@ InlineAsm End";
       BaseTAI::LCOMMDirective = "\t.lcomm\t";
     }
-
-    const ARMSubtarget *Subtarget;
   };
 
+  EXTERN_TEMPLATE_INSTANTIATION(class ARMTargetAsmInfo<DarwinTargetAsmInfo>);
   EXTERN_TEMPLATE_INSTANTIATION(class ARMTargetAsmInfo<TargetAsmInfo>);
 
   struct ARMDarwinTargetAsmInfo : public ARMTargetAsmInfo<DarwinTargetAsmInfo> {
-    explicit ARMDarwinTargetAsmInfo(const ARMBaseTargetMachine &TM);
+    explicit ARMDarwinTargetAsmInfo();
   };
 
   struct ARMELFTargetAsmInfo : public ARMTargetAsmInfo<TargetAsmInfo> {
-    explicit ARMELFTargetAsmInfo(const ARMBaseTargetMachine &TM);
+    explicit ARMELFTargetAsmInfo();
   };
 
 } // namespace llvm
index 9f70ab900591b3f74b8bcf873f7eab1cbd165a05..96552ede201ecc31c786cb5672e352a0e9e075c4 100644 (file)
@@ -78,9 +78,9 @@ const TargetAsmInfo *ARMBaseTargetMachine::createTargetAsmInfo() const {
   switch (Subtarget.TargetType) {
   default: llvm_unreachable("Unknown ARM subtarget kind");
   case ARMSubtarget::isDarwin:
-    return new ARMDarwinTargetAsmInfo(*this);
+    return new ARMDarwinTargetAsmInfo();
   case ARMSubtarget::isELF:
-    return new ARMELFTargetAsmInfo(*this);
+    return new ARMELFTargetAsmInfo();
   }
 }