------- Comment #4 from rguenth at gcc dot gnu dot org  2008-01-02 14:11 -------
On the tree level there is no visible regression, but we have V_MUST_DEFs and
a single SFT on the 4.2 branch while trunk does not create an extra virtual tag
for the single-field union:

<bb 2>:
  # a1_12 = VDEF <a1_11(D)>
  a1.a = a;
  i = 0;

<bb 3>:
  # VUSE <a1_23>
  # a2_14 = VDEF <a2_24>
  a2 = a1;
  # a2_15 = VDEF <a2_14>
  a2.a = a2.a + a;
  # VUSE <a2_15>
  # a1_16 = VDEF <a1_23>
  a1 = a2;
  i = i + 1;
  if (i != 100)
    goto <bb 3>;
  else
    goto <bb 4>;

but, confirmed, there is a code quality regression as noted compared to 4.2.

Also SRA could be extended to scalarize single-field unions.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
      Known to fail|                            |4.3.0
      Known to work|                            |4.2.2
   Last reconfirmed|0000-00-00 00:00:00         |2008-01-02 14:11:21
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32964

Reply via email to