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]

[Bug target/64036] [SH] Evaluate re-enabling scheduling before RA


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

--- Comment #6 from Oleg Endo <olegendo at gcc dot gnu.org> ---
For this test case

static volatile int* const g_0 = (volatile int*)0x1240;
static volatile int* const g_1 = (volatile int*)0x1244;
static volatile int* const g_2 = (volatile int*)0x1248;
static volatile int* const g_3 = (volatile int*)0x124C;

int fun (void)
{
  return *g_0 + *g_1 + *g_2 + *g_3;
}

I'm getting the following with -O2 with AMS (without sched1):
        mov.w   .L2,r1
        mov.l   @r1,r0
        mov.l   @(4,r1),r3
        mov.l   @(8,r1),r2
        mov.l   @(12,r1),r1
        add     r3,r0
        add     r2,r0
        rts     
        add     r1,r0
        .align 1
.L2:
        .short  4672

And with sched1:
        mov.w   .L2,r1
        mov.w   .L3,r2
        mov.l   @r1+,r0
        mov.l   @r1,r1
        mov.l   @r2,r2
        add     r1,r0
        mov.w   .L4,r1
        add     r2,r0
        mov.l   @r1,r1
        rts     
        add     r1,r0
        .align 1
.L2:
        .short  4672
.L3:
        .short  4680
.L4:
        .short  4684

This is one of the cases where sched1 makes things worse.


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