From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 106707 invoked by alias); 1 Jul 2015 08:27:10 -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 106694 invoked by uid 89); 1 Jul 2015 08:27:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 X-HELO: eu-smtp-delivery-143.mimecast.com Received: from eu-smtp-delivery-143.mimecast.com (HELO eu-smtp-delivery-143.mimecast.com) (207.82.80.143) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 01 Jul 2015 08:27:08 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-2-Cu8H4cIFTcGvMrIrA7EY0g-1 Received: from localhost ([10.1.2.79]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 1 Jul 2015 09:27:03 +0100 From: Richard Sandiford To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, richard.sandiford@arm.com Subject: PR 66685: parallel returns being misclassified Date: Wed, 01 Jul 2015 08:27:00 -0000 Message-ID: <87h9ponuzs.fsf@e105548-lin.cambridge.arm.com> User-Agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 X-MC-Unique: Cu8H4cIFTcGvMrIrA7EY0g-1 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable X-SW-Source: 2015-07/txt/msg00008.txt.bz2 This patch should restore bootstrap on hppa (and probably other targets besides). The change to use target-insns.def put more stress on the emit()/classify_insn() group of functions, which were missing a case for parallel returns. Tested with a cross-compiler that it fixes the hppa problem. Bootstrap in progress on x86_64-linux-gnu. OK to install? Sorry for the slow response on this one. I'd misread the PR and thought that it was the bug fixed in r225000. Thanks, Richard gcc/ PR bootstrap/66685 * rtl.c (classify_insn): Handle returns in PARALLELs. Index: gcc/rtl.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/rtl.c 2015-07-01 09:13:29.782160299 +0100 +++ gcc/rtl.c 2015-07-01 09:13:29.778160333 +0100 @@ -686,6 +686,8 @@ classify_insn (rtx x) for (j =3D XVECLEN (x, 0) - 1; j >=3D 0; j--) if (GET_CODE (XVECEXP (x, 0, j)) =3D=3D CALL) return CALL_INSN; + else if (ANY_RETURN_P (XVECEXP (x, 0, j))) + return JUMP_INSN; else if (GET_CODE (XVECEXP (x, 0, j)) =3D=3D SET && GET_CODE (SET_DEST (XVECEXP (x, 0, j))) =3D=3D PC) return JUMP_INSN;