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

Reply via email to