+2009-07-12 Ira Rosen <irar@il.ibm.com>
+
+ * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
+ with additional argument.
+ * tree-vectorizer.h (enum vect_def_type): Add
+ vect_double_reduction_def.
+ (vect_is_simple_reduction): Add argument.
+ * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
+ indentation.
+ (vect_analyze_scalar_cycles_1): Detect double reduction. Call
+ vect_is_simple_reduction with additional argument.
+ (vect_analyze_loop_operations): Handle exit phi nodes in case of
+ double reduction.
+ (reduction_code_for_scalar_code): Handle additional codes by
+ returning ERROR_MARK for them. Fix comment and indentation.
+ (vect_is_simple_reduction): Fix comment, add argument to specify
+ double reduction. Detect double reduction.
+ (get_initial_def_for_induction): Fix indentation.
+ (get_initial_def_for_reduction): Fix comment and indentation.
+ Handle double reduction. Create initial definitions that do not
+ require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
+ (vect_create_epilog_for_reduction): Fix comment, add argument to
+ handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
+ epilogue result extraction. Create double reduction phi node and
+ replace relevant uses.
+ (vectorizable_reduction): Call vect_is_simple_reduction with
+ additional argument. Fix indentation. Update epilogue code treatment
+ according to the changes in reduction_code_for_scalar_code. Check
+ for double reduction. Call vect_create_epilog_for_reduction with
+ additional argument.
+ * tree-vect-stmts.c (process_use): Handle double reduction, update
+ documentation.
+ (vect_mark_stmts_to_be_vectorized): Handle double reduction.
+ (vect_get_vec_def_for_operand): Likewise.
+
2009-07-12 Danny Smith <dansmister@gmail.com>
* config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't