This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

SH function epilogue scheduling problems (fwd)


Doh, forgot to CC: the list.

---------- Forwarded message ----------
Date: Mon, 24 Feb 2003 19:30:25 -0800 (PST)
From: tm_gccmail at mail dot kloo dot net
To: joern dot rennecke at superh dot com, vmakarov at redhat dot com
Cc: aoliva at redhat dot com
Subject: SH function epilogue scheduling problems


I'm looking at code generated with CVS mainline using -O2 -m4, and it
doesn't seem to be scheduling the function epilogue properly.

Here's a sample from advmilitary.i:

.L106:
        mov.l   .L121,r1
        mov     r8,r0
        dmuls.l r1,r8
        shll    r8
        mov     #-4,r1
        subc    r8,r8
        sts     mach,r9
        add     r9,r0		<- here
        shad    r1,r0		<- here
        sub     r8,r0		<- here
        mov     r14,r15
        lds.l   @r15+,pr
        mov.l   @r15+,r14
        mov.l   @r15+,r13
        mov.l   @r15+,r12
        mov.l   @r15+,r11
        mov.l   @r15+,r10
        mov.l   @r15+,r9
        rts
        mov.l   @r15+,r8

The instructions marked "here" can and should be moved down several
instructions because they will pair with the stack stores, but the
scheduler doesn't seem to do anything.

This is the worst case, but it seems to be happening everywhere - none of
the function epilogues are properly scheduled.

Is this a known problem?

Toshi




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]