[all-commits] [llvm/llvm-project] 1e2691: [NFCI] SCEV: promote ScalarEvolutionDivision into ...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Wed Jun 24 14:59:30 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 1e2691fe238b9b47dd3fa2c7a8874826ead45760
      https://github.com/llvm/llvm-project/commit/1e2691fe238b9b47dd3fa2c7a8874826ead45760
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    A llvm/include/llvm/Analysis/ScalarEvolutionDivision.h
    M llvm/lib/Analysis/CMakeLists.txt
    M llvm/lib/Analysis/ScalarEvolution.cpp
    A llvm/lib/Analysis/ScalarEvolutionDivision.cpp

  Log Message:
  -----------
  [NFCI] SCEV: promote ScalarEvolutionDivision into an publicly usable class

This makes it usable from outside of SCEV,
while previously it was internal to the ScalarEvolution.cpp

In particular, i want to use it in an WIP alloca promotion helper pass,
to analyze if some SCEV is a multiple of some other SCEV.


  Commit: 381054a989ebd0b585fee46f2a01a7c5de10acf7
      https://github.com/llvm/llvm-project/commit/381054a989ebd0b585fee46f2a01a7c5de10acf7
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
    M llvm/test/Transforms/InstCombine/bitcast.ll

  Log Message:
  -----------
  [InstCombine] visitBitCast(): do not crash on weird `bitcast <1 x i8*> to i8*`

Even if we know that RHS of a bitcast is a pointer,
we can't assume LHS is, because it might be
a single-element vector of pointer.


  Commit: 2b8d706b19c0e049da3eb62572b08af72ba2e5e6
      https://github.com/llvm/llvm-project/commit/2b8d706b19c0e049da3eb62572b08af72ba2e5e6
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/IR/Value.cpp
    A llvm/test/Transforms/InstSimplify/icmp.ll

  Log Message:
  -----------
  [IR] GetUnderlyingObject(), stripPointerCastsAndOffsets(): don't crash on `bitcast <1 x i8*> to i8*`

I'm not sure how to write standalone tests for each of two changes here.
If either one of these two fixes is missing, the test fill crash.


  Commit: 07a23c06dd9c616fc24410f8cdbc8b4797b31cdc
      https://github.com/llvm/llvm-project/commit/07a23c06dd9c616fc24410f8cdbc8b4797b31cdc
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/test/Transforms/SROA/vector-conversion.ll

  Log Message:
  -----------
  [SROA] convertValue(): we can have <N x iK> to <M x iQ*> cast

Provided test case crashes otherwise.

If NewTy is already DL.getIntPtrType(NewTy),
CreateBitCast() won't actually create any bitcast,
so we are better off just doing the general thing.


  Commit: 8911a35180c6777188fefe0954a2451a2b91deaf
      https://github.com/llvm/llvm-project/commit/8911a35180c6777188fefe0954a2451a2b91deaf
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/test/Transforms/SROA/vector-conversion.ll

  Log Message:
  -----------
  [SROA] convertValue(): we can have <N x iK*> to <M x iQ> cast

Provided test case crashes otherwise.
Much like to the opposite case.


Compare: https://github.com/llvm/llvm-project/compare/31bd860ec02f...8911a35180c6


More information about the All-commits mailing list