[Bug target/94042] [10 Regression] Bootstrap fails on ppc-linux-gnu
segher at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 6 19:02:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94042
Segher Boessenkool <segher at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|marxin at gcc dot gnu.org |segher at gcc dot gnu.org
--- Comment #29 from Segher Boessenkool <segher at gcc dot gnu.org> ---
I found the problem.
We have
===
/* Implement TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS. */
void
rs6000_disqualify_components (sbitmap components, edge e,
sbitmap edge_components, bool /*is_prologue*/)
{
/* Our LR pro/epilogue code moves LR via R0, so R0 had better not be
live where we want to place that code. */
if (bitmap_bit_p (edge_components, 0)
&& bitmap_bit_p (DF_LIVE_IN (e->dest), 0))
{
if (dump_file)
fprintf (dump_file, "Disqualifying LR because GPR0 is live "
"on entry to bb %d\n", e->dest->index);
bitmap_clear_bit (components, 0);
}
}
===
But looks at LIVE_IN for the epilogue as well, which is wrong (should be
LIVE_OUT then, epilogue is placed at the end of the BB).
More information about the Gcc-bugs
mailing list