This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Stack layout change during lra
- From: "Joey Ye" <joey dot ye at arm dot com>
- To: <vmakarov at redhat dot com>
- Cc: <gcc at gcc dot gnu dot org>
- Date: Wed, 19 Feb 2014 19:54:31 +0800
- Subject: Stack layout change during lra
- Authentication-results: sourceware.org; auth=none
Vlad,
When fixing PR60169, I found that reload fail to assert
verify_initial_elim_offsets ()
if (insns_need_reload != 0 || something_needs_elimination
|| something_needs_operands_changed)
{
HOST_WIDE_INT old_frame_size = get_frame_size ();
reload_as_needed (global);
gcc_assert (old_frame_size == get_frame_size ());
gcc_assert (verify_initial_elim_offsets ());
}
The reason is that stack layout changes during reload_as_needed as a result
of a thumb1 backend heuristic.
I have a patch to make sure the heuristic doesn't change stack layout during
and after reload, and the assertion disappeared. However, I'm not sure if it
will also be a problem in lra. Here is the question more specific:
Is that any chance during lra_in_progress that: stack layout can no longer
be altered, but insns can still be added or changed?
Thanks,
Joey