1 /*===-- llvm-c/Transform/PassManagerBuilder.h - PMB C Interface ---*- C -*-===*\
3 |* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
5 |* See https://llvm.org/LICENSE.txt for license information. *|
6 |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
8 |*===----------------------------------------------------------------------===*|
10 |* This header declares the C interface to the PassManagerBuilder class. *|
12 \*===----------------------------------------------------------------------===*/
14 #ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
15 #define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
17 #include "llvm-c/Types.h"
19 typedef struct LLVMOpaquePassManagerBuilder
*LLVMPassManagerBuilderRef
;
26 * @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder
27 * @ingroup LLVMCTransforms
32 /** See llvm::PassManagerBuilder. */
33 LLVMPassManagerBuilderRef
LLVMPassManagerBuilderCreate(void);
34 void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB
);
36 /** See llvm::PassManagerBuilder::OptLevel. */
38 LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB
,
41 /** See llvm::PassManagerBuilder::SizeLevel. */
43 LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB
,
46 /** See llvm::PassManagerBuilder::DisableUnitAtATime. */
48 LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB
,
51 /** See llvm::PassManagerBuilder::DisableUnrollLoops. */
53 LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB
,
56 /** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */
58 LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB
,
61 /** See llvm::PassManagerBuilder::Inliner. */
63 LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB
,
66 /** See llvm::PassManagerBuilder::populateFunctionPassManager. */
68 LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB
,
69 LLVMPassManagerRef PM
);
71 /** See llvm::PassManagerBuilder::populateModulePassManager. */
73 LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB
,
74 LLVMPassManagerRef PM
);
76 /** See llvm::PassManagerBuilder::populateLTOPassManager. */
77 void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB
,
78 LLVMPassManagerRef PM
,