binutils-gdb/gdb/dwarf2
Tom Tromey e7da7f8f71 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.
2020-04-02 12:49:35 -06:00
..
abbrev.c Don't pass NULL to memcpy in gdb 2020-03-31 07:29:53 -06:00
abbrev.h Use htab_up in abbrev_table 2020-02-08 13:43:24 -07:00
attribute.c Change two functions to be methods on struct attribute 2020-03-26 09:28:28 -06:00
attribute.h Fix comment in dwarf2/attribute.h 2020-03-28 09:25:41 -06:00
comp-unit.c Convert read_address to a method on comp_unit_head 2020-02-08 13:43:24 -07:00
comp-unit.h Convert read_address to a method on comp_unit_head 2020-02-08 13:43:24 -07:00
die.h Rewrite new die_info methods 2020-03-26 09:28:26 -06:00
dwz.c Add dwz.c and dwz_file::read_string 2020-03-26 09:28:09 -06:00
dwz.h Add dwz.c and dwz_file::read_string 2020-03-26 09:28:09 -06:00
expr.c Move DWARF code to dwarf2/ subdirectory 2020-02-08 13:40:59 -07:00
expr.h Move DWARF code to dwarf2/ subdirectory 2020-02-08 13:40:59 -07:00
frame-tailcall.c Return unique_xmalloc_ptr from call_site_find_chain 2020-02-14 12:38:04 -07:00
frame-tailcall.h Move DWARF code to dwarf2/ subdirectory 2020-02-08 13:40:59 -07:00
frame.c Find tailcall frames before inline frames 2020-03-03 15:27:04 -07:00
frame.h Don't forward-declare struct objfile in dwarf2/frame.h 2020-02-11 17:57:46 -07:00
index-cache.c Introduce dwarf2/dwz.h 2020-03-26 09:28:08 -06:00
index-cache.h Move DWARF code to dwarf2/ subdirectory 2020-02-08 13:40:59 -07:00
index-common.c Move DWARF code to dwarf2/ subdirectory 2020-02-08 13:40:59 -07:00
index-common.h Move DWARF code to dwarf2/ subdirectory 2020-02-08 13:40:59 -07:00
index-write.c Introduce dwarf2/dwz.h 2020-03-26 09:28:08 -06:00
index-write.h Move DWARF code to dwarf2/ subdirectory 2020-02-08 13:40:59 -07:00
leb.c Move read_offset_1 to leb.c 2020-02-08 13:43:24 -07:00
leb.h Move two more functions to dwarf2/leb.h 2020-02-08 13:43:24 -07:00
line-header.c Move more code to line-header.c 2020-03-26 09:28:20 -06:00
line-header.h Move more code to line-header.c 2020-03-26 09:28:20 -06:00
loc.c Make dwarf2_evaluate_property parameter const 2020-03-20 13:06:22 -06:00
loc.h Make dwarf2_evaluate_property parameter const 2020-03-20 13:06:22 -06:00
macro.c Trivial fix in dwarf_decode_macro_bytes 2020-03-26 09:28:18 -06:00
macro.h Use a const dwarf2_section_info in macro reader 2020-03-26 09:28:17 -06:00
read.c Micro-optimize partial_die_info::read 2020-04-02 12:49:35 -06:00
read.h Convert read_indirect_line_string to a method 2020-03-26 09:28:19 -06:00
section.c Add dwarf2_section_info::read_string method 2020-03-26 09:28:14 -06:00
section.h Add dwarf2_section_info::read_string method 2020-03-26 09:28:14 -06:00
stringify.c Move DWARF-constant stringifying code to new file 2020-03-26 09:28:26 -06:00
stringify.h Move DWARF-constant stringifying code to new file 2020-03-26 09:28:26 -06:00