Re: [lto] [RFC] Design proposal for debug support in LTO

2008-12-24 Thread Steven Bosscher
On Tue, Dec 23, 2008 at 8:03 PM, Cary Coutant  wrote:
> Another approach is to generate the debug information earlier -- in
> the front-end. This approach would significantly alter the structure
> of the compiler and would be a major undertaking.

Would it be more work than what you are proposing?


> In addition, many
> back-end transformations affect the debug information, so the back-end
> would then need an infrastructure for decoding the debug information,
> modifying it, then re-encoding it.

What transformations are you thinking of?  Maybe it is acceptable for
some transformations (e.g. high level loop transforms, aggregate type
reorganization, etc.) to disrupt debug info beyond repair.


> Such an approach might be practical
> for a single debug format, but in order to support the several formats
> that gcc currently supports, it would also become a major undertaking.

But for your approach you effectively end up inventing a completely
new debug info format.

Hve you considered to just use DWARF and translate the DWARF debug
info to a different format in LTRANS?  For example, user wants stabs,
LGEN generates DWARF, LTRANS reads in the DWARF, and dbxout is
modified to translate the DWARF to stabs.


> The debug information for a given tree node will be stored in one of
> two separate global hash tables (one for decls, one for types),
> indexed by the UID, as a list of properties. Each separate fact that
> we need to record will be stored as a property, represented as a (key,
> value) pair. The property keys are simple small integers that identify
> the kind of property being recorded (e.g., Context, Base Classes,
> Member Methods, ...). The property values may be references to another
> tree, a list of trees, or simple integer or string values.

To support all of DWARF, you would need to have property keys for
everything that is in DWARF, so your property keys could be (should
be?) the DWARF tags and attributes.

Gr.
Steven


gcc-4.2-20081224 is now available

2008-12-24 Thread gccadmin
Snapshot gcc-4.2-20081224 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.2-20081224/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.2 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch 
revision 142916

You'll find:

gcc-4.2-20081224.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.2-20081224.tar.bz2 C front end and core compiler

gcc-ada-4.2-20081224.tar.bz2  Ada front end and runtime

gcc-fortran-4.2-20081224.tar.bz2  Fortran front end and runtime

gcc-g++-4.2-20081224.tar.bz2  C++ front end and runtime

gcc-java-4.2-20081224.tar.bz2 Java front end and runtime

gcc-objc-4.2-20081224.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.2-20081224.tar.bz2The GCC testsuite

Diffs from 4.2-20081217 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.2
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.