This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 00/65] Merge from the Graphite branch to trunk
- From: Jack Howarth <howarth at bromo dot med dot uc dot edu>
- To: Sebastian Pop <sebpop at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Tobias Grosser <grosser at fim dot uni-passau dot de>, gcc-graphite <gcc-graphite at googlegroups dot com>
- Date: Thu, 5 Aug 2010 11:57:56 -0400
- Subject: Re: [PATCH 00/65] Merge from the Graphite branch to trunk
- References: <1280780438-17543-1-git-send-email-sebpop@gmail.com>
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