------- Comment #1 from pinskia at gcc dot gnu dot org  2006-09-02 21:29 -------
Well actually this is just address section which goes funny.  We use CSE at the
rtl level do to some address mode selection (which I feel is wrong).  Part of
the reasons why we go funny is that we do the add in 32bit.


What is happening with the other ones
is the others are being converted into " return (&a[1])[i] + (&b[1])[i];" which
are not converted back into a[i+1] and b[i+1] because I don't know but they
should be. 

This is a regression because we do PRE/FRE at the tree level and let the
address selection done at the rtl level (which is correct) but the rtl level
address selectiong is not working to the level we need it to be for the
regression not to show up.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|minor                       |normal
             Status|UNCONFIRMED                 |NEW
          Component|tree-optimization           |rtl-optimization
     Ever Confirmed|0                           |1
  GCC build triplet|x86_64-redhat-linux         |
   GCC host triplet|x86_64-redhat-linux         |
 GCC target triplet|x86_64-redhat-linux         |x86_64-*-*, i?86-*-*
           Keywords|                            |missed-optimization
   Last reconfirmed|0000-00-00 00:00:00         |2006-09-02 21:29:36
               date|                            |
            Summary|Overzealous CSE with static |[4.1/4.2 Regression] address
                   |array access                |selection does not work
                   |                            |correctly
   Target Milestone|---                         |4.1.2


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

Reply via email to