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 tree-optimization/15596] [3.5 Regression] Missed optimization with bitfields


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-05-27 17:48 -------
It is much worse for x86.
(-O3 -fomit-frame-pointer)
After:
fun:
        movl    4(%esp), %eax
        movl    8(%esp), %ecx
        movl    (%eax), %edx
        andl    $1048575, %ecx
        andl    $-1048576, %edx
        orl     %ecx, %edx
        movl    %edx, (%eax)
        movzbl  2(%eax), %edx
        orb     $16, %dl
        andb    $-33, %dl
        movb    %dl, 2(%eax)
        movl    12(%esp), %ecx
        movl    (%eax), %edx
        andl    $1, %ecx
        sall    $22, %ecx
        andl    $-4194305, %edx
        orl     %ecx, %edx
        movl    %edx, (%eax)
        ret     $4
Before:
        pushl   %ebp
        andl    $-1048576, %ecx
        movl    %esp, %ebp
        movl    12(%ebp), %edx
        movl    8(%ebp), %eax
        andl    $1048575, %edx
        orl     %edx, %ecx
        movl    16(%ebp), %edx
        orl     $1048576, %ecx
        andl    $-6291457, %ecx
        andl    $1, %edx
        sall    $22, %edx
        orl     %edx, %ecx
        movl    %ecx, (%eax)
        popl    %ebp
        ret     $4

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
 GCC target triplet|powerpc-apple-darwin        |
   Last reconfirmed|0000-00-00 00:00:00         |2004-05-27 17:48:51
               date|                            |


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


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