https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117248

--- Comment #26 from John David Anglin <danglin at gcc dot gnu.org> ---
We have the following fails in the libgomp testsuite with lra:

FAIL: libgomp.c++/../libgomp.c-c++-common/lastprivate-conditional-3.c execution
test
WARNING: libgomp.c++/doacross-1.C execution test program timed out.
FAIL: libgomp.c++/doacross-1.C execution test
FAIL: libgomp.c/../libgomp.c-c++-common/lastprivate-conditional-3.c execution
test
WARNING: libgomp.c/doacross-1.c execution test program timed out.
FAIL: libgomp.c/doacross-1.c execution test
WARNING: libgomp.c/doacross-2.c execution test program timed out.
FAIL: libgomp.c/doacross-2.c execution test
WARNING: libgomp.c/doacross-4.c execution test program timed out.
FAIL: libgomp.c/doacross-4.c execution test
WARNING: libgomp.c/doacross-5.c execution test program timed out.
FAIL: libgomp.c/doacross-5.c execution test
WARNING: libgomp.c/doacross-6.c execution test program timed out.
FAIL: libgomp.c/doacross-6.c execution test
FAIL: libgomp.c/loop-1.c execution test
FAIL: libgomp.c/loop-2.c execution test
FAIL: libgomp.c/ordered-1.c execution test
FAIL: libgomp.c/pr29947-2.c execution test

None of these fail with legacy reload.

The lastprivate-conditional-3.c fail is a problem in libgomp.  The assembly
code generated for doacross-1.C has the same problem as arith-rand-ll.c:

.L51:
        ldw -232(%r30),%r26
        ldw -224(%r30),%r25
        stw %r26,-196(%r30)
        .IMPORT $$remI,MILLICODE
        bl $$remI,%r31
        stw %r28,-204(%r30)
        copy %r25,%r28
        ldw -216(%r30),%r19
        addl %r29,%r19,%r19
        stw %r26,-248(%r30)
        .IMPORT $$divI,MILLICODE
        bl $$divI,%r31
        stw %r19,-192(%r30)

The call to $$remI clobbers the argument registers %r25 and %r26.  We
lose the initialization of these registers for the subsequent call to
$$divI.

Reply via email to