1. 25 Jul, 2011 29 commits
  2. 24 Jul, 2011 7 commits
  3. 23 Jul, 2011 4 commits
    • rth's avatar
      dwarf2cfi: Generate and connect traces. · 97c251e4
      rth authored
      This kinda-sorta corresponds to Bernd's 007-dw2cfi patch.  Certainly
      the same concepts of splitting the instruction stream into extended
      basic blocks is the same.  This patch does a bit better job with the
      documentation.  Also, I'm a bit more explicit about matching things
      up with the similar code from the regular CFG routines.
      
      What's missing at this point is any attempt to use DW_CFA_remember_state.
      I've deferred that for the moment because it's easy to test the state
      change code across epilogues, whereas the shrink-wrapping code is not
      in this tree and section switching is difficult to force.
      
              * dwarf2cfi.c: Include basic-block.h.
              (dw_label_info): Remove.
              (trace_work_list, trace_index): New.
              (remember_row, emit_cfa_remember): Remove.
              (dw_trace_info_hash, dw_trace_info_eq): New.
              (get_trace_index, get_trace_info): New.
              (save_point_p): New.
              (free_cfi_row): Remove.
              (add_cfi): Do not emit DW_CFA_remember_state.
              (cfa_row_equal_p): New.
              (barrier_args_size): Remove.
              (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
              (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
              (maybe_record_trace_start, create_trace_edges, scan_trace): New.
              (dwarf2out_cfi_begin_epilogue): Remove.
              (dwarf2out_frame_debug_restore_state): Remove.
              (connect_traces, create_pseudo_cfg): New.
              (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
              * Makefile.in (dwarf2cfi.o): Update.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176705 138bc75d-0d04-0410-961f-82ee72b054a4
      97c251e4
    • rth's avatar
      dwarf2cfi: Introduce dw_trace_info. · b1613fc3
      rth authored
      This patch only introduces the structure definition and adjusts
      the existing routines to use the new cur_trace global to access
      the variables that were moved into the structure.
      
              * dwarf2cfi.c (dw_trace_info): New.
              (dw_label_info): New.
              (cie_return_save): New.
              (cur_trace): New.
              (queued_args_size): Rename from args_size.  Update all users.
              (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
              (def_cfa_1): Use cur_trace instead of cfa_*.
              (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
              (clobbers_queued_reg_save, reg_saved_in): Likewise.
              (dwarf2out_frame_debug_expr): Likewise.
              (create_cie_data): Split out from ...
              (execute_dwarf2_frame): ... here.  Initialize cur_trace.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176704 138bc75d-0d04-0410-961f-82ee72b054a4
      b1613fc3
    • rth's avatar
      dwarf2cfi: Allocate reg_saved_in_data in the heap. · e53680b9
      rth authored
              * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
              Update all users to match.
              (execute_dwarf2_frame): Free reg_saved_in_data.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176703 138bc75d-0d04-0410-961f-82ee72b054a4
      e53680b9
    • rth's avatar
      dwarf2cfi: Convert queued_reg_save to a VEC. · c73aa568
      rth authored
      Also, allocate it in the heap instead of garbage collected.
      
              * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
              (queued_reg_saves): Don't GTY.  Change to a VEC.
              (queue_reg_save): Update to match.
              (dwarf2out_flush_queued_reg_saves): Likewise.
              (clobbers_queued_reg_save): Likewise.
              (reg_saved_in): Likewise.
              (execute_dwarf2_frame): Free queued_reg_saves.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176702 138bc75d-0d04-0410-961f-82ee72b054a4
      c73aa568