This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 0/6] Loop flattening and improved if-conversion
- From: Sebastian Pop <sebpop at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: rguenther at suse dot de, Sebastian Pop <sebpop at gmail dot com>
- Date: Thu, 28 Oct 2010 17:58:16 -0500
- Subject: [PATCH 0/6] Loop flattening and improved if-conversion
Hi,
As explained in the GCC Summit paper "Improving GCC's
auto-vectorization with if-conversion and loop flattening for AMD's
Bulldozer processors", this patch set implements a loop flattening
pass on tree-ssa, and improves the if-conversion, removing the now
unnecessary ifcvt_memrefs_wont_trap analysis: this fixes PR46029.
The patch-set passed bootstrap with BOOT_CFLAG="-O2 -floop-flatten
-ftree-loop-if-convert-stores" and test on amd64-linux. Ok for trunk?
Thanks,
Sebastian Pop
--
AMD / Open Source Compiler Engineering / GNU Tools
Sebastian Pop (6):
Loop flattening on loop-SSA.
Remove ifcvt_memrefs_wont_trap analysis.
Fix PR46029: reimplement if-convert stores.
if-convert even when the data dependences cannot be computed.
Call if-conversion from loop flattening.
Move loop flattening and SLP vectorization at the end of loop
transforms.
gcc/ChangeLog | 68 +++
gcc/Makefile.in | 4 +
gcc/common.opt | 4 +
gcc/dbgcnt.def | 1 +
gcc/doc/invoke.texi | 18 +-
gcc/params.def | 7 +
gcc/passes.c | 3 +-
gcc/testsuite/ChangeLog | 14 +
gcc/testsuite/g++.dg/tree-ssa/ifc-pr46029.C | 76 ++++
gcc/testsuite/gcc.dg/tree-ssa/flat-loop-1.c | 28 ++
gcc/testsuite/gcc.dg/tree-ssa/flat-loop-2.c | 39 ++
gcc/testsuite/gcc.dg/tree-ssa/flat-loop-3.c | 19 +
gcc/testsuite/gcc.dg/tree-ssa/flat-loop-4.c | 23 +
gcc/testsuite/gcc.dg/tree-ssa/ifc-5.c | 17 +-
gcc/testsuite/gcc.dg/tree-ssa/ifc-8.c | 29 ++
gcc/timevar.def | 1 +
gcc/tree-flow.h | 4 +
gcc/tree-if-conv.c | 407 ++++++++----------
gcc/tree-loop-flattening.c | 630 +++++++++++++++++++++++++++
gcc/tree-pass.h | 1 +
20 files changed, 1151 insertions(+), 242 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/tree-ssa/ifc-pr46029.C
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/flat-loop-1.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/flat-loop-2.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/flat-loop-3.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/flat-loop-4.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/ifc-8.c
create mode 100644 gcc/tree-loop-flattening.c