[all-commits] [llvm/llvm-project] b46c08: [NFCI] SCEVExpander: emit intrinsics for integral ...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Sat Mar 6 10:53:06 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b46c085d2b6d15873fb53718f0a70b3848e19e4a
      https://github.com/llvm/llvm-project/commit/b46c085d2b6d15873fb53718f0a70b3848e19e4a
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-03-06 (Sat, 06 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
    M llvm/test/Analysis/ScalarEvolution/2007-08-06-MisinterpretBranch.ll
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/unpredload.ll
    M llvm/test/Transforms/HardwareLoops/ARM/fp-emulation.ll
    M llvm/test/Transforms/HardwareLoops/ARM/simple-do.ll
    M llvm/test/Transforms/HardwareLoops/loop-guards.ll
    M llvm/test/Transforms/IRCE/bad_expander.ll
    M llvm/test/Transforms/IRCE/clamp.ll
    M llvm/test/Transforms/IRCE/conjunctive-checks.ll
    M llvm/test/Transforms/IRCE/correct-loop-info.ll
    M llvm/test/Transforms/IRCE/decrementing-loop.ll
    M llvm/test/Transforms/IRCE/multiple-access-no-preloop.ll
    M llvm/test/Transforms/IRCE/non-loop-invariant-rhs-instr.ll
    M llvm/test/Transforms/IRCE/range_intersect_miscompile.ll
    M llvm/test/Transforms/IRCE/ranges_of_different_types.ll
    M llvm/test/Transforms/IRCE/rc-negative-bound.ll
    M llvm/test/Transforms/IRCE/single-access-no-preloop.ll
    M llvm/test/Transforms/IRCE/single-access-with-preloop.ll
    M llvm/test/Transforms/IRCE/unsigned_comparisons_ugt.ll
    M llvm/test/Transforms/IRCE/unsigned_comparisons_ult.ll
    M llvm/test/Transforms/IndVarSimplify/ARM/code-size.ll
    M llvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
    M llvm/test/Transforms/IndVarSimplify/X86/iv-widen.ll
    M llvm/test/Transforms/IndVarSimplify/X86/loop-invariant-conditions.ll
    M llvm/test/Transforms/IndVarSimplify/elim-extend.ll
    M llvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll
    M llvm/test/Transforms/IndVarSimplify/full_widening.ll
    M llvm/test/Transforms/IndVarSimplify/lcssa-preservation.ll
    M llvm/test/Transforms/IndVarSimplify/lftr-multi-exit.ll
    M llvm/test/Transforms/IndVarSimplify/lftr-reuse.ll
    M llvm/test/Transforms/IndVarSimplify/loop-predication.ll
    M llvm/test/Transforms/IndVarSimplify/no-iv-rewrite.ll
    M llvm/test/Transforms/IndVarSimplify/replace-loop-exit-folds.ll
    M llvm/test/Transforms/IndVarSimplify/sentinel.ll
    M llvm/test/Transforms/IndVarSimplify/widen-loop-comp.ll
    M llvm/test/Transforms/LoopPredication/predicate-exits.ll
    M llvm/test/Transforms/LoopUnroll/runtime-loop-multiexit-dom-verify.ll
    M llvm/test/Transforms/LoopVectorize/X86/cost-model-assert.ll
    M llvm/test/Transforms/LoopVectorize/X86/float-induction-x86.ll
    M llvm/test/Transforms/LoopVectorize/X86/invariant-load-gather.ll
    M llvm/test/Transforms/LoopVectorize/X86/invariant-store-vectorization.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr23997.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr35432.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
    M llvm/test/Transforms/LoopVectorize/invariant-store-vectorization.ll
    M llvm/test/Transforms/LoopVectorize/loop-form.ll

  Log Message:
  -----------
  [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions

These intrinsics, not the icmp+select are the canonical form nowadays,
so we might as well directly emit them.

This should not cause any regressions, but if it does,
then then they would needed to be fixed regardless.

Note that this doesn't deal with `SCEVExpander::isHighCostExpansion()`,
but that is a pessimization, not a correctness issue.

Additionally, the non-intrinsic form has issues with undef,
see https://reviews.llvm.org/D88287#2587863




More information about the All-commits mailing list