Add an initialization routine for libLLVMipo.a
authorOwen Anderson <resistor@mac.com>
Thu, 7 Oct 2010 18:09:59 +0000 (18:09 +0000)
committerOwen Anderson <resistor@mac.com>
Thu, 7 Oct 2010 18:09:59 +0000 (18:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115933 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm-c/Initialization.h
include/llvm/InitializePasses.h
lib/Transforms/IPO/IPO.cpp

index 4d64d2f2c84032725ab37d0c37759ccce40ef540..252f73100380d0717dfd1d163c0286ea1c5d1b09 100644 (file)
@@ -24,6 +24,7 @@ extern "C" {
 
 void LLVMInitializeTransformUtils(LLVMPassRegistryRef R);
 void LLVMInitializeScalarOpts(LLVMPassRegistryRef R);
+void LLVMInitializeIPO(LLVMPassRegistryRef R);
 
 #ifdef __cplusplus
 }
index 8393a148efaf9f4885056870adef04deb4f6d8a7..99e2bedec8b062c5b920eff42aed78011b4b3125 100644 (file)
@@ -19,14 +19,17 @@ namespace llvm {
 
 class PassRegistry;
 
-/// initializeTransformUtilsPasses - Initialize all passes linked into the 
+/// initializeTransformUtils - Initialize all passes linked into the 
 /// TransformUtils library.
 void initializeTransformUtils(PassRegistry&);
 
-/// initializeScalarOptsPasses - Initialize all passes linked into the 
+/// initializeScalarOpts - Initialize all passes linked into the 
 /// ScalarOpts library.
 void initializeScalarOpts(PassRegistry&);
 
+/// initializeIPO - Initialize all passes linked into the IPO library.
+void initializeIPO(PassRegistry&);
+
 void initializeAAEvalPass(PassRegistry&);
 void initializeADCEPass(PassRegistry&);
 void initializeAliasAnalysisAnalysisGroup(PassRegistry&);
index 340b70eb026895cca8a3629d525dce3a04fe9672..87932375c0bed14fae535469f0049d8acfa9c2cd 100644 (file)
@@ -7,17 +7,52 @@
 //
 //===----------------------------------------------------------------------===//
 //
-// This file implements the C bindings for libLLVMIPO.a, which implements
-// several transformations over the LLVM intermediate representation.
+// This file implements the common infrastructure (including C bindings) for 
+// libLLVMIPO.a, which implements several transformations over the LLVM 
+// intermediate representation.
 //
 //===----------------------------------------------------------------------===//
 
 #include "llvm-c/Transforms/IPO.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/PassManager.h"
 #include "llvm/Transforms/IPO.h"
 
 using namespace llvm;
 
+void llvm::initializeIPO(PassRegistry &Registry) {
+  initializeArgPromotionPass(Registry);
+  initializeConstantMergePass(Registry);
+  initializeDAEPass(Registry);
+  initializeDAHPass(Registry);
+  initializeDTEPass(Registry);
+  initializeFunctionAttrsPass(Registry);
+  initializeGlobalDCEPass(Registry);
+  initializeGlobalOptPass(Registry);
+  initializeIPCPPass(Registry);
+  initializeAlwaysInlinerPass(Registry);
+  initializeSimpleInlinerPass(Registry);
+  initializeInternalizePassPass(Registry);
+  initializeLoopExtractorPass(Registry);
+  initializeBlockExtractorPassPass(Registry);
+  initializeSingleLoopExtractorPass(Registry);
+  initializeLowerSetJmpPass(Registry);
+  initializeMergeFunctionsPass(Registry);
+  initializePartialInlinerPass(Registry);
+  initializePartSpecPass(Registry);
+  initializePruneEHPass(Registry);
+  initializeStripDeadPrototypesPassPass(Registry);
+  initializeStripSymbolsPass(Registry);
+  initializeStripDebugDeclarePass(Registry);
+  initializeStripDeadDebugInfoPass(Registry);
+  initializeStripNonDebugSymbolsPass(Registry);
+  initializeSRETPromotionPass(Registry);
+}
+
+void LLVMInitializeIPO(LLVMPassRegistryRef R) {
+  initializeIPO(*unwrap(R));
+}
+
 void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM) {
   unwrap(PM)->add(createArgumentPromotionPass());
 }