|  | /*===-- llvm-c/Transform/PassManagerBuilder.h - PMB C Interface ---*- C -*-===*\ | 
|  | |*                                                                            *| | 
|  | |*                     The LLVM Compiler Infrastructure                       *| | 
|  | |*                                                                            *| | 
|  | |* This file is distributed under the University of Illinois Open Source      *| | 
|  | |* License. See LICENSE.TXT for details.                                      *| | 
|  | |*                                                                            *| | 
|  | |*===----------------------------------------------------------------------===*| | 
|  | |*                                                                            *| | 
|  | |* 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/Types.h" | 
|  |  | 
|  | typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef; | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | /** | 
|  | * @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); | 
|  |  | 
|  | /** | 
|  | * @} | 
|  | */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |