Bernd's original patch to optimize dwarf2 cfi for shrink-wrapping
is difficult to analyze because that optimization was done via a
random debugging hook during final, and the cfi notes are deleted
at the end of final so that we don't get debug comparison failures.

By pulling the note creation out to a separate pass, we can dump
the notes and thus debug the optimization.

So far I've tested this only on x86_64-linux.  It needs a bit more
testing across other targets before going in.  Any help that can
be given there would be welcome.

The complete patch set is available at

  git://gcc.gnu.org/git/gcc.git rth/cfi-pass


Thanks,


r~


Richard Henderson (6):
  dwarf2out: Split CFI construction routines into a new file.
  dwarf2out: Move insn scanning out of final.c.
  dwarf2out: Emit NOTE_INSN_CFI_* both with and without cfi-asm.
  dwarf2out: Convert fde_table to a VEC.
  dwarf2: Extract cfi creation to a new pass.
  Dump NOTE_INSN_CFI notes.

 gcc/Makefile.in              |   10 +-
 gcc/ada/gcc-interface/misc.c |   10 -
 gcc/coretypes.h              |   10 +
 gcc/debug.h                  |    5 +-
 gcc/dwarf2cfi.c              | 2734 ++++++++++++++++++++++++++++++++++++
 gcc/dwarf2out.c              | 3171 +++---------------------------------------
 gcc/dwarf2out.h              |  232 +++-
 gcc/final.c                  |   59 +-
 gcc/function.h               |    6 +
 gcc/gengtype.c               |    2 +-
 gcc/insn-notes.def           |    8 +
 gcc/lto-streamer-in.c        |    8 -
 gcc/passes.c                 |    1 +
 gcc/print-rtl.c              |    9 +
 gcc/rtl.h                    |   15 +-
 gcc/toplev.c                 |    5 -
 gcc/tree-pass.h              |    1 +
 17 files changed, 3258 insertions(+), 3028 deletions(-)
 create mode 100644 gcc/dwarf2cfi.c

-- 
1.7.5.4

Reply via email to