aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/recog.c15
2 files changed, 12 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 072c891..cb4132f9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2020-02-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/92190
+ * recog.c (pass_split_after_reload::gate): For STACK_REGS targets,
+ don't run when !optimize.
+ (pass_split_before_regstack::gate): For STACK_REGS targets, run even
+ when !optimize.
+
2020-02-05 Richard Biener <rguenther@suse.de>
PR middle-end/90648
diff --git a/gcc/recog.c b/gcc/recog.c
index 5dd1a92..5790a58 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -3924,14 +3924,7 @@ public:
virtual bool gate (function *)
{
/* If optimizing, then go ahead and split insns now. */
- if (optimize > 0)
- return true;
-
-#ifdef STACK_REGS
- return true;
-#else
- return false;
-#endif
+ return optimize > 0;
}
virtual unsigned int execute (function *)
@@ -3991,12 +3984,12 @@ pass_split_before_regstack::gate (function *)
split until final which doesn't allow splitting
if HAVE_ATTR_length. */
# ifdef INSN_SCHEDULING
- return (optimize && !flag_schedule_insns_after_reload);
+ return !optimize || !flag_schedule_insns_after_reload;
# else
- return (optimize);
+ return true;
# endif
#else
- return 0;
+ return false;
#endif
}