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 target/32593] Missed optimization of 'y = constant - x' operation



------- Comment #5 from bonzini at gnu dot org  2009-11-07 09:35 -------
Confirmed, the code for -O2 -funroll-loops includes things such as

        movzwl  2(%eax), %esi
        movl    $1, -44(%ebp)
        subl    %ecx, -44(%ebp)
        movl    -44(%ebp), %edi
        movzbl  (%edx,%edi), %ebx
        addl    %ebx, %esi
        movl    %esi, %ebx
        movb    %bl, 1(%edx)
...
        movl    -44(%ebp), %ebx
        movzwl  2(%esi), %edi
        movzbl  (%edx,%ebx), %ebx
        addl    %ebx, %edi
        movl    %edi, %ebx
        movb    %bl, 1(%edx)

The unrolling is done on the tree level, so it's CSE who'd need to know this.


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |ra
      Known to work|                            |4.5.0
   Last reconfirmed|0000-00-00 00:00:00         |2009-11-07 09:35:37
               date|                            |


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


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