From a5a401018905185d6b82395b2c40a15dcb229bc6 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 8 Mar 2024 13:37:50 -0700 Subject: Remove more calls to dwarf2_per_objfile::adjust As with the previous patch, this patch removes some calls to dwarf2_per_objfile::adjust. These calls are not needed by the cooked indexer, as it does not create symbols or look up symbols by address. The call in dwarf2_ranges_read is similarly not needed, as it is only used to update an addrmap; and in any case I believe this particular call is only reached by the indexer. --- gdb/dwarf2/read.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 00e8608..76330d7 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -10919,7 +10919,6 @@ dwarf2_ranges_read (unsigned offset, unrelocated_addr *low_return, unrelocated_addr *high_return, struct dwarf2_cu *cu, addrmap_mutable *map, void *datum, dwarf_tag tag) { - dwarf2_per_objfile *per_objfile = cu->per_objfile; int low_set = 0; unrelocated_addr low = {}; unrelocated_addr high = {}; @@ -10930,13 +10929,10 @@ dwarf2_ranges_read (unsigned offset, unrelocated_addr *low_return, { if (map != nullptr) { - unrelocated_addr lowpc; - unrelocated_addr highpc; - - lowpc = per_objfile->adjust (range_beginning); - highpc = per_objfile->adjust (range_end); /* addrmap only accepts CORE_ADDR, so we must cast here. */ - map->set_empty ((CORE_ADDR) lowpc, (CORE_ADDR) highpc - 1, datum); + map->set_empty ((CORE_ADDR) range_beginning, + (CORE_ADDR) range_end - 1, + datum); } /* FIXME: This is recording everything as a low-high @@ -15996,14 +15992,11 @@ cooked_indexer::check_bounds (cutu_reader *reader) cu, m_index_storage->get_addrmap (), cu->per_cu); if (cu_bounds_kind == PC_BOUNDS_HIGH_LOW && best_lowpc < best_highpc) { - dwarf2_per_objfile *per_objfile = cu->per_objfile; - unrelocated_addr low = per_objfile->adjust (best_lowpc); - unrelocated_addr high = per_objfile->adjust (best_highpc); /* Store the contiguous range if it is not empty; it can be empty for CUs with no code. addrmap requires CORE_ADDR, so we cast here. */ - m_index_storage->get_addrmap ()->set_empty ((CORE_ADDR) low, - (CORE_ADDR) high - 1, + m_index_storage->get_addrmap ()->set_empty ((CORE_ADDR) best_lowpc, + (CORE_ADDR) best_highpc - 1, cu->per_cu); cu->per_cu->addresses_seen = true; @@ -16309,13 +16302,10 @@ cooked_indexer::scan_attributes (dwarf2_per_cu_data *scanning_per_cu, if (*high_pc > *low_pc) { - dwarf2_per_objfile *per_objfile = reader->cu->per_objfile; - unrelocated_addr lo = per_objfile->adjust (*low_pc); - unrelocated_addr hi = per_objfile->adjust (*high_pc); /* Need CORE_ADDR casts for addrmap. */ - m_index_storage->get_addrmap ()->set_empty ((CORE_ADDR) lo, - (CORE_ADDR) hi - 1, - scanning_per_cu); + m_index_storage->get_addrmap ()->set_empty + ((CORE_ADDR) *low_pc, (CORE_ADDR) *high_pc - 1, + scanning_per_cu); } } -- cgit v1.1