aboutsummaryrefslogtreecommitdiffstats
path: root/bindings/go/llvm/transforms_pmbuilder.go
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/go/llvm/transforms_pmbuilder.go')
-rw-r--r--bindings/go/llvm/transforms_pmbuilder.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/bindings/go/llvm/transforms_pmbuilder.go b/bindings/go/llvm/transforms_pmbuilder.go
new file mode 100644
index 0000000..3d79d6e
--- /dev/null
+++ b/bindings/go/llvm/transforms_pmbuilder.go
@@ -0,0 +1,48 @@
+//===- transforms_pmbuilder.go - Bindings for PassManagerBuilder ----------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines bindings for the PassManagerBuilder class.
+//
+//===----------------------------------------------------------------------===//
+
+package llvm
+
+/*
+#include "llvm-c/Transforms/PassManagerBuilder.h"
+*/
+import "C"
+
+type PassManagerBuilder struct {
+ C C.LLVMPassManagerBuilderRef
+}
+
+func NewPassManagerBuilder() (pmb PassManagerBuilder) {
+ pmb.C = C.LLVMPassManagerBuilderCreate()
+ return
+}
+
+func (pmb PassManagerBuilder) SetOptLevel(level int) {
+ C.LLVMPassManagerBuilderSetOptLevel(pmb.C, C.uint(level))
+}
+
+func (pmb PassManagerBuilder) SetSizeLevel(level int) {
+ C.LLVMPassManagerBuilderSetSizeLevel(pmb.C, C.uint(level))
+}
+
+func (pmb PassManagerBuilder) Populate(pm PassManager) {
+ C.LLVMPassManagerBuilderPopulateModulePassManager(pmb.C, pm.C)
+}
+
+func (pmb PassManagerBuilder) PopulateFunc(pm PassManager) {
+ C.LLVMPassManagerBuilderPopulateFunctionPassManager(pmb.C, pm.C)
+}
+
+func (pmb PassManagerBuilder) Dispose() {
+ C.LLVMPassManagerBuilderDispose(pmb.C)
+}