From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 55750 invoked by alias); 5 Dec 2018 17:10:18 -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 55709 invoked by uid 89); 5 Dec 2018 17:10:16 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_COUK,KAM_LAZY_DOMAIN_SECURITY autolearn=ham version=3.3.2 spammy=Hx-spam-relays-external:ESMTPA X-HELO: smtp1.wavenetuk.net Received: from smtp1.wavenetuk.net (HELO smtp1.wavenetuk.net) (195.26.36.10) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 05 Dec 2018 17:10:14 +0000 Received: from [192.168.1.212] (unknown [81.138.1.83]) by smtp1.wavenetuk.net (Postfix) with ESMTPA id 5000812016EB; Wed, 5 Dec 2018 17:10:11 +0000 (GMT) From: Iain Sandoe Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: [PATCH, PPC] Fix PR88343. Message-Id: <40EA3BFC-C4F7-4CA0-9C65-19C47AA3C74D@sandoe.co.uk> Date: Wed, 05 Dec 2018 17:10:00 -0000 Cc: Segher Boessenkool To: GCC-patches X-SW-Source: 2018-12/txt/msg00294.txt.bz2 Hi, The PR is about unnecessary saves of the pic base register, it shows on m32= Linux and m32/m64 Darwin. The fix is to check that we are in a pic mode and that the picbase has actu= ally been used. As a bonus, some #ifdef=E2=80=99d TARGET_MACHO code is no longer required. Tested on power7, bootstrapped on Darwin (testing continues). OK for trunk? Branches? Iain 2018-xx-xx Segher Boessenkool Iain Sandoe gcc/ * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg unless it has been used. (first_reg_to_save): Remove dead code. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index dfd5303..380cf9d 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -23961,7 +23961,7 @@ save_reg_p (int reg) return true; =20 if ((DEFAULT_ABI =3D=3D ABI_V4 || DEFAULT_ABI =3D=3D ABI_DARWIN) - && flag_pic) + && flag_pic && crtl->uses_pic_offset_table) return true; } =20 @@ -23981,13 +23981,6 @@ first_reg_to_save (void) if (save_reg_p (first_reg)) break; =20 -#if TARGET_MACHO - if (flag_pic - && crtl->uses_pic_offset_table - && first_reg > RS6000_PIC_OFFSET_TABLE_REGNUM) - return RS6000_PIC_OFFSET_TABLE_REGNUM; -#endif - return first_reg; } =20