1 | /*===-- llvm-c/Transform/PassManagerBuilder.h - PMB 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 the PassManagerBuilder class. *| |
11 | |* *| |
12 | \*===----------------------------------------------------------------------===*/ |
13 | |
14 | #ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H |
15 | #define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H |
16 | |
17 | #include "llvm-c/Types.h" |
18 | |
19 | typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef; |
20 | |
21 | #ifdef __cplusplus |
22 | extern "C" { |
23 | #endif |
24 | |
25 | /** |
26 | * @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder |
27 | * @ingroup LLVMCTransforms |
28 | * |
29 | * @{ |
30 | */ |
31 | |
32 | /** See llvm::PassManagerBuilder. */ |
33 | LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(void); |
34 | void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB); |
35 | |
36 | /** See llvm::PassManagerBuilder::OptLevel. */ |
37 | void |
38 | LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB, |
39 | unsigned OptLevel); |
40 | |
41 | /** See llvm::PassManagerBuilder::SizeLevel. */ |
42 | void |
43 | LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB, |
44 | unsigned SizeLevel); |
45 | |
46 | /** See llvm::PassManagerBuilder::DisableUnitAtATime. */ |
47 | void |
48 | LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB, |
49 | LLVMBool Value); |
50 | |
51 | /** See llvm::PassManagerBuilder::DisableUnrollLoops. */ |
52 | void |
53 | LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB, |
54 | LLVMBool Value); |
55 | |
56 | /** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */ |
57 | void |
58 | LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB, |
59 | LLVMBool Value); |
60 | |
61 | /** See llvm::PassManagerBuilder::Inliner. */ |
62 | void |
63 | LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB, |
64 | unsigned Threshold); |
65 | |
66 | /** See llvm::PassManagerBuilder::populateFunctionPassManager. */ |
67 | void |
68 | LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB, |
69 | LLVMPassManagerRef PM); |
70 | |
71 | /** See llvm::PassManagerBuilder::populateModulePassManager. */ |
72 | void |
73 | LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB, |
74 | LLVMPassManagerRef PM); |
75 | |
76 | /** See llvm::PassManagerBuilder::populateLTOPassManager. */ |
77 | void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB, |
78 | LLVMPassManagerRef PM, |
79 | LLVMBool Internalize, |
80 | LLVMBool RunInliner); |
81 | |
82 | /** |
83 | * @} |
84 | */ |
85 | |
86 | #ifdef __cplusplus |
87 | } |
88 | #endif |
89 | |
90 | #endif |
91 | |