From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2093) id BE2033858D3C; Tue, 12 Sep 2023 01:57:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BE2033858D3C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1694483861; bh=taO0UGSd4CPNWlmXMBE1jVRlwkU0lFqU/HMWRDdmGAA=; h=From:To:Subject:Date:From; b=m7I7m1bWqZJ9XmcpkTkfvcZZWBqXq7NFgyBih3zWVgf2QNUeEDW+ZglAYP3U115HU KiuLW5c3Y3gG29KObd38Wv9aqyTz0L4XAtC18jK2LoakQQ8IoZSKzeut9w6g/HAntY 0J3ggSACI5Sgok4Y/DNkI9BKa2yW8/u6WQ9It980= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Kito Cheng To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-3858] Allow targets to check shrink-wrap-separate enabled or not X-Act-Checkin: gcc X-Git-Author: Fei Gao X-Git-Refname: refs/heads/master X-Git-Oldrev: fb4b53d964b797e5f3380726175c95110c4ff9ff X-Git-Newrev: 66d89a43a7b6bafca1d4675744808be53ef2736f Message-Id: <20230912015741.BE2033858D3C@sourceware.org> Date: Tue, 12 Sep 2023 01:57:41 +0000 (GMT) List-Id: https://gcc.gnu.org/g:66d89a43a7b6bafca1d4675744808be53ef2736f commit r14-3858-g66d89a43a7b6bafca1d4675744808be53ef2736f Author: Fei Gao Date: Wed Sep 6 09:39:08 2023 +0000 Allow targets to check shrink-wrap-separate enabled or not No functional changes but restructure and expose use_shrink_wrapping_separate to the TARGETs. gcc/ChangeLog: * shrink-wrap.cc (try_shrink_wrapping_separate):call use_shrink_wrapping_separate. (use_shrink_wrapping_separate): wrap the condition check in use_shrink_wrapping_separate. * shrink-wrap.h (use_shrink_wrapping_separate): add to extern Diff: --- gcc/shrink-wrap.cc | 22 +++++++++++++++------- gcc/shrink-wrap.h | 1 + 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/gcc/shrink-wrap.cc b/gcc/shrink-wrap.cc index b8d7b5571309..28301f04f89a 100644 --- a/gcc/shrink-wrap.cc +++ b/gcc/shrink-wrap.cc @@ -1776,16 +1776,13 @@ insert_prologue_epilogue_for_components (sbitmap components) commit_edge_insertions (); } -/* The main entry point to this subpass. FIRST_BB is where the prologue - would be normally put. */ -void -try_shrink_wrapping_separate (basic_block first_bb) +bool +use_shrink_wrapping_separate (void) { - if (!(SHRINK_WRAPPING_ENABLED - && flag_shrink_wrap_separate + if (!(SHRINK_WRAPPING_ENABLED && flag_shrink_wrap_separate && optimize_function_for_speed_p (cfun) && targetm.shrink_wrap.get_separate_components)) - return; + return false; /* We don't handle "strange" functions. */ if (cfun->calls_alloca @@ -1794,6 +1791,17 @@ try_shrink_wrapping_separate (basic_block first_bb) || crtl->calls_eh_return || crtl->has_nonlocal_goto || crtl->saves_all_registers) + return false; + + return true; +} + +/* The main entry point to this subpass. FIRST_BB is where the prologue + would be normally put. */ +void +try_shrink_wrapping_separate (basic_block first_bb) +{ + if (!use_shrink_wrapping_separate ()) return; /* Ask the target what components there are. If it returns NULL, don't diff --git a/gcc/shrink-wrap.h b/gcc/shrink-wrap.h index 161647711a3b..82386c2b7124 100644 --- a/gcc/shrink-wrap.h +++ b/gcc/shrink-wrap.h @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see extern bool requires_stack_frame_p (rtx_insn *, HARD_REG_SET, HARD_REG_SET); extern void try_shrink_wrapping (edge *entry_edge, rtx_insn *prologue_seq); extern void try_shrink_wrapping_separate (basic_block first_bb); +extern bool use_shrink_wrapping_separate (void); #define SHRINK_WRAPPING_ENABLED \ (flag_shrink_wrap && targetm.have_simple_return ())