diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-03-16 09:35:31 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-03-16 09:35:31 +0100 |
commit | a58a8e4b1f724fdb5edfd09660963404439428f7 (patch) | |
tree | e1c308ef8c1fe2a484b5a77d166cb4b3682c3f18 /gcc/cselib.c | |
parent | 2b1c543325692d744eec22f779656e13605c3ceb (diff) | |
download | gcc-a58a8e4b1f724fdb5edfd09660963404439428f7.zip gcc-a58a8e4b1f724fdb5edfd09660963404439428f7.tar.gz gcc-a58a8e4b1f724fdb5edfd09660963404439428f7.tar.bz2 |
re PR debug/45882 (No debug info for vars depending on unused parameter)
PR debug/45882
* rtl.def (ENTRY_VALUE): Change format from "e" to "0".
* rtl.h (ENTRY_VALUE_EXP): Define.
* rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
* cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
* print-rtl.c (print_rtx): Likewise.
* gengtype.c (adjust_field_rtx_def): Likewise.
* var-tracking.c (vt_add_function_parameter): Adjust
gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
* dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
* cfgexpand.c (expand_debug_expr): If a SSA_NAME without
partition is a default definition of a PARM_DECL, use ENTRY_VALUE
of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
* gcc.dg/guality/pr45882.c: New test.
From-SVN: r171035
Diffstat (limited to 'gcc/cselib.c')
-rw-r--r-- | gcc/cselib.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/cselib.c b/gcc/cselib.c index c142d67..f9e13ff 100644 --- a/gcc/cselib.c +++ b/gcc/cselib.c @@ -803,6 +803,10 @@ rtx_equal_for_cselib_1 (rtx x, rtx y, enum machine_mode memmode) return DEBUG_IMPLICIT_PTR_DECL (x) == DEBUG_IMPLICIT_PTR_DECL (y); + case ENTRY_VALUE: + return rtx_equal_for_cselib_1 (ENTRY_VALUE_EXP (x), ENTRY_VALUE_EXP (y), + memmode); + case LABEL_REF: return XEXP (x, 0) == XEXP (y, 0); @@ -949,6 +953,10 @@ cselib_hash_rtx (rtx x, int create, enum machine_mode memmode) + DECL_UID (DEBUG_IMPLICIT_PTR_DECL (x)); return hash ? hash : (unsigned int) DEBUG_IMPLICIT_PTR; + case ENTRY_VALUE: + hash += cselib_hash_rtx (ENTRY_VALUE_EXP (x), create, memmode); + return hash ? hash : (unsigned int) ENTRY_VALUE; + case CONST_INT: hash += ((unsigned) CONST_INT << 7) + INTVAL (x); return hash ? hash : (unsigned int) CONST_INT; |