This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/39141] overzealous unrolling (peeling) destroys code locality
- From: "amylaar at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Jan 2010 20:04:11 -0000
- Subject: [Bug tree-optimization/39141] overzealous unrolling (peeling) destroys code locality
- References: <bug-39141-5394@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from amylaar at gcc dot gnu dot org 2010-01-27 20:04 -------
Subject: Bug 39141
Author: amylaar
Date: Wed Jan 27 20:03:57 2010
New Revision: 156301
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156301
Log:
PR tree-optimization/39141
* tree-ssa-loop-manip.c (gimple_can_duplicate_loop_to_header_edge):
New function.
* tree-ssa-loop-ivcanon.c (enum unroll_level): New value
UL_ESTIMATE_GROWTH.
(try_unroll_loop_completely): Handle UL_ESTIMATE_GROWTH.
(canonicalize_loop_induction_variables): Likewise.
(tree_unroll_loops_completely): Don't completely unroll loops where
the outer loop/function is larger than
PARAM_MAX_COMPLETELY_PEELED_OUTER_INSNS, or will/would become thus
due to unrolling.
* cfgloop.h (enum li_flags): New value LI_REALLY_FROM_INNERMOST.
(fel_init): Handle LI_REALLY_FROM_INNERMOST.
* tree-flow.h (gimple_can_duplicate_loop_to_header_edge): Declare.
* params.def (PARAM_MAX_COMPLETELY_PEELED_OUTER_INSNS): New parameter.
Added:
branches/mpost-opt-imp-20100127/gcc/ChangeLog.mpost
Modified:
branches/mpost-opt-imp-20100127/gcc/cfgloop.h
branches/mpost-opt-imp-20100127/gcc/params.def
branches/mpost-opt-imp-20100127/gcc/tree-flow.h
branches/mpost-opt-imp-20100127/gcc/tree-ssa-loop-ivcanon.c
branches/mpost-opt-imp-20100127/gcc/tree-ssa-loop-manip.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39141