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.
This commit is contained in:
Jakub Jelinek 2020-04-11 07:32:12 +02:00
parent 47539a4ace
commit a615ea71bc
2 changed files with 11 additions and 1 deletions

View File

@ -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

View File

@ -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)