------- Additional Comments From steven at gcc dot gnu dot org  2005-05-10 
13:29 -------
Actually, GCC 4.0 has this problem also. 
 
GCC 3.3: 
foo: 
        pushq   %rbp 
        movl    $1, %ebp 
        pushq   %rbx 
        movl    $5, %ebx 
        subq    $8, %rsp 
        .p2align 4,,7 
.L6: 
        movl    %ebx, %edi 
        incl    %ebp 
        addl    $3, %ebx 
        call    bar 
        cmpl    $29, %ebp 
        jbe     .L6 
        addq    $8, %rsp 
        movl    $89, %eax 
        popq    %rbx 
        popq    %rbp 
        ret 
 
GCC 4.0: 
foo: 
        pushq   %rbx 
        movl    $5, %ebx 
        jmp     .L2 
        .p2align 4,,7 
.L7: 
        movl    %eax, %ebx 
.L2: 
        movl    %ebx, %edi 
        call    bar 
        leal    3(%rbx), %eax 
        cmpl    $92, %eax 
        jne     .L7 
        movl    %ebx, %eax 
        popq    %rbx 
        ret 
 
GCC CVS head as of today: 
foo: 
        pushq   %rbx 
        movl    $5, %ebx 
        jmp     .L2 
        .p2align 4,,7 
.L7: 
        movl    %eax, %ebx 
.L2: 
        movl    %ebx, %edi 
        call    bar 
        leal    3(%rbx), %eax 
        cmpl    $92, %eax 
        jne     .L7 
        movl    %ebx, %eax 
        popq    %rbx 
        ret 
 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.1 regression] Not copy   |[4.0/4.1 regression] Not
                   |propagating single-argument |copy propagating single-
                   |PHIs causes out-of-ssa      |argument PHIs causes out-of-
                   |coalescing failure          |ssa coalescing failure


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

Reply via email to