From: Eric Christopher Date: Tue, 2 Dec 2014 21:09:01 +0000 (+0000) Subject: Add bindings for the rest of the MCJIT options that we previously X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=73271f08534cf8d90a3b1f18dbf73e6c25279837;hp=8d7b46d0d692e99f864a88b95e51b73dd28483ad Add bindings for the rest of the MCJIT options that we previously had support for. We're still missing a binding for an MCJIT memory manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223153 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/bindings/go/llvm/executionengine.go b/bindings/go/llvm/executionengine.go index 23c185c010b..94d4e83b4cf 100644 --- a/bindings/go/llvm/executionengine.go +++ b/bindings/go/llvm/executionengine.go @@ -39,6 +39,18 @@ func (options *MCJITCompilerOptions) SetMCJITOptimizationLevel(level uint) { options.C.OptLevel = C.uint(level) } +func (options *MCJITCompilerOptions) SetMCJITNoFramePointerElim(nfp bool) { + options.C.NoFramePointerElim = boolToLLVMBool(nfp) +} + +func (options *MCJITCompilerOptions) SetMCJITEnableFastISel(fastisel bool) { + options.C.EnableFastISel = boolToLLVMBool(fastisel) +} + +func (options *MCJITCompilerOptions) SetMCJITCodeModel(CodeModel CodeModel) { + options.C.CodeModel = C.LLVMCodeModel(CodeModel) +} + // helpers func llvmGenericValueRefPtr(t *GenericValue) *C.LLVMGenericValueRef { return (*C.LLVMGenericValueRef)(unsafe.Pointer(t)) diff --git a/bindings/go/llvm/executionengine_test.go b/bindings/go/llvm/executionengine_test.go index 03fabc83c6f..2b6a3caff3d 100644 --- a/bindings/go/llvm/executionengine_test.go +++ b/bindings/go/llvm/executionengine_test.go @@ -68,6 +68,9 @@ func TestFactorial(t *testing.T) { options := NewMCJITCompilerOptions() options.SetMCJITOptimizationLevel(2) + options.SetMCJITEnableFastISel(true) + options.SetMCJITNoFramePointerElim(true) + options.SetMCJITCodeModel(CodeModelJITDefault) engine, err := NewMCJITCompiler(mod, options) if err != nil { t.Errorf("Error creating JIT: %s", err)