From patchwork Tue Dec 18 21:23:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Vladimir Makarov X-Patchwork-Id: 1015654 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-492768-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="UqjiTyHR"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43K9x92dBJz9s4s for ; Wed, 19 Dec 2018 08:23:23 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to :from:subject:message-id:date:mime-version:content-type; q=dns; s=default; b=W8mjrI5uxCCKq4o6KHbGIADADBzD/ofazdZJP6z9KR45TojgED q3vdc0sjxmO9yWLMzT1KQ5G5QAs1BDVa2apqzeiwUGIq2NSST4yqGZS8jJSkk/7Q iTbbkmj+eOcHw/Cq6hVv6ZMl2UPxIXzUzvcPDO4RfDKSjKZOeiV+jkgtg= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to :from:subject:message-id:date:mime-version:content-type; s= default; bh=AbU/DGJVCfTSO3XLMViuqFulCtk=; b=UqjiTyHRKO2VTAtfOsjV D4yOMmwHLIhmG5ozrraIKzUTMNloeCYiJXHxkqY/KNgWSlCPL9nkzxWsh5z6muJl u9Nwp+Rffw1wohzRJyXRDPxp/ODTyonmVNtJDR3jDwfW7vWXPWIiTMmycTyfTF+r wzLDNAB6fqgW4S4kGB/ks+s= Received: (qmail 61860 invoked by alias); 18 Dec 2018 21:23:16 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 61849 invoked by uid 89); 18 Dec 2018 21:23:16 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-10.6 required=5.0 tests=BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, KAM_NUMSUBJECT, KAM_SHORT, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=y5, Splitting 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; Tue, 18 Dec 2018 21:23:14 +0000 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 45460C049DFC for ; Tue, 18 Dec 2018 21:23:13 +0000 (UTC) Received: from tobol.usersys.redhat.com (unused-10-15-17-174.yyz.redhat.com [10.15.17.174]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1997219741 for ; Tue, 18 Dec 2018 21:23:13 +0000 (UTC) To: gcc-patches From: Vladimir Makarov Subject: patch to fix PR87759 Message-ID: <7dea6935-d280-1920-e855-e6281e3d773d@redhat.com> Date: Tue, 18 Dec 2018 16:23:12 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1 MIME-Version: 1.0 X-IsSubscribed: yes The following patch fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87759   The patch was bootstrapped and tested on x86-64. Committed as rev. 267244. Index: ChangeLog =================================================================== --- ChangeLog (revision 267243) +++ ChangeLog (working copy) @@ -1,3 +1,9 @@ +2018-12-18 Vladimir Makarov + + PR rtl-optimization/87759 + * lra-assigns.c (lra_split_hard_reg_for): Recalculate + non_reload_pseudos. + 2018-12-18 Jakub Jelinek PR target/88464 Index: testsuite/ChangeLog =================================================================== --- testsuite/ChangeLog (revision 267243) +++ testsuite/ChangeLog (working copy) @@ -1,3 +1,8 @@ +2018-12-18 Vladimir Makarov + + PR rtl-optimization/87759 + * gcc.target/i386/pr87759.c: New. + 2018-12-18 Jakub Jelinek PR target/88464 Index: lra-assigns.c =================================================================== --- lra-assigns.c (revision 267135) +++ lra-assigns.c (working copy) @@ -1758,6 +1758,10 @@ lra_split_hard_reg_for (void) "\n****** Splitting a hard reg after assignment #%d: ******\n\n", lra_assignment_iter); bitmap_initialize (&failed_reload_pseudos, ®_obstack); + bitmap_initialize (&non_reload_pseudos, ®_obstack); + bitmap_ior (&non_reload_pseudos, &lra_inheritance_pseudos, &lra_split_regs); + bitmap_ior_into (&non_reload_pseudos, &lra_subreg_reload_pseudos); + bitmap_ior_into (&non_reload_pseudos, &lra_optional_reload_pseudos); for (i = lra_constraint_new_regno_start; i < max_regno; i++) if (reg_renumber[i] < 0 && lra_reg_info[i].nrefs != 0 && (rclass = lra_get_allocno_class (i)) != NO_REGS @@ -1772,6 +1776,7 @@ lra_split_hard_reg_for (void) } bitmap_set_bit (&failed_reload_pseudos, i); } + bitmap_clear (&non_reload_pseudos); bitmap_initialize (&failed_reload_insns, ®_obstack); EXECUTE_IF_SET_IN_BITMAP (&failed_reload_pseudos, 0, u, bi) { Index: testsuite/gcc.target/i386/pr87759.c =================================================================== --- testsuite/gcc.target/i386/pr87759.c (nonexistent) +++ testsuite/gcc.target/i386/pr87759.c (working copy) @@ -0,0 +1,39 @@ +/* PR rtl-optimization/87759 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -w -fschedule-insns -fselective-scheduling -ftrapv -fno-dce -fno-expensive-optimizations -fno-ipa-ra -fno-tree-dce -fno-tree-ter" } */ + +int cc; + +void +rc (__int128 *oi) +{ + __int128 qz = (__int128)2 << cc; + + if (qz != 0) + { + if (cc != 0) + { + __int128 zp = 1; + + for (;;) + { + unsigned __int128 *ar = &cc; + int y5; + + if (oi != 0) + { + y3: + zp = *oi + *ar; + } + + y5 = (cc + 1) == ((*ar /= *oi) << ((zp >>= 128) / cc)); + qz += !!y5 ? 1 : qz == (*ar ^ zp + 1); + ++*oi; + } + } + else + ++qz; + } + + goto y3; +}