1
/*===-- llvm-c/Transform/PassManagerBuilder.h - PMB C Interface ---*- C -*-===*\
3
|* The LLVM Compiler Infrastructure *|
5
|* This file is distributed under the University of Illinois Open Source *|
6
|* License. See LICENSE.TXT for details. *|
8
|*===----------------------------------------------------------------------===*|
10
|* This header declares the C interface to the PassManagerBuilder class. *|
12
\*===----------------------------------------------------------------------===*/
14
#ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
15
#define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
17
#include "llvm-c/Core.h"
19
typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef;
26
* @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder
27
* @ingroup LLVMCTransforms
32
/** See llvm::PassManagerBuilder. */
33
LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(void);
34
void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB);
36
/** See llvm::PassManagerBuilder::OptLevel. */
38
LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB,
41
/** See llvm::PassManagerBuilder::SizeLevel. */
43
LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB,
46
/** See llvm::PassManagerBuilder::DisableUnitAtATime. */
48
LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB,
51
/** See llvm::PassManagerBuilder::DisableUnrollLoops. */
53
LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB,
56
/** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */
58
LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB,
61
/** See llvm::PassManagerBuilder::Inliner. */
63
LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB,
66
/** See llvm::PassManagerBuilder::populateFunctionPassManager. */
68
LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB,
69
LLVMPassManagerRef PM);
71
/** See llvm::PassManagerBuilder::populateModulePassManager. */
73
LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB,
74
LLVMPassManagerRef PM);
76
/** See llvm::PassManagerBuilder::populateLTOPassManager. */
77
void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB,
78
LLVMPassManagerRef PM,