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 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


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