[PATCH] Teach IndVarSimplify to add nuw and nsw to operations that provably don't overflow.

Philip Reames listmail at philipreames.com
Mon Dec 29 14:37:12 PST 2014


On 12/23/2014 04:55 PM, Chandler Carruth wrote:
>
> On Tue, Dec 23, 2014 at 4:51 PM, Sanjoy Das 
> <sanjoy at playingwithpointers.com 
> <mailto:sanjoy at playingwithpointers.com>> wrote:
>
>     > Perhaps it would help to explain it slightly differently: There are
>     > optimizations which we can only perform by *removing* any
>     no-wrap flags. But
>     > we don't know whether that optimization or the no-wrap flags is more
>     > important, and so we have to make a choice, and the choice is to
>     preserve
>     > the flags at the expense of the transformation. Thus, adding
>     flags can
>
>     Is this choice always in favor of retaining the flags?  Or is it a
>     per-transform decision?
>
>
> per-transform, but at least recently I've been seeing a trend towards 
> preserving flags.
>
Chandler, thanks for reframing this.   This suddenly makes a lot more 
sense to me.  :)

This is starting to seem like an canonicalization issue.   If we 
canonicalized to the form with flags, and deferred flag stripping until 
later in the optimization pipeline, would that get us a better practical 
result?

Philip
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141229/50d1c801/attachment.html>


More information about the llvm-commits mailing list