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

Owen Anderson resistor at mac.com
Mon Mar 10 12:10:16 PDT 2014


LGTM.

—Owen

On Mar 10, 2014, at 4:48 AM, Erik Verbruggen <erik.verbruggen at me.com> wrote:

> 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.
> 
> <0001-GVN-merge-overflow-intrinsics-with-non-overflow-inst.patch>





More information about the llvm-commits mailing list