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]

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


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


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