------- 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