Skip to content

Commit 2c0098e

Browse files
vchuravyKeno
andauthored
Cleanups for tagged code instance (#53336)
Two small cleanups to #52233 - Don't use foreign code-instances for native code caching decision making - don't return a non-native codeinst for jl_method_compiled --------- Co-authored-by: Keno Fischer <[email protected]>
1 parent 4c2633c commit 2c0098e

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/gf.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2368,12 +2368,13 @@ jl_method_instance_t *jl_get_unspecialized(jl_method_t *def JL_PROPAGATES_ROOT)
23682368
jl_code_instance_t *jl_method_compiled(jl_method_instance_t *mi, size_t world)
23692369
{
23702370
jl_code_instance_t *codeinst = jl_atomic_load_relaxed(&mi->cache);
2371-
while (codeinst) {
2371+
for (; codeinst; codeinst = jl_atomic_load_relaxed(&codeinst->next)) {
2372+
if (codeinst->owner != jl_nothing)
2373+
continue;
23722374
if (jl_atomic_load_relaxed(&codeinst->min_world) <= world && world <= jl_atomic_load_relaxed(&codeinst->max_world)) {
23732375
if (jl_atomic_load_relaxed(&codeinst->invoke) != NULL)
23742376
return codeinst;
23752377
}
2376-
codeinst = jl_atomic_load_relaxed(&codeinst->next);
23772378
}
23782379
return NULL;
23792380
}

src/precompile_utils.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,10 @@ static int precompile_enq_specialization_(jl_method_instance_t *mi, void *closur
182182
jl_code_instance_t *codeinst = jl_atomic_load_relaxed(&mi->cache);
183183
while (codeinst) {
184184
int do_compile = 0;
185-
if (jl_atomic_load_relaxed(&codeinst->invoke) != jl_fptr_const_return) {
185+
if (codeinst->owner != jl_nothing) {
186+
// TODO(vchuravy) native code caching for foreign interpreters
187+
}
188+
else if (jl_atomic_load_relaxed(&codeinst->invoke) != jl_fptr_const_return) {
186189
jl_value_t *inferred = jl_atomic_load_relaxed(&codeinst->inferred);
187190
if (inferred &&
188191
inferred != jl_nothing &&

0 commit comments

Comments
 (0)