dwarf2: Extract cfi creation to a new pass.
authorRichard Henderson <rth@redhat.com>
Fri, 8 Jul 2011 00:05:57 +0000 (17:05 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 8 Jul 2011 00:05:57 +0000 (17:05 -0700)
commit7644b3c7f08daeec085f4dc2ba180dab5bc29d28
tree423b5bc61bca007f2d488d591b3421ca41386eaf
parenta518b99616d4d007e289654332c934e7c3ec8d52
dwarf2: Extract cfi creation to a new pass.

        * tree-pass.h (pass_dwarf2_frame): Declare.
        * passes.c (init_optimization_passes): Add it.
        * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
        (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
        make static, do not call add_cfis_to_fde.
        (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
        dwarf2out_frame_init): Merge into...
        (execute_dwarf2_frame): ... here.  New function.
        (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
        saved_do_cfi_asm to a tri-state variable.
        (gate_dwarf2_frame, pass_dwarf2_frame): New.
        * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
        if it has yet to be done.  Don't call dwarf2cfi_function_init.
        * dwarf2out.h, debug.h: Update decls.
        * final.c (final_start_function): Don't call
        dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
        * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
        * toplev.c (lang_dependent_init): Likewise.

From-SVN: r176019
12 files changed:
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/gcc-interface/misc.c
gcc/debug.h
gcc/dwarf2cfi.c
gcc/dwarf2out.c
gcc/dwarf2out.h
gcc/final.c
gcc/lto-streamer-in.c
gcc/passes.c
gcc/toplev.c
gcc/tree-pass.h