From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [RFA 11/15] Allocate the address map on the psymtab obstack
Date: Thu, 10 May 2018 22:25:00 -0000 [thread overview]
Message-ID: <20180510222357.27332-12-tom@tromey.com> (raw)
In-Reply-To: <20180510222357.27332-1-tom@tromey.com>
After this patch, the psymtab address map will now be allocated on the
psymtab obstack rather than the objfile obstack. This also changes
the psymtab storage object to make the obstack private; this will be
used later.
2018-05-10 Tom Tromey <tom@tromey.com>
* psymtab.h (psymtab_storage::obstack): New method.
<m_obstack>: Rename from obstack; now private.
* psymtab.c (psymtab_storage): Update.
* dwarf2read.c (create_addrmap_from_index)
(create_addrmap_from_aranges, dwarf2_build_psymtabs_hard):
Update.
---
gdb/ChangeLog | 9 +++++++++
gdb/dwarf2read.c | 6 +++---
gdb/psymtab.c | 4 ++--
gdb/psymtab.h | 15 +++++++++++----
4 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 03cb4e9d1e..034d5f477f 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3187,7 +3187,7 @@ create_addrmap_from_index (struct dwarf2_per_objfile *dwarf2_per_objfile,
}
objfile->partial_symtabs->psymtabs_addrmap
- = addrmap_create_fixed (mutable_map, &objfile->objfile_obstack);
+ = addrmap_create_fixed (mutable_map, objfile->partial_symtabs->obstack ());
}
/* Read the address map data from DWARF-5 .debug_aranges, and use it to
@@ -3348,7 +3348,7 @@ create_addrmap_from_aranges (struct dwarf2_per_objfile *dwarf2_per_objfile,
}
objfile->partial_symtabs->psymtabs_addrmap
- = addrmap_create_fixed (mutable_map, &objfile->objfile_obstack);
+ = addrmap_create_fixed (mutable_map, objfile->partial_symtabs->obstack ());
}
/* Find a slot in the mapped index INDEX for the object named NAME.
@@ -8424,7 +8424,7 @@ dwarf2_build_psymtabs_hard (struct dwarf2_per_objfile *dwarf2_per_objfile)
objfile->partial_symtabs->psymtabs_addrmap
= addrmap_create_fixed (objfile->partial_symtabs->psymtabs_addrmap,
- &objfile->objfile_obstack);
+ objfile->partial_symtabs->obstack ());
/* At this point we want to keep the address map. */
save_psymtabs_addrmap.release ();
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index f50d0576f8..a7bec436e0 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -68,8 +68,8 @@ static struct compunit_symtab *psymtab_to_symtab (struct objfile *objfile,
\f
psymtab_storage::psymtab_storage (struct objfile *objfile)
- : obstack (&objfile->objfile_obstack),
- psymbol_cache (psymbol_bcache_init ())
+ : psymbol_cache (psymbol_bcache_init ()),
+ m_obstack (&objfile->objfile_obstack)
{
}
diff --git a/gdb/psymtab.h b/gdb/psymtab.h
index 58c4bee98a..36dba3245c 100644
--- a/gdb/psymtab.h
+++ b/gdb/psymtab.h
@@ -55,6 +55,11 @@ public:
void discard_psymtab (struct partial_symtab *pst);
+ struct obstack *obstack ()
+ {
+ return m_obstack;
+ }
+
/* Each objfile points to a linked list of partial symtabs derived from
this file, one partial symtab structure for each compilation unit
@@ -73,10 +78,6 @@ public:
struct partial_symtab *free_psymtabs = nullptr;
- /* The obstack where allocations are made. */
-
- struct obstack *obstack;
-
/* A byte cache where we can stash arbitrary "chunks" of bytes that
will not change. */
@@ -87,6 +88,12 @@ public:
std::vector<partial_symbol *> global_psymbols;
std::vector<partial_symbol *> static_psymbols;
+
+private:
+
+ /* The obstack where allocations are made. */
+
+ struct obstack *m_obstack;
};
--
2.13.6
next prev parent reply other threads:[~2018-05-10 22:25 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-10 22:25 [RFA 00/15] Work toward making psymtabs reusable Tom Tromey
2018-05-10 22:25 ` [RFA 07/15] Change symbol_set_names to take an objfile_per_bfd_storage Tom Tromey
2018-05-10 22:25 ` [RFA 15/15] Move psymtabs to their own obstack Tom Tromey
2018-07-18 14:41 ` Simon Marchi
2018-09-23 21:34 ` Tom Tromey
2018-05-10 22:25 ` [RFA 10/15] Introduce objfile::reset_psymtabs Tom Tromey
2018-07-18 14:04 ` Simon Marchi
2018-05-10 22:25 ` [RFA 03/15] Remove parameters from start_psymtab_common Tom Tromey
2018-07-17 15:41 ` Simon Marchi
2018-05-10 22:25 ` [RFA 04/15] Change add_psymbol_to_list to use an enum Tom Tromey
2018-07-18 2:41 ` Simon Marchi
2018-05-10 22:25 ` [RFA 05/15] Simplify calls to init_psymbol_list Tom Tromey
2018-07-18 2:51 ` Simon Marchi
2018-09-23 21:12 ` Tom Tromey
2018-05-10 22:25 ` [RFA 01/15] Move some declarations to mdebugread.h Tom Tromey
2018-07-17 15:20 ` Simon Marchi
2018-05-10 22:25 ` [RFA 02/15] Remove some unneeded psymtab initializations Tom Tromey
2018-07-17 15:27 ` Simon Marchi
2018-07-18 2:29 ` Simon Marchi
2018-05-10 22:25 ` Tom Tromey [this message]
2018-07-18 14:08 ` [RFA 11/15] Allocate the address map on the psymtab obstack Simon Marchi
2018-05-10 22:25 ` [RFA 08/15] Remove readin and compunit_symtab fields from psymtab Tom Tromey
2018-07-18 3:34 ` Simon Marchi
2018-07-18 18:56 ` Tom Tromey
2018-09-28 5:02 ` Tom Tromey
2018-10-06 1:24 ` Tom Tromey
2018-10-07 22:04 ` Simon Marchi
2018-10-08 0:01 ` Tom Tromey
2018-05-10 22:25 ` [RFA 06/15] Change create_demangled_names_hash to take an objfile_per_bfd_storage Tom Tromey
2018-07-18 2:52 ` Simon Marchi
2018-05-10 22:25 ` [RFA 14/15] Make psymtab_storage::free_psymtabs private Tom Tromey
2018-07-18 14:36 ` Simon Marchi
2018-09-23 21:13 ` Tom Tromey
2018-05-10 22:45 ` [RFA 09/15] Introduce class psymtab_storage Tom Tromey
2018-07-18 14:02 ` Simon Marchi
2018-05-11 10:53 ` [RFA 13/15] Add psymtab_storage::allocate_dependencies Tom Tromey
2018-07-18 14:32 ` Simon Marchi
2018-09-23 21:25 ` Tom Tromey
2018-05-11 10:53 ` [RFA 12/15] Move more allocations to psymtab obstack Tom Tromey
2018-07-18 14:24 ` Simon Marchi
2018-06-18 14:42 ` [RFA 00/15] Work toward making psymtabs reusable Tom Tromey
2018-07-16 16:33 ` Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180510222357.27332-12-tom@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox