This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA/dwarf] Optimize partial DIE reading for uninteresting DIEs
- From: Daniel Jacobowitz <drow at false dot org>
- To: gdb-patches at sources dot redhat dot com
- Cc: Jim Blandy <jimb at redhat dot com>
- Date: Tue, 9 Mar 2004 14:58:06 -0500
- Subject: Re: [RFA/dwarf] Optimize partial DIE reading for uninteresting DIEs
- References: <20040225030644.GA5167@nevyn.them.org> <vt21xohlblp.fsf@zenia.home> <20040226231255.GC8487@nevyn.them.org> <vt2wu69jkiv.fsf@zenia.home> <20040227030310.GA24230@nevyn.them.org>
On Thu, Feb 26, 2004 at 10:03:10PM -0500, Daniel Jacobowitz wrote:
> 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.
Nah, seems good, although the difference is just a few percent at most;
I trust from my earlier measurements that it will make more of a
difference down the road. I've checked this in to HEAD.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer