Skip to content

Commit

Permalink
[mono][aot] Avoid compiling the same method multiple times during ded…
Browse files Browse the repository at this point in the history
…up. (#92178)

Co-authored-by: Zoltan Varga <vargaz@gmail.com>
  • Loading branch information
github-actions[bot] and vargaz authored Sep 18, 2023
1 parent 4afeedd commit ae998eb
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 ae998eb

Please sign in to comment.