[all-commits] [llvm/llvm-project] 1badfb: Fix incorrect TypeSize->uint64_t cast in Induction...

david-arm via All-commits all-commits at lists.llvm.org
Thu Feb 10 01:39:30 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1badfbb4fc1a16f6dbe3b4edccdef44d9142857e
      https://github.com/llvm/llvm-project/commit/1badfbb4fc1a16f6dbe3b4edccdef44d9142857e
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2022-02-10 (Thu, 10 Feb 2022)

  Changed paths:
    M llvm/lib/Analysis/IVDescriptors.cpp
    M llvm/unittests/Analysis/IVDescriptorsTest.cpp

  Log Message:
  -----------
  Fix incorrect TypeSize->uint64_t cast in InductionDescriptor::isInductionPHI

The code was relying upon the implicit conversion of TypeSize to
uint64_t and assuming the type in question was always fixed. However,
I discovered an issue when running the canon-freeze pass with some
IR loops that contains scalable vector types. I've changed the code
to bail out if the size is unknown at compile time, since we cannot
compute whether the step is a multiple of the type size or not.

I added a test here:

  Transforms/CanonicalizeFreezeInLoops/phis.ll

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




More information about the All-commits mailing list