From 375bb675bbe7f76b0633c10f2429ac9a4b7a480f Mon Sep 17 00:00:00 2001 From: hagog Date: Mon, 18 Oct 2004 05:31:28 +0000 Subject: 2004-10-18 Revital Eres * Makefile.in (loop-unroll.o): Add VARRAY_H dependency. * loop-unroll.c: Include varray.h. (struct var_to_expand, struct opt_info): Rename split_ivs_info to opt_info and expand it to support variable expansion. (analyze_insns_in_loop): Rename analyze_ivs_to_split and expand it to support variable expansion. (pt_info_start_duplication): Rename si_info_start_duplication. (apply_opt_in_copies): Rename split_ivs_in_copies and add support to the variable expansion optimization. (free_opt_info): Rename free_si_info. (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p, expand_var_during_unrolling, insert_var_expansion_initialization, combine_var_copies_in_loop_exit, release_var_copies, get_expansion): New functions. (peel_loop_completely, unroll_loop_constant_iterations, unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid): Change uses of struct si_info to struct opt_info and add uses of fvariable-expansion-in-unroller flag. * params.def: Add parameter to restrict the number of expansions. * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict the number of expansions. * common.opt: (fvariable-expansion-in-unroller): New flag. * doc/invoke.texi: (fvariable-expansion-in-unroller): Document. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89197 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/common.opt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/common.opt') diff --git a/gcc/common.opt b/gcc/common.opt index 2c5538c4a3e..4d9f184a743 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -748,6 +748,10 @@ fsplit-ivs-in-unroller Common Report Var(flag_split_ivs_in_unroller) Init(1) Split lifetimes of induction variables when loops are unrolled. +fvariable-expansion-in-unroller +Common Report Var(flag_variable_expansion_in_unroller) +Apply variable expansion when loops are unrolled. + ; Emit code to probe the stack, to help detect stack overflow; also ; may cause large objects to be allocated dynamically. fstack-check -- cgit v1.2.1