From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1666) id 0AB143858D39; Mon, 27 Mar 2023 06:57:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0AB143858D39 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1679900236; bh=Y21rGRv1Q8QaQj7WeUVH8J5Etv3MrmJoD+04/oybIGY=; h=From:To:Subject:Date:From; b=c2Dd/bFdYnvasSK6uT73KVvTAxycTF572jLtBr/QN+R8//OPa+mL0zQpMVunkvE1+ guoMXCeERcQz2qadde18b6EABEw5iyYTmuWvpdwNhOzHFJgIuObYyo+BE6Ki/DvBQy T0j1qy8PLgkp8PRfa0Y8KWYSxsI0t2b5U9XMN04Q= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Richard Biener To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-6873] rtl-optimization/109237 - speedup bb_is_just_return X-Act-Checkin: gcc X-Git-Author: Richard Biener X-Git-Refname: refs/heads/master X-Git-Oldrev: 4cbd5ef0350d8ab04993eb4c48ab80999fb4f358 X-Git-Newrev: 776a5bb5894315ab144dc74222fc580fde8fdd87 Message-Id: <20230327065716.0AB143858D39@sourceware.org> Date: Mon, 27 Mar 2023 06:57:16 +0000 (GMT) List-Id: https://gcc.gnu.org/g:776a5bb5894315ab144dc74222fc580fde8fdd87 commit r13-6873-g776a5bb5894315ab144dc74222fc580fde8fdd87 Author: Richard Biener Date: Wed Mar 22 10:05:19 2023 +0100 rtl-optimization/109237 - speedup bb_is_just_return For the testcase bb_is_just_return is on top of the profile, changing it to walk BB insns backwards puts it off the profile. That's because in the forward walk you have to process possibly many debug insns but in a backward walk you very likely run into control insns first. PR rtl-optimization/109237 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards. Diff: --- gcc/cfgcleanup.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/cfgcleanup.cc b/gcc/cfgcleanup.cc index 194e0e5de12..4cd33878ef3 100644 --- a/gcc/cfgcleanup.cc +++ b/gcc/cfgcleanup.cc @@ -2608,7 +2608,7 @@ bb_is_just_return (basic_block bb, rtx_insn **ret, rtx_insn **use) if (bb == EXIT_BLOCK_PTR_FOR_FN (cfun)) return false; - FOR_BB_INSNS (bb, insn) + FOR_BB_INSNS_REVERSE (bb, insn) if (NONDEBUG_INSN_P (insn)) { rtx pat = PATTERN (insn);