------- Comment #15 from rguenth at gcc dot gnu dot org  2009-09-26 15:30 
-------
On trunk we get

<bb 2>:
  # .MEM_3 = VDEF <.MEM_2(D)>
  param.f1 = 0;
  # .MEM_4 = VDEF <.MEM_3>
  memcpy (&local, &param, 9);
  # VUSE <.MEM_4>
  D.1743_1 = local.f1;
  if (D.1743_1 != 0)
    goto <bb 3>;
  else
    goto <bb 4>;

<bb 3>:
  # .MEM_5 = VDEF <.MEM_4>
  link_error ();

<bb 4>:
  return;

which shows this is an issue of value-numbering not looking through
memcpy.  SRA obviously does not work here because both vars have their
address taken.  The issue in the summary should have been fixed by the
SRA rewrite.

I'm looking at the VN issue.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2006-10-24 12:34:46         |2009-09-26 15:30:16
               date|                            |


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

Reply via email to