[llvm-commits] [llvm] r109996 - /llvm/trunk/include/llvm/Target/TargetSelect.h

Daniel Dunbar daniel at zuster.org
Sun Aug 1 16:36:18 PDT 2010


Author: ddunbar
Date: Sun Aug  1 18:36:18 2010
New Revision: 109996

URL: http://llvm.org/viewvc/llvm-project?rev=109996&view=rev
Log:
Targets: Add InitializeNativeTargetAsmPrinter(), patch by Jan Sjodin, although
rewritten by me to not require updating all the target initialization routine
names.

Modified:
    llvm/trunk/include/llvm/Target/TargetSelect.h

Modified: llvm/trunk/include/llvm/Target/TargetSelect.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetSelect.h?rev=109996&r1=109995&r2=109996&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Target/TargetSelect.h (original)
+++ llvm/trunk/include/llvm/Target/TargetSelect.h Sun Aug  1 18:36:18 2010
@@ -30,6 +30,13 @@
 #define LLVM_ASM_PRINTER(TargetName) void LLVMInitialize##TargetName##AsmPrinter();
 #include "llvm/Config/AsmPrinters.def"
 
+  // FIXME: Workaround for unfortunate definition of LLVM_NATIVE_ARCH.
+#define LLVM_ASM_PRINTER(TargetName) \
+  static inline void LLVMInitialize##TargetName##TargetAsmPrinter() { \
+    LLVMInitialize##TargetName##AsmPrinter(); \
+  }
+#include "llvm/Config/AsmPrinters.def"
+
   // Declare all of the available assembly parser initialization functions.
 #define LLVM_ASM_PARSER(TargetName) void LLVMInitialize##TargetName##AsmParser();
 #include "llvm/Config/AsmParsers.def"
@@ -113,6 +120,23 @@
     return true;
 #endif
   }  
+
+  /// InitializeNativeTargetAsmPrinter - The main program should call
+  /// this function to initialize the native target asm printer.
+  inline bool InitializeNativeTargetAsmPrinter() {
+  // If we have a native target, initialize the corresponding asm printer.
+#ifdef LLVM_NATIVE_ARCH
+#define DoInit2(TARG) \
+    LLVMInitialize ## TARG ## AsmPrinter ();
+#define DoInit(T) DoInit2(T)
+    DoInit(LLVM_NATIVE_ARCH);
+    return false;
+#undef DoInit
+#undef DoInit2
+#else
+    return true;
+#endif
+  }  
 }
 
 #endif





More information about the llvm-commits mailing list