OSDN Git Service

2010-01-22 Steve Ellcey <sje@cup.hp.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog.graphite
index 37da0f6..c2bb01e 100644 (file)
@@ -1,3 +1,361 @@
+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