* rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Sep 2010 06:43:47 +0000 (06:43 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Sep 2010 06:43:47 +0000 (06:43 +0000)
commitf9c61ef7079c56ea974db9c5f4bc61e2aabe5f6e
tree95afa643e40b04b8d3422e12829ab8707b957836
parent7c9d8928e2da9a3b9eba57c74de27a51d3449dc6
* rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
* rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
* rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
* print-rtl.c (print_rtx): Likewise.
* cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
* cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
for ADDR_EXPR with non-addressable object.
* dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
(struct dw_val_struct): Add v.val_decl_ref.
(dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
Handle DW_OP_GNU_implicit_pointer.
(size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
(get_ref_die_offset_label): New function.
(implicit_ptr_descriptor): New function.
(mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
(loc_descriptor): Likewise.
(gen_variable_die): Put even definitions into decl_die_table.
(resolve_addr_in_expr): Resolve still unresolved
DW_OP_GNU_implicit_pointer operands, if it can't be resolved
return false.
(dwarf2out_finish): Call output_location_lists after outputting
.debug_info and .debug_abbrev instead of before.

* dwarf2.h (DW_OP_GNU_implicit_pointer): New.

2010-09-09  Roland McGrath  <roland@redhat.com>

* dwarf2out.c (DWARF_REF_SIZE): Define.
(size_of_loc_descr): Use it for DW_OP_call_ref.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164050 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/cfgexpand.c
gcc/cselib.c
gcc/dwarf2out.c
gcc/print-rtl.c
gcc/rtl.c
gcc/rtl.def
gcc/rtl.h
include/ChangeLog
include/dwarf2.h