[Bug tree-optimization/50698] pretending to create versioning for alias when not required

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Oct 12 11:32:00 GMT 2011


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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |alias, missed-optimization
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2011-10-12
         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-10-12 11:31:56 UTC ---
Confirmed:

14: versioning for alias required: can't determine dependence between
*D.2220_26 and *D.2221_25
14: mark for run-time aliasing test between *D.2220_26 and *D.2221_25

  D.2222_24 = D.2223_23 * 4;
  D.2221_25 = &mem + D.2222_24;
  D.2220_26 = &MEM[(void *)&mem + 4096B] + D.2222_24;
  ... = *D.2220_26;
  *D.2221_25 = ...;

  (res = {(float *) &MEM[(void *)&mem + 4096B], +, 4}_1))
        base_address: &MEM[(void *)&mem + 4096B]
        offset from base address: 0
        constant offset from base address: 0
        step: 4
        aligned to: 128
        base_object: *(float *) &MEM[(void *)&mem + 4096B]
        Access function 0: {0B, +, 4}_1

vs.

  (res = {(float *) &mem, +, 4}_1))
        base_address: &mem
        offset from base address: 0
        constant offset from base address: 0
        step: 4
        aligned to: 128
        base_object: *(float *) &mem
        Access function 0: {0B, +, 4}_1

I will have a look.



More information about the Gcc-bugs mailing list