2 * llvm-jit.h: LLVM backend
5 * Zoltan Varga (vargaz@gmail.com)
7 * (C) 2009 Novell, Inc.
10 #ifndef __MONO_LLVM_JIT_H__
11 #define __MONO_LLVM_JIT_H__
15 #include "llvm-c/Core.h"
16 #include "llvm-c/ExecutionEngine.h"
22 typedef unsigned char * (AllocCodeMemoryCb
) (LLVMValueRef function
, int size
);
23 typedef void (FunctionEmittedCb
) (LLVMValueRef function
, void *start
, void *end
);
24 typedef void (ExceptionTableCb
) (void *data
);
25 typedef char* (DlSymCb
) (const char *name
, void **symbol
);
27 typedef void* MonoEERef
;
30 mono_llvm_create_ee (LLVMModuleProviderRef MP
, AllocCodeMemoryCb
*alloc_cb
, FunctionEmittedCb
*emitted_cb
, ExceptionTableCb
*exception_cb
, DlSymCb
*dlsym_cb
, LLVMExecutionEngineRef
*ee
);
33 mono_llvm_dispose_ee (MonoEERef
*mono_ee
);
36 mono_llvm_compile_method (MonoEERef mono_ee
, LLVMValueRef method
, int nvars
, LLVMValueRef
*callee_vars
, gpointer
*callee_addrs
, gpointer
*eh_frame
);
39 mono_llvm_optimize_method (MonoEERef mono_ee
, LLVMValueRef method
);
42 mono_llvm_set_unhandled_exception_handler (void);
46 #endif /* __MONO_LLVM_JIT_H__ */