diff --git a/include/llvm-c/Initialization.h b/include/llvm-c/Initialization.h index 9a2f04c03e6..775af4fce1f 100644 --- a/include/llvm-c/Initialization.h +++ b/include/llvm-c/Initialization.h @@ -28,6 +28,7 @@ void LLVMInitializeIPO(LLVMPassRegistryRef R); void LLVMInitializeAnalysis(LLVMPassRegistryRef R); void LLVMInitializeIPA(LLVMPassRegistryRef R); void LLVMInitializeCodeGen(LLVMPassRegistryRef R); +void LLVMInitializeTarget(LLVMPassRegistryRef R); #ifdef __cplusplus } diff --git a/include/llvm/InitializePasses.h b/include/llvm/InitializePasses.h index 1a1f2e09a7d..62d0574b9bc 100644 --- a/include/llvm/InitializePasses.h +++ b/include/llvm/InitializePasses.h @@ -39,6 +39,9 @@ void initializeIPA(PassRegistry&); /// initializeCodeGen - Initialize all passes linked into the CodeGen library. void initializeCodeGen(PassRegistry&); +/// initializeCodeGen - Initialize all passes linked into the CodeGen library. +void initializeTarget(PassRegistry&); + void initializeAAEvalPass(PassRegistry&); void initializeADCEPass(PassRegistry&); void initializeAliasAnalysisAnalysisGroup(PassRegistry&); diff --git a/lib/Target/Target.cpp b/lib/Target/Target.cpp index f5c969ae133..bae4bdf8e22 100644 --- a/lib/Target/Target.cpp +++ b/lib/Target/Target.cpp @@ -7,12 +7,14 @@ // //===----------------------------------------------------------------------===// // -// This file implements the C bindings for libLLVMTarget.a, which implements -// target information. +// This file implements the core infrastructure (including C bindings) for +// libLLVMTarget.a, which implements target information. // //===----------------------------------------------------------------------===// #include "llvm-c/Target.h" +#include "llvm-c/Initialization.h" +#include "llvm/InitializePasses.h" #include "llvm/PassManager.h" #include "llvm/Target/TargetData.h" #include "llvm/LLVMContext.h" @@ -20,6 +22,14 @@ using namespace llvm; +void llvm::initializeTarget(PassRegistry &Registry) { + initializeTargetDataPass(Registry); +} + +void LLVMInitializeTarget(LLVMPassRegistryRef R) { + initializeTarget(*unwrap(R)); +} + LLVMTargetDataRef LLVMCreateTargetData(const char *StringRep) { return wrap(new TargetData(StringRep)); }