https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44073
Andrew Pinski changed:
What|Removed |Added
Summary|x86 constants could be |x86 constants could be
--- Comment #5 from astrange at ithinksw dot com 2010-08-08 06:39 ---
That commit doesn't reverse cleanly anymore, and I'm not sure how to update it.
I don't have any pre-2005 gccs at the moment to test with.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44073
--- Comment #4 from pinskia at gcc dot gnu dot org 2010-07-24 21:37 ---
CSE/GCSE should be doing it. Oh but CSE does not handle RTL like:
(insn 8 5 9 2 t.c:5 (set (mem:SI (reg/v/f:DI 60 [ c ]) [2 *c_2(D)+0 S4 A32])
(const_int -522133280 [0xe0e0e0e0])) 63 {*movsi_internal
--- Comment #3 from astrange at ithinksw dot com 2010-05-11 10:36 ---
It's propagated by vrp1, and then nothing removes it again. tree-uncprop
doesn't change it - it looks like it doesn't have anything to handle this,
actually.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44073
--- Comment #2 from steven at gcc dot gnu dot org 2010-05-11 10:24 ---
There is a GIMPLE uncprop pass for this. Could you verify that after this pass
there is just one assignment of the constant to an SSA_NAME? If so, the problem
is in the RTL CPROP pass, otherwise we have to look at the
--- Comment #1 from rguenth at gcc dot gnu dot org 2010-05-11 08:42 ---
Confirmed.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCON