[Bug tree-optimization/42587] bswap not recognized for memory
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sun Jan 3 16:01:00 GMT 2010
------- Comment #2 from rguenth at gcc dot gnu dot org 2010-01-03 16:01 -------
SRA here again does somthing stupid:
from
<bb 2>:
acpi_ut_track_stack_ptr ();
in.value = value_1(D);
D.1966_2 = in.bytes[3];
out.bytes[0] = D.1966_2;
D.1967_3 = in.bytes[2];
out.bytes[1] = D.1967_3;
D.1968_4 = in.bytes[1];
out.bytes[2] = D.1968_4;
D.1969_5 = in.bytes[0];
out.bytes[3] = D.1969_5;
D.1970_6 = out.value;
return D.1970_6;
it generates
<bb 2>:
acpi_ut_track_stack_ptr ();
in.value = value_1(D);
in$bytes$0_14 = in.bytes[0];
in$bytes$1_15 = in.bytes[1];
in$bytes$2_16 = in.bytes[2];
in$bytes$3_17 = in.bytes[3];
D.1966_2 = in$bytes$3_17;
out.bytes[0] = D.1966_2;
D.1967_3 = in$bytes$2_16;
out.bytes[1] = D.1967_3;
D.1968_4 = in$bytes$1_15;
out.bytes[2] = D.1968_4;
D.1969_5 = in$bytes$0_14;
out.bytes[3] = D.1969_5;
D.1970_6 = out.value;
return D.1970_6;
which isn't an improvement and just creates extra temporary registers.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jamborm at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42587
More information about the Gcc-bugs
mailing list