aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2010-09-09 08:43:47 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2010-09-09 08:43:47 +0200
commitc8a27c401821b4d29c28add396177637f9f381d5 (patch)
tree95afa643e40b04b8d3422e12829ab8707b957836 /gcc/rtl.c
parenteed023ccd5bb3b3bc9690b79d18c645637527e43 (diff)
downloadgcc-c8a27c401821b4d29c28add396177637f9f381d5.zip
gcc-c8a27c401821b4d29c28add396177637f9f381d5.tar.gz
gcc-c8a27c401821b4d29c28add396177637f9f381d5.tar.bz2
rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
* 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. From-SVN: r164050
Diffstat (limited to 'gcc/rtl.c')
-rw-r--r--gcc/rtl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/rtl.c b/gcc/rtl.c
index 79dafcb..3a6affc 100644
--- a/gcc/rtl.c
+++ b/gcc/rtl.c
@@ -407,6 +407,10 @@ rtx_equal_p_cb (const_rtx x, const_rtx y, rtx_equal_p_callback_function cb)
case CONST_FIXED:
return 0;
+ case DEBUG_IMPLICIT_PTR:
+ return DEBUG_IMPLICIT_PTR_DECL (x)
+ == DEBUG_IMPLICIT_PTR_DECL (y);
+
default:
break;
}
@@ -527,6 +531,10 @@ rtx_equal_p (const_rtx x, const_rtx y)
case CONST_FIXED:
return 0;
+ case DEBUG_IMPLICIT_PTR:
+ return DEBUG_IMPLICIT_PTR_DECL (x)
+ == DEBUG_IMPLICIT_PTR_DECL (y);
+
default:
break;
}