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/12] [graphite] Remove the induction variable canonicalization


In order to improve the vectorization of loops transformed by
Graphite, the following set of patches clean up the Graphite
infrastructure to avoid the canonicalization of induction variables.

The process of IV canonicalization introduces a single IV with a type
that has to be unsigned in order to be able to represent all the IVs
with the canonical one that starts at 0 and is incremented by strides
of 1.  In several cases, the unsigned type of the canonical IV makes
the analysis of scalar evolutions impossible, as the cast to unsigned
cannot be removed, transforming most of the scev results into a
"chrec_dont_know".

I committed this patch-set to the Graphite branch for further testing.

Sebastian Pop (12):
  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.

 gcc/ChangeLog.graphite                     |  125 ++++-
 gcc/cfgloop.c                              |    1 -
 gcc/cfgloop.h                              |    4 -
 gcc/graphite-clast-to-gimple.c             |  133 ++---
 gcc/graphite-clast-to-gimple.h             |    1 -
 gcc/graphite-sese-to-poly.c                |  140 ++---
 gcc/params.def                             |    2 +-
 gcc/sese.c                                 |  843 ++++------------------------
 gcc/sese.h                                 |   20 +-
 gcc/testsuite/gcc.dg/graphite/id-23.c      |   22 +
 gcc/testsuite/gcc.dg/graphite/pr42729.c    |   15 +
 gcc/testsuite/gfortran.dg/graphite/id-20.f |   12 +-
 gcc/tree-chrec.c                           |   62 ++-
 gcc/tree-chrec.h                           |    1 +
 14 files changed, 447 insertions(+), 934 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/graphite/id-23.c
 create mode 100644 gcc/testsuite/gcc.dg/graphite/pr42729.c


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