[all-commits] [llvm/llvm-project] d9426c: [Tests] Autogenerate a bunch of SCEV trip count te...

Philip Reames via All-commits all-commits at lists.llvm.org
Thu Nov 21 10:46:25 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: d9426c3360895f265a19e25e2d2bae3348ad9ce8
      https://github.com/llvm/llvm-project/commit/d9426c3360895f265a19e25e2d2bae3348ad9ce8
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2019-11-21 (Thu, 21 Nov 2019)

  Changed paths:
    M llvm/test/Analysis/ScalarEvolution/trip-count.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count10.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-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

  Log Message:
  -----------
  [Tests] Autogenerate a bunch of SCEV trip count tests for readability.  Will likely merge some of these files soon.


  Commit: aaea24802bf5de0420f1ef5f3660a9765e23dea8
      https://github.com/llvm/llvm-project/commit/aaea24802bf5de0420f1ef5f3660a9765e23dea8
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2019-11-21 (Thu, 21 Nov 2019)

  Changed paths:
    M llvm/lib/Analysis/GuardUtils.cpp
    M llvm/lib/Transforms/Scalar/GuardWidening.cpp
    M llvm/lib/Transforms/Utils/GuardUtils.cpp
    M llvm/test/Transforms/GuardWidening/basic_widenable_condition_guards.ll
    M llvm/test/Transforms/LoopPredication/basic_widenable_branch_guards.ll
    M llvm/test/Transforms/LoopPredication/predicate-exits.ll
    M llvm/test/Transforms/SimplifyCFG/wc-widen-block.ll

  Log Message:
  -----------
  Broaden the definition of a "widenable branch"

As a reminder, a "widenable branch" is the pattern "br i1 (and i1 X, WC()), label %taken, label %untaken" where "WC" is the widenable condition intrinsics. The semantics of such a branch (derived from the semantics of WC) is that a new condition can be added into the condition arbitrarily without violating legality.

Broaden the definition in two ways:
    Allow swapped operands to the br (and X, WC()) form
    Allow widenable branch w/trivial condition (i.e. true) which takes form of br i1 WC()

The former is just general robustness (e.g. for X = non-instruction this is what instcombine produces). The later is specifically important as partial unswitching of a widenable range check produces exactly this form above the loop.

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


Compare: https://github.com/llvm/llvm-project/compare/4e8231b5cf0f...aaea24802bf5


More information about the All-commits mailing list