+2010-01-14 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42681
+ * graphite-clast-to-gimple.c (gloog_error): New static variable.
+ (clast_to_gcc_expression): Do not build MULT_EXPR of POINTER_TYPE_P.
+ Set gloog_error when such an expression failed to be built.
+ (translate_clast): Early return when gloog_error is set.
+ (gloog): Clear gloog_error. When gloog_error is set, call
+ set_ifsese_condition to enable the original code. Return the status
+ of the code generation based on gloog_error.
+ * sese.c (set_ifsese_condition): New.
+ * sese.h (set_ifsese_condition): Declared.
+
+ * testsuite/g++.dg/graphite/pr42681.C: New.
+
+2010-01-14 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42732
+ * graphite-clast-to-gimple.c (gloog): Call scev_reset_htab and
+ rename_nb_iterations.
+ * sese.c (rename_variables_in_operand): New.
+ (rename_variables_in_expr): New.
+ (rename_nb_iterations): New.
+ (sese_adjust_liveout_phis): Update the rename_map.
+ * sese.h (rename_nb_iterations): Declared.
+ * tree-scalar-evolution.c (scev_reset_htab): New.
+ (scev_reset): Call scev_reset_htab.
+ * tree-scalar-evolution.h (scev_reset_htab): Declared.
+
+ * testsuite/gfortran.dg/graphite/pr42732.f: New.
+
+2010-01-08 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42393
+ * graphite-clast-to-gimple.c: Fix formatting.
+ * sese.c (defined_in_loop_p): Renamed name_defined_in_loop_p.
+ (expr_defined_in_loop_p): New.
+ (add_loop_exit_phis): Also handle full expressions: remove from
+ the rename_map the expressions defined in the loop that we're closing.
+
+ * testsuite/gfortran.dg/graphite/pr42393-1.f90: New.
+ * testsuite/gfortran.dg/graphite/pr42393.f90: Add new flags
+ -fno-loop-block -fno-loop-interchange -fno-loop-strip-mine to also
+ make this testcase useful in the Graphite branch.
+
+2010-01-08 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-scop-detection.c (exclude_component_ref): Removed.
+ (is_simple_operand): Removed.
+ (stmt_simple_for_scop_p): Remove use of is_simple_operand.
+
+2010-01-07 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42221
+ * sese.c (expand_scalar_variables_expr): Follow the SSA links into
+ the array indexing of ADDR_EXPRs.
+
+ * testsuite/gcc.dg/graphite/pr42221.c: New.
+
+2010-01-07 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42521
+ * graphite.c (graphite_finalize): Call scev_reset.
+ (graphite_transform_loops): Do not call scev_reset between the code
+ generation of scops.
+
+ * testsuite/gcc.dg/graphite/pr42521.c: New.
+
+2010-01-07 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-interchange.c (memory_stride_in_loop): Renamed
+ pdr_stride_in_loop.
+ (memory_strides_in_loop): Renamed memory_strides_in_loop_1.
+ (memory_strides_in_loop): Memoize the memory strides per loop.
+ (lst_interchange_profitable_p): Do not initialize to zero the memory
+ strides.
+ * graphite-poly.h (struct lst): Add a field memory_strides.
+ (LST_LOOP_MEMORY_STRIDES): New.
+ (new_lst_loop): Initialize LST_LOOP_MEMORY_STRIDES to -1.
+ (free_lst): Clear LST_LOOP_MEMORY_STRIDES.
+
+2010-01-07 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-interchange.c (memory_strides_in_loop_depth): Renamed
+ memory_strides_in_loop. Gather memory strides on a whole loop.
+ (pbb_interchange_profitable_p): Renamed lst_interchange_profitable_p.
+ (lst_interchange_profitable_p): Removed.
+ (lst_try_interchange_loops): Call lst_interchange_profitable_p.
+
+2010-01-07 Sebastian Pop <sebastian.pop@amd.com>
+
+ Revert patch 2009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
+ * graphite-clast-to-gimple.c (try_mark_loop_parallel): New.
+ (translate_clast_for, translate_clast_guard, translate_clast, gloog):
+ Remove context_loop and level.
+
+2010-01-07 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/42641
+ * sese.c (rename_map_elt_info): Use the SSA name version, do
+ not hash pointers.
+
+2010-01-06 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-blocking.c (scop_do_block): Print "SCoP will be loop
+ blocked" only when both the strip mine and the interchange have
+ been applied.
+
+ * testsuite/gcc.dg/graphite/block-2.c: Removed.
+ * testsuite/gcc.dg/graphite/block-3.c: Add scan pattern.
+ * testsuite/gcc.dg/graphite/block-4.c: Same.
+ * testsuite/gcc.dg/graphite/block-5.c: Same.
+ * testsuite/gcc.dg/graphite/block-6.c: Same.
+
+2010-01-06 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-clast-to-gimple.c (save_clast_name_index): Free slot
+ before allocating a new one.
+ (copy_renames): Check that slot is not NULL.
+ (mark_bb_with_pbb): Same.
+ (compute_cloog_iv_types_1): Same.
+ * graphite-interchange.c (lst_perfect_nestify): Free the before,
+ nest, and after LSTs.
+ (lst_try_interchange_loops): Same.
+
+2010-01-05 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42178
+ * graphite-interchange.c (lst_try_interchange_loops): Do not return
+ the before, nest, and after LSTs.
+ (lst_try_interchange): Removed.
+ (lst_interchange_select_inner): Do not iterate over the LSTs if they
+ were modified.
+ (lst_interchange_select_outer): Apply interchange on the outer loop
+ until there are no more changes in the inner loops.
+
+2009-12-18 Sebastian Pop <sebastian.pop@amd.com>
+
+ Revert patch fixing PR middle-end/42221.
+
+2009-12-18 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42180
+ * graphite-sese-to-poly.c (follow_ssa_with_commutative_ops): Handle
+ GIMPLE_CALL.
+
+ * testsuite/gfortran.dg/graphite/pr42180.f90: Add compile flags.
+
+2009-12-18 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42180
+ * graphite-sese-to-poly.c (split_reduction_stmt): Do not split blocks
+ that contain only one statement.
+
+ * testsuite/gfortran.dg/graphite/pr42180.f90: New.
+
+2009-12-17 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42393
+ * testsuite/gfortran.dg/graphite/pr42393.f90: New.
+
+2009-12-17 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42186
+ * testsuite/gfortran.dg/graphite/pr42186.f90: New.
+
+2009-12-17 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42205
+ * graphite-sese-to-poly.c (translate_scalar_reduction_to_array_for_stmt):
+ Insert the reduction copy in the same block as the phi node.
+ (follow_ssa_with_commutative_ops): Handle GIMPLE_NOPs.
+
+ * testsuite/gcc.dg/graphite/pr42205-1.c: New.
+ * testsuite/gcc.dg/graphite/pr42205-2.c: New.
+
+2009-12-17 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42221
+ * sese.c (expand_scalar_variables_expr): Follow the SSA links into
+ the array indexing of ADDR_EXPRs.
+
+ * testsuite/gcc.dg/graphite/pr42221.c: New.
+
+2009-12-17 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42178
+ PR middle-end/42334
+ * graphite-interchange.c (lst_try_interchange): Do not modify OUTER
+ index. Call lst_interchange_select_inner only once.
+ (lst_interchange_select_inner): Update use of lst_try_interchange.
+ (lst_interchange_select_outer): Update.
+
+2009-12-15 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42178
+ PR middle-end/42334
+ * graphite-interchange.c (lst_try_interchange): Do not increment the
+ the OUTER index when there is no AFTER kernel. Do not increment the
+ OUTER index for after processing the AFTER kernel.
+ (lst_interchange_select_inner): Call lst_try_interchange only on loops.
+ (lst_interchange_select_outer): Do not pass in a pointer to the OUTER
+ index. Do not pass to lst_interchange_select_inner the OUTER index.
+ (scop_do_interchange): Update use of lst_interchange_select_outer.
+
+ * testsuite/gfortran.dg/graphite/graphite.exp
+ (DEFAULT_FLAGS_GRAPHITE_IDENTITY): Remove -fdump-tree-graphite-all.
+ * testsuite/gfortran.dg/graphite/interchange-1.f: Add comment. Clean
+ the graphite dump file.
+ * testsuite/gfortran.dg/graphite/interchange-2.f: Same.
+ * testsuite/gfortran.dg/graphite/pr42334-1.f: New.
+
+2009-12-15 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42178
+ PR middle-end/42334
+ * graphite-interchange.c (lst_perfect_nestify): Reset to NULL the LSTs
+ that are empty.
+ (lst_do_interchange_1): Renamed lst_interchange_select_inner.
+ (lst_try_interchange): Reimplemented.
+ (lst_interchange_select_inner): Same.
+ (lst_do_interchange): Renamed lst_interchange_select_outer.
+ Reimplemented.
+ (scop_do_interchange): Update use of lst_interchange_select_outer.
+
+ * testsuite/g++.dg/graphite/pr42130.C: Add -fgraphite-identity.
+ * testsuite/gcc.dg/graphite/block-0.c: Un-XFAILed.
+ * testsuite/gcc.dg/graphite/pr42211.c: New.
+ * testsuite/gfortran.dg/graphite/pr42334.f90: New.
+
+2009-12-14 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42181
+ * graphite-scop-detection.c (graphite_can_represent_scev): Handle more
+ carefully PLUS_EXPR, MINUS_EXPR, and MULT_EXPR.
+
+ * testsuite/gfortran.dg/graphite/pr42181.f90: New.
+
+2009-12-12 Sebastian Pop <sebpop@gmail.com>
+
+ PR middle-end/42284
+ * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call
+ insert_out_of_ssa_copy_on_edge for anything else than SSA_NAMEs.
+ (detect_commutative_reduction_arg): Simplified.
+ (detect_commutative_reduction): Early return when the argument of
+ the close phi is not of an SSA_NAME.
+
+ * testsuite/gcc.dg/graphite/pr42284.c: New.
+
+2009-12-11 Alexander Monakov <amonakov@ispras.ru>
+
+ * dbgcnt.def (graphite_scop): New counter.
+ * graphite.c: Include dbgcnt.h
+ (graphite_transform_loops): Use new counter to limit transformations.
+
+2009-12-08 Sebastian Pop <sebpop@gmail.com>
+
+ PR middle-end/42285
+ * graphite-scop-detection.c (graphite_can_represent_init): Also
+ handle more complex MULT_EXPRs containing parameters by recursion
+ on the structure.
+
+ * testsuite/gfortran.dg/graphite/pr42285.f90: New.
+
+2009-12-01 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * testsuite/g++.dg/graphite/pr42130.C: Fix type.
+
+2009-11-29 Alexander Monakov <amonakov@gcc.gnu.org>
+
+ * testsuite/g++.dg/graphite/pr42130.C: Correct testcase.
+
+2009-11-24 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite-clast-to-gimple.c (try_mark_loop_parallel,
+ graphite_create_new_loop_guard, translate_clast_for): Fix comments.
+
+2009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ PR middle-end/42130
+ * graphite-clast-to-gimple.c (graphite_create_new_loop_guard,
+ translate_clast_for_loop): New.
+ (translate_clast_for): Add a condition around the loop, to do not
+ execute loops with zero iterations.
+ * testsuite/g++.dg/graphite/pr42130.C: New.
+ * testsuite/gcc.dg/graphite/pr35356-2.c: Adapt.
+
+2009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite-clast-to-gimple.c (try_mark_loop_parallel): New.
+ (translate_clast_for, translate_clast_guard, translate_clast, gloog):
+ Remove context_loop and level.
+
+2009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite-clast-to-gimple.c (translate_clast_user,
+ translate_clast_for, translate_clast_guard): Simplify and move common
+ elements to translate_clast().
+ (translate_clast): Simplify and get common elements.
+
+2009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite-clast-to-gimple.c (translate_clast_user,
+ translate_clast_for, translate_clast_guard): Split out of
+ translate_clast.
+
+2009-11-21 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite-clast-to-gimple.c (clast_name_index, new_clast_name_index,
+ clast_name_to_index, save_clast_name_index, debug_clast_name_index,
+ debug_clast_name_indexes_1, debug_clast_name_indexes,
+ clast_name_index_elt_info, eq_clast_name_indexes): Moved from sese.h.
+ (clast_name_to_gcc, clast_to_gcc_expression,
+ clast_to_gcc_expression_red, gcc_type_for_clast_expr,
+ gcc_type_for_clast_eq, graphite_translate_clast_equation,
+ graphite_create_guard_cond_expr, graphite_create_new_loop,
+ translate_clast): Add params_index.
+ (initialize_cloog_names): Create parameter strings from scratch, do
+ not reference other strings.
+ (create_params_index): New.
+ (gloog): Initialize params_index.
+ * graphite-scop-detection (free_scops_1): Removed.
+ (limit_scops): Use normal free_scops.
+ * graphite-sese-to-poly.c (save_var_names): Removed.
+ (parameter_index_in_region): Do not initialize SESE_PARAM_NAMES
+ and SESE_PARAMS_INDEX.
+ * sese.c (new_sese, free_sese): Dito.
+ * sese.h (struct sese): Remove params_index, params_names.
+ (SESE_PARAMS_INDEX, SESE_PARAMS_NAMES): Removed.
+
+2009-11-20 Sebastian Pop <sebastian.pop@amd.com>
+
+ Revert the following patch from 2009-09-14:
+ * graphite-blocking.c: Fix order of includes: tree-chrec.h, then
+ tree-scalar-evolution.h, and then tree-data-ref.h.
+ * graphite-clast-to-gimple.c: Same.
+ * graphite-dependences.c: Same.
+ * graphite-interchange.c: Same.
+ * graphite-poly.c: Same.
+ * graphite-scop-detection.c: Same.
+ * graphite-sese-to-poly.c: Same.
+ * graphite.c: Same.
+ * lambda-code.c: Same.
+ * matrix-reorg.c: Same.
+ * tree-data-ref.c: Same.
+ * tree-if-conv.c: Same.
+ * tree-loop-distribu: Same.: Same.
+ * tree-loop-linear.c: Same.
+ * tree-parloops.c: Same.
+ * tree-predcom.c: Same.
+ * tree-vect-patterns.c: Same.
+
+2009-11-20 Sebastian Pop <sebastian.pop@amd.com>
+
+ Revert patch from 2009-09-14.
+ * tree-ssa-loop.c (gate_graphite_transforms): Re-enable Graphite
+ passes at -O1 and below.
+
2009-11-18 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/40281