DF usage in loop-invariant.c (PR46590)
- df_live is already present at -O2, so we only need to add it and
mark all blocks dirty for -O
- df_process_deferred_rescans should be enough to force a rescan of
blocks affected by moving invariants, but calling it in find_defs
means that we don't do any rescans for the final loop
2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
gcc/
PR rtl-optimization/46590
* loop-invariant.c (find_defs): Move df_remove_problem and
df_process_deferred_rescans to move_invariants.
Move df_live_add_problem and df_live_set_all_dirty calls
to move_invariants.
(move_invariants): Likewise.
(move_loop_invariants): Likewise, making the df_live calls
conditional on -O. Remove the problem again if we added it
locally.
From-SVN: r270142