Skip to content

Commit

Permalink
[mono][aot] Avoid compiling the same method multiple times during dedup.
Browse files Browse the repository at this point in the history
  • Loading branch information
vargaz committed Sep 8, 2023
1 parent 7d399f6 commit 4221abc
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/mono/mono/mini/aot-compiler.c
Original file line number Diff line number Diff line change
Expand Up @@ -4326,6 +4326,7 @@ get_method_index (MonoAotCompile *acfg, MonoMethod *method)
return index - 1;
}

/* Return TRUE if the method can be skipped */
static gboolean
collect_dedup_method (MonoAotCompile *acfg, MonoMethod *method)
{
Expand All @@ -4334,14 +4335,16 @@ collect_dedup_method (MonoAotCompile *acfg, MonoMethod *method)
if (acfg->dedup_phase == DEDUP_SKIP)
return TRUE;
// Remember for later
if (acfg->dedup_phase == DEDUP_COLLECT && !g_hash_table_lookup (dedup_methods, method))
g_assert (acfg->dedup_phase == DEDUP_COLLECT);
if (!g_hash_table_lookup (dedup_methods, method))
g_hash_table_insert (dedup_methods, method, method);
else
// Already processed when compiling another assembly
return TRUE;
}
return FALSE;
}



static int
add_method_full (MonoAotCompile *acfg, MonoMethod *method, gboolean extra, int depth)
{
Expand Down

0 comments on commit 4221abc

Please sign in to comment.