*/
#include "mini.h"
+#include "mini-llvm.h"
#ifdef MONO_LLVM_LOADED
typedef void (*MonoLLVMVoidFunc)(void);
typedef void (*MonoLLVMCFGFunc)(MonoCompile *cfg);
typedef void (*MonoLLVMEmitCallFunc)(MonoCompile *cfg, MonoCallInst *call);
-typedef void (*MonoLLVMCreateAotFunc)(MonoAssembly *assembly, const char *global_prefix, gboolean emit_dwarf, gboolean static_link);
+typedef void (*MonoLLVMCreateAotFunc)(MonoAssembly *assembly, const char *global_prefix, gboolean emit_dwarf, gboolean static_link, gboolean llvm_only);
typedef void (*MonoLLVMEmitAotFunc)(const char *filename, const char *cu_name);
typedef void (*MonoLLVMEmitAotInfoFunc)(MonoAotFileInfo *info, gboolean has_jitted_code);
typedef void (*MonoLLVMEmitAotDataFunc)(const char *symbol, guint8 *data, int data_len);
static MonoLLVMEmitAotInfoFunc mono_llvm_emit_aot_file_info_fptr;
static MonoLLVMEmitAotDataFunc mono_llvm_emit_aot_data_fptr;
static MonoLLVMFreeDomainFunc mono_llvm_free_domain_info_fptr;
+static void (*mono_llvm_create_vars_fptr) (MonoCompile *cfg);
void
mono_llvm_init (void)
}
void
-mono_llvm_create_aot_module (MonoAssembly *assembly, const char *global_prefix, gboolean emit_dwarf, gboolean static_link)
+mono_llvm_create_aot_module (MonoAssembly *assembly, const char *global_prefix, gboolean emit_dwarf, gboolean static_link, gboolean llvm_only)
{
g_assert (mono_llvm_create_aot_module_fptr);
- mono_llvm_create_aot_module_fptr (assembly, global_prefix, emit_dwarf, static_link);
+ mono_llvm_create_aot_module_fptr (assembly, global_prefix, emit_dwarf, static_link, llvm_only);
}
void
mono_llvm_emit_aot_data_fptr (symbol, data, data_len);
}
+void
+mono_llvm_create_vars (MonoCompile *cfg)
+{
+ if (mono_llvm_create_vars_fptr)
+ mono_llvm_create_vars_fptr (cfg);
+}
+
int
mono_llvm_load (const char* bpath)
{
if (err) goto symbol_error;
err = mono_dl_symbol (llvm_lib, "mono_llvm_emit_aot_data", (void**)&mono_llvm_emit_aot_data_fptr);
if (err) goto symbol_error;
+ err = mono_dl_symbol (llvm_lib, "mono_llvm_create_vars", (void**)&mono_llvm_create_vars_fptr);
+ if (err) goto symbol_error;
return TRUE;
symbol_error:
g_warning ("llvm symbol load failed: %s\n", err);