@@ -21,9 +21,10 @@ GPUCompiler.can_safepoint(@nospecialize(job::NativeCompilerJob)) = job.params.en
2121
2222function native_job (@nospecialize (f_type), @nospecialize (types);
2323 kernel:: Bool = false , entry_abi= :specfunc , entry_safepoint:: Bool = false ,
24- always_inline= false , llvm_always_inline= true , kwargs... )
24+ always_inline= false , llvm_always_inline= true , jlruntime:: Bool = false ,
25+ kwargs... )
2526 source = FunctionSpec (f_type, Base. to_tuple_type (types), kernel)
26- target = NativeCompilerTarget (;llvm_always_inline)
27+ target = NativeCompilerTarget (; llvm_always_inline, jlruntime )
2728 params = TestCompilerParams (entry_safepoint)
2829 CompilerJob (target, source, params, entry_abi, always_inline), kwargs
2930end
@@ -253,7 +254,9 @@ module LazyCodegen
253254
254255 import GPUCompiler: deferred_codegen_jobs
255256 @generated function deferred_codegen (f:: F , :: Val{tt} ) where {F,tt}
256- job, _ = native_job (F, tt)
257+ # XXX : do we actually require the Julia runtime?
258+ # with jlruntime=false, we reach an unreachable.
259+ job, _ = native_job (F, tt; jlruntime= true )
257260
258261 addr = get_trampoline (job)
259262 trampoline = pointer (addr)
0 commit comments