PassManagerBuilder.h revision 360784
1/*===-- llvm-c/Transform/PassManagerBuilder.h - PMB C Interface ---*- C -*-===*\ 2|* *| 3|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| 4|* Exceptions. *| 5|* See https://llvm.org/LICENSE.txt for license information. *| 6|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| 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/ExternC.h" 18#include "llvm-c/Types.h" 19 20typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef; 21 22LLVM_C_EXTERN_C_BEGIN 23 24/** 25 * @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder 26 * @ingroup LLVMCTransforms 27 * 28 * @{ 29 */ 30 31/** See llvm::PassManagerBuilder. */ 32LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(void); 33void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB); 34 35/** See llvm::PassManagerBuilder::OptLevel. */ 36void 37LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB, 38 unsigned OptLevel); 39 40/** See llvm::PassManagerBuilder::SizeLevel. */ 41void 42LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB, 43 unsigned SizeLevel); 44 45/** See llvm::PassManagerBuilder::DisableUnitAtATime. */ 46void 47LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB, 48 LLVMBool Value); 49 50/** See llvm::PassManagerBuilder::DisableUnrollLoops. */ 51void 52LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB, 53 LLVMBool Value); 54 55/** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */ 56void 57LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB, 58 LLVMBool Value); 59 60/** See llvm::PassManagerBuilder::Inliner. */ 61void 62LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB, 63 unsigned Threshold); 64 65/** See llvm::PassManagerBuilder::populateFunctionPassManager. */ 66void 67LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB, 68 LLVMPassManagerRef PM); 69 70/** See llvm::PassManagerBuilder::populateModulePassManager. */ 71void 72LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB, 73 LLVMPassManagerRef PM); 74 75/** See llvm::PassManagerBuilder::populateLTOPassManager. */ 76void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB, 77 LLVMPassManagerRef PM, 78 LLVMBool Internalize, 79 LLVMBool RunInliner); 80 81/** 82 * @} 83 */ 84 85LLVM_C_EXTERN_C_END 86 87#endif 88