PassManagerBuilder.h revision dce4a407a24b04eebc6a376f8e62b41aaa7b071f
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#ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H 15#define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H 16 17#include "llvm-c/Core.h" 18 19typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef; 20 21#ifdef __cplusplus 22extern "C" { 23#endif 24 25/** 26 * @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder 27 * @ingroup LLVMCTransforms 28 * 29 * @{ 30 */ 31 32/** See llvm::PassManagerBuilder. */ 33LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(void); 34void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB); 35 36/** See llvm::PassManagerBuilder::OptLevel. */ 37void 38LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB, 39 unsigned OptLevel); 40 41/** See llvm::PassManagerBuilder::SizeLevel. */ 42void 43LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB, 44 unsigned SizeLevel); 45 46/** See llvm::PassManagerBuilder::DisableUnitAtATime. */ 47void 48LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB, 49 LLVMBool Value); 50 51/** See llvm::PassManagerBuilder::DisableUnrollLoops. */ 52void 53LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB, 54 LLVMBool Value); 55 56/** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */ 57void 58LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB, 59 LLVMBool Value); 60 61/** See llvm::PassManagerBuilder::Inliner. */ 62void 63LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB, 64 unsigned Threshold); 65 66/** See llvm::PassManagerBuilder::populateFunctionPassManager. */ 67void 68LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB, 69 LLVMPassManagerRef PM); 70 71/** See llvm::PassManagerBuilder::populateModulePassManager. */ 72void 73LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB, 74 LLVMPassManagerRef PM); 75 76/** See llvm::PassManagerBuilder::populateLTOPassManager. */ 77void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB, 78 LLVMPassManagerRef PM, 79 LLVMBool Internalize, 80 LLVMBool RunInliner); 81 82/** 83 * @} 84 */ 85 86#ifdef __cplusplus 87} 88#endif 89 90#endif 91