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
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))
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)