File tree Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -130,6 +130,9 @@ function codegen(output::Symbol, @nospecialize(job::CompilerJob);
130
130
error (" Unknown compilation output $output " )
131
131
end
132
132
133
+ @noinline function var"gpuc.deferred" (f, args... ) end
134
+ @noinline function var"gpuc.lookup" (mi, f, args... ) end
135
+
133
136
# primitive mechanism for deferred compilation, for implementing CUDA dynamic parallelism.
134
137
# this could both be generalized (e.g. supporting actual function calls, instead of
135
138
# returning a function pointer), and be integrated with the nonrecursive codegen.
Original file line number Diff line number Diff line change @@ -435,6 +435,17 @@ function CC.concrete_eval_eligible(interp::GPUInterpreter,
435
435
return ret
436
436
end
437
437
438
+ function CC. abstract_call_known (interp:: GPUInterpreter , @nospecialize (f),
439
+ arginfo:: CC.ArgInfo , si:: CC.StmtInfo , sv:: CC.AbsIntState ,
440
+ max_methods:: Int = CC. get_max_methods (interp, f, sv))
441
+ if f === var"gpuc.deferred" ||
442
+ f === var"gpuc.lookup"
443
+ return CC. CallMeta (Ptr{Cvoid}, Union{}, CC. Effects (), CC. NoCallInfo ())
444
+ end
445
+ return @invoke CC. abstract_call_known (interp:: CC.AbstractInterpreter , f,
446
+ arginfo:: CC.ArgInfo , si:: CC.StmtInfo , sv:: CC.AbsIntState ,
447
+ max_methods:: Int )
448
+ end
438
449
439
450
# # world view of the cache
440
451
using Core. Compiler: WorldView
You can’t perform that action at this time.
0 commit comments