Micro-optimize partial_die_info::read
authorTom Tromey <tromey@adacore.com>
Thu, 2 Apr 2020 18:49:35 +0000 (12:49 -0600)
committerTom Tromey <tromey@adacore.com>
Thu, 2 Apr 2020 18:49:35 +0000 (12:49 -0600)
commite7da7f8f71572e3ef71a22ad3fae2388a53bd84c
treea9878cff6821b6e1c1829eea5a3bde8f68b5c36f
parentc90d28ac8903c5781b1a82e487072081383fd7b9
Micro-optimize partial_die_info::read

While profiling the DWARF reader, I noticed that
partial_die_info::read creates a vector to store attributes.  However,
the vector is not needed, as this code only processes a single
attribute at a time.

This patch removes the vector.  On my machine, this improves the time
of "./gdb ./gdb" from 2.22 seconds to 1.92 seconds (mean times over 10
runs).

Note that the attribute is initialized by read_attribute, so it does
not need any special initialization.  Avoiding this also improves
performance a bit.

Tested on x86-64 Fedora 30.  I'm checking this in.

gdb/ChangeLog
2020-04-02  Tom Tromey  <tromey@adacore.com>

* dwarf2/read.c (partial_die_info::read): Do not create a vector
of attributes.
gdb/ChangeLog
gdb/dwarf2/read.c