Branch data Line data Source code
1 : : // This file is a part of Julia. License is MIT: https://julialang.org/license
2 : :
3 : : // This file provides a fallback implementation of the codegen plugin interface,
4 : : // used when libjulia-codegen is not available.
5 : :
6 : : #include "julia.h"
7 : : #include "julia_internal.h"
8 : :
9 : : #include "intrinsics.h"
10 : :
11 : : #define UNAVAILABLE { jl_errorf("%s: not available in this build of Julia", __func__); }
12 : :
13 : 0 : JL_DLLEXPORT void jl_dump_native_fallback(void *native_code,
14 : : const char *bc_fname, const char *unopt_bc_fname, const char *obj_fname, const char *asm_fname,
15 : 0 : const char *sysimg_data, size_t sysimg_len) UNAVAILABLE
16 : 0 : JL_DLLEXPORT int32_t jl_get_llvm_gv_fallback(void *native_code, jl_value_t *p) UNAVAILABLE
17 : :
18 : 0 : JL_DLLEXPORT void jl_extern_c_fallback(jl_function_t *f, jl_value_t *rt, jl_value_t *argt, char *name) UNAVAILABLE
19 : 0 : JL_DLLEXPORT jl_value_t *jl_dump_method_asm_fallback(jl_method_instance_t *linfo, size_t world,
20 : 0 : char raw_mc, char getwrapper, const char* asm_variant, const char *debuginfo, char binary) UNAVAILABLE
21 : 0 : JL_DLLEXPORT jl_value_t *jl_dump_function_ir_fallback(jl_llvmf_dump_t *dump, char strip_ir_metadata, char dump_module, const char *debuginfo) UNAVAILABLE
22 : 0 : JL_DLLEXPORT void jl_get_llvmf_defn_fallback(jl_llvmf_dump_t *dump, jl_method_instance_t *linfo, size_t world, char getwrapper, char optimize, const jl_cgparams_t params) UNAVAILABLE
23 : :
24 : 0 : JL_DLLEXPORT void *jl_LLVMCreateDisasm_fallback(const char *TripleName, void *DisInfo, int TagType, void *GetOpInfo, void *SymbolLookUp) UNAVAILABLE
25 : 0 : JL_DLLEXPORT size_t jl_LLVMDisasmInstruction_fallback(void *DC, uint8_t *Bytes, uint64_t BytesSize, uint64_t PC, char *OutString, size_t OutStringSize) UNAVAILABLE
26 : :
27 : 0 : JL_DLLEXPORT void jl_init_codegen_fallback(void) { }
28 : :
29 : 0 : JL_DLLEXPORT int jl_getFunctionInfo_fallback(jl_frame_t **frames, uintptr_t pointer, int skipC, int noInline)
30 : : {
31 : 0 : return 0;
32 : : }
33 : :
34 : 0 : JL_DLLEXPORT void jl_register_fptrs_fallback(uint64_t sysimage_base, const struct _jl_sysimg_fptrs_t *fptrs,
35 : : jl_method_instance_t **linfos, size_t n)
36 : : {
37 : : (void)sysimage_base; (void)fptrs; (void)linfos; (void)n;
38 : 0 : }
39 : :
40 : 0 : JL_DLLEXPORT jl_code_instance_t *jl_generate_fptr_fallback(jl_method_instance_t *mi JL_PROPAGATES_ROOT, size_t world)
41 : : {
42 : 0 : return NULL;
43 : : }
44 : :
45 : 0 : JL_DLLEXPORT void jl_generate_fptr_for_unspecialized_fallback(jl_code_instance_t *unspec)
46 : : {
47 : 0 : jl_atomic_store_release(&unspec->invoke, &jl_fptr_interpret_call);
48 : 0 : }
49 : :
50 : 0 : JL_DLLEXPORT uint32_t jl_get_LLVM_VERSION_fallback(void)
51 : : {
52 : 0 : return 0;
53 : : }
54 : :
55 : 0 : JL_DLLEXPORT int jl_compile_extern_c_fallback(LLVMOrcThreadSafeModuleRef llvmmod, void *params, void *sysimg, jl_value_t *declrt, jl_value_t *sigt)
56 : : {
57 : 0 : return 0;
58 : : }
59 : :
60 : 0 : JL_DLLEXPORT void jl_teardown_codegen_fallback(void)
61 : : {
62 : 0 : }
63 : :
64 : 0 : JL_DLLEXPORT size_t jl_jit_total_bytes_fallback(void)
65 : : {
66 : 0 : return 0;
67 : : }
68 : :
69 : 0 : JL_DLLEXPORT void *jl_create_native_fallback(jl_array_t *methods, LLVMOrcThreadSafeModuleRef llvmctxt, const jl_cgparams_t *cgparams, int _policy) UNAVAILABLE
70 : :
71 : 0 : JL_DLLEXPORT void jl_dump_compiles_fallback(void *s)
72 : : {
73 : 0 : }
74 : :
75 : 0 : JL_DLLEXPORT void jl_dump_emitted_mi_name_fallback(void *s)
76 : : {
77 : 0 : }
78 : :
79 : 0 : JL_DLLEXPORT void jl_dump_llvm_opt_fallback(void *s)
80 : : {
81 : 0 : }
82 : :
83 : 0 : JL_DLLEXPORT jl_value_t *jl_dump_fptr_asm_fallback(uint64_t fptr, char raw_mc, const char* asm_variant, const char *debuginfo, char binary) UNAVAILABLE
84 : :
85 : 0 : JL_DLLEXPORT jl_value_t *jl_dump_function_asm_fallback(jl_llvmf_dump_t* dump, char raw_mc, const char* asm_variant, const char *debuginfo, char binary) UNAVAILABLE
86 : :
87 : 0 : JL_DLLEXPORT void jl_get_function_id_fallback(void *native_code, jl_code_instance_t *ncode,
88 : 0 : int32_t *func_idx, int32_t *specfunc_idx) UNAVAILABLE
89 : :
90 : :
91 : 0 : JL_DLLEXPORT void *jl_get_llvm_function_fallback(void *native_code, uint32_t idx) UNAVAILABLE
92 : :
93 : 0 : JL_DLLEXPORT LLVMOrcThreadSafeModuleRef jl_get_llvm_module_fallback(void *native_code) UNAVAILABLE
94 : :
95 : 0 : JL_DLLEXPORT void *jl_type_to_llvm_fallback(jl_value_t *jt, LLVMContextRef llvmctxt, bool_t *isboxed) UNAVAILABLE
96 : :
97 : 0 : JL_DLLEXPORT jl_value_t *jl_get_libllvm_fallback(void) JL_NOTSAFEPOINT
98 : : {
99 : 0 : return jl_nothing;
100 : : }
101 : :
102 : 0 : JL_DLLEXPORT uint64_t jl_getUnwindInfo_fallback(uint64_t dwAddr)
103 : : {
104 : 0 : return 0;
105 : : }
106 : :
107 : 0 : JL_DLLEXPORT void jl_add_optimization_passes_fallback(void *PM, int opt_level, int lower_intrinsics) UNAVAILABLE
108 : :
109 : 0 : JL_DLLEXPORT void LLVMExtraAddLowerSimdLoopPass_fallback(void *PM) UNAVAILABLE
110 : :
111 : 0 : JL_DLLEXPORT void LLVMExtraAddFinalLowerGCPass_fallback(void *PM) UNAVAILABLE
112 : :
113 : 0 : JL_DLLEXPORT void LLVMExtraAddPropagateJuliaAddrspaces_fallback(void *PM) UNAVAILABLE
114 : :
115 : 0 : JL_DLLEXPORT void LLVMExtraAddRemoveJuliaAddrspacesPass_fallback(void *PM) UNAVAILABLE
116 : :
117 : 0 : JL_DLLEXPORT void LLVMExtraAddCombineMulAddPass_fallback(void *PM) UNAVAILABLE
118 : :
119 : 0 : JL_DLLEXPORT void LLVMExtraAddMultiVersioningPass_fallback(void *PM) UNAVAILABLE
120 : :
121 : 0 : JL_DLLEXPORT void LLVMExtraAddLowerExcHandlersPass_fallback(void *PM) UNAVAILABLE
122 : :
123 : 0 : JL_DLLEXPORT void LLVMExtraAddLateLowerGCFramePass_fallback(void *PM) UNAVAILABLE
124 : :
125 : 0 : JL_DLLEXPORT void LLVMExtraJuliaLICMPass_fallback(void *PM) UNAVAILABLE
126 : :
127 : 0 : JL_DLLEXPORT void LLVMExtraAddAllocOptPass_fallback(void *PM) UNAVAILABLE
128 : :
129 : 0 : JL_DLLEXPORT void LLVMExtraAddLowerPTLSPass_fallback(void *PM, bool_t imaging_mode) UNAVAILABLE
130 : :
131 : 0 : JL_DLLEXPORT void LLVMExtraAddRemoveNIPass_fallback(void *PM) UNAVAILABLE
132 : :
133 : 0 : JL_DLLEXPORT void LLVMExtraAddGCInvariantVerifierPass_fallback(void *PM, bool_t Strong) UNAVAILABLE
134 : :
135 : 0 : JL_DLLEXPORT void LLVMExtraAddDemoteFloat16Pass_fallback(void *PM) UNAVAILABLE
136 : :
137 : 0 : JL_DLLEXPORT void LLVMExtraAddCPUFeaturesPass_fallback(void *PM) UNAVAILABLE
|