LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IPO.cpp
Go to the documentation of this file.
1 //===-- IPO.cpp -----------------------------------------------------------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file implements the common infrastructure (including C bindings) for
11 // libLLVMIPO.a, which implements several transformations over the LLVM
12 // intermediate representation.
13 //
14 //===----------------------------------------------------------------------===//
15 
16 #include "llvm-c/Initialization.h"
17 #include "llvm-c/Transforms/IPO.h"
18 #include "llvm/InitializePasses.h"
19 #include "llvm/PassManager.h"
20 #include "llvm/Transforms/IPO.h"
21 
22 using namespace llvm;
23 
27  initializeDAEPass(Registry);
28  initializeDAHPass(Registry);
30  initializeGlobalDCEPass(Registry);
31  initializeGlobalOptPass(Registry);
32  initializeIPCPPass(Registry);
41  initializePruneEHPass(Registry);
47 }
48 
50  initializeIPO(*unwrap(R));
51 }
52 
55 }
56 
58  unwrap(PM)->add(createConstantMergePass());
59 }
60 
63 }
64 
66  unwrap(PM)->add(createFunctionAttrsPass());
67 }
68 
71 }
72 
75 }
76 
78  unwrap(PM)->add(createGlobalDCEPass());
79 }
80 
83 }
84 
87 }
88 
90  unwrap(PM)->add(createPruneEHPass());
91 }
92 
94  unwrap(PM)->add(createIPSCCPPass());
95 }
96 
97 void LLVMAddInternalizePass(LLVMPassManagerRef PM, unsigned AllButMain) {
98  std::vector<const char *> Export;
99  if (AllButMain)
100  Export.push_back("main");
101  unwrap(PM)->add(createInternalizePass(Export));
102 }
103 
106 }
107 
109  unwrap(PM)->add(createStripSymbolsPass());
110 }
void initializeFunctionAttrsPass(PassRegistry &)
void initializeIPCPPass(PassRegistry &)
ModulePass * createIPConstantPropagationPass()
void initializeLoopExtractorPass(PassRegistry &)
void initializeStripDeadDebugInfoPass(PassRegistry &)
void initializeSimpleInlinerPass(PassRegistry &)
void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:77
void initializeInternalizePassPass(PassRegistry &)
ModulePass * createIPSCCPPass()
Definition: SCCP.cpp:1652
void LLVMAddPruneEHPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:89
LLVMContext ** unwrap(LLVMContextRef *Tys)
Definition: LLVMContext.h:119
Pass * createAlwaysInlinerPass()
void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:73
void LLVMAddIPSCCPPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:93
Pass * createFunctionAttrsPass()
void initializeStripSymbolsPass(PassRegistry &)
void initializePruneEHPass(PassRegistry &)
void LLVMAddConstantMergePass(LLVMPassManagerRef PM)
Definition: IPO.cpp:57
void initializeArgPromotionPass(PassRegistry &)
void initializeGlobalOptPass(PassRegistry &)
Pass * createArgumentPromotionPass(unsigned maxElements=3)
void initializeStripNonDebugSymbolsPass(PassRegistry &)
void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:61
ModulePass * createGlobalDCEPass()
void initializeMergeFunctionsPass(PassRegistry &)
ModulePass * createDeadArgEliminationPass()
void initializeDAEPass(PassRegistry &)
void LLVMAddInternalizePass(LLVMPassManagerRef PM, unsigned AllButMain)
Definition: IPO.cpp:97
ModulePass * createConstantMergePass()
ModulePass * createGlobalOptimizerPass()
Definition: GlobalOpt.cpp:98
void initializeIPO(PassRegistry &)
initializeIPO - Initialize all passes linked into the IPO library.
Definition: IPO.cpp:24
void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:85
void LLVMInitializeIPO(LLVMPassRegistryRef R)
Definition: IPO.cpp:49
struct LLVMOpaquePassRegistry * LLVMPassRegistryRef
Definition: Core.h:128
void initializeAlwaysInlinerPass(PassRegistry &)
void initializePartialInlinerPass(PassRegistry &)
void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:53
void initializeSingleLoopExtractorPass(PassRegistry &)
void initializeDAHPass(PassRegistry &)
void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:69
void initializeGlobalDCEPass(PassRegistry &)
void initializeBlockExtractorPassPass(PassRegistry &)
struct LLVMOpaquePassManager * LLVMPassManagerRef
Definition: Core.h:125
void initializeStripDeadPrototypesPassPass(PassRegistry &)
void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:108
ModulePass * createInternalizePass(ArrayRef< const char * > ExportList)
void initializeConstantMergePass(PassRegistry &)
void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:81
void initializeStripDebugDeclarePass(PassRegistry &)
void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:65
Pass * createFunctionInliningPass()
Pass * createPruneEHPass()
Definition: PruneEH.cpp:58
ModulePass * createStripDeadPrototypesPass()
ModulePass * createStripSymbolsPass(bool OnlyDebugInfo=false)
void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM)
Definition: IPO.cpp:104