dwarf2cfi: Introduce a dw_cfi_row state.
authorRichard Henderson <rth@redhat.com>
Sat, 23 Jul 2011 19:58:46 +0000 (12:58 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sat, 23 Jul 2011 19:58:46 +0000 (12:58 -0700)
commitf17d3401b930ba0b5fd46cd239d9f9d04cbb292b
tree601188a008c6702ea15051b1759dbd0ed9a67feb
parent0be7e7a6dbb4cdf48e76bf9b38f42b95ebf4d752
dwarf2cfi: Introduce a dw_cfi_row state.

Use it instead of old_cfa, old_args_size, and cfa_remember variables.

Remove the global cfa variable, as it was usually a duplicate of
old_cfa and otherwise confusing.  Always make a local copy of the
cur_row->cfa variable before modification instead.

        * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
        (cie_cfi_row): New.
        (new_cfi_row, copy_cfi_row, free_cfi_row): New.
        (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
        (cur_row, remember_row): New.
        (def_cfa_1): Use cur_row instead of the old_* variables.
        (dwarf2out_frame_debug_restore_state): Similarly.
        (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
        (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
        (dwarf2out_frame_debug_adjust_cfa): Likewise.
        (dwarf2out_frame_debug_cfa_offset): Likewise.
        (dwarf2out_frame_debug_expr): Likewise.
        (execute_dwarf2_frame): Set up cur_row.
        * dwarf2out.h (struct cfa_loc): Mark for GTY.

From-SVN: r176697
gcc/ChangeLog
gcc/dwarf2cfi.c
gcc/dwarf2out.h