LLVM API Documentation
00001 /*===-- llvm-c/Transform/PassManagerBuilder.h - PMB C Interface ---*- C -*-===*\ 00002 |* *| 00003 |* The LLVM Compiler Infrastructure *| 00004 |* *| 00005 |* This file is distributed under the University of Illinois Open Source *| 00006 |* License. See LICENSE.TXT for details. *| 00007 |* *| 00008 |*===----------------------------------------------------------------------===*| 00009 |* *| 00010 |* This header declares the C interface to the PassManagerBuilder class. *| 00011 |* *| 00012 \*===----------------------------------------------------------------------===*/ 00013 00014 #ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H 00015 #define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H 00016 00017 #include "llvm-c/Core.h" 00018 00019 typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef; 00020 00021 #ifdef __cplusplus 00022 extern "C" { 00023 #endif 00024 00025 /** 00026 * @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder 00027 * @ingroup LLVMCTransforms 00028 * 00029 * @{ 00030 */ 00031 00032 /** See llvm::PassManagerBuilder. */ 00033 LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(void); 00034 void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB); 00035 00036 /** See llvm::PassManagerBuilder::OptLevel. */ 00037 void 00038 LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB, 00039 unsigned OptLevel); 00040 00041 /** See llvm::PassManagerBuilder::SizeLevel. */ 00042 void 00043 LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB, 00044 unsigned SizeLevel); 00045 00046 /** See llvm::PassManagerBuilder::DisableUnitAtATime. */ 00047 void 00048 LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB, 00049 LLVMBool Value); 00050 00051 /** See llvm::PassManagerBuilder::DisableUnrollLoops. */ 00052 void 00053 LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB, 00054 LLVMBool Value); 00055 00056 /** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */ 00057 void 00058 LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB, 00059 LLVMBool Value); 00060 00061 /** See llvm::PassManagerBuilder::Inliner. */ 00062 void 00063 LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB, 00064 unsigned Threshold); 00065 00066 /** See llvm::PassManagerBuilder::populateFunctionPassManager. */ 00067 void 00068 LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB, 00069 LLVMPassManagerRef PM); 00070 00071 /** See llvm::PassManagerBuilder::populateModulePassManager. */ 00072 void 00073 LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB, 00074 LLVMPassManagerRef PM); 00075 00076 /** See llvm::PassManagerBuilder::populateLTOPassManager. */ 00077 void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB, 00078 LLVMPassManagerRef PM, 00079 LLVMBool Internalize, 00080 LLVMBool RunInliner); 00081 00082 /** 00083 * @} 00084 */ 00085 00086 #ifdef __cplusplus 00087 } 00088 #endif 00089 00090 #endif