SuccessChanges

Summary

  1. [NFC][LoopUnroll] Update test coverage for peeling w/ inequality (details)
  2. [LoopUnroll] countToEliminateCompares(): fix handling of [in]equality (details)
Commit 432a12c8037293bd1ff919a82f1d4412772ac534 by lebedev.ri
[NFC][LoopUnroll] Update test coverage for peeling w/ inequality
predicates
The file was modifiedllvm/test/Transforms/LoopUnroll/peel-loop-conditions.ll
Commit 4fe94d033120da2000f1f31f0c54f3d95a159a53 by lebedev.ri
[LoopUnroll] countToEliminateCompares(): fix handling of [in]equality
predicates (PR43840)
Summary: I believe this bisects to https://reviews.llvm.org/D44983
(`[LoopUnroll] Only peel if a predicate becomes known in the loop
body.`)
While that revision did contain tests that showed arguably-subpar
peeling for [in]equality predicates that [not] happen in the middle of
the loop, it also disabled peeling for the *first* loop iteration,
because latch would be canonicalized to [in]equality comparison..
That was intentional as per https://reviews.llvm.org/D44983#1059583. I'm
not 100% sure that i'm using correct checks here, but this fix appears
to be going in the right direction..
Let me know if i'm missing some checks here..
Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=43840 | PR43840 ]].
Reviewers: fhahn, mkazantsev, efriedma
Reviewed By: fhahn
Subscribers: xbolva00, hiraditya, zzheng, llvm-commits, fhahn
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69617
The file was modifiedllvm/test/Transforms/LoopUnroll/peel-loop-conditions.ll
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollPeel.cpp