[Bug tree-optimization/33291] a+=2; a+=2 not simplified to a+=4; with -O3 (ok with gcc-4.2.1)

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Sep 3 12:05:00 GMT 2007



------- Comment #3 from rguenth at gcc dot gnu dot org  2007-09-03 12:04 -------
That is, rtl level DSE removes the dead store:

_ZN3CPU7executeEv:
.LFB5:
        pushq   %rbx
.LCFI0:
        movq    %rdi, %rbx
        leaq    8(%rdi), %rdi
        call    _ZN5Clock1fEv
        .p2align 4,,10
        .p2align 3
.L6:
        movl    2064(%rbx), %eax
        shrl    $8, %eax
        mov     %eax, %eax
        movq    16(%rbx,%rax,8), %rdx
        testq   %rdx, %rdx
        je      .L2
        movzbl  2064(%rbx), %eax
        addl    $4, 8(%rbx)
        movzbl  (%rdx,%rax), %eax
.L3:
        movzbl  %al, %eax
        addl    $2, 8(%rbx)
        salq    $4, %rax
        movq    _ZN3CPU3tabE(%rax), %rdx
        testb   $1, %dl
        jne     .L4
        movq    %rbx, %rdi
        addq    _ZN3CPU3tabE+8(%rax), %rdi
        call    *%rdx
        jmp     .L6
        .p2align 4,,10
        .p2align 3
.L4:
        movq    %rbx, %rdi
        addq    _ZN3CPU3tabE+8(%rax), %rdi
        movq    (%rdi), %rax
        movq    -1(%rdx,%rax), %rdx
        call    *%rdx
        jmp     .L6
.L2:
        movq    %rbx, %rdi
        call    _ZN3CPU8readSlowEv
        .p2align 4,,6
        .p2align 3
        jmp     .L3
.LFE5:


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |TREE


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



More information about the Gcc-bugs mailing list