[gcc/devel/ranger] cselib: Mark the cselib_record_sp_cfa_base_equiv VALUE as preserved [PR94551]
Aldy Hernandez
aldyh@gcc.gnu.org
Wed Jun 17 20:22:21 GMT 2020
https://gcc.gnu.org/g:a615ea71bc8fbf31b9bc71cb373a7ca5b9cca44a
commit a615ea71bc8fbf31b9bc71cb373a7ca5b9cca44a
Author: Jakub Jelinek <jakub@redhat.com>
Date: Sat Apr 11 07:32:12 2020 +0200
cselib: Mark the cselib_record_sp_cfa_base_equiv VALUE as preserved [PR94551]
Sometimes the cselib_record_sp_cfa_base_equiv makes it into the var-tracking
used VALUEs and needs to be preserved.
2020-04-11 Jakub Jelinek <jakub@redhat.com>
PR debug/94495
PR target/94551
* cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on
val->val_rtx.
Diff:
---
gcc/ChangeLog | 7 +++++++
gcc/cselib.c | 5 ++++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 33e980bd977..f1a9568d9c4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2020-04-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/94495
+ PR target/94551
+ * cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on
+ val->val_rtx.
+
2020-04-10 Thomas Schwinge <thomas@codesourcery.com>
PR middle-end/89433
diff --git a/gcc/cselib.c b/gcc/cselib.c
index 3692feb13a2..53e9603868d 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -2695,7 +2695,10 @@ cselib_record_sp_cfa_base_equiv (HOST_WIDE_INT offset, rtx_insn *insn)
= cselib_lookup_from_insn (plus_constant (Pmode, sp_derived_value, offset),
Pmode, 1, VOIDmode, insn);
if (val != NULL)
- cselib_record_set (stack_pointer_rtx, val, NULL);
+ {
+ PRESERVED_VALUE_P (val->val_rtx) = 1;
+ cselib_record_set (stack_pointer_rtx, val, NULL);
+ }
}
/* Return true if V is SP_DERIVED_VALUE_P (or SP_DERIVED_VALUE_P + CONST_INT)
More information about the Gcc-cvs
mailing list