------- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-20 
17:56 -------
Hmm, this is 3.4 and 4.0 Regression, 3.3.3 produced:
flow_bb_inside_loop_p:
        pushl   %ebp
        movl    %esp, %ebp
        movl    8(%ebp), %ecx
        pushl   %ebx
        movl    12(%ebp), %eax
        xorl    %ebx, %ebx
        cmpl    %eax, %ecx
        je      .L5
        movl    (%ecx), %edx
        cmpl    %edx, (%eax)
        jle     .L4
        movl    4(%eax), %eax
        cmpl    %ecx, (%eax,%edx,4)
        je      .L5
        .p2align 4,,15
.L4:
        movl    %ebx, %eax
        popl    %ebx
        popl    %ebp
        ret
        .p2align 4,,7
.L5:
        movl    $1, %ebx
        jmp     .L4

But 4.0 and 3.4.0 produces:
flow_bb_inside_loop_p:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $8, %esp
        movl    %esi, 4(%esp)
        movl    8(%ebp), %ecx
        xorl    %esi, %esi
        movl    %ebx, (%esp)
        movl    12(%ebp), %eax
        cmpl    %eax, %ecx
        je      .L3
        movl    (%ecx), %edx
        xorl    %ebx, %ebx
        cmpl    %edx, (%eax)
        jle     .L5
        movl    4(%eax), %eax
        cmpl    %ecx, (%eax,%edx,4)
        je      .L7
.L5:
        testb   %bl, %bl
        je      .L2
.L3:
        movl    $1, %esi
.L2:
        movl    %esi, %eax
        movl    (%esp), %ebx
        movl    4(%esp), %esi
        movl    %ebp, %esp
        popl    %ebp
        ret
.L7:
        movl    $1, %ebx
        jmp     .L5

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|enhancement                 |minor
      Known to fail|                            |3.4.0 4.0.0
      Known to work|                            |3.3.3
            Summary|missing jump threading      |[3.4/4.0 Regression] missing
                   |because of type changes     |jump threading because of
                   |                            |type changes
   Target Milestone|---                         |3.4.4


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

Reply via email to