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]

Re: [PATCH 00/65] Merge from the Graphite branch to trunk


On Mon, Aug 02, 2010 at 03:19:33PM -0500, Sebastian Pop wrote:
> Hi,
> 
> This patch-set merges the changes that went into the Graphite branch
> for the past two months.  These changes are stable: the automatic
> testers passed bootstrap and CPU2006 benchmarks with no fails and with
> various Graphite flag configurations.
> 
> Note that some of the patches contain only a change in
> ChangeLog.graphite, these are either already in trunk, or implement
> functionality that is not stable enough, and will remain for now in
> the branch.  These changes are those linked to the new SCoP detection
> algorithm.
> 
> I am testing this merge on amd64-linux.  I will wait for 48 hours to
> let reviewers enough time to re-review these patches.  All these
> changes have already been discussed prior to their commit to the
> Graphite branch.  If there are other changes before committing to
> trunk, I will implement the needed changes.
> 
> Thanks,
> Sebastian
> 
> grosser (7):
>   Add analysis pass to build the refined program structure tree.
>   Skeleton for the new SCoP detection.
>   Fix refined region tree nesting.
>   Resolve CLooG's value_* macros to their respective mpz_*
>     counterparts.
>   Move cloog-related functions from graphite-ppl.{c,h} to new
>     graphite-cloog-util.{c,h}.
>   Partially removing cloog.h and graphite-clast-to-gimple.h where
>     possible. Removing unused function check_poly_representation.
>   Fix flipped condition using mpz_sgn.
> 
> spop (58):
>   Fix invariant phi node removal.
>   Fix type of integer_one_node for fold_build of POINTER_PLUS_EXPR.
>   Use size_one_node.
>   Fix comments and indentation.
>   Do not gather loop exit conditions on the basic blocks outside the
>     loop.
>   Call compute_overall_effect_of_inner_loop from instantiate_scev_name.
>   Don't call pbb_to_depth_to_oldiv from compute_type_for_level.
>   Launch dotty in background.
>   Detect commutative reductions in all the scops before rewriting out
>     of SSA all the other scalar dependences.
>   Remove insert_copyout and insert_copyin.
>   Also rewrite out of SSA scalar dependences going outside the SCoP
>     region.
>   Remove rename_nb_iterations and rename_sese_parameters
>   Schedule a copy_prop pass before graphite.
>   Add more debug counter guards.
>   Split rewrite_cross_bb_scalar_deps_out_of_ssa out from
>     rewrite_reductions_out_of_ssa.
>   Always insert out of SSA copies on edges except for loop->latch.
>   Fix testcase: call abort.
>   Early return in rewrite_commutative_reductions_out_of_ssa when
>     flag_associative_math is not set.
>   Run rewrite_cross_bb_phi_deps before rewrite_cross_bb_scalar_deps.
>   Remove copy_renames.
>   Replace map with rename_map.
>   Remove dead code.
>   Fix 435.gromacs miscompile: call rewrite_close_phi_out_of_ssa from
>     rewrite_cross_bb_phi_deps.
>   Fix 416.gamess miscompile: special case the rewrite of degenerate phi
>     nodes.
>   Print bbs in refined region tree.
>   Add testcase for miscompile in gamess.
>   Remove insert_loop_close_phis.
>   Remove expand_scalar_variables_ hack.
>   chrec_apply should only apply to the specified variable.
>   Also handle GIMPLE_CALLs in rewrite_cross_bb_scalar_deps.
>   Remove uses of loop->single_iv.
>   Bump the size of scevs.
>   Scevs could be expressions without chrecs and still be
>     scev_analyzable_p.
>   Special case non close-phi nodes with one argument in
>     rewrite_close_phi_out_of_ssa.
>   Add testcase for PR42729 and fix handling of gimple_debug info.
>   Correctly handle SSA_NAME_IS_DEFAULT_DEF in
>     rewrite_close_phi_out_of_ssa.
>   Do not rewrite out of SSA scalar phi nodes that can be
>     scev_analyzable_p.
>   Unshare the scev before code generating it.
>   Add testcase for PR20742.
>   Do not translate out-of-SSA close phi nodes that can be analyzed with
>     scev.
>   Dot refined regions.
>   Add loop_exits_from_bb_p.
>   Enhance region checks.
>   Do not instantiate default definitions in instantiate_scev_name.
>   Use SSA_NAME_DEF_STMT only on SSA_NAMEs.
>   Propagate constant values or parametric expressions outside the scop
>     region.
>   Call scev_analyzable_p only on is_gimple_reg.
>   Fix tonto: call propagate_expr_outside_region.
>   Call scev_reset_htab when Graphite out-of-SSA has changed something.
>   Reintroduce necessary CLooG accessors to graphite. Masked by
>     CLOOG_ORG.
>   Make CLooG options compatible to newer CLooG releases and pass
>     options to build_cloog_prog (CLOOG_ORG).
>   Adapt to new CLAST structure within upstream CLooG version and retain
>     compatibility to CLooG Legacy.
>   Introduce compatibility to newer CLooG's CloogState and mask the use
>     with macros where possible.
>   Adapt to new CloogScattering abstraction, introduced in official
>     CLooG versions (CLOOG_ORG).
>   Remove cloog_initialize and cloog_finalize when using official CLooG
>     releases.
>   Fix typos.
>   Fix gamess: the only constant phi nodes with one argument are
>     is_gimple_min_invariant and SSA_NAME_IS_DEFAULT_DEF.
>   Fix miscompile of 416.gamess.
> 
>  gcc/ChangeLog                              |  552 +++++++++++++++
>  gcc/ChangeLog.graphite                     |  704 ++++++++++++++++++-
>  gcc/Makefile.in                            |    9 +-
>  gcc/cfgloop.c                              |   20 +-
>  gcc/cfgloop.h                              |    7 +-
>  gcc/dbgcnt.def                             |    1 +
>  gcc/graphite-blocking.c                    |    1 -
>  gcc/graphite-clast-to-gimple.c             |  356 ++++------
>  gcc/graphite-clast-to-gimple.h             |    6 +-
>  gcc/graphite-cloog-compat.h                |  263 +++++++
>  gcc/graphite-cloog-util.c                  |  299 ++++++++
>  gcc/graphite-cloog-util.h                  |   36 +
>  gcc/graphite-dependences.c                 |    5 +-
>  gcc/graphite-interchange.c                 |    3 +-
>  gcc/graphite-poly.c                        |    7 +-
>  gcc/graphite-ppl.c                         |  248 +-------
>  gcc/graphite-ppl.h                         |    6 -
>  gcc/graphite-scop-detection.c              |    3 +-
>  gcc/graphite-sese-to-poly.c                |  544 ++++++++-------
>  gcc/graphite-sese-to-poly.h                |    5 +-
>  gcc/graphite.c                             |   32 +-
>  gcc/params.def                             |    2 +-
>  gcc/passes.c                               |    7 +-
>  gcc/sese.c                                 | 1062 ++++------------------------
>  gcc/sese.h                                 |   23 +-
>  gcc/testsuite/ChangeLog                    |   54 ++
>  gcc/testsuite/gcc.dg/graphite/id-20.c      |   26 +
>  gcc/testsuite/gcc.dg/graphite/id-22.c      |   15 +
>  gcc/testsuite/gcc.dg/graphite/id-23.c      |   22 +
>  gcc/testsuite/gcc.dg/graphite/id-24.c      |   22 +
>  gcc/testsuite/gcc.dg/graphite/id-25.c      |   34 +
>  gcc/testsuite/gcc.dg/graphite/id-26.c      |   24 +
>  gcc/testsuite/gcc.dg/graphite/pr42729.c    |   15 +
>  gcc/testsuite/gcc.dg/graphite/run-id-2.c   |   12 +-
>  gcc/testsuite/gcc.dg/graphite/run-id-5.c   |   54 ++
>  gcc/testsuite/gcc.dg/graphite/run-id-6.c   |   55 ++
>  gcc/testsuite/gcc.dg/tree-ssa/pr20742.c    |   18 +
>  gcc/testsuite/gfortran.dg/graphite/id-20.f |   10 +
>  gcc/testsuite/gfortran.dg/graphite/id-21.f |   20 +
>  gcc/testsuite/gfortran.dg/graphite/id-22.f |   10 +
>  gcc/timevar.def                            |    1 +
>  gcc/tree-chrec.c                           |   62 ++-
>  gcc/tree-chrec.h                           |    1 +
>  gcc/tree-pass.h                            |    1 +
>  gcc/tree-scalar-evolution.c                |   13 +-
>  gcc/tree-ssa-loop.c                        |   19 +
>  46 files changed, 2976 insertions(+), 1713 deletions(-)
>  create mode 100644 gcc/graphite-cloog-compat.h
>  create mode 100644 gcc/graphite-cloog-util.c
>  create mode 100644 gcc/graphite-cloog-util.h
>  create mode 100644 gcc/testsuite/gcc.dg/graphite/id-20.c
>  create mode 100644 gcc/testsuite/gcc.dg/graphite/id-22.c
>  create mode 100644 gcc/testsuite/gcc.dg/graphite/id-23.c
>  create mode 100644 gcc/testsuite/gcc.dg/graphite/id-24.c
>  create mode 100644 gcc/testsuite/gcc.dg/graphite/id-25.c
>  create mode 100644 gcc/testsuite/gcc.dg/graphite/id-26.c
>  create mode 100644 gcc/testsuite/gcc.dg/graphite/pr42729.c
>  create mode 100644 gcc/testsuite/gcc.dg/graphite/run-id-5.c
>  create mode 100644 gcc/testsuite/gcc.dg/graphite/run-id-6.c
>  create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr20742.c
>  create mode 100644 gcc/testsuite/gfortran.dg/graphite/id-20.f
>  create mode 100644 gcc/testsuite/gfortran.dg/graphite/id-21.f
>  create mode 100644 gcc/testsuite/gfortran.dg/graphite/id-22.f

    Sebastian provided the following clarification on those patches
posted with only ChangeLog entries...

---------------------------------------------------------------------
On Thu, Aug 05, 2010 at 12:23:42AM -0500, Sebastian Pop wrote:
> On Wed, Aug 4, 2010 at 21:20, Jack Howarth <howarth@bromo.med.uc.edu> wrote:
> > Sebastian,
> > ? FYI, the patches that appear to be missing content
> > (ie are ChangeLog only) are...
> >
> > [PATCH 02/65] Fix type of integer_one_node for fold_build of POINTER_PLUS_EXPR.
> > [PATCH 03/65] Use size_one_node.
> > [PATCH 07/65] Fix comments and indentation.
> > [PATCH 08/65] Do not gather loop exit conditions on the basic blocks outside the loop.
> > [PATCH 09/65] Call compute_overall_effect_of_inner_loop from instantiate_scev_name.
> > [PATCH 10/65] Don't call pbb_to_depth_to_oldiv from compute_type_for_level.
>
> These were already committed by me to trunk after they passed the
> regression tests in the branch.
> These patches are only adding the ChangeLog.graphite entry.
>
> > [PATCH 04/65] Add analysis pass to build the refined program structure tree.
> > [PATCH 05/65] Skeleton for the new SCoP detection.
> > [PATCH 06/65] Fix refined region tree nesting.
> > [PATCH 28/65] Print bbs in refined region tree.
> > [PATCH 48/65] Dot refined regions.
> > [PATCH 50/65] Enhance region checks.
>
> These are part of the new scop detection algorithm that is still not
> complete, not stable, and only the analysis part is enabled for the
> moment in the Graphite branch.  So these patches are still useless and
> make compile times a little bit slower with no benefit.
>
> > [PATCH 61/65] Adapt to new CloogScattering abstraction, introduced in official CLooG versions
> (CLOOG_ORG). (more files than in changelog)
>
> The changelog entry is not complete, I could fix this in the
> ChangeLog, but I won't change it in ChangeLog.graphite to avoid merge
> problems.
-----------------------------------------------------------------------------------
Hopefully this will clarify things and help get the
remaining graphite patches a review.
                       Jack


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