aboutsummaryrefslogtreecommitdiff
path: root/gcc/cselib.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cselib.c')
-rw-r--r--gcc/cselib.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/cselib.c b/gcc/cselib.c
index 3692feb..53e9603 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)