| /*===-- llvm-c/Transform/PassManagerBuilder.h - PMB C Interface ---*- C -*-===*\ | |
| |* *| | |
| |* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| | |
| |* Exceptions. *| | |
| |* See https://llvm.org/LICENSE.txt for license information. *| | |
| |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| | |
| |* *| | |
| |*===----------------------------------------------------------------------===*| | |
| |* *| | |
| |* This header declares the C interface to the PassManagerBuilder class. *| | |
| |* *| | |
| \*===----------------------------------------------------------------------===*/ | |
| #ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H | |
| #define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H | |
| #include "llvm-c/ExternC.h" | |
| #include "llvm-c/Types.h" | |
| typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef; | |
| LLVM_C_EXTERN_C_BEGIN | |
| /** | |
| * @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder | |
| * @ingroup LLVMCTransforms | |
| * | |
| * @{ | |
| */ | |
| /** See llvm::PassManagerBuilder. */ | |
| LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(void); | |
| void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB); | |
| /** See llvm::PassManagerBuilder::OptLevel. */ | |
| void | |
| LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB, | |
| unsigned OptLevel); | |
| /** See llvm::PassManagerBuilder::SizeLevel. */ | |
| void | |
| LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB, | |
| unsigned SizeLevel); | |
| /** See llvm::PassManagerBuilder::DisableUnitAtATime. */ | |
| void | |
| LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB, | |
| LLVMBool Value); | |
| /** See llvm::PassManagerBuilder::DisableUnrollLoops. */ | |
| void | |
| LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB, | |
| LLVMBool Value); | |
| /** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */ | |
| void | |
| LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB, | |
| LLVMBool Value); | |
| /** See llvm::PassManagerBuilder::Inliner. */ | |
| void | |
| LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB, | |
| unsigned Threshold); | |
| /** See llvm::PassManagerBuilder::populateFunctionPassManager. */ | |
| void | |
| LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB, | |
| LLVMPassManagerRef PM); | |
| /** See llvm::PassManagerBuilder::populateModulePassManager. */ | |
| void | |
| LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB, | |
| LLVMPassManagerRef PM); | |
| /** See llvm::PassManagerBuilder::populateLTOPassManager. */ | |
| void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB, | |
| LLVMPassManagerRef PM, | |
| LLVMBool Internalize, | |
| LLVMBool RunInliner); | |
| /** | |
| * @} | |
| */ | |
| LLVM_C_EXTERN_C_END | |
| #endif |