From: Robin Dapp <[email protected]>

This is v3 of the no-wrap assumptions patch which integrates the review 
comments from last round, including:

 - Adjusting assumption costing to count statements.
 - Adding an assert for unsigned types when combining bounds.
 - Unify naming to record_nowrap_assumptions.

The series was bootstrapped and regtested on x86, power10, and aarch64.
Regtested on riscv64.

There still is this outstanding vectorizer issue that ADA exposes on 
aarch64.  I have a two-line patch for it but I'm not entirely convinced 
it's the right thing to do, on top the test is gimple-only.  I guess 
I'll post it separately in the coming days.

The follow-up patch which removes LOOP_C_FINITE is also not fully 
finished yet.  That's going to take a bit more time.

Robin Dapp (5):
  niter: Add helper to compute type bound.
  scev: Add nowrap bound.
  dr: Add no-wrap bound.
  vect: Request no-wrap bounds from DR analysis.
  vect: Cost niter assumption.

 .../gcc.dg/tree-prof/update-loopch.c          |   2 +
 gcc/testsuite/gcc.dg/tree-ssa/scev-12.c       |   2 +-
 gcc/testsuite/gcc.dg/tree-ssa/scev-8.c        |   2 +-
 .../gcc.dg/vect/vect-unsigned-assump-1.c      |  22 ++
 .../gcc.dg/vect/vect-unsigned-assump-2.c      |  24 ++
 .../gcc.dg/vect/vect-unsigned-assump-3.c      |  20 +
 .../gcc.dg/vect/vect-unsigned-assump-4.c      |  13 +
 .../gcc.dg/vect/vect-unsigned-assump-5.c      |  14 +
 .../gcc.dg/vect/vect-unsigned-assump-6.c      |  13 +
 .../gcc.dg/vect/vect-unsigned-assump-7.c      |  17 +
 .../gcc.dg/vect/vect-unsigned-assump-8.c      |  13 +
 .../aarch64/sve2/niter-convert-range.c        |   2 +-
 gcc/tree-chrec.cc                             |  51 ++-
 gcc/tree-chrec.h                              |   7 +-
 gcc/tree-data-ref.cc                          |  99 ++++-
 gcc/tree-data-ref.h                           |  14 +-
 gcc/tree-scalar-evolution.cc                  | 365 ++++++++++++------
 gcc/tree-scalar-evolution.h                   |   9 +-
 gcc/tree-ssa-loop-niter.cc                    |  60 ++-
 gcc/tree-ssa-loop-niter.h                     |   3 +-
 gcc/tree-ssa-loop.h                           |   4 +
 gcc/tree-vect-data-refs.cc                    |   5 +-
 gcc/tree-vect-loop.cc                         | 237 ++++++++----
 gcc/tree-vectorizer.h                         |   4 +-
 24 files changed, 733 insertions(+), 269 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-unsigned-assump-1.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-unsigned-assump-2.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-unsigned-assump-3.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-unsigned-assump-4.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-unsigned-assump-5.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-unsigned-assump-6.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-unsigned-assump-7.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-unsigned-assump-8.c

-- 
2.55.0

Reply via email to