Commit d19df8b2 by Ilya Leoshkevich Committed by Ilya Leoshkevich

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
parent 27204060
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>
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment