[all-commits] [llvm/llvm-project] 701962: [SCEV] Strengthen nowrap flags via ranges for ARs ...

Florian Hahn via All-commits all-commits at lists.llvm.org
Tue Mar 7 08:11:04 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7019624ee124c0560567923ecd808c2d36c40f14
      https://github.com/llvm/llvm-project/commit/7019624ee124c0560567923ecd808c2d36c40f14
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/test/Analysis/Delinearization/multidim_only_ivs_3d_cast.ll
    M llvm/test/Analysis/ScalarEvolution/addrec-computed-during-addrec-calculation.ll
    M llvm/test/Analysis/ScalarEvolution/becount-invalidation.ll
    M llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll
    M llvm/test/Analysis/ScalarEvolution/exit-count-select-safe.ll
    M llvm/test/Analysis/ScalarEvolution/exit-count-select.ll
    M llvm/test/Analysis/ScalarEvolution/flags-from-poison.ll
    M llvm/test/Analysis/ScalarEvolution/fold.ll
    M llvm/test/Analysis/ScalarEvolution/incorrect-exit-count.ll
    M llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
    M llvm/test/Analysis/ScalarEvolution/limit-depth.ll
    M llvm/test/Analysis/ScalarEvolution/logical-operations.ll
    M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll
    M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
    M llvm/test/Analysis/ScalarEvolution/max-trip-count.ll
    M llvm/test/Analysis/ScalarEvolution/nsw.ll
    M llvm/test/Analysis/ScalarEvolution/overflow-intrinsics.ll
    M llvm/test/Analysis/ScalarEvolution/range-signedness.ll
    M llvm/test/Analysis/ScalarEvolution/sext-iv-0.ll
    M llvm/test/Analysis/ScalarEvolution/sext-iv-2.ll
    M llvm/test/Analysis/ScalarEvolution/sext-to-zext.ll
    M llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll
    M llvm/test/Analysis/ScalarEvolution/solve-quadratic-overflow.ll
    M llvm/test/Analysis/ScalarEvolution/symbolic_max_exit_count.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count15.ll
    M llvm/test/Analysis/ScalarEvolution/trivial-phis.ll
    M llvm/test/Analysis/ScalarEvolution/umin-umax-folds.ll
    M llvm/test/Analysis/ScalarEvolution/unknown_phis.ll
    M llvm/test/Analysis/ScalarEvolution/widenable-condition.ll
    M llvm/test/CodeGen/AMDGPU/combine-add-zext-xor.ll
    M llvm/test/CodeGen/Thumb2/mve-laneinterleaving-reduct.ll
    M llvm/test/Transforms/LoopStrengthReduce/lsr-rewrite-to-add-one.ll
    M llvm/test/Transforms/LoopUnroll/peel-loop-conditions.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/interleave-allocsize-not-equal-typesize.ll
    M llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-accesses-masked-group.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/pr55100-expand-scev-predicate-used.ll
    M polly/test/ScopInfo/20111108-Parameter-not-detected.ll

  Log Message:
  -----------
  [SCEV] Strengthen nowrap flags via ranges for ARs on construction.

At the moment, proveNoWrapViaConstantRanges is only used when creating
SCEV[Zero,Sign]ExtendExprs. We can get significant improvements by
strengthening flags after creating the AddRec.

I'll also share a follow-up patch that removes the code to strengthen
flags when creating SCEV[Zero,Sign]ExtendExprs. Modifying AddRecs while
creating those can lead to surprising changes.

Compile-time looks neutral:
https://llvm-compile-time-tracker.com/compare.php?from=94676cf8a13c511a9acfc24ed53c98964a87bde3&to=aced434e8b103109104882776824c4136c90030d&stat=instructions:u

Reviewed By: mkazantsev, nikic

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




More information about the All-commits mailing list