xref: /aosp_15_r20/external/llvm/include/llvm-c/Transforms/PassManagerBuilder.h (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker /*===-- llvm-c/Transform/PassManagerBuilder.h - PMB C Interface ---*- C -*-===*\
2*9880d681SAndroid Build Coastguard Worker |*                                                                            *|
3*9880d681SAndroid Build Coastguard Worker |*                     The LLVM Compiler Infrastructure                       *|
4*9880d681SAndroid Build Coastguard Worker |*                                                                            *|
5*9880d681SAndroid Build Coastguard Worker |* This file is distributed under the University of Illinois Open Source      *|
6*9880d681SAndroid Build Coastguard Worker |* License. See LICENSE.TXT for details.                                      *|
7*9880d681SAndroid Build Coastguard Worker |*                                                                            *|
8*9880d681SAndroid Build Coastguard Worker |*===----------------------------------------------------------------------===*|
9*9880d681SAndroid Build Coastguard Worker |*                                                                            *|
10*9880d681SAndroid Build Coastguard Worker |* This header declares the C interface to the PassManagerBuilder class.      *|
11*9880d681SAndroid Build Coastguard Worker |*                                                                            *|
12*9880d681SAndroid Build Coastguard Worker \*===----------------------------------------------------------------------===*/
13*9880d681SAndroid Build Coastguard Worker 
14*9880d681SAndroid Build Coastguard Worker #ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
15*9880d681SAndroid Build Coastguard Worker #define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
16*9880d681SAndroid Build Coastguard Worker 
17*9880d681SAndroid Build Coastguard Worker #include "llvm-c/Types.h"
18*9880d681SAndroid Build Coastguard Worker 
19*9880d681SAndroid Build Coastguard Worker typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef;
20*9880d681SAndroid Build Coastguard Worker 
21*9880d681SAndroid Build Coastguard Worker #ifdef __cplusplus
22*9880d681SAndroid Build Coastguard Worker extern "C" {
23*9880d681SAndroid Build Coastguard Worker #endif
24*9880d681SAndroid Build Coastguard Worker 
25*9880d681SAndroid Build Coastguard Worker /**
26*9880d681SAndroid Build Coastguard Worker  * @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder
27*9880d681SAndroid Build Coastguard Worker  * @ingroup LLVMCTransforms
28*9880d681SAndroid Build Coastguard Worker  *
29*9880d681SAndroid Build Coastguard Worker  * @{
30*9880d681SAndroid Build Coastguard Worker  */
31*9880d681SAndroid Build Coastguard Worker 
32*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder. */
33*9880d681SAndroid Build Coastguard Worker LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(void);
34*9880d681SAndroid Build Coastguard Worker void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB);
35*9880d681SAndroid Build Coastguard Worker 
36*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder::OptLevel. */
37*9880d681SAndroid Build Coastguard Worker void
38*9880d681SAndroid Build Coastguard Worker LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB,
39*9880d681SAndroid Build Coastguard Worker                                   unsigned OptLevel);
40*9880d681SAndroid Build Coastguard Worker 
41*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder::SizeLevel. */
42*9880d681SAndroid Build Coastguard Worker void
43*9880d681SAndroid Build Coastguard Worker LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB,
44*9880d681SAndroid Build Coastguard Worker                                    unsigned SizeLevel);
45*9880d681SAndroid Build Coastguard Worker 
46*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder::DisableUnitAtATime. */
47*9880d681SAndroid Build Coastguard Worker void
48*9880d681SAndroid Build Coastguard Worker LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB,
49*9880d681SAndroid Build Coastguard Worker                                             LLVMBool Value);
50*9880d681SAndroid Build Coastguard Worker 
51*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder::DisableUnrollLoops. */
52*9880d681SAndroid Build Coastguard Worker void
53*9880d681SAndroid Build Coastguard Worker LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB,
54*9880d681SAndroid Build Coastguard Worker                                             LLVMBool Value);
55*9880d681SAndroid Build Coastguard Worker 
56*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */
57*9880d681SAndroid Build Coastguard Worker void
58*9880d681SAndroid Build Coastguard Worker LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB,
59*9880d681SAndroid Build Coastguard Worker                                                  LLVMBool Value);
60*9880d681SAndroid Build Coastguard Worker 
61*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder::Inliner. */
62*9880d681SAndroid Build Coastguard Worker void
63*9880d681SAndroid Build Coastguard Worker LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB,
64*9880d681SAndroid Build Coastguard Worker                                               unsigned Threshold);
65*9880d681SAndroid Build Coastguard Worker 
66*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder::populateFunctionPassManager. */
67*9880d681SAndroid Build Coastguard Worker void
68*9880d681SAndroid Build Coastguard Worker LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB,
69*9880d681SAndroid Build Coastguard Worker                                                   LLVMPassManagerRef PM);
70*9880d681SAndroid Build Coastguard Worker 
71*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder::populateModulePassManager. */
72*9880d681SAndroid Build Coastguard Worker void
73*9880d681SAndroid Build Coastguard Worker LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB,
74*9880d681SAndroid Build Coastguard Worker                                                 LLVMPassManagerRef PM);
75*9880d681SAndroid Build Coastguard Worker 
76*9880d681SAndroid Build Coastguard Worker /** See llvm::PassManagerBuilder::populateLTOPassManager. */
77*9880d681SAndroid Build Coastguard Worker void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB,
78*9880d681SAndroid Build Coastguard Worker                                                   LLVMPassManagerRef PM,
79*9880d681SAndroid Build Coastguard Worker                                                   LLVMBool Internalize,
80*9880d681SAndroid Build Coastguard Worker                                                   LLVMBool RunInliner);
81*9880d681SAndroid Build Coastguard Worker 
82*9880d681SAndroid Build Coastguard Worker /**
83*9880d681SAndroid Build Coastguard Worker  * @}
84*9880d681SAndroid Build Coastguard Worker  */
85*9880d681SAndroid Build Coastguard Worker 
86*9880d681SAndroid Build Coastguard Worker #ifdef __cplusplus
87*9880d681SAndroid Build Coastguard Worker }
88*9880d681SAndroid Build Coastguard Worker #endif
89*9880d681SAndroid Build Coastguard Worker 
90*9880d681SAndroid Build Coastguard Worker #endif
91