[PATCH] [SCEV] make SCEV smarter about proving no-wrap.

Sanjoy Das sanjoy at playingwithpointers.com
Tue Mar 3 18:49:40 PST 2015


Addresses review.

When writing down a proof for `proveNoWrapByVaryingStart` (thanks for
prodding me to do that!) I realized that the first version had a bug

- we need to prove (S-X)+X does not overflow for the inference to be

valid.  This current version addresses that.

The current version also swaps out a full SCEVAddRecExpr construction
and just looks at the UniqueSCEVs set instead, and gives up if there
isn't a pre-existing add recurrence of the form we need.  This should
address the compile time issue.


http://reviews.llvm.org/D7980

Files:
  include/llvm/Analysis/ScalarEvolution.h
  lib/Analysis/ScalarEvolution.cpp
  test/Analysis/ScalarEvolution/nowrap-preinc-limits.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7980.21165.patch
Type: text/x-patch
Size: 8668 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150304/be862a3a/attachment.bin>


More information about the llvm-commits mailing list