From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15228 invoked by alias); 17 Feb 2020 13:38:43 -0000 Mailing-List: contact dwz-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: dwz-owner@sourceware.org Received: (qmail 15203 invoked by uid 48); 17 Feb 2020 13:38:39 -0000 From: "vries at gcc dot gnu.org" To: dwz@sourceware.org Subject: [Bug default/25566] New: [dwz] Take reference size into account in heuristics Date: Wed, 01 Jan 2020 00:00:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: dwz X-Bugzilla-Component: default X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: vries at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: nobody at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2020-q1/txt/msg00076.txt https://sourceware.org/bugzilla/show_bug.cgi?id=3D25566 Bug ID: 25566 Summary: [dwz] Take reference size into account in heuristics Product: dwz Version: unspecified Status: NEW Severity: enhancement Priority: P2 Component: default Assignee: nobody at sourceware dot org Reporter: vries at gcc dot gnu.org CC: dwz at sourceware dot org Target Milestone: --- When looking at executables produced by a lazy DWARF producer, we find that= all the intra-CU references are done using DW_FORM_ref4: ... $ readelf -wa cc1 \ | grep DW_FORM_ref \ | egrep -v "DW_FORM_ref4|DW_FORM_ref_addr" \ | wc -l 0 ... In such a case, if we move a DIE out of a CU into a PU, we replace a DW_FORM_ref4 (size 4 bytes) with a DW_FORM_ref_addr (size 4 bytes in 32-bit DWARF), so, it's size neutral. However, if we handle an executable containing minimal intra-CU references,= the substitution is no longer size-neutral. We should take that into account in= the heuristics. In order to do that, we should track for lower top-level DIEs the number of intra-cu references, and their combined size. --=20 You are receiving this mail because: You are on the CC list for the bug.