aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-08-09 20:46:45 +0100
committerSam James <sam@gentoo.org>2024-08-09 20:46:45 +0100
commitb1db6e989802fb46fb5d242f68e3edbc0f0b2cd0 (patch)
tree7e97abbc3d58256e89b80959d67758918970a0d7
parent15.0.0: add revert of LRA patch (diff)
downloadgcc-patches-b1db6e989802fb46fb5d242f68e3edbc0f0b2cd0.tar.gz
gcc-patches-b1db6e989802fb46fb5d242f68e3edbc0f0b2cd0.tar.bz2
gcc-patches-b1db6e989802fb46fb5d242f68e3edbc0f0b2cd0.zip
15.0.0: drop LRA revert
It's now reverted upstream. Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--15.0.0/gentoo/32_all_Revert-lra-emit-caller-save-register-spills-before-c.patch101
1 files changed, 0 insertions, 101 deletions
diff --git a/15.0.0/gentoo/32_all_Revert-lra-emit-caller-save-register-spills-before-c.patch b/15.0.0/gentoo/32_all_Revert-lra-emit-caller-save-register-spills-before-c.patch
deleted file mode 100644
index 6cd1b43..0000000
--- a/15.0.0/gentoo/32_all_Revert-lra-emit-caller-save-register-spills-before-c.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From c67cc1d712f488a93d03dcfcda70e82250e13ab9 Mon Sep 17 00:00:00 2001
-Message-ID: <c67cc1d712f488a93d03dcfcda70e82250e13ab9.1723231445.git.sam@gentoo.org>
-From: Sam James <sam@gentoo.org>
-Date: Fri, 9 Aug 2024 20:24:00 +0100
-Subject: [PATCH] Revert "lra: emit caller-save register spills before call
- insn [PR116028]"
-
-This reverts commit 3c67a0fa1dd39a3378deb854a7fef0ff7fe38004.
-
-See https://inbox.sourceware.org/gcc-patches/CA+=Sn1=_jL5P1Nbx4b7O-wYttpMsP4N545nk49rXntKnoJ7G-Q@mail.gmail.com/.
----
- gcc/lra-constraints.cc | 28 +++-----------------
- gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-1.c | 2 +-
- gcc/testsuite/gcc.dg/pr10474.c | 2 +-
- 3 files changed, 6 insertions(+), 26 deletions(-)
-
-diff --git a/gcc/lra-constraints.cc b/gcc/lra-constraints.cc
-index 28c1a877c003..92b343fa99a0 100644
---- a/gcc/lra-constraints.cc
-+++ b/gcc/lra-constraints.cc
-@@ -152,9 +152,6 @@ static machine_mode curr_operand_mode[MAX_RECOG_OPERANDS];
- (e.g. constant) and whose subreg is given operand of the current
- insn. VOIDmode in all other cases. */
- static machine_mode original_subreg_reg_mode[MAX_RECOG_OPERANDS];
--/* The nearest call insn for an insn on which split transformation
-- will be done. The call insn is in the same EBB as the insn. */
--static rtx_insn *latest_call_insn;
-
-
-
-@@ -6289,25 +6286,10 @@ split_reg (bool before_p, int original_regno, rtx_insn *insn,
- after_p ? restore : NULL,
- call_save_p
- ? "Add reg<-save" : "Add reg<-split");
-- if (call_save_p && latest_call_insn != NULL)
-- /* PR116028: If original_regno is a pseudo that has been assigned a
-- call-save hard register, then emit the spill insn before the call
-- insn 'latest_call_insn' instead of adjacent to 'insn'. If 'insn'
-- and 'latest_call_insn' belong to the same EBB but to two separate
-- BBs, and if 'insn' is present in the entry BB, then generating the
-- spill insn in the entry BB can prevent shrink wrap from happening.
-- This is because the spill insn references the stack pointer and
-- hence the prolog gets generated in the entry BB itself. It is
-- also more efficient to generate the spill before
-- 'latest_call_insn' as the spill now occurs only in the path
-- containing the call. */
-- lra_process_new_insns (PREV_INSN (latest_call_insn), NULL, save,
-- "Add save<-reg");
-- else
-- lra_process_new_insns (insn, before_p ? save : NULL,
-- before_p ? NULL : save,
-- call_save_p
-- ? "Add save<-reg" : "Add split<-reg");
-+ lra_process_new_insns (insn, before_p ? save : NULL,
-+ before_p ? NULL : save,
-+ call_save_p
-+ ? "Add save<-reg" : "Add split<-reg");
- if (nregs > 1 || original_regno < FIRST_PSEUDO_REGISTER)
- /* If we are trying to split multi-register. We should check
- conflicts on the next assignment sub-pass. IRA can allocate on
-@@ -6791,7 +6773,6 @@ inherit_in_ebb (rtx_insn *head, rtx_insn *tail)
- last_processed_bb = NULL;
- CLEAR_HARD_REG_SET (potential_reload_hard_regs);
- live_hard_regs = eliminable_regset | lra_no_alloc_regs;
-- latest_call_insn = NULL;
- /* We don't process new insns generated in the loop. */
- for (curr_insn = tail; curr_insn != PREV_INSN (head); curr_insn = prev_insn)
- {
-@@ -7004,7 +6985,6 @@ inherit_in_ebb (rtx_insn *head, rtx_insn *tail)
- last_call_for_abi[callee_abi.id ()] = calls_num;
- full_and_partial_call_clobbers
- |= callee_abi.full_and_partial_reg_clobbers ();
-- latest_call_insn = curr_insn;
- if ((cheap = find_reg_note (curr_insn,
- REG_RETURNED, NULL_RTX)) != NULL_RTX
- && ((cheap = XEXP (cheap, 0)), true)
-diff --git a/gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-1.c b/gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-1.c
-index 8c150972f952..a95637abbe54 100644
---- a/gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-1.c
-+++ b/gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-1.c
-@@ -26,4 +26,4 @@ bar (long a)
-
- /* { dg-final { scan-rtl-dump "Will split live ranges of parameters" "ira" } } */
- /* { dg-final { scan-rtl-dump "Split live-range of register" "ira" { xfail { ! aarch64*-*-* } } } } */
--/* { dg-final { scan-rtl-dump "Performing shrink-wrapping" "pro_and_epilogue" } } */
-+/* { dg-final { scan-rtl-dump "Performing shrink-wrapping" "pro_and_epilogue" { xfail powerpc*-*-* } } } */
-diff --git a/gcc/testsuite/gcc.dg/pr10474.c b/gcc/testsuite/gcc.dg/pr10474.c
-index b5393d5b6e3e..a4af536ec284 100644
---- a/gcc/testsuite/gcc.dg/pr10474.c
-+++ b/gcc/testsuite/gcc.dg/pr10474.c
-@@ -13,4 +13,4 @@ void f(int *i)
- }
-
- /* XFAIL due to PR70681. */
--/* { dg-final { scan-rtl-dump "Performing shrink-wrapping" "pro_and_epilogue" { xfail arm*-*-* } } } */
-+/* { dg-final { scan-rtl-dump "Performing shrink-wrapping" "pro_and_epilogue" { xfail arm*-*-* powerpc*-*-* } } } */
-
-base-commit: 9e4da946c4263a4c89d5fc365b3c97ae244c5018
---
-2.45.2
-