From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 362533858D31; Mon, 20 Apr 2020 08:14:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 362533858D31 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1587370442; bh=L380Klc9+wPoiNrg3I7tKFKfbzwfqSFpYm9rKc5sjbg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=EwK0tBt05uFqIRcoz+eqTlNg2fFK3tOGHU4kLPLiHzWRjZtAZTOA/JcvuDLXlM8fS 8/GkXpFX/NAvocCiU9cLbcIXpQg8fZ3FjDVId6NpNg+cci33F9NeHdpFMOZFaELJU9 y5iudNN//ODHs0+XXu+1p9wWLaaFL1lhTNsugFC8= From: "rguenther at suse dot de" To: gcc-bugs@gcc.gnu.org Subject: [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce Date: Mon, 20 Apr 2020 08:14:01 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 10.0 X-Bugzilla-Keywords: diagnostic, wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenther at suse dot de X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: jamborm at gcc dot gnu.org X-Bugzilla-Target-Milestone: 10.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Apr 2020 08:14:02 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D93385 --- Comment #28 from rguenther at suse dot de --- On Fri, 17 Apr 2020, jakub at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D93385 >=20 > --- Comment #26 from Jakub Jelinek --- > For debug stmts, it would be best if we could use those > DEBUG D#Y s=3D> parm > DEBUG var =3D> D#Y > added in if (param_body_adjs && MAY_HAVE_DEBUG_BIND_STMTS). > Though, if we remove already during the copy_bb by not actually creating = the > stmt, I'm afraid that will mean the debug info is lost (debug stmts will = be > reset), unless we for the lhs of to be dced stmts manually create debug > temporaries and debug stmts when we remap_gimple_stmt those stmts (for > SSA_NAMEs that are directly (or indirectly!) used in debug stmts). > If we do what Martin was proposing instead, i.e. copy the stmts and then = DCE > them afterwards, it might work properly (perhaps only if we DCE them in t= he > right order). It's true that copying everything and then DCEing is easier for debug stmt generation. I didn't consider this. That also argues for not remapping anything to error_mark_node. Of course this leaves us with no automagic verification if we really DCEd everything required (esp. his handling of call arguments looks expensive and odd to me). I'm also not sure how the machinery is helping the __builtin_constant_p inline predication issue.=