From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 85770 invoked by alias); 14 Dec 2017 11:55:49 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 85751 invoked by uid 89); 14 Dec 2017 11:55:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy= X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 14 Dec 2017 11:55:44 +0000 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 62A6281DE4; Thu, 14 Dec 2017 11:55:43 +0000 (UTC) Received: from freie.home (ovpn04.gateway.prod.ext.phx2.redhat.com [10.5.9.4]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 11D415D729; Thu, 14 Dec 2017 11:55:42 +0000 (UTC) Received: from livre (livre.home [172.31.160.2]) by freie.home (8.15.2/8.15.2) with ESMTP id vBEBtUjF003434; Thu, 14 Dec 2017 09:55:30 -0200 From: Alexandre Oliva To: Jeff Law Cc: Richard Biener , Jason Merrill , GCC Patches Subject: Re: [SFN+LVU+IEPM v4 1/9] [SFN] adjust RTL insn-walking API References: <20171110023448.28164-1-aoliva@redhat.com> <748cdfaf-491d-b1bf-ab38-9799cada7de6@redhat.com> Date: Thu, 14 Dec 2017 11:55:00 -0000 In-Reply-To: (Alexandre Oliva's message of "Tue, 12 Dec 2017 00:26:16 -0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2017-12/txt/msg00898.txt.bz2 On Dec 12, 2017, Alexandre Oliva wrote: > On Dec 7, 2017, Jeff Law wrote: >> On 11/09/2017 07:34 PM, Alexandre Oliva wrote: >>> (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove. > Thanks, FTR, here it is, as installed: On Aug 31, 2017, Alexandre Oliva wrote: > (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove. [SFN] next/prev_nonnote_insn_bb are no more, even for ports The patch that added _nondebug to next_ and prev_nonnote_insn_bb failed to find and adjust uses within config. Fixed. Sanity-checked by cross-building both *-elf targets (with binutils and newlib) on x86_64-linux-gnu. I'm going ahead and checking it in shortly. for gcc/ChangeLog PR bootstrap/83396 * config/arc/arc.c (hwloop_optimize): Skip debug insns. * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust. * config/sh/sh.c: Skip debug insns besides notes. * config/sh/sh.md: Likewise. * config/sh/sh_treg_combine.cc: Likewise. * config/sh/sync.md: Likewise. --- gcc/config/arc/arc.c | 2 +- gcc/config/sh/sh-protos.h | 2 +- gcc/config/sh/sh.c | 10 +++++----- gcc/config/sh/sh.md | 18 +++++++++--------- gcc/config/sh/sh_treg_combine.cc | 8 ++++---- gcc/config/sh/sync.md | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index b8eec10086dd..9974a1f999b5 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -7499,7 +7499,7 @@ hwloop_optimize (hwloop_info loop) && NOTE_KIND (entry_after) != NOTE_INSN_CALL_ARG_LOCATION)) entry_after = NEXT_INSN (entry_after); #endif - entry_after = next_nonnote_insn_bb (entry_after); + entry_after = next_nonnote_nondebug_insn_bb (entry_after); gcc_assert (entry_after); emit_insn_before (seq, entry_after); diff --git a/gcc/config/sh/sh-protos.h b/gcc/config/sh/sh-protos.h index e98030d31bd7..0a83fbe17011 100644 --- a/gcc/config/sh/sh-protos.h +++ b/gcc/config/sh/sh-protos.h @@ -122,7 +122,7 @@ struct set_of_reg /* Given a reg rtx and a start insn, try to find the insn that sets the specified reg by using the specified insn stepping function, such as - 'prev_nonnote_insn_bb'. When the insn is found, try to extract the rtx + 'prev_nonnote_nondebug_insn_bb'. When the insn is found, try to extract the rtx of the reg set. */ template inline set_of_reg sh_find_set_of_reg (rtx reg, rtx_insn* insn, F stepfunc, diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 0d7d7bc53ca2..3776415f1589 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -11897,7 +11897,7 @@ sh_is_logical_t_store_expr (rtx op, rtx_insn* insn) else { set_of_reg op_set = sh_find_set_of_reg (ops[i], insn, - prev_nonnote_insn_bb); + prev_nonnote_nondebug_insn_bb); if (op_set.set_src == NULL_RTX) continue; @@ -11929,7 +11929,7 @@ sh_try_omit_signzero_extend (rtx extended_op, rtx_insn* insn) if (GET_MODE (extended_op) != SImode) return NULL_RTX; - set_of_reg s = sh_find_set_of_reg (extended_op, insn, prev_nonnote_insn_bb); + set_of_reg s = sh_find_set_of_reg (extended_op, insn, prev_nonnote_nondebug_insn_bb); if (s.set_src == NULL_RTX) return NULL_RTX; @@ -11966,9 +11966,9 @@ sh_split_movrt_negc_to_movt_xor (rtx_insn* curr_insn, rtx operands[]) return false; set_of_reg t_before_negc = sh_find_set_of_reg (get_t_reg_rtx (), curr_insn, - prev_nonnote_insn_bb); + prev_nonnote_nondebug_insn_bb); set_of_reg t_after_negc = sh_find_set_of_reg (get_t_reg_rtx (), curr_insn, - next_nonnote_insn_bb); + next_nonnote_nondebug_insn_bb); if (t_before_negc.set_rtx != NULL_RTX && t_after_negc.set_rtx != NULL_RTX && rtx_equal_p (t_before_negc.set_rtx, t_after_negc.set_rtx) @@ -12010,7 +12010,7 @@ sh_find_extending_set_of_reg (rtx reg, rtx_insn* curr_insn) cases, where a zero_extend is followed an (implicit) sign_extend, and it fails to see the sign_extend. */ sh_extending_set_of_reg result = - sh_find_set_of_reg (reg, curr_insn, prev_nonnote_insn_bb, true); + sh_find_set_of_reg (reg, curr_insn, prev_nonnote_nondebug_insn_bb, true); if (result.set_src != NULL) { diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 840fd922d41e..587af3b25581 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -848,7 +848,7 @@ /* FIXME: Maybe also search the predecessor basic blocks to catch more cases. */ set_of_reg op = sh_find_set_of_reg (operands[0], curr_insn, - prev_nonnote_insn_bb); + prev_nonnote_nondebug_insn_bb); if (op.set_src != NULL && GET_CODE (op.set_src) == AND && !sh_insn_operands_modified_between_p (op.insn, op.insn, curr_insn)) @@ -939,7 +939,7 @@ if (dump_file) fprintf (dump_file, "cmpgesi_t: trying to optimize for const_int 0\n"); - rtx_insn* i = next_nonnote_insn_bb (curr_insn); + rtx_insn* i = next_nonnote_nondebug_insn_bb (curr_insn); if (dump_file) { @@ -3094,7 +3094,7 @@ && ! sh_dynamicalize_shift_p (shift_count)) { if (prev_set_t_insn == NULL) - prev_set_t_insn = prev_nonnote_insn_bb (curr_insn); + prev_set_t_insn = prev_nonnote_nondebug_insn_bb (curr_insn); /* Skip the nott insn, which was probably inserted by the splitter of *rotcr_neg_t. Don't use one of the recog functions @@ -3106,7 +3106,7 @@ if (GET_CODE (pat) == SET && t_reg_operand (XEXP (pat, 0), SImode) && negt_reg_operand (XEXP (pat, 1), SImode)) - prev_set_t_insn = prev_nonnote_insn_bb (prev_set_t_insn); + prev_set_t_insn = prev_nonnote_nondebug_insn_bb (prev_set_t_insn); } if (! (prev_set_t_insn != NULL_RTX @@ -3194,7 +3194,7 @@ if (sh_ashlsi_clobbers_t_reg_p (shift_count) && ! sh_dynamicalize_shift_p (shift_count)) { - prev_set_t_insn = prev_nonnote_insn_bb (curr_insn); + prev_set_t_insn = prev_nonnote_nondebug_insn_bb (curr_insn); /* Skip the nott insn, which was probably inserted by the splitter of *rotcl_neg_t. Don't use one of the recog functions @@ -3206,7 +3206,7 @@ if (GET_CODE (pat) == SET && t_reg_operand (XEXP (pat, 0), SImode) && negt_reg_operand (XEXP (pat, 1), SImode)) - prev_set_t_insn = prev_nonnote_insn_bb (prev_set_t_insn); + prev_set_t_insn = prev_nonnote_nondebug_insn_bb (prev_set_t_insn); } if (! (prev_set_t_insn != NULL_RTX @@ -4423,7 +4423,7 @@ When we're here, the not:SI pattern obviously has been matched already and we only have to see whether the following insn is the left shift. */ - rtx_insn *i = next_nonnote_insn_bb (curr_insn); + rtx_insn *i = next_nonnote_nondebug_insn_bb (curr_insn); if (i == NULL_RTX || !NONJUMP_INSN_P (i)) FAIL; @@ -10751,8 +10751,8 @@ { rtx t_reg = get_t_reg_rtx (); - for (rtx_insn* i = prev_nonnote_insn_bb (curr_insn); i != NULL; - i = prev_nonnote_insn_bb (i)) + for (rtx_insn* i = prev_nonnote_nondebug_insn_bb (curr_insn); i != NULL; + i = prev_nonnote_nondebug_insn_bb (i)) { if (!INSN_P (i) || DEBUG_INSN_P (i)) continue; diff --git a/gcc/config/sh/sh_treg_combine.cc b/gcc/config/sh/sh_treg_combine.cc index cb3a7a85d173..0bbaf415db8f 100644 --- a/gcc/config/sh/sh_treg_combine.cc +++ b/gcc/config/sh/sh_treg_combine.cc @@ -291,7 +291,7 @@ find_set_of_reg_bb (rtx reg, rtx_insn *insn) return result; for (result.insn = insn; result.insn != NULL; - result.insn = prev_nonnote_insn_bb (result.insn)) + result.insn = prev_nonnote_nondebug_insn_bb (result.insn)) { if (BARRIER_P (result.insn)) return result; @@ -750,7 +750,7 @@ sh_treg_combine::record_set_of_reg (rtx reg, rtx_insn *start_insn, log_msg ("tracing ccreg\n"); new_entry.setcc = find_set_of_reg_bb (m_ccreg, - prev_nonnote_insn_bb (new_entry.cstore.insn)); + prev_nonnote_nondebug_insn_bb (new_entry.cstore.insn)); // If cstore was found but setcc was not found continue anyway, as // for some of the optimization types the setcc is irrelevant. @@ -1353,7 +1353,7 @@ sh_treg_combine::try_optimize_cbranch (rtx_insn *insn) // (set (reg ccreg) (eq (reg) (const_int 0))) // The testing insn could also be outside of the current basic block, but // for now we limit the search to the current basic block. - trace.setcc = find_set_of_reg_bb (m_ccreg, prev_nonnote_insn_bb (insn)); + trace.setcc = find_set_of_reg_bb (m_ccreg, prev_nonnote_nondebug_insn_bb (insn)); if (trace.setcc.set_src () == NULL_RTX) log_return_void ("could not find set of ccreg in current BB\n"); @@ -1413,7 +1413,7 @@ sh_treg_combine::try_optimize_cbranch (rtx_insn *insn) trace.bb_entries.push_front (bb_entry (trace.bb ())); record_return_t res = - record_set_of_reg (trace_reg, prev_nonnote_insn_bb (trace.setcc.insn), + record_set_of_reg (trace_reg, prev_nonnote_nondebug_insn_bb (trace.setcc.insn), trace.bb_entries.front ()); if (res == other_set_found) diff --git a/gcc/config/sh/sync.md b/gcc/config/sh/sync.md index b46ac3131a8a..9f158bd93533 100644 --- a/gcc/config/sh/sync.md +++ b/gcc/config/sh/sync.md @@ -294,7 +294,7 @@ /* FIXME: Sometimes the 'expected value' operand is not propagated as immediate value. See PR 64974. */ set_of_reg op2 = sh_find_set_of_reg (operands[2], curr_insn, - prev_nonnote_insn_bb); + prev_nonnote_nondebug_insn_bb); if (op2.set_src != NULL && satisfies_constraint_I08 (op2.set_src)) { rtx* r = &XVECEXP (XEXP (XVECEXP (PATTERN (curr_insn), 0, 0), 1), 0, 1); -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer