This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug optimization/11825] Redundant move in some cases (dead code before return) for long long on 32bit targets


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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


pinskia at physics dot uc dot edu changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|minor                       |enhancement
             Status|UNCONFIRMED                 |NEW
          Component|target                      |optimization
     Ever Confirmed|                            |1
 GCC target triplet|arm-unknown-elf             |arm-*-elf, powerpc-*-*
           Keywords|                            |pessimizes-code
   Last reconfirmed|0000-00-00 00:00:00         |2003-08-06 12:37:31
               date|                            |
            Summary|[ARM] Redundant move in some|Redundant move in some cases
                   |cases (dead code before     |(dead code before return)
                   |return)                     |for long long on 32bit
                   |                            |targets


------- Additional Comments From pinskia at physics dot uc dot edu  2003-08-06 12:37 -------
A fix might to add to combine:
(set b (ashiftrt:DI a (const_int 32))
(set c (subreg:SI b 4))
To (set c (subreg:SI a 8))

(Aka b = a >> 32; c = (int)b; To c = (upper part of long long)b;  where b and a are long 
long's).
This also happens on powerpc-*-*.  I can confirm this on the mainline (20030806).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]