https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111225
liuhongt at gcc dot gnu.org changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111225
--- Comment #4 from CVS Commits ---
The master branch has been updated by Vladimir Makarov :
https://gcc.gnu.org/g:f7bca44d97ad01b39f9d6e7809df7bf517eeb2fb
commit r14-3783-gf7bca44d97ad01b39f9d6e7809df7bf517eeb2fb
Author: Vladimir N. Makarov
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111225
--- Comment #3 from Vladimir Makarov ---
I've reproduced the bug.
Just removing `else if (spilled_pseudo_p (op))` for CT_SPECIAL_MEMORY will
break a lot targets but this is right that this code is a reason for the bug.
I have ideas how to fix
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111225
--- Comment #2 from Hongtao.liu ---
(In reply to Hongtao.liu from comment #1)
> So reload thought CT_SPECIAL_MEMORY is always win for spilled_pesudo_p, but
> here Br should be a vec_dup:mem which doesn't match spilled_pseduo_p.
>
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111225
--- Comment #1 from Hongtao.liu ---
So reload thought CT_SPECIAL_MEMORY is always win for spilled_pesudo_p, but
here Br should be a vec_dup:mem which doesn't match spilled_pseduo_p.
case CT_SPECIAL_MEMORY: