Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Branch created for inter-compilation-unit references
@ 2004-02-21 20:08 Daniel Jacobowitz
  2004-02-25  0:18 ` Daniel Jacobowitz
  0 siblings, 1 reply; 29+ messages in thread
From: Daniel Jacobowitz @ 2004-02-21 20:08 UTC (permalink / raw)
  To: gdb

I've just created "drow_intercu-20040221-branch".  I'm going to post and
commit the work I've done over the past two days, which starts at the
opposite end of the problem from several approaches I've seen here in the
past.

At present we could safely ignore the case of partial symbol tables.  The
only inter-die reference that we would even examine during partial symbol
table building is DW_AT_specification (and similar), for the names of
DIEs whose specification is in a namespace.  And generally we have a mangled
name so the fallback that David checked in some weeks ago works OK.

But one of the long-term goals for inter-CU support is to decrease the total
size of debug information.  One way to do that is separating header DIEs
into separate compilation units; but another important way is to scrap
DW_AT_MIPS_linkage_name.  I don't want to add a new dependence on the
mangled names that I would just have to clean up later.

So I've begun with the partial symbol tables.  I haven't actually added any
inter-CU support yet; only support within a single CU for following
DW_AT_specification.  I load all necessary DIEs into memory before parsing
any, with a couple of exceptions for speed.  I build sibling and child
chains like we do for full DIEs.  This is where the performance cost comes
in: the two big hitters are adding the DIEs I want to save to the hash
table, and data cache misses from separating the loading and processing
of the DIE.

My focus so far has been on not increasing startup time for C (primarily) or
C++ (secondarily) applications; I am within about 4% for C and about 8% for
C++. I think that will be acceptable for now - there's room for about 10%
improvement in other parts of GDB for C and 30% for C++, based on my
profiling, and I will pursue it later.  Probably before merging this code.

Next will be real inter-CU support for partial symbols.  Then for full
symbols.  My hope is that I can do both of those without perturbing the
non-inter-CU path too much.

GCC HEAD can already generate the necessary debug information if you want to
play with it; use -gdwarf-2 -feliminate-dwarf2-dups.  I expect it will be at
least a few more days before GDB can read that output.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


^ permalink raw reply	[flat|nested] 29+ messages in thread
* Re: Branch created for inter-compilation-unit references
@ 2004-02-25  3:51 Michael Elizabeth Chastain
  2004-02-25  5:12 ` Andrew Cagney
  0 siblings, 1 reply; 29+ messages in thread
From: Michael Elizabeth Chastain @ 2004-02-25  3:51 UTC (permalink / raw)
  To: drow; +Cc: gdb

> Michael, if you have the chance, I would appreciate it if you could run
> it through your test harness.

Okay, I'll add this branch to the next spin.  Results in about 72 hours.

> If you're really feeling adventurous, you can test the new code when
> using DWARF-2 and GCC 3.3-branch, 3.4-branch, HEAD, tree-ssa, et
> cetera: just add "--target_board unix/-feliminate-dwarf2-dups" to
> RUNTESTFLAGS.  HEAD GDB will choke on this, the branch does not in my
> testing.

I can do a special spin with -feliminate-dwarf2-dups.

> Merging the branch may have to wait until after GDB 6.1.

This process is looking like gcc, which is probably an improvement.
Develop on the branch; verify no regressions; then merge.

Michael C


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2004-02-26 20:19 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-21 20:08 Branch created for inter-compilation-unit references Daniel Jacobowitz
2004-02-25  0:18 ` Daniel Jacobowitz
2004-02-25  0:35   ` Andrew Cagney
2004-02-25  1:29     ` Daniel Jacobowitz
2004-02-25  2:23       ` Andrew Cagney
2004-02-25  2:27         ` Daniel Jacobowitz
2004-02-25  3:17           ` Andrew Cagney
2004-02-25  3:51 Michael Elizabeth Chastain
2004-02-25  5:12 ` Andrew Cagney
2004-02-25 16:10   ` Daniel Berlin
2004-02-25 17:01     ` Andrew Cagney
2004-02-25 17:07       ` Daniel Berlin
2004-02-25 18:50         ` Andrew Cagney
2004-02-25 18:53           ` Daniel Berlin
2004-02-25 19:48             ` Andrew Cagney
2004-02-26  5:48             ` Eli Zaretskii
2004-02-26  6:06               ` Daniel Berlin
2004-02-26  6:31                 ` Eli Zaretskii
2004-02-26 15:05                   ` Daniel Jacobowitz
2004-02-26 16:19                     ` Elena Zannoni
2004-02-26 16:25                       ` Daniel Jacobowitz
2004-02-26 16:36                         ` Elena Zannoni
2004-02-26 16:54                           ` Daniel Jacobowitz
2004-02-26 19:01                           ` Eli Zaretskii
2004-02-26 19:10                     ` Eli Zaretskii
2004-02-26 19:24                     ` Andrew Cagney
2004-02-26 19:28                       ` Daniel Jacobowitz
2004-02-26 20:19                         ` Andrew Cagney
2004-02-26  5:48         ` Eli Zaretskii

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox