[all-commits] [llvm/llvm-project] 9adbb5: [SCEV] Fix ScalarEvolution tests under NPM

aeubanks via All-commits all-commits at lists.llvm.org
Thu Jul 16 11:24:27 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 9adbb5cb3a56f77bc3739da10cacafca36d5bedf
      https://github.com/llvm/llvm-project/commit/9adbb5cb3a56f77bc3739da10cacafca36d5bedf
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-07-16 (Thu, 16 Jul 2020)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll
    M llvm/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll
    M llvm/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll
    M llvm/test/Analysis/ScalarEvolution/2007-11-18-OrInstruction.ll
    M llvm/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll
    M llvm/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll
    M llvm/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll
    M llvm/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll
    M llvm/test/Analysis/ScalarEvolution/2008-06-12-BinomialInt64.ll
    M llvm/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll
    M llvm/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll
    M llvm/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll
    M llvm/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll
    M llvm/test/Analysis/ScalarEvolution/2008-07-29-SGTTripCount.ll
    M llvm/test/Analysis/ScalarEvolution/2008-07-29-SMinExpr.ll
    M llvm/test/Analysis/ScalarEvolution/2008-08-04-IVOverflow.ll
    M llvm/test/Analysis/ScalarEvolution/2008-08-04-LongAddRec.ll
    M llvm/test/Analysis/ScalarEvolution/2008-11-02-QuadraticCrash.ll
    M llvm/test/Analysis/ScalarEvolution/2008-11-15-CubicOOM.ll
    M llvm/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll
    M llvm/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll
    M llvm/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll
    M llvm/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll
    M llvm/test/Analysis/ScalarEvolution/2008-12-11-SMaxOverflow.ll
    M llvm/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll
    M llvm/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll
    M llvm/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll
    M llvm/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll
    M llvm/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll
    M llvm/test/Analysis/ScalarEvolution/2009-07-04-GroupConstantsWidthMismatch.ll
    M llvm/test/Analysis/ScalarEvolution/2010-09-03-RequiredTransitive.ll
    M llvm/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll
    M llvm/test/Analysis/ScalarEvolution/2011-10-04-ConstEvolve.ll
    M llvm/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll
    M llvm/test/Analysis/ScalarEvolution/ZeroStep.ll
    M llvm/test/Analysis/ScalarEvolution/add-expr-pointer-operand-sorting.ll
    M llvm/test/Analysis/ScalarEvolution/add-like-or.ll
    M llvm/test/Analysis/ScalarEvolution/and-xor.ll
    M llvm/test/Analysis/ScalarEvolution/avoid-assume-hang.ll
    M llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll
    M llvm/test/Analysis/ScalarEvolution/avoid-smax-0.ll
    M llvm/test/Analysis/ScalarEvolution/avoid-smax-1.ll
    M llvm/test/Analysis/ScalarEvolution/binomial-explision.ll
    M llvm/test/Analysis/ScalarEvolution/constant_condition.ll
    M llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll
    M llvm/test/Analysis/ScalarEvolution/div-overflow.ll
    M llvm/test/Analysis/ScalarEvolution/do-loop.ll
    M llvm/test/Analysis/ScalarEvolution/exact-exit-count-more-precise.ll
    M llvm/test/Analysis/ScalarEvolution/exact_iter_count.ll
    M llvm/test/Analysis/ScalarEvolution/exhaustive-trip-counts.ll
    M llvm/test/Analysis/ScalarEvolution/exponential-behavior.ll
    M llvm/test/Analysis/ScalarEvolution/extract-highbits-sameconstmask.ll
    M llvm/test/Analysis/ScalarEvolution/extract-highbits-variablemask.ll
    M llvm/test/Analysis/ScalarEvolution/extract-lowbits-sameconstmask.ll
    M llvm/test/Analysis/ScalarEvolution/extract-lowbits-variablemask.ll
    M llvm/test/Analysis/ScalarEvolution/flags-from-poison-dbg.ll
    M llvm/test/Analysis/ScalarEvolution/flags-from-poison.ll
    M llvm/test/Analysis/ScalarEvolution/flattened-0.ll
    M llvm/test/Analysis/ScalarEvolution/fold.ll
    M llvm/test/Analysis/ScalarEvolution/how-far-to-zero.ll
    M llvm/test/Analysis/ScalarEvolution/huge_expression_limit.ll
    M llvm/test/Analysis/ScalarEvolution/implied-via-division.ll
    M llvm/test/Analysis/ScalarEvolution/incorrect-nsw.ll
    M llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
    M llvm/test/Analysis/ScalarEvolution/infer-prestart-no-wrap.ll
    M llvm/test/Analysis/ScalarEvolution/inner-loop-by-latch-cond-unknown.ll
    M llvm/test/Analysis/ScalarEvolution/limit-depth.ll
    M llvm/test/Analysis/ScalarEvolution/load-with-range-metadata.ll
    M llvm/test/Analysis/ScalarEvolution/load.ll
    M llvm/test/Analysis/ScalarEvolution/lshr-shl-differentconstmask.ll
    M llvm/test/Analysis/ScalarEvolution/max-addops-inline.ll
    M llvm/test/Analysis/ScalarEvolution/max-addrec-size.ll
    M llvm/test/Analysis/ScalarEvolution/max-be-count-not-constant.ll
    M llvm/test/Analysis/ScalarEvolution/max-expr-cache.ll
    M llvm/test/Analysis/ScalarEvolution/max-mulops-inline.ll
    M llvm/test/Analysis/ScalarEvolution/max-trip-count-address-space.ll
    M llvm/test/Analysis/ScalarEvolution/max-trip-count.ll
    M llvm/test/Analysis/ScalarEvolution/merge-add-rec-many-inputs.ll
    M llvm/test/Analysis/ScalarEvolution/min-max-exprs.ll
    M llvm/test/Analysis/ScalarEvolution/no-wrap-add-exprs.ll
    M llvm/test/Analysis/ScalarEvolution/no-wrap-unknown-becount.ll
    M llvm/test/Analysis/ScalarEvolution/non-IV-phi.ll
    M llvm/test/Analysis/ScalarEvolution/nowrap-preinc-limits.ll
    M llvm/test/Analysis/ScalarEvolution/nsw-offset-assume.ll
    M llvm/test/Analysis/ScalarEvolution/nsw-offset.ll
    M llvm/test/Analysis/ScalarEvolution/nsw.ll
    M llvm/test/Analysis/ScalarEvolution/overflow-intrinsics-trip-count.ll
    M llvm/test/Analysis/ScalarEvolution/overflow-intrinsics.ll
    M llvm/test/Analysis/ScalarEvolution/pointer-sign-bits.ll
    M llvm/test/Analysis/ScalarEvolution/pr22179.ll
    M llvm/test/Analysis/ScalarEvolution/pr22641.ll
    M llvm/test/Analysis/ScalarEvolution/pr24757.ll
    M llvm/test/Analysis/ScalarEvolution/pr25369.ll
    M llvm/test/Analysis/ScalarEvolution/pr27315.ll
    M llvm/test/Analysis/ScalarEvolution/pr34538.ll
    M llvm/test/Analysis/ScalarEvolution/pr40420.ll
    M llvm/test/Analysis/ScalarEvolution/predicated-trip-count.ll
    M llvm/test/Analysis/ScalarEvolution/range-signedness.ll
    M llvm/test/Analysis/ScalarEvolution/range_nw_flag.ll
    M llvm/test/Analysis/ScalarEvolution/returned.ll
    M llvm/test/Analysis/ScalarEvolution/scalable-vector.ll
    M llvm/test/Analysis/ScalarEvolution/scev-dispositions.ll
    M llvm/test/Analysis/ScalarEvolution/scev-prestart-nowrap.ll
    M llvm/test/Analysis/ScalarEvolution/sdiv.ll
    M llvm/test/Analysis/ScalarEvolution/sext-inreg.ll
    M llvm/test/Analysis/ScalarEvolution/sext-iv-0.ll
    M llvm/test/Analysis/ScalarEvolution/sext-iv-1.ll
    M llvm/test/Analysis/ScalarEvolution/sext-iv-2.ll
    M llvm/test/Analysis/ScalarEvolution/sext-mul.ll
    M llvm/test/Analysis/ScalarEvolution/sext-to-zext.ll
    M llvm/test/Analysis/ScalarEvolution/sext-zero.ll
    M llvm/test/Analysis/ScalarEvolution/shift-op.ll
    M llvm/test/Analysis/ScalarEvolution/shl-lshr-differentconstmask.ll
    M llvm/test/Analysis/ScalarEvolution/sle.ll
    M llvm/test/Analysis/ScalarEvolution/smax-br-phi-idioms.ll
    M llvm/test/Analysis/ScalarEvolution/smax.ll
    M llvm/test/Analysis/ScalarEvolution/solve-quadratic-i1.ll
    M llvm/test/Analysis/ScalarEvolution/solve-quadratic-overflow.ll
    M llvm/test/Analysis/ScalarEvolution/solve-quadratic.ll
    M llvm/test/Analysis/ScalarEvolution/srem.ll
    M llvm/test/Analysis/ScalarEvolution/strip-injective-zext.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count-andor.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count-pow2.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count-switch.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count-unknown-stride.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count10.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count11.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count12.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count13.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count14.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count15.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count2.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count3.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count4.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count5.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count6.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count7.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count8.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count9.ll
    M llvm/test/Analysis/ScalarEvolution/tripmultiple_calculation.ll
    M llvm/test/Analysis/ScalarEvolution/trunc-simplify.ll
    M llvm/test/Analysis/ScalarEvolution/truncate.ll
    M llvm/test/Analysis/ScalarEvolution/umin-umax-folds.ll
    M llvm/test/Analysis/ScalarEvolution/undefined.ll
    M llvm/test/Analysis/ScalarEvolution/unknown_phis.ll
    M llvm/test/Analysis/ScalarEvolution/unreachable-code.ll
    M llvm/test/Analysis/ScalarEvolution/unsimplified-loop.ll
    M llvm/test/Analysis/ScalarEvolution/urem-0.ll
    M llvm/test/Analysis/ScalarEvolution/widenable-condition.ll
    M llvm/test/Analysis/ScalarEvolution/zext-divrem.ll
    M llvm/test/Analysis/ScalarEvolution/zext-mul.ll
    M llvm/test/Analysis/ScalarEvolution/zext-wrap.ll

  Log Message:
  -----------
  [SCEV] Fix ScalarEvolution tests under NPM

Many tests use opt's -analyze feature, which does not translate well to
NPM and has better alternatives. The alternative here is to explicitly
add a pass that calls ScalarEvolution::print().

The legacy pass manager RUNs aren't changing, but they are now pinned to
the legacy pass manager.  For each legacy pass manager RUN, I added a
corresponding NPM RUN using the 'print<scalar-evolution>' pass. For
compatibility with update_analyze_test_checks.py and existing test
CHECKs, 'print<scalar-evolution>' now prints what -analyze prints per
function.

This was generated by the following Python script and failures were
manually fixed up:

import sys
for i in sys.argv:
    with open(i, 'r') as f:
        s = f.read()
    with open(i, 'w') as f:
        for l in s.splitlines():
            if "RUN:" in l and ' -analyze ' in l and '\\' not in l:
                f.write(l.replace(' -analyze ', ' -analyze -enable-new-pm=0 '))
                f.write('\n')
                f.write(l.replace(' -analyze ', ' -disable-output ').replace(' -scalar-evolution ', ' "-passes=print<scalar-evolution>" ').replace(" | ", " 2>&1 | "))
                f.write('\n')
            else:
                f.write(l)

There are a couple failures still in ScalarEvolution under NPM, but
those are due to other unrelated naming conflicts.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D83798




More information about the All-commits mailing list