This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/70159] missed CSE optimization
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 12 Jul 2016 13:32:36 +0000
- Subject: [Bug middle-end/70159] missed CSE optimization
- Auto-submitted: auto-generated
- References: <bug-70159-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70159
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Tue Jul 12 13:32:04 2016
New Revision: 238242
URL: https://gcc.gnu.org/viewcvs?rev=238242&root=gcc&view=rev
Log:
2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
Richard Biener <rguenther@suse.de>
PR tree-optimization/23286
PR tree-optimization/70159
* doc/invoke.texi: Document -fcode-hoisting.
* common.opt (fcode-hoisting): New flag.
* opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
* tree-ssa-pre.c (pre_stats): Add hoist_insert.
(do_regular_insertion): Rename to ...
(do_pre_regular_insertion): ... this and amend general comments
on insertion strathegy.
(do_partial_partial_insertion): Rename to ...
(do_pre_partial_partial_insertion): ... this.
(do_hoist_insertion): New function.
(insert_aux): Take flags on whether to do PRE and/or hoist insertion
and call do_hoist_insertion properly.
(insert): Adjust.
(pass_pre::gate): Enable also if -fcode-hoisting is enabled.
(pass_pre::execute): Register hoist_insert stats.
* gcc.dg/tree-ssa/ssa-pre-11.c: Disable code hosting.
* gcc.dg/tree-ssa/ssa-pre-27.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-28.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-2.c: Likewise.
* gcc.dg/tree-ssa/pr35286.c: Likewise.
* gcc.dg/tree-ssa/pr35287.c: Likewise.
* gcc.dg/hoist-register-pressure-1.c: Likewise.
* gcc.dg/hoist-register-pressure-2.c: Likewise.
* gcc.dg/hoist-register-pressure-3.c: Likewise.
* gcc.dg/pr51879-12.c: Likewise.
* gcc.dg/strlenopt-9.c: Likewise.
* gcc.dg/tree-ssa/pr47392.c: Likewise.
* gcc.dg/tree-ssa/pr68619-4.c: Likewise.
* gcc.dg/tree-ssa/split-path-5.c: Likewise.
* gcc.dg/tree-ssa/slsr-35.c: Likewise.
* gcc.dg/tree-ssa/slsr-36.c: Likewise.
* gcc.dg/tree-ssa/loadpre3.c: Adjust so hosting doesn't apply.
* gcc.dg/tree-ssa/pr43491.c: Scan optimized dump for desired result.
* gcc.dg/tree-ssa/ssa-pre-31.c: Adjust expected outcome for hoisting.
* gcc.dg/tree-ssa/ssa-hoist-1.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-2.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-3.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-4.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-5.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-6.c: New testcase.
* gfortran.dg/pr43984.f90: Adjust expected outcome.
Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-1.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-2.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-3.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-4.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-6.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/common.opt
trunk/gcc/doc/invoke.texi
trunk/gcc/opts.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/hoist-register-pressure-1.c
trunk/gcc/testsuite/gcc.dg/hoist-register-pressure-2.c
trunk/gcc/testsuite/gcc.dg/hoist-register-pressure-3.c
trunk/gcc/testsuite/gcc.dg/pr51879-12.c
trunk/gcc/testsuite/gcc.dg/strlenopt-9.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/loadpre3.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr35286.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr35287.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr43491.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr47392.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr68619-4.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/slsr-35.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/slsr-36.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-11.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-2.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-27.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-28.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-31.c
trunk/gcc/testsuite/gfortran.dg/pr43984.f90
trunk/gcc/tree-ssa-pre.c