[PATCH] D89548: [SCEV] Prove implications of different type via truncation
Max Kazantsev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 20 22:40:27 PDT 2020
mkazantsev added inline comments.
================
Comment at: llvm/test/Analysis/ScalarEvolution/srem.ll:32
; CHECK-NEXT: %inc = add nsw i32 %i.0, 1
-; CHECK-NEXT: --> {1,+,1}<nuw><%for.cond> U: [1,0) S: [1,0) Exits: (1 + %width) LoopDispositions: { %for.cond: Computable }
+; CHECK-NEXT: --> {1,+,1}<nuw><%for.cond> U: full-set S: full-set Exits: (1 + %width) LoopDispositions: { %for.cond: Computable }
; CHECK-NEXT: Determining loop execution counts for: @_Z4loopi
----------------
mkazantsev wrote:
> mkazantsev wrote:
> > fhahn wrote:
> > > mkazantsev wrote:
> > > > mkazantsev wrote:
> > > > > Bug in underpying patch.
> > > > It happens just because we create zero extend SCEV (and not proving further ule). A subject for a follow-up fix.
> > > It would probably be good to have a fix lined up before this goes in
> > Agreed, I'm looking into it. Thanks!
> Root cause here: by the moment when we query this, `nuw` flag is not set and one of rules in range computation does not apply. General problem: we don't drop constant ranges when we update flags when we should.
Fix: https://reviews.llvm.org/D89847
The problem is old, general and exists regardless of this patch. So I don't think it should be holding it away.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D89548/new/
https://reviews.llvm.org/D89548
More information about the llvm-commits
mailing list