1 | /*===-- IPO.h - Interprocedural Transformations C Interface -----*- C++ -*-===*\ |
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 header declares the C interface to libLLVMIPO.a, which implements *| |
11 | |* various interprocedural transformations of the LLVM IR. *| |
12 | |* *| |
13 | \*===----------------------------------------------------------------------===*/ |
14 | |
15 | #ifndef LLVM_C_TRANSFORMS_IPO_H |
16 | #define LLVM_C_TRANSFORMS_IPO_H |
17 | |
18 | #include "llvm-c/Types.h" |
19 | |
20 | #ifdef __cplusplus |
21 | extern "C" { |
22 | #endif |
23 | |
24 | /** |
25 | * @defgroup LLVMCTransformsIPO Interprocedural transformations |
26 | * @ingroup LLVMCTransforms |
27 | * |
28 | * @{ |
29 | */ |
30 | |
31 | /** See llvm::createArgumentPromotionPass function. */ |
32 | void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM); |
33 | |
34 | /** See llvm::createConstantMergePass function. */ |
35 | void LLVMAddConstantMergePass(LLVMPassManagerRef PM); |
36 | |
37 | /** See llvm::createCalledValuePropagationPass function. */ |
38 | void LLVMAddCalledValuePropagationPass(LLVMPassManagerRef PM); |
39 | |
40 | /** See llvm::createDeadArgEliminationPass function. */ |
41 | void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM); |
42 | |
43 | /** See llvm::createFunctionAttrsPass function. */ |
44 | void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM); |
45 | |
46 | /** See llvm::createFunctionInliningPass function. */ |
47 | void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM); |
48 | |
49 | /** See llvm::createAlwaysInlinerPass function. */ |
50 | void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM); |
51 | |
52 | /** See llvm::createGlobalDCEPass function. */ |
53 | void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM); |
54 | |
55 | /** See llvm::createGlobalOptimizerPass function. */ |
56 | void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM); |
57 | |
58 | /** See llvm::createIPConstantPropagationPass function. */ |
59 | void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM); |
60 | |
61 | /** See llvm::createPruneEHPass function. */ |
62 | void LLVMAddPruneEHPass(LLVMPassManagerRef PM); |
63 | |
64 | /** See llvm::createIPSCCPPass function. */ |
65 | void LLVMAddIPSCCPPass(LLVMPassManagerRef PM); |
66 | |
67 | /** See llvm::createInternalizePass function. */ |
68 | void LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain); |
69 | |
70 | /** See llvm::createStripDeadPrototypesPass function. */ |
71 | void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM); |
72 | |
73 | /** See llvm::createStripSymbolsPass function. */ |
74 | void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM); |
75 | |
76 | /** |
77 | * @} |
78 | */ |
79 | |
80 | #ifdef __cplusplus |
81 | } |
82 | #endif /* defined(__cplusplus) */ |
83 | |
84 | #endif |
85 | |