Surya's recent patch to IRA improves the code for sh/pr54602-1.c slightly. Specifically it's able to eliminate a save/restore in the prologue/epilogue and a bit of register shuffling.

As a result there literally aren't any insns that can be used to fill the delay slot of the return, so a nop gets emitted and the test fails.

Given there literally aren't any insns to move into the delay slot, the best course of action is to just drop the test.

Pushed to the trunk.

Jeff
commit 47b68cda2c4afe32e84c5f18da0196c39e5e0edf
Author: Jeff Law <j...@ventanamicro.com>
Date:   Wed Jun 26 07:20:29 2024 -0600

    [committed] Remove compromised sh test
    
    Surya's recent patch to IRA improves the code for sh/pr54602-1.c slightly.
    Specifically it's able to eliminate a save/restore in the prologue/epilogue 
and
    a bit of register shuffling.
    
    As a result there literally aren't any insns that can be used to fill the 
delay
    slot of the return, so a nop gets emitted and the test fails.
    
    Given there literally aren't any insns to move into the delay slot, the best
    course of action is to just drop the test.
    
    gcc/testsuite
            * gcc.target/sh/pr54602-1.c: Delete test.

diff --git a/gcc/testsuite/gcc.target/sh/pr54602-1.c 
b/gcc/testsuite/gcc.target/sh/pr54602-1.c
deleted file mode 100644
index e7fb2a9a642..00000000000
--- a/gcc/testsuite/gcc.target/sh/pr54602-1.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Verify that the delay slot is stuffed with register pop insns for normal
-   (i.e. not interrupt handler) function returns.  If everything goes as
-   expected we won't see any nop insns.  */
-/* { dg-do compile }  */
-/* { dg-options "-O1" } */
-/* { dg-final { scan-assembler-not "nop" } } */
-
-int test00 (int a, int b);
-
-int
-test01 (int a, int b, int c, int d)
-{
-  return test00 (a, b) + c;
-}

Reply via email to