Mercurial > hg > CbC > CbC_llvm
comparison lib/Transforms/IPO/IPO.cpp @ 0:95c75e76d11b LLVM3.4
LLVM 3.4
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 13:56:28 +0900 |
parents | |
children | 54457678186b |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:95c75e76d11b |
---|---|
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 | |
24 void llvm::initializeIPO(PassRegistry &Registry) { | |
25 initializeArgPromotionPass(Registry); | |
26 initializeConstantMergePass(Registry); | |
27 initializeDAEPass(Registry); | |
28 initializeDAHPass(Registry); | |
29 initializeFunctionAttrsPass(Registry); | |
30 initializeGlobalDCEPass(Registry); | |
31 initializeGlobalOptPass(Registry); | |
32 initializeIPCPPass(Registry); | |
33 initializeAlwaysInlinerPass(Registry); | |
34 initializeSimpleInlinerPass(Registry); | |
35 initializeInternalizePassPass(Registry); | |
36 initializeLoopExtractorPass(Registry); | |
37 initializeBlockExtractorPassPass(Registry); | |
38 initializeSingleLoopExtractorPass(Registry); | |
39 initializeMergeFunctionsPass(Registry); | |
40 initializePartialInlinerPass(Registry); | |
41 initializePruneEHPass(Registry); | |
42 initializeStripDeadPrototypesPassPass(Registry); | |
43 initializeStripSymbolsPass(Registry); | |
44 initializeStripDebugDeclarePass(Registry); | |
45 initializeStripDeadDebugInfoPass(Registry); | |
46 initializeStripNonDebugSymbolsPass(Registry); | |
47 } | |
48 | |
49 void LLVMInitializeIPO(LLVMPassRegistryRef R) { | |
50 initializeIPO(*unwrap(R)); | |
51 } | |
52 | |
53 void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM) { | |
54 unwrap(PM)->add(createArgumentPromotionPass()); | |
55 } | |
56 | |
57 void LLVMAddConstantMergePass(LLVMPassManagerRef PM) { | |
58 unwrap(PM)->add(createConstantMergePass()); | |
59 } | |
60 | |
61 void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM) { | |
62 unwrap(PM)->add(createDeadArgEliminationPass()); | |
63 } | |
64 | |
65 void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM) { | |
66 unwrap(PM)->add(createFunctionAttrsPass()); | |
67 } | |
68 | |
69 void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM) { | |
70 unwrap(PM)->add(createFunctionInliningPass()); | |
71 } | |
72 | |
73 void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM) { | |
74 unwrap(PM)->add(llvm::createAlwaysInlinerPass()); | |
75 } | |
76 | |
77 void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM) { | |
78 unwrap(PM)->add(createGlobalDCEPass()); | |
79 } | |
80 | |
81 void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM) { | |
82 unwrap(PM)->add(createGlobalOptimizerPass()); | |
83 } | |
84 | |
85 void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM) { | |
86 unwrap(PM)->add(createIPConstantPropagationPass()); | |
87 } | |
88 | |
89 void LLVMAddPruneEHPass(LLVMPassManagerRef PM) { | |
90 unwrap(PM)->add(createPruneEHPass()); | |
91 } | |
92 | |
93 void LLVMAddIPSCCPPass(LLVMPassManagerRef PM) { | |
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 | |
104 void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM) { | |
105 unwrap(PM)->add(createStripDeadPrototypesPass()); | |
106 } | |
107 | |
108 void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM) { | |
109 unwrap(PM)->add(createStripSymbolsPass()); | |
110 } |