[Bug target/38825] missed optimization: register renaming in unrolled loop

tim at klingt dot org gcc-bugzilla@gcc.gnu.org
Tue Jan 13 16:08:00 GMT 2009



------- Comment #5 from tim at klingt dot org  2009-01-13 16:08 -------
(In reply to comment #4)
> -frename-registers does make a difference for me,

i can reproduce it, however, -frename-registers is supposed to be enabled by
-O3:
tim@thinkpad:~/workspace/nova-server.git$ /usr/local/lib/gcc-snapshot/bin/g++
-Q -O3 --help=optimizer  |grep frename
  -frename-registers                    [enabled]


the resolved aliasing issue, is not taken into account, though:

.L23:
        movaps  %xmm0, %xmm2
        movaps  %xmm0, %xmm1
        addps   (%rsi,%rax), %xmm2
        movaps  %xmm2, (%rdi,%rax)
        addps   16(%rsi,%rax), %xmm1
        movaps  %xmm1, 16(%rdi,%rax)
        addq    $32, %rax
        cmpq    %rdx, %rax
        jne     .L23

vs.

.L19:
        movaps  %xmm0, %xmm2
        movaps  %xmm0, %xmm1
        addps   (%rsi,%rax), %xmm2
        addps   16(%rsi,%rax), %xmm1
        movaps  %xmm2, (%rdi,%rax)
        movaps  %xmm1, 16(%rdi,%rax)
        addq    $32, %rax
        cmpq    %rdx, %rax
        jne     .L19


-- 


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



More information about the Gcc-bugs mailing list