aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Leoshkevich <iii@linux.ibm.com>2019-11-14 16:40:33 +0000
committerIlya Leoshkevich <iii@gcc.gnu.org>2019-11-14 16:40:33 +0000
commitd19df8b22998766fec1d3c3af055639ba2d172e5 (patch)
treefbaddaa1fab9ae6d15d69396418c2cc093296c45
parent27204060db51ed0637e394dff387c66c6b944726 (diff)
downloadgcc-d19df8b22998766fec1d3c3af055639ba2d172e5.zip
gcc-d19df8b22998766fec1d3c3af055639ba2d172e5.tar.gz
gcc-d19df8b22998766fec1d3c3af055639ba2d172e5.tar.bz2
Make flag_thread_jumps a gate of pass_jump_after_combine
This is a follow-up to https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00919.html (r278095). Dominance info is deleted even if we don't perform jump threading. Since the whole point of this pass is to perform jump threading (other cleanups are not valuable at this point), skip it completely when flag_thread_jumps is not set. gcc/ChangeLog: 2019-11-14 Ilya Leoshkevich <iii@linux.ibm.com> PR rtl-optimization/92430 * cfgcleanup.c (pass_jump_after_combine::gate): New function. (pass_jump_after_combine::execute): Perform jump threading unconditionally. From-SVN: r278254
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cfgcleanup.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7140f5a..051b10e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2019-11-14 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ PR rtl-optimization/92430
+ * cfgcleanup.c (pass_jump_after_combine::gate): New function.
+ (pass_jump_after_combine::execute): Perform jump threading
+ unconditionally.
+
2019-11-14 Jerome Lambourg <lambourg@adacore.com>
Doug Rupp <rupp@adacore.com>
Olivier Hainque <hainque@adacore.com>
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 7f38825..f1d421b 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -3304,6 +3304,7 @@ public:
{}
/* opt_pass methods: */
+ virtual bool gate (function *) { return flag_thread_jumps; }
virtual unsigned int execute (function *);
}; // class pass_jump_after_combine
@@ -3313,7 +3314,7 @@ pass_jump_after_combine::execute (function *)
{
/* Jump threading does not keep dominators up-to-date. */
free_dominance_info (CDI_DOMINATORS);
- cleanup_cfg (flag_thread_jumps ? CLEANUP_THREADING : 0);
+ cleanup_cfg (CLEANUP_THREADING);
return 0;
}