LLVM  6.0.0svn
PassManagerBuilder.h
Go to the documentation of this file.
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/Types.h"
18 
19 typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef;
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 /**
26  * @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder
27  * @ingroup LLVMCTransforms
28  *
29  * @{
30  */
31 
32 /** See llvm::PassManagerBuilder. */
35 
36 /** See llvm::PassManagerBuilder::OptLevel. */
37 void
39  unsigned OptLevel);
40 
41 /** See llvm::PassManagerBuilder::SizeLevel. */
42 void
44  unsigned SizeLevel);
45 
46 /** See llvm::PassManagerBuilder::DisableUnitAtATime. */
47 void
49  LLVMBool Value);
50 
51 /** See llvm::PassManagerBuilder::DisableUnrollLoops. */
52 void
54  LLVMBool Value);
55 
56 /** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */
57 void
59  LLVMBool Value);
60 
61 /** See llvm::PassManagerBuilder::Inliner. */
62 void
64  unsigned Threshold);
65 
66 /** See llvm::PassManagerBuilder::populateFunctionPassManager. */
67 void
70 
71 /** See llvm::PassManagerBuilder::populateModulePassManager. */
72 void
75 
76 /** See llvm::PassManagerBuilder::populateLTOPassManager. */
79  LLVMBool Internalize,
80  LLVMBool RunInliner);
81 
82 /**
83  * @}
84  */
85 
86 #ifdef __cplusplus
87 }
88 #endif
89 
90 #endif
void LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB, unsigned OptLevel)
See llvm::PassManagerBuilder::OptLevel.
void LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB, LLVMBool Value)
See llvm::PassManagerBuilder::DisableSimplifyLibCalls.
void LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB, LLVMBool Value)
See llvm::PassManagerBuilder::DisableUnrollLoops.
void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB, LLVMPassManagerRef PM, LLVMBool Internalize, LLVMBool RunInliner)
See llvm::PassManagerBuilder::populateLTOPassManager.
void LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB, unsigned SizeLevel)
See llvm::PassManagerBuilder::SizeLevel.
struct LLVMOpaquePassManagerBuilder * LLVMPassManagerBuilderRef
void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB)
int LLVMBool
Definition: Types.h:29
struct LLVMOpaquePassManager * LLVMPassManagerRef
Definition: Types.h:114
LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(void)
See llvm::PassManagerBuilder.
void LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB, LLVMPassManagerRef PM)
See llvm::PassManagerBuilder::populateModulePassManager.
static int const Threshold
TODO: Write a new FunctionPass AliasAnalysis so that it can keep a cache.
void LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB, LLVMBool Value)
See llvm::PassManagerBuilder::DisableUnitAtATime.
void LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB, LLVMPassManagerRef PM)
See llvm::PassManagerBuilder::populateFunctionPassManager.
void LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB, unsigned Threshold)
See llvm::PassManagerBuilder::Inliner.