Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / mini / llvm-jit.h
1 /**
2  * \file
3  * LLVM backend
4  *
5  * Authors:
6  *   Zoltan Varga (vargaz@gmail.com)
7  *
8  * (C) 2009 Novell, Inc.
9  */
10
11 #ifndef __MONO_LLVM_JIT_H__
12 #define __MONO_LLVM_JIT_H__
13
14 #include <glib.h>
15
16 #include "llvm-c/Core.h"
17 #include "llvm-c/ExecutionEngine.h"
18
19 #include <unwind.h>
20
21 G_BEGIN_DECLS
22
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);
27
28 typedef void* MonoEERef;
29
30 MonoEERef
31 mono_llvm_create_ee (LLVMModuleProviderRef MP, AllocCodeMemoryCb *alloc_cb, FunctionEmittedCb *emitted_cb, ExceptionTableCb *exception_cb, DlSymCb *dlsym_cb, LLVMExecutionEngineRef *ee);
32
33 void
34 mono_llvm_dispose_ee (MonoEERef *mono_ee);
35
36 gpointer
37 mono_llvm_compile_method (MonoEERef mono_ee, LLVMValueRef method, int nvars, LLVMValueRef *callee_vars, gpointer *callee_addrs, gpointer *eh_frame);
38
39 void
40 mono_llvm_optimize_method (MonoEERef mono_ee, LLVMValueRef method);
41
42 void
43 mono_llvm_set_unhandled_exception_handler (void);
44
45 G_END_DECLS
46
47 #endif /* __MONO_LLVM_JIT_H__ */