This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC] Fix PR19401: always completely peel loops


Hi!

This minimal patch unconditionally enables complete loop peeling
at the tree level.

Currently this is guarded with flag_unroll_loops (while at the
RTL level, complete loop peeling is guarded with flag_peel_loops).
Also, tree and RTL complete loop peeling share
PARAM_MAX_COMPLETELY_PEELED_INSNS and PARAM_MAX_COMPLETELY_PEEL_TIMES
which are currently 400 and 16.

Bootstrapped on ia32, thoughts?

Richard.


2005-01-13  Richard Guenther <richard.guenther@uni-tuebingen.de>

	* tree-ssa-loop.c: Run complete unrolling pass unconditionally.
	(gate_tree_complete_unroll): Remove.


Index: gcc/tree-ssa-loop.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-loop.c,v
retrieving revision 2.23
diff -u -r2.23 tree-ssa-loop.c
--- gcc/tree-ssa-loop.c	26 Nov 2004 06:42:25 -0000	2.23
+++ gcc/tree-ssa-loop.c	13 Jan 2005 10:34:08 -0000
@@ -337,16 +337,10 @@
   tree_unroll_loops_completely (current_loops);
 }

-static bool
-gate_tree_complete_unroll (void)
-{
-  return flag_unroll_loops != 0;
-}
-
 struct tree_opt_pass pass_complete_unroll =
 {
   "cunroll",				/* name */
-  gate_tree_complete_unroll,		/* gate */
+  NULL,					/* gate */
   tree_complete_unroll,		       	/* execute */
   NULL,					/* sub */
   NULL,					/* next */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]