1 //===- transforms_pmbuilder.go - Bindings for PassManagerBuilder ----------===//
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 file defines bindings for the PassManagerBuilder class.
12 //===----------------------------------------------------------------------===//
17 #include "llvm-c/Transforms/PassManagerBuilder.h"
21 type PassManagerBuilder
struct {
22 C C
.LLVMPassManagerBuilderRef
25 func NewPassManagerBuilder() (pmb PassManagerBuilder
) {
26 pmb
.C
= C
.LLVMPassManagerBuilderCreate()
30 func (pmb PassManagerBuilder
) SetOptLevel(level
int) {
31 C
.LLVMPassManagerBuilderSetOptLevel(pmb
.C
, C
.uint(level
))
34 func (pmb PassManagerBuilder
) SetSizeLevel(level
int) {
35 C
.LLVMPassManagerBuilderSetSizeLevel(pmb
.C
, C
.uint(level
))
38 func (pmb PassManagerBuilder
) Populate(pm PassManager
) {
39 C
.LLVMPassManagerBuilderPopulateModulePassManager(pmb
.C
, pm
.C
)
42 func (pmb PassManagerBuilder
) PopulateFunc(pm PassManager
) {
43 C
.LLVMPassManagerBuilderPopulateFunctionPassManager(pmb
.C
, pm
.C
)
46 func (pmb PassManagerBuilder
) PopulateLTOPassManager(pm PassManager
, internalize
bool, runInliner
bool) {
47 C
.LLVMPassManagerBuilderPopulateLTOPassManager(pmb
.C
, pm
.C
, boolToLLVMBool(internalize
), boolToLLVMBool(runInliner
))
50 func (pmb PassManagerBuilder
) Dispose() {
51 C
.LLVMPassManagerBuilderDispose(pmb
.C
)
54 func (pmb PassManagerBuilder
) SetDisableUnitAtATime(val
bool) {
55 C
.LLVMPassManagerBuilderSetDisableUnitAtATime(pmb
.C
, boolToLLVMBool(val
))
58 func (pmb PassManagerBuilder
) SetDisableUnrollLoops(val
bool) {
59 C
.LLVMPassManagerBuilderSetDisableUnrollLoops(pmb
.C
, boolToLLVMBool(val
))
62 func (pmb PassManagerBuilder
) SetDisableSimplifyLibCalls(val
bool) {
63 C
.LLVMPassManagerBuilderSetDisableSimplifyLibCalls(pmb
.C
, boolToLLVMBool(val
))
66 func (pmb PassManagerBuilder
) UseInlinerWithThreshold(threshold
uint) {
67 C
.LLVMPassManagerBuilderUseInlinerWithThreshold(pmb
.C
, C
.uint(threshold
))