6 * Zoltan Varga (vargaz@gmail.com)
8 * (C) 2009 Novell, Inc.
11 #ifndef __MONO_LLVM_JIT_H__
12 #define __MONO_LLVM_JIT_H__
16 #include "llvm-c/Core.h"
17 #include "llvm-c/ExecutionEngine.h"
23 typedef unsigned char * (AllocCodeMemoryCb
) (LLVMValueRef function
, int size
);
24 typedef void (FunctionEmittedCb
) (LLVMValueRef function
, void *start
, void *end
);
25 typedef void (ExceptionTableCb
) (void *data
);
26 typedef char* (DlSymCb
) (const char *name
, void **symbol
);
28 typedef void* MonoEERef
;
31 mono_llvm_create_ee (LLVMModuleProviderRef MP
, AllocCodeMemoryCb
*alloc_cb
, FunctionEmittedCb
*emitted_cb
, ExceptionTableCb
*exception_cb
, DlSymCb
*dlsym_cb
, LLVMExecutionEngineRef
*ee
);
34 mono_llvm_dispose_ee (MonoEERef
*mono_ee
);
37 mono_llvm_compile_method (MonoEERef mono_ee
, LLVMValueRef method
, int nvars
, LLVMValueRef
*callee_vars
, gpointer
*callee_addrs
, gpointer
*eh_frame
);
40 mono_llvm_optimize_method (MonoEERef mono_ee
, LLVMValueRef method
);
43 mono_llvm_set_unhandled_exception_handler (void);
47 #endif /* __MONO_LLVM_JIT_H__ */