summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/bindings/go/llvm/executionengine.go12
-rw-r--r--llvm/bindings/go/llvm/executionengine_test.go3
2 files changed, 15 insertions, 0 deletions
diff --git a/llvm/bindings/go/llvm/executionengine.go b/llvm/bindings/go/llvm/executionengine.go
index 23c185c010b..94d4e83b4cf 100644
--- a/llvm/bindings/go/llvm/executionengine.go
+++ b/llvm/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/llvm/bindings/go/llvm/executionengine_test.go b/llvm/bindings/go/llvm/executionengine_test.go
index 03fabc83c6f..2b6a3caff3d 100644
--- a/llvm/bindings/go/llvm/executionengine_test.go
+++ b/llvm/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)
OpenPOWER on IntegriCloud