From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id CF259385DC03; Thu, 9 Apr 2020 09:33:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CF259385DC03 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1586424807; bh=haIAf1G7gzxfHNztbnoYYi4h/bBs8ocZ4acWt+DKrgo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=NXioRDL9eK28iq+bQCrdUKqm1VdMc0HxRKf2lu9K2U7HnNs1eIM1lNZq7eqIGqRak nSgbC2u4wK/cslCaWbywE5HHkAnSiKaOp5Y382mMyJSKu4FF0hODMYvr9p88cEQsOG TkCUsSHI4xwxhG1d8R8G06URxgC9SOEx1cH8X1Ug= From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug debug/94495] [10 Regression] Debug info size growth since r10-7515-g2c0fa3ecf70d199a Date: Thu, 09 Apr 2020 09:33:27 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: debug X-Bugzilla-Version: 10.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 10.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: attachments.created 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: Thu, 09 Apr 2020 09:33:27 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D94495 --- Comment #7 from Jakub Jelinek --- Created attachment 48246 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=3D48246&action=3Dedit gcc10-pr94495.patch Untested fix. This does two things during var-tracking. One is try to reu= se even more the SP_DERIVED_VALUE_P and VALUEs equated to that + CONST_INT in !frame_pointer_needed functions (ideally have just a single SP_DERIVED_VALU= E_P) and through that make sure they can be all expressed using cfa_base_rtx or cfa_base_rtx + CONST_INT (and thus in DWARF using DW_OP_fbreg). And the second change is that for VALUEs that can be expressed that way it throws away all MO_VAL_SETs, we have the best expression for it (DW_OP_fbre= g) that is constant through the function, so it is not beneficial to express i= t in one part of the function using that, in another part of the function using = the stack pointer, in yet another part using some other register.=