aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/var-tracking.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9f7927d..180c92f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2020-03-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/92264
+ * var-tracking.c (add_stores): Call cselib_set_value_sp_based even
+ for sp based values in !frame_pointer_needed
+ && !ACCUMULATE_OUTGOING_ARGS functions.
+
2020-03-26 Felix Yang <felix.yang@huawei.com>
PR tree-optimization/94269
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 9984565..a9ca16b 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -6112,7 +6112,8 @@ add_stores (rtx loc, const_rtx expr, void *cuip)
}
if (loc == stack_pointer_rtx
- && maybe_ne (hard_frame_pointer_adjustment, -1)
+ && (maybe_ne (hard_frame_pointer_adjustment, -1)
+ || (!frame_pointer_needed && !ACCUMULATE_OUTGOING_ARGS))
&& preserve)
cselib_set_value_sp_based (v);