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

           Summary: [4.6 Regression]
                    gfortran.fortran-torture/execute/forall_4.f90 is VERY
                    slow with -fgraphite-identity
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: zso...@seznam.cz
                CC: s...@gcc.gnu.org
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu


$ gfortran-4.4.5 -O -fgraphite-identity forall_4.f90
$ time ./a.out 

real    0m0.002s
user    0m0.000s
sys     0m0.000s


$ gfortran-4.5.2 -O -fgraphite-identity forall_4.f90
$ time ./a.out 

real    0m0.002s
user    0m0.000s
sys     0m0.000s

$ gfortran -O -fgraphite-identity forall_4.f90
$ time ./a.out 

real    0m26.461s
user    0m26.290s
sys     0m0.050s

The problem seems to be this empty loop:

.L24:
    mov    rax, rdx    # D.1888, D.1888
.L7:
    lea    rdx, [rax+1]    # D.1888,
    cmp    rax, rcx    # D.1888, D.1848
    jl    .L24    #,

which iterates many times (rcx > 1<<32), and maybe the whole loop is executed
more than once

Tested revisions:
r168296 - fail

Reply via email to