[all-commits] [llvm/llvm-project] fca699: [AArch64] Fix a minor issue with AArch64LoopIdiomT...

David Sherwood via All-commits all-commits at lists.llvm.org
Wed Jan 17 06:30:18 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fca6992be1f272f5e997bd510ca03c9389550c13
      https://github.com/llvm/llvm-project/commit/fca6992be1f272f5e997bd510ca03c9389550c13
  Author: David Sherwood <57997763+david-arm at users.noreply.github.com>
  Date:   2024-01-17 (Wed, 17 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64LoopIdiomTransform.cpp
    M llvm/test/Transforms/LoopIdiom/AArch64/byte-compare-index.ll

  Log Message:
  -----------
  [AArch64] Fix a minor issue with AArch64LoopIdiomTransform (#78136)

I found another case where in the end block we could have a PHI that we
deal with incorrectly. The two incoming values are unique - one of them
is
the induction variable and another one is a value defined outside the
loop, e.g.

  %final_val = phi i32 [ %inc, %while.body ], [ %d, %while.cond ]

We won't correctly select between the two values in the new end block
that
we create and so we will get the wrong result.




More information about the All-commits mailing list