From: Sebastian Pop <sebpop@gmail.com>
To: gcc-patches@gcc.gnu.org
Cc: gcc-graphite@googlegroups.com, Sebastian Pop <sebpop@gmail.com>
Subject: [PATCH 00/12] [graphite] Remove the induction variable canonicalization
Date: Fri, 16 Jul 2010 07:04:00 -0000 [thread overview]
Message-ID: <1279263843-9149-1-git-send-email-sebpop@gmail.com> (raw)
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
next reply other threads:[~2010-07-16 7:04 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-16 7:04 Sebastian Pop [this message]
2010-07-16 7:04 ` [PATCH 07/12] Scevs could be expressions without chrecs and still be scev_analyzable_p Sebastian Pop
2010-07-16 7:04 ` [PATCH 03/12] chrec_apply should only apply to the specified variable Sebastian Pop
2010-07-16 7:04 ` [PATCH 09/12] Add testcase for PR42729 and fix handling of gimple_debug info Sebastian Pop
2010-07-16 7:05 ` [PATCH 01/12] Remove insert_loop_close_phis Sebastian Pop
2010-07-16 7:05 ` [PATCH 10/12] Correctly handle SSA_NAME_IS_DEFAULT_DEF in rewrite_close_phi_out_of_ssa Sebastian Pop
2010-07-16 7:05 ` [PATCH 06/12] Bump the size of scevs Sebastian Pop
2010-07-16 8:03 ` Richard Guenther
2010-07-16 14:41 ` Sebastian Pop
2010-07-16 7:05 ` [PATCH 02/12] Remove expand_scalar_variables_ hack Sebastian Pop
2010-07-16 7:05 ` [PATCH 04/12] Also handle GIMPLE_CALLs in rewrite_cross_bb_scalar_deps Sebastian Pop
2010-07-16 7:05 ` [PATCH 11/12] Do not rewrite out of SSA scalar phi nodes that can be scev_analyzable_p Sebastian Pop
2010-07-16 7:05 ` [PATCH 05/12] Remove uses of loop->single_iv Sebastian Pop
2010-07-16 7:05 ` [PATCH 08/12] Special case non close-phi nodes with one argument in rewrite_close_phi_out_of_ssa Sebastian Pop
2010-07-16 7:05 ` [PATCH 12/12] Unshare the scev before code generating it Sebastian Pop
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1279263843-9149-1-git-send-email-sebpop@gmail.com \
--to=sebpop@gmail.com \
--cc=gcc-graphite@googlegroups.com \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).