Displaying 6 results from an estimated 6 matches for "willnotoverflowsignedadd".
2014 Sep 02
2
[LLVMdev] Preserving NSW/NUW bits
...mp = trunc i64 %indvars.iv.next to i32
%cmp = icmp sle i32 %tmp, %0
br i1 %cmp, label %for.body, label %for.end.loopexit
However, AFAICT the NSW bits must be set. In what cases can we propagate
the NSW bit from the first add to the second, if any? If a case exists,
can this be handled by the WillNotOverflowSignedAdd function?
Chad
2011 Mar 06
0
[LLVMdev] First Patch
On Sun, Mar 6, 2011 at 10:11 AM, Sanjoy Das
<sanjoy at playingwithpointers.com> wrote:
> While I was at it, I also took a stab at finishing up one of the TODOs. I've
> attached the patch for review.
Comments inline.
For those of you following at home, this code is in
InstCombiner::WillNotOverflowSignedAdd(), and the first line of the
initial comment is:
// If one of the operands only has one non-zero bit, and if the
other operand
> --- lib/Transforms/InstCombine/InstCombineAddSub.cpp (revision 126747)
> +++ lib/Transforms/InstCombine/InstCombineAddSub.cpp (working copy)
> @@ -77,9 +77,...
2011 Mar 06
1
[LLVMdev] First Patch
Hi all!
I've been tinkering with LLVM's code-base for a few days, hoping to
start on one of the ideas mentioned in the "Open Projects" page (I was
told 'Improving the current system'/'Miscellaneous Improvements'/5 would
be a good start).
While I was at it, I also took a stab at finishing up one of the TODOs.
I've attached the patch for review.
--
2011 Mar 02
3
[LLVMdev] live variable analysis
Hi
As I understand live variable analysis will set the def/kill
properties of operands. In that case, is it still needed to set the
kill flags when possible during lowering?
thanks
dz
2011 Mar 08
0
[LLVMdev] First Patch
...only bit
width-2 zero. That isn't what you want, right?
> +
> + if ((mask & otherKnownZero).getBoolValue())
> + return true;
> +
> + return false;
This can be more concisely written as just
return (mask & otherKnownZero).getBoolValue();
> +}
> +
> /// WillNotOverflowSignedAdd - Return true if we can prove that:
> /// (sext (add LHS, RHS)) === (add (sext LHS), (sext RHS))
> /// This basically requires proving that the add in the original type would not
> @@ -77,9 +101,19 @@
> // has a known-zero bit in a more significant place than it (not including...
2011 Mar 08
2
[LLVMdev] First Patch
Hi!
I've attached a patch which takes care of the issues mentioned (and adds
two tests).
--
Sanjoy Das
http://playingwithpointers.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ripple-bucket.diff
Type: text/x-diff
Size: 3318 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110308/0814e3e8/attachment.diff>