From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from barracuda.ebox.ca (barracuda.ebox.ca [96.127.255.19]) by sourceware.org (Postfix) with ESMTPS id 9C72C3954C18 for ; Tue, 12 May 2020 21:17:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 9C72C3954C18 X-ASG-Debug-ID: 1589318267-0c856e314b8938d0001-fS2M51 Received: from smtp.ebox.ca (smtp.ebox.ca [96.127.255.82]) by barracuda.ebox.ca with ESMTP id Hi45vduqr3NTxTMg (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 12 May 2020 17:17:47 -0400 (EDT) X-Barracuda-Envelope-From: simon.marchi@efficios.com X-Barracuda-RBL-Trusted-Forwarder: 96.127.255.82 Received: from epycamd.internal.efficios.com (192-222-181-218.qc.cable.ebox.net [192.222.181.218]) by smtp.ebox.ca (Postfix) with ESMTP id B9864441B21; Tue, 12 May 2020 17:17:47 -0400 (EDT) From: Simon Marchi X-Barracuda-Effective-Source-IP: 192-222-181-218.qc.cable.ebox.net[192.222.181.218] X-Barracuda-Apparent-Source-IP: 192.222.181.218 X-Barracuda-RBL-IP: 192.222.181.218 To: gdb-patches@sourceware.org Subject: [PATCH v2 35/42] Pass dwarf2_per_bfd instead of dwarf2_per_objfile to some index-related functions Date: Tue, 12 May 2020 17:17:05 -0400 X-ASG-Orig-Subj: [PATCH v2 35/42] Pass dwarf2_per_bfd instead of dwarf2_per_objfile to some index-related functions Message-Id: <20200512211712.6543-36-simon.marchi@efficios.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200512210913.5593-1-simon.marchi@efficios.com> References: <20200512210913.5593-1-simon.marchi@efficios.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp.ebox.ca[96.127.255.82] X-Barracuda-Start-Time: 1589318267 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://96.127.255.19:443/cgi-mod/mark.cgi X-Barracuda-Scan-Msg-Size: 9965 X-Virus-Scanned: by bsmtpd at ebox.ca X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=8.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.81805 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Spam-Status: No, score=-25.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_SOFTFAIL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 May 2020 21:17:50 -0000 From: Simon Marchi All these functions actually only need to receive a dwarf2_per_bfd, pass that instead of dwarf2_per_objfile. gdb/ChangeLog: * dwarf2/read.c (create_cu_from_index_list): Replace dwarf2_per_objfile parameter with dwarf2_per_bfd. (create_cus_from_index_list): Likewise. (create_cus_from_index): Likewise. (create_signatured_type_table_from_index): Likewise. (create_cus_from_debug_names_list): Likewise. (create_cus_from_debug_names): Likewise. (dwarf2_read_gdb_index): Update. (dwarf2_read_debug_names): Update. --- gdb/dwarf2/read.c | 90 ++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 47 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 853dd5884a4..5eb32a162b6 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -2474,20 +2474,20 @@ dwarf2_per_bfd::allocate_signatured_type () return result; } -/* Return a new dwarf2_per_cu_data allocated on the dwarf2_per_objfile +/* Return a new dwarf2_per_cu_data allocated on the per-bfd obstack, and constructed with the specified field values. */ static dwarf2_per_cu_data * -create_cu_from_index_list (struct dwarf2_per_objfile *dwarf2_per_objfile, - struct dwarf2_section_info *section, - int is_dwz, - sect_offset sect_off, ULONGEST length) +create_cu_from_index_list (dwarf2_per_bfd *per_bfd, + struct dwarf2_section_info *section, + int is_dwz, + sect_offset sect_off, ULONGEST length) { - dwarf2_per_cu_data *the_cu = dwarf2_per_objfile->per_bfd->allocate_per_cu (); + dwarf2_per_cu_data *the_cu = per_bfd->allocate_per_cu (); the_cu->sect_off = sect_off; the_cu->length = length; the_cu->section = section; - the_cu->v.quick = OBSTACK_ZALLOC (&dwarf2_per_objfile->per_bfd->obstack, + the_cu->v.quick = OBSTACK_ZALLOC (&per_bfd->obstack, struct dwarf2_per_cu_quick_data); the_cu->is_dwz = is_dwz; return the_cu; @@ -2497,7 +2497,7 @@ create_cu_from_index_list (struct dwarf2_per_objfile *dwarf2_per_objfile, CUs. */ static void -create_cus_from_index_list (struct dwarf2_per_objfile *dwarf2_per_objfile, +create_cus_from_index_list (dwarf2_per_bfd *per_bfd, const gdb_byte *cu_list, offset_type n_elements, struct dwarf2_section_info *section, int is_dwz) @@ -2512,32 +2512,31 @@ create_cus_from_index_list (struct dwarf2_per_objfile *dwarf2_per_objfile, cu_list += 2 * 8; dwarf2_per_cu_data *per_cu - = create_cu_from_index_list (dwarf2_per_objfile, section, is_dwz, - sect_off, length); - dwarf2_per_objfile->per_bfd->all_comp_units.push_back (per_cu); + = create_cu_from_index_list (per_bfd, section, is_dwz, sect_off, + length); + per_bfd->all_comp_units.push_back (per_cu); } } /* Read the CU list from the mapped index, and use it to create all - the CU objects for this objfile. */ + the CU objects for PER_BFD. */ static void -create_cus_from_index (struct dwarf2_per_objfile *dwarf2_per_objfile, +create_cus_from_index (dwarf2_per_bfd *per_bfd, const gdb_byte *cu_list, offset_type cu_list_elements, const gdb_byte *dwz_list, offset_type dwz_elements) { - gdb_assert (dwarf2_per_objfile->per_bfd->all_comp_units.empty ()); - dwarf2_per_objfile->per_bfd->all_comp_units.reserve - ((cu_list_elements + dwz_elements) / 2); + gdb_assert (per_bfd->all_comp_units.empty ()); + per_bfd->all_comp_units.reserve ((cu_list_elements + dwz_elements) / 2); - create_cus_from_index_list (dwarf2_per_objfile, cu_list, cu_list_elements, - &dwarf2_per_objfile->per_bfd->info, 0); + create_cus_from_index_list (per_bfd, cu_list, cu_list_elements, + &per_bfd->info, 0); if (dwz_elements == 0) return; - dwz_file *dwz = dwarf2_get_dwz_file (dwarf2_per_objfile->per_bfd); - create_cus_from_index_list (dwarf2_per_objfile, dwz_list, dwz_elements, + dwz_file *dwz = dwarf2_get_dwz_file (per_bfd); + create_cus_from_index_list (per_bfd, dwz_list, dwz_elements, &dwz->info, 1); } @@ -2545,13 +2544,11 @@ create_cus_from_index (struct dwarf2_per_objfile *dwarf2_per_objfile, static void create_signatured_type_table_from_index - (struct dwarf2_per_objfile *dwarf2_per_objfile, - struct dwarf2_section_info *section, - const gdb_byte *bytes, - offset_type elements) + (dwarf2_per_bfd *per_bfd, struct dwarf2_section_info *section, + const gdb_byte *bytes, offset_type elements) { - gdb_assert (dwarf2_per_objfile->per_bfd->all_type_units.empty ()); - dwarf2_per_objfile->per_bfd->all_type_units.reserve (elements / 3); + gdb_assert (per_bfd->all_type_units.empty ()); + per_bfd->all_type_units.reserve (elements / 3); htab_up sig_types_hash = allocate_signatured_type_table (); @@ -2571,23 +2568,23 @@ create_signatured_type_table_from_index signature = extract_unsigned_integer (bytes + 16, 8, BFD_ENDIAN_LITTLE); bytes += 3 * 8; - sig_type = dwarf2_per_objfile->per_bfd->allocate_signatured_type (); + sig_type = per_bfd->allocate_signatured_type (); sig_type->signature = signature; sig_type->type_offset_in_tu = type_offset_in_tu; sig_type->per_cu.is_debug_types = 1; sig_type->per_cu.section = section; sig_type->per_cu.sect_off = sect_off; sig_type->per_cu.v.quick - = OBSTACK_ZALLOC (&dwarf2_per_objfile->per_bfd->obstack, + = OBSTACK_ZALLOC (&per_bfd->obstack, struct dwarf2_per_cu_quick_data); slot = htab_find_slot (sig_types_hash.get (), sig_type, INSERT); *slot = sig_type; - dwarf2_per_objfile->per_bfd->all_type_units.push_back (sig_type); + per_bfd->all_type_units.push_back (sig_type); } - dwarf2_per_objfile->per_bfd->signatured_types = std::move (sig_types_hash); + per_bfd->signatured_types = std::move (sig_types_hash); } /* Create the signatured type hash table from .debug_names. */ @@ -3106,7 +3103,7 @@ dwarf2_read_gdb_index } } - create_cus_from_index (dwarf2_per_objfile, cu_list, cu_list_elements, + create_cus_from_index (dwarf2_per_objfile->per_bfd, cu_list, cu_list_elements, dwz_list, dwz_list_elements); if (types_list_elements) @@ -3118,8 +3115,9 @@ dwarf2_read_gdb_index dwarf2_section_info *section = &dwarf2_per_objfile->per_bfd->types[0]; - create_signatured_type_table_from_index (dwarf2_per_objfile, section, - types_list, types_list_elements); + create_signatured_type_table_from_index (dwarf2_per_objfile->per_bfd, + section, types_list, + types_list_elements); } create_addrmap_from_index (dwarf2_per_objfile, map.get ()); @@ -5079,7 +5077,7 @@ read_debug_names_from_section (struct objfile *objfile, list. */ static void -create_cus_from_debug_names_list (struct dwarf2_per_objfile *dwarf2_per_objfile, +create_cus_from_debug_names_list (dwarf2_per_bfd *per_bfd, const mapped_debug_names &map, dwarf2_section_info §ion, bool is_dwz) @@ -5098,9 +5096,8 @@ create_cus_from_debug_names_list (struct dwarf2_per_objfile *dwarf2_per_objfile, the next CU as end of this CU. We create the CUs here with length 0, and in cutu_reader::cutu_reader we'll fill in the actual length. */ dwarf2_per_cu_data *per_cu - = create_cu_from_index_list (dwarf2_per_objfile, §ion, is_dwz, - sect_off, 0); - dwarf2_per_objfile->per_bfd->all_comp_units.push_back (per_cu); + = create_cu_from_index_list (per_bfd, §ion, is_dwz, sect_off, 0); + per_bfd->all_comp_units.push_back (per_cu); } } @@ -5122,9 +5119,9 @@ create_cus_from_debug_names_list (struct dwarf2_per_objfile *dwarf2_per_objfile, { const ULONGEST length = sect_off_next - sect_off_prev; dwarf2_per_cu_data *per_cu - = create_cu_from_index_list (dwarf2_per_objfile, §ion, is_dwz, + = create_cu_from_index_list (per_bfd, §ion, is_dwz, sect_off_prev, length); - dwarf2_per_objfile->per_bfd->all_comp_units.push_back (per_cu); + per_bfd->all_comp_units.push_back (per_cu); } sect_off_prev = sect_off_next; } @@ -5134,22 +5131,21 @@ create_cus_from_debug_names_list (struct dwarf2_per_objfile *dwarf2_per_objfile, the CU objects for this dwarf2_per_objfile. */ static void -create_cus_from_debug_names (struct dwarf2_per_objfile *dwarf2_per_objfile, +create_cus_from_debug_names (dwarf2_per_bfd *per_bfd, const mapped_debug_names &map, const mapped_debug_names &dwz_map) { - gdb_assert (dwarf2_per_objfile->per_bfd->all_comp_units.empty ()); - dwarf2_per_objfile->per_bfd->all_comp_units.reserve (map.cu_count + dwz_map.cu_count); + gdb_assert (per_bfd->all_comp_units.empty ()); + per_bfd->all_comp_units.reserve (map.cu_count + dwz_map.cu_count); - create_cus_from_debug_names_list (dwarf2_per_objfile, map, - dwarf2_per_objfile->per_bfd->info, + create_cus_from_debug_names_list (per_bfd, map, per_bfd->info, false /* is_dwz */); if (dwz_map.cu_count == 0) return; - dwz_file *dwz = dwarf2_get_dwz_file (dwarf2_per_objfile->per_bfd); - create_cus_from_debug_names_list (dwarf2_per_objfile, dwz_map, dwz->info, + dwz_file *dwz = dwarf2_get_dwz_file (per_bfd); + create_cus_from_debug_names_list (per_bfd, dwz_map, dwz->info, true /* is_dwz */); } @@ -5188,7 +5184,7 @@ dwarf2_read_debug_names (struct dwarf2_per_objfile *dwarf2_per_objfile) } } - create_cus_from_debug_names (dwarf2_per_objfile, *map, dwz_map); + create_cus_from_debug_names (dwarf2_per_objfile->per_bfd, *map, dwz_map); if (map->tu_count != 0) { -- 2.26.2