]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Remove more calls to dwarf2_per_objfile::adjust
authorTom Tromey <tom@tromey.com>
Fri, 8 Mar 2024 20:37:50 +0000 (13:37 -0700)
committerTom Tromey <tom@tromey.com>
Sat, 4 May 2024 15:30:30 +0000 (09:30 -0600)
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

index 00e8608f9ce4d770f12391435c875611357e2878..76330d7b78484dfcda6142d558d2c672b71b82ae 100644 (file)
@@ -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);
            }
        }