Add LLVMInitializeAllTargetInfos for C api, and update

LLVMInitializeNativeTarget to initialize target info.
 - Patch by Jose Fonseca.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79307 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2009-08-18 03:03:27 +00:00
parent 8942f9bb9f
commit baf3eddc78

View File

@ -33,9 +33,20 @@ typedef struct LLVMOpaqueTargetData *LLVMTargetDataRef;
typedef struct LLVMStructLayout *LLVMStructLayoutRef; typedef struct LLVMStructLayout *LLVMStructLayoutRef;
/* Declare all of the target-initialization functions that are available. */ /* Declare all of the target-initialization functions that are available. */
#define LLVM_TARGET(TargetName) void LLVMInitialize##TargetName##TargetInfo();
#include "llvm/Config/Targets.def"
#define LLVM_TARGET(TargetName) void LLVMInitialize##TargetName##Target(); #define LLVM_TARGET(TargetName) void LLVMInitialize##TargetName##Target();
#include "llvm/Config/Targets.def" #include "llvm/Config/Targets.def"
/** LLVMInitializeAllTargetInfos - The main program should call this function if
it wants access to all available targets that LLVM is configured to
support. */
static inline void LLVMInitializeAllTargetInfos() {
#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##TargetInfo();
#include "llvm/Config/Targets.def"
}
/** LLVMInitializeAllTargets - The main program should call this function if it /** LLVMInitializeAllTargets - The main program should call this function if it
wants to link in all available targets that LLVM is configured to wants to link in all available targets that LLVM is configured to
support. */ support. */
@ -50,7 +61,9 @@ static inline void LLVMInitializeAllTargets() {
static inline int LLVMInitializeNativeTarget() { static inline int LLVMInitializeNativeTarget() {
/* If we have a native target, initialize it to ensure it is linked in. */ /* If we have a native target, initialize it to ensure it is linked in. */
#ifdef LLVM_NATIVE_ARCH #ifdef LLVM_NATIVE_ARCH
#define DoInit2(TARG) LLVMInitialize ## TARG () #define DoInit2(TARG) \
LLVMInitialize ## TARG ## Info (); \
LLVMInitialize ## TARG ()
#define DoInit(T) DoInit2(T) #define DoInit(T) DoInit2(T)
DoInit(LLVM_NATIVE_ARCH); DoInit(LLVM_NATIVE_ARCH);
return 0; return 0;