r277923 - in /trunk/gcc: ChangeLog doc/invoke.t...
fxue@gcc.gnu.org
fxue@gcc.gnu.org
Thu Nov 7 15:43:00 GMT 2019
Author: fxue
Date: Thu Nov 7 15:43:01 2019
New Revision: 277923
URL: https://gcc.gnu.org/viewcvs?rev=277923&root=gcc&view=rev
Log:
Loop split on semi-invariant conditional statement
2019-11-07 Feng Xue <fxue@os.amperecomputing.com>
PR tree-optimization/89134
* doc/invoke.texi (min-loop-cond-split-prob): Document new --params.
* params.def: Add min-loop-cond-split-prob.
* tree-ssa-loop-split.c (split_loop): Remove niter parameter, move some
outside checks on loop into the function.
(split_info): New class.
(find_vdef_in_loop, get_control_equiv_head_block): New functions.
(find_control_dep_blocks, vuse_semi_invariant_p): Likewise.
(ssa_semi_invariant_p, loop_iter_phi_semi_invariant_p): Likewise.
(control_dep_semi_invariant_p, stmt_semi_invariant_p_1): Likewise.
(stmt_semi_invariant_p, branch_removable_p): Likewise.
(get_cond_invariant_branch, compute_added_num_insns): Likewise.
(get_cond_branch_to_split_loop, do_split_loop_on_cond): Likewise.
(split_loop_on_cond): Likewise.
(tree_ssa_split_loops): Add loop split on conditional statement.
2019-11-07 Feng Xue <fxue@os.amperecomputing.com>
PR tree-optimization/89134
* gcc.dg/tree-ssa/loop-cond-split-1.c: New test.
* g++.dg/tree-ssa/loop-cond-split-1.C: New test.
* gcc.dg/torture/pr55107.c: Add -fno-split-loops.
Added:
trunk/gcc/testsuite/g++.dg/tree-ssa/loop-cond-split-1.C
trunk/gcc/testsuite/gcc.dg/tree-ssa/loop-cond-split-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/invoke.texi
trunk/gcc/params.def
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/torture/pr55107.c
trunk/gcc/tree-ssa-loop-split.c
More information about the Gcc-cvs
mailing list