[Bug target/59041] [4.8/4.9 Regression] Unnecessary vzeroupper generated
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Nov 7 17:07:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59041
--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
This one is not unnecessary, it is emitted on purpose from generic
mode-switching code:
-- gcc/mode-switching.c --
/* Pretend the mode is clobbered across abnormal edges. */
{
edge_iterator ei;
edge e;
FOR_EACH_EDGE (e, ei, bb->preds)
if (e->flags & EDGE_COMPLEX)
break;
if (e)
{
ptr = new_seginfo (no_mode, BB_HEAD (bb), bb->index, live_now);
add_seginfo (info + bb->index, ptr);
bitmap_clear_bit (transp[bb->index], j);
}
}
It is true that 4.7 didn't emit vzeroupper here, but I think that generic code
is correct, and this is actually an improvement.
More information about the Gcc-bugs
mailing list