[PATCH] GVN: merge overflow intrinsics with non-overflow instructions.

Erik Verbruggen erik.verbruggen at me.com
Mon Mar 10 04:48:30 PDT 2014


1 week ping!

Added Owen Anderson as advised by someone on irc...

-- Erik.

On 28 Feb 2014, at 11:07, Erik Verbruggen <erik.verbruggen at me.com> wrote:

> When an overflow intrinsic is followed by a non-overflow instruction,
> replace the latter with an extract. For example:
> 
>  %sadd = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
>  %sadd3 = add i32 %a, %b
> 
> Here the add statement will be replaced by an extract.
> 
> When an overflow intrinsic follows a non-overflow instruction, a clone
> of the intrinsic is inserted before the normal instruction, which makes
> it the same as the previous case. Subsequent runs of GVN can then clean
> up the duplicate instructions and insert the extract.
> 
> This fixes PR8817.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-GVN-merge-overflow-intrinsics-with-non-overflow-inst.patch
Type: application/octet-stream
Size: 11794 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140310/deda5952/attachment.obj>


More information about the llvm-commits mailing list