loop splitting
commit28df87300a0dadffa5332e8a8e25688a7e62f5cd
authorMichael Matz <matz@suse.de>
Thu, 20 Oct 2016 12:18:32 +0000 (20 12:18 +0000)
committerMichael Matz <matz@gcc.gnu.org>
Thu, 20 Oct 2016 12:18:32 +0000 (20 12:18 +0000)
tree6e07e23b33a8db22031caaaa3e7c9e1df95f4a16
parenta2e0054e1d169984ec64d64145b71a88a9628537
loop splitting

(approved at https://gcc.gnu.org/ml/gcc-patches/2015-12/msg00648.html )

* common.opt (-fsplit-loops): New flag.
* passes.def (pass_loop_split): Add.
* opts.c (default_options_table): Add OPT_fsplit_loops entry at -O3.
(enable_fdo_optimizations): Add loop splitting.
* timevar.def (TV_LOOP_SPLIT): Add.
* tree-pass.h (make_pass_loop_split): Declare.
* tree-ssa-loop-manip.h (rewrite_into_loop_closed_ssa_1): Declare.
* tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h,
* tree-ssa-loop-split.c: New file.
* Makefile.in (OBJS): Add tree-ssa-loop-split.o.
* doc/invoke.texi (fsplit-loops): Document.
* doc/passes.texi (Loop optimization): Add paragraph about loop
splitting.

testsuite/
* gcc.dg/loop-split.c: New test.
* gcc.dg/tree-ssa/ifc-9.c: Update.
* gcc.dg/tree-ssa/ifc-10.c: Update.

From-SVN: r241374
15 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/common.opt
gcc/doc/invoke.texi
gcc/doc/passes.texi
gcc/opts.c
gcc/passes.def
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/loop-split.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/ifc-10.c
gcc/testsuite/gcc.dg/tree-ssa/ifc-9.c
gcc/timevar.def
gcc/tree-pass.h
gcc/tree-ssa-loop-manip.h
gcc/tree-ssa-loop-split.c [new file with mode: 0644]