This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: DCE speedup
> This patch changes the error, but does not fix the ICE.
>
> src/libstdc++-v3/src/locale.cc: In function '(static initializers for /farm/dje/src/src/libstdc++-v3/src/locale.cc)':
> src/libstdc++-v3/src/locale.cc:441: internal compiler error: in verify_curr_properties, at passes.c:882
Hi,
the patch actually had typo (or I put the TODO into properties section)
so the problem reproduce during x86-64 bootstrap too.
See the mail on GGC ICEs - I will plan to disable the ggc_free flag now
making the problem latent again and try to deal with it more
curefully next week once other problems resolved.
I am attaching the version of patch I believe it should fix the problem.
If it is easy for you, I would be interested to know if it really does -
I have half done patch that does better tracking on when the
unreferenced locals can appear.
Thank you and I am sorry for the troubles,
Honza
Index: tree-ssanames.c
===================================================================
*** tree-ssanames.c (revision 120777)
--- tree-ssanames.c (working copy)
*************** release_dead_ssa_names (void)
*** 325,331 ****
for (t = FREE_SSANAMES (cfun); t; t = next)
{
next = TREE_CHAIN (t);
! ggc_free (t);
n++;
}
FREE_SSANAMES (cfun) = NULL;
--- 325,336 ----
for (t = FREE_SSANAMES (cfun); t; t = next)
{
next = TREE_CHAIN (t);
! /* Dangling pointers might make GGC to still see dead SSA names, so it is
! important to unlink the list and avoid GGC from seeing all subsequent
! SSA names. In longer run we want to have all dangling pointers here
! removed (since they usually go trhough dead statements that consume
! considerable amounts of memory). */
! TREE_CHAIN (t) = NULL_TREE;
n++;
}
FREE_SSANAMES (cfun) = NULL;
*************** struct tree_opt_pass pass_release_ssa_na
*** 343,352 ****
NULL, /* next */
0, /* static_pass_number */
0, /* tv_id */
! PROP_ssa, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
! 0, /* todo_flags_finish */
0 /* letter */
};
--- 348,357 ----
NULL, /* next */
0, /* static_pass_number */
0, /* tv_id */
! PROP_ssa, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
! TODO_remove_unused_locals, /* todo_flags_finish */
0 /* letter */
};