#include "JIT_Compiler.hpp" using namespace std; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wimplicit-function-declaration" extern "C" void Yap_InitJitAnalysisPreds(void); extern "C" void Yap_InitJitTransformPreds(void); extern "C" void Yap_InitJitCodegenPreds(void); extern "C" void Yap_InitJitConfigPreds(void); #if YAP_STAT_PREDS extern "C" void Yap_InitJitStatisticPreds(void); #endif #if YAP_DBG_PREDS extern "C" void Yap_InitJitDebugPreds(void); #endif // global variables with intercae extern "C" void* (*Yap_JitCall)(JIT_Compiler* jc, yamop* p); extern "C" void (* Yap_llvmShutdown)( ) ; extern "C" Int (* Yap_traced_absmi)( ) ; void init_jit(); extern "C" void* call_JIT_Compiler(JIT_Compiler* jc, yamop* p) { return jc->compile(p); } extern "C" void shutdown_llvm() { llvm_shutdown(); } extern "C" Int traced_absmi(); #define JIT_CODE 1 static void initJit(void) { Yap_InitJitAnalysisPreds(); Yap_InitJitTransformPreds(); Yap_InitJitCodegenPreds(); Yap_InitJitConfigPreds(); #if YAP_STAT_PREDS Yap_InitJitStatisticPreds(); #endif #if YAP_DBG_PREDS Yap_InitJitDebugPreds(); #endif Yap_JitCall = call_JIT_Compiler; Yap_llvmShutdown = llvm_shutdown; Yap_traced_absmi = traced_absmi; } // export JIT as DLL void init_jit() { initJit(); } #pragma GCC diagnostic pop