1 /*===-- llvm-c/Transform/PassManagerBuilder.h - PMB C Interface ---*- C -*-===*\ 2 |* *| 3 |* The LLVM Compiler Infrastructure *| 4 |* *| 5 |* This file is distributed under the University of Illinois Open Source *| 6 |* License. See LICENSE.TXT for details. *| 7 |* *| 8 |*===----------------------------------------------------------------------===*| 9 |* *| 10 |* This header declares the C interface to the PassManagerBuilder class. *| 11 |* *| 12 \*===----------------------------------------------------------------------===*/ 13 14 module llvm.c.transforms.passManagerBuilder; 15 16 public import llvm.c.types; 17 18 extern(C) nothrow: 19 20 struct __LLVMOpaquePassManagerBuilder {}; 21 alias __LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef; 22 23 /** 24 * @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder 25 * @ingroup LLVMCTransforms 26 * 27 * @{ 28 */ 29 30 /** See llvm::PassManagerBuilder. */ 31 LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(); 32 void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB); 33 34 /** See llvm::PassManagerBuilder::OptLevel. */ 35 void 36 LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB, 37 uint OptLevel); 38 39 /** See llvm::PassManagerBuilder::SizeLevel. */ 40 void 41 LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB, 42 uint SizeLevel); 43 44 /** See llvm::PassManagerBuilder::DisableUnitAtATime. */ 45 void 46 LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB, 47 LLVMBool Value); 48 49 /** See llvm::PassManagerBuilder::DisableUnrollLoops. */ 50 void 51 LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB, 52 LLVMBool Value); 53 54 /** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */ 55 void 56 LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB, 57 LLVMBool Value); 58 59 /** See llvm::PassManagerBuilder::Inliner. */ 60 void 61 LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB, 62 uint Threshold); 63 64 /** See llvm::PassManagerBuilder::populateFunctionPassManager. */ 65 void 66 LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB, 67 LLVMPassManagerRef PM); 68 69 /** See llvm::PassManagerBuilder::populateModulePassManager. */ 70 void 71 LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB, 72 LLVMPassManagerRef PM); 73 74 /** See llvm::PassManagerBuilder::populateLTOPassManager. */ 75 void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB, 76 LLVMPassManagerRef PM, 77 LLVMBool Internalize, 78 LLVMBool RunInliner); 79 80 /** 81 * @} 82 */