From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11041 invoked by alias); 28 Nov 2011 14:11:42 -0000 Received: (qmail 11023 invoked by uid 22791); 28 Nov 2011 14:11:41 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_TM X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 28 Nov 2011 14:11:26 +0000 From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug debug/50317] [4.7 Regression] missing DW_OP_GNU_implicit_pointer Date: Mon, 28 Nov 2011 14:22:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: debug X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.7.0 X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-11/txt/msg02651.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50317 --- Comment #8 from Jakub Jelinek 2011-11-28 14:10:40 UTC --- Perhaps we could drop the var ={v} {CLOBBER} stmts when renaming the var into SSA instead. As for gcc47-pr50317-1.patch, the another walk isn't because of the CLOBBERs, what it tries to solve is drop the ADDRESSABLE bit before CDDCE decides to instead optimize all the stores away as unnecessary (the former does the right thing for debug info, the latter does not). The reason why the gcc/tree-ssa-dce.c change doesn't work is that currently we rely on the var in debug stmts to be target_for_debug_bind (which among other conditions means is_gimple_reg). That patch emits debug stmts even for cases where the var is not is_gimple_reg because of TREE_ADDRESSABLE. As nothing drops the TREE_ADDRESSABLE bit later on (on this testcase we could do it somewhere, but not generally, consider e.g. where the first store into some addressable var is necessary, but last store is not). DCE at this point doesn't know if it is removing all references of the addressable var from the IL. Passes that are upset about the !target_for_debug_bind var in debug stmts/debug insns are expansion (it doesn't ICE, but doesn't create the implicit pointer because the var whose address is taken is addressable) and var-tracking (for which it leads to ICEs because VALUE is propagated through into the notes).