Re: [RFA/dwarf] Optimize partial DIE reading for uninteresting DIEs

Daniel Jacobowitz
2004-02-27T03:03:12Z

On Thu, Feb 26, 2004 at 09:58:32PM -0500, Jim Blandy wrote:
>
> Daniel Jacobowitz <drow@false.org> writes:
> > You're mistaken about the expense. In particular read_unsigned_leb128
> > is much slower than skip_uleb128 because of the computations to build
> > the result; IIRC variable shifts are expensive. Yes, this was measured
> > with an optimized build and a non-intrusive profiler. There's also the
> > different memory access patterns.
>
> No kidding. I'm amazed. Okay.
>
> > Most of the speedup comes from not reading in the attribute values,
> > though.
>
> If what you say above is so, then two distinct versions of the
> attribute traversal are clearly called for.
>
> It would be interesting to compare profiling results between two GDB's
> that differ only in whether they use your attribute skipper or the
> attribute value reader.

For this patch, the changes were pretty small. For the larger change,
with just partial symbol table reading, read_unsigned_leb128 dropped
way down and skip_leb128 didn't climb equally far up.

Let me reproduce those results, though. Something seems suspicious.