This is the mail archive of the
mailing list for the GCC project.
[PATCH 00/12] [graphite] Remove the induction variable canonicalization
- From: Sebastian Pop <sebpop at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: gcc-graphite at googlegroups dot com, Sebastian Pop <sebpop at gmail dot com>
- Date: Fri, 16 Jul 2010 02:03:51 -0500
- Subject: [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
I committed this patch-set to the Graphite branch for further testing.
Sebastian Pop (12):
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
Special case non close-phi nodes with one argument in
Add testcase for PR42729 and fix handling of gimple_debug info.
Correctly handle SSA_NAME_IS_DEFAULT_DEF in
Do not rewrite out of SSA scalar phi nodes that can be
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