[LLVMdev] The nsw story
David A. Greene
greened at obbligato.org
Mon Dec 12 09:25:59 PST 2011
Dan Gohman <gohman at apple.com> writes:
>> Or you put it immediately after the select.
>> That was my thinking. The select is an observation point for its first operand,
>> but then merely propagates poison from the second or third, just like any
>> computational instruction would.
>> The icmp is an observation point for both inputs.
> Put the observation point on the add, the select, the icmp, or even the
> and, or between any of them, and it'll still be before the branch. That
> means that the code will have unconditional undefined behavior when the
> add overflows, which the original code did not have.
So put it after the branch. Absolutely nothing prevents that. That's
what IA64 compilers have to do today.
More information about the llvm-dev