From 0fe03ac31859b5cdc6760e605dc17ffbccfe1860 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 16 Oct 2012 13:21:20 +0200 Subject: re PR debug/54796 (Non-addressable stack parameter debug quality regression) PR debug/54796 * rtl.h: Document jump flag on VALUE. * cselib.h (cselib_set_value_sp_based, cselib_sp_based_value_p): New prototypes. * alias.c (find_base_term): For cselib_sp_based_value_p return static_reg_base_value[STACK_POINTER_REGNUM]. * cselib.c (SP_BASED_VALUE_P): Define. (cselib_set_value_sp_based, cselib_sp_based_value_p): New functions. * var-tracking.c (add_stores): Call cselib_set_value_sp_based for not yet preserved VALUEs of sp on sp assignments if hard_frame_pointer_adjustment != -1. (vt_initialize): When setting hard_frame_pointer_adjustment, disassociate sp from its previous value and call cselib_set_value_sp_based on a new VALUE created for sp. * gcc.dg/guality/pr54796.c: New test. From-SVN: r192494 --- gcc/cselib.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/cselib.h') diff --git a/gcc/cselib.h b/gcc/cselib.h index 96575f9..95fdbf7 100644 --- a/gcc/cselib.h +++ b/gcc/cselib.h @@ -99,6 +99,8 @@ extern void cselib_preserve_only_values (void); extern void cselib_preserve_cfa_base_value (cselib_val *, unsigned int); extern void cselib_add_permanent_equiv (cselib_val *, rtx, rtx); extern bool cselib_have_permanent_equivalences (void); +extern void cselib_set_value_sp_based (cselib_val *); +extern bool cselib_sp_based_value_p (cselib_val *); extern void dump_cselib_table (FILE *); -- cgit v1.1