1. 25 Jul, 2011 32 commits
  2. 24 Jul, 2011 7 commits
  3. 23 Jul, 2011 1 commit
    • dwarf2cfi: Generate and connect traces. · 829bdd4b
      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.
      
      From-SVN: r176705
      Richard Henderson committed