ABataev added a comment.

In D81881#2094062 <https://reviews.llvm.org/D81881#2094062>, @jdoerfert wrote:

> So the idea is to do the trip count computation with defined overflow 
> behavior, e.g., without `nsw/nuw` in IR, right?


Not quite. If we can predict that there is no overflow, everything remains the 
same as before. If we cannot do this, the trip count calculations are performed 
on unsigned types instead of signed. It does not just drop `nuw/nsw` flags, but 
also uses `udiv`, `zext` etc. instead of `sdiv`, `sext` etc. Plus, it tries to 
reorganize the operations a little bit to avoid possible overflow.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D81881/new/

https://reviews.llvm.org/D81881



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to