Adding IPSCCP and Internalize passes to the C-bindings
[oota-llvm.git] / lib / Transforms / IPO / IPO.cpp
1 //===-- Scalar.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 C bindings for libLLVMIPO.a, which implements
11 // several transformations over the LLVM intermediate representation.
12 //
13 //===----------------------------------------------------------------------===//
14
15 #include "llvm-c/Transforms/IPO.h"
16 #include "llvm/PassManager.h"
17 #include "llvm/Transforms/IPO.h"
18
19 using namespace llvm;
20
21 void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM) {
22   unwrap(PM)->add(createArgumentPromotionPass());
23 }
24
25 void LLVMAddConstantMergePass(LLVMPassManagerRef PM) {
26   unwrap(PM)->add(createConstantMergePass());
27 }
28
29 void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM) {
30   unwrap(PM)->add(createDeadArgEliminationPass());
31 }
32
33 void LLVMAddDeadTypeEliminationPass(LLVMPassManagerRef PM) {
34   unwrap(PM)->add(createDeadTypeEliminationPass());
35 }
36
37 void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM) {
38   unwrap(PM)->add(createFunctionAttrsPass());
39 }
40
41 void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM) {
42   unwrap(PM)->add(createFunctionInliningPass());
43 }
44
45 void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM) {
46   unwrap(PM)->add(createGlobalDCEPass());
47 }
48
49 void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM) {
50   unwrap(PM)->add(createGlobalOptimizerPass());
51 }
52
53 void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM) {
54   unwrap(PM)->add(createIPConstantPropagationPass());
55 }
56
57 void LLVMAddLowerSetJmpPass(LLVMPassManagerRef PM) {
58   unwrap(PM)->add(createLowerSetJmpPass());
59 }
60
61 void LLVMAddPruneEHPass(LLVMPassManagerRef PM) {
62   unwrap(PM)->add(createPruneEHPass());
63 }
64
65 void LLVMAddIPSCCPPass(LLVMPassManagerRef PM) {
66   unwrap(PM)->add(createIPSCCPPass());
67 }
68
69 void LLVMAddInternalizePass(LLVMPassManagerRef PM, unsigned AllButMain) {
70   unwrap(PM)->add(createInternalizePass(AllButMain != 0));
71 }
72
73
74 void LLVMAddRaiseAllocationsPass(LLVMPassManagerRef PM) {
75   // FIXME: Remove in LLVM 3.0.
76 }
77
78 void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM) {
79   unwrap(PM)->add(createStripDeadPrototypesPass());
80 }
81
82 void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM) {
83   unwrap(PM)->add(createStripSymbolsPass());
84 }