Displaying 13 results from an estimated 13 matches for "instcombineaddsub".
2014 Jun 25
2
[LLVMdev] Question Regarding Sign-Overflow
Sorry, the old title didn't make sense.
> Hi,
>
> I have doubts on the following transformation in InstCombineAddSub.cpp. Is
> it always safe to preserve NSW/NUW in this case?
>
> // If this is a 'B = x-(-A)', change to B = x+A. This preserves NSW/NUW. if (Value <https://cs.corp.google.com/#piper///depot/google3/third_party/llvm/llvm/include/llvm/IR/Value.h&ct=xref_jump_to_def&cl=G...
2014 Jul 01
2
[LLVMdev] Probable error in InstCombine
...tdio.h>
> #include <limits.h>
>
> int foo(int x)
> {
> return -(x/INT_MIN);
> }
>
> int main (void)
> {
> printf ("%d\n", foo(INT_MIN));
> }
This will print -1 or 1, depending on the optimization level.
This appears to be the relevant code:
InstCombineAddSub.cpp:1556
> // 0 - (X sdiv C) -> (X sdiv -C)
> if (match(Op1, m_SDiv(m_Value(X), m_Constant(C))) &&
> match(Op0, m_Zero()))
> return BinaryOperator::CreateSDiv(X, ConstantExpr::getNeg(C));
- David Menendez
2011 Mar 08
0
[LLVMdev] First Patch
...T: sitofp
CHECK-NOT: fadd
(Those last two are to confirm you removed the other sitofp and the
floating-point add)
> + %a = sitofp i32 %p to double
> + %b = sitofp i32 %q to double
> + %result = fadd double %a, %b
> + ret double %result
> +}
> Index: lib/Transforms/InstCombine/InstCombineAddSub.cpp
> ===================================================================
> --- lib/Transforms/InstCombine/InstCombineAddSub.cpp (revision 127153)
> +++ lib/Transforms/InstCombine/InstCombineAddSub.cpp (working copy)
> @@ -57,6 +57,30 @@
> }
>
>
> +static bool RippleBucketE...
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>
2014 Jun 06
2
[LLVMdev] how to turn off conversion of add's into or's (in address calculations)
It seems some optimization pass converts some address computation add's
into or's when it knows it's allowed due correct alignment.
How do I turn this off keep the address calculations as adds?
2010 Sep 03
0
[LLVMdev] Thoughts about the llvm architecture -
...DAG graph later gets converted into MachineInstrs after
> scheduling.
>
then it seems this is done:
instCombine (on llvm ir)
llvm ir -> selection dag
lower
combine
legalize
combine
...
I wonder if there is duplicate code in instCombine (on llvm ir, e.g.
llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp)
and combine on selection dag, and worst of all I can't use
lower since I write llvm ir into highlevel code (like CBackend)
and therefore have to implement my own lower. Or do you
a better idea for this?
-Jochen
2010 Sep 04
1
[LLVMdev] Thoughts about the llvm architecture -
...;>
>>
>
> then it seems this is done:
> instCombine (on llvm ir)
> llvm ir -> selection dag
> lower
> combine
> legalize
> combine
> ...
>
> I wonder if there is duplicate code in instCombine (on llvm ir, e.g.
> llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp)
> and combine on selection dag, and worst of all I can't use
> lower since I write llvm ir into highlevel code (like CBackend)
> and therefore have to implement my own lower. Or do you
> a better idea for this?
>
> -Jochen
The same passes would be beneficial for my PTX ba...
2011 Mar 06
0
[LLVMdev] First Patch
...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,55 @@
> // has a known-zero bit in a more significant place than it (not including the
> // sign bit) the ripple may go up to and fill the zero, but won't change the
>...
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
2010 Sep 03
1
[LLVMdev] Thoughts about the llvm architecture -
On 2010-09-03 13:19, Jochen Wilhelmy wrote:
>
>>> Hi!
>>>
>>> The following thoughts about the llvm architecture I'd like to share
>>> with you
>>> (from the perspective of a user):
>>>
>>> - If a backend has no vector support, then I wonder why there is no
>>> de-vectorization
>>> pass that operates on
2010 Sep 03
3
[LLVMdev] Thoughts about the llvm architecture
>> Hi!
>>
>> The following thoughts about the llvm architecture I'd like to share
>> with you
>> (from the perspective of a user):
>>
>> - If a backend has no vector support, then I wonder why there is no
>> de-vectorization
>> pass that operates on indermediate llvm-ir. I would think that if you
>> use such a target
>> then
2015 Jul 29
1
[LLVMdev] Error when i am using command make -j4 command in cygwin to compile safecode
...ry libLLVMipa.a
make[3]: Leaving directory '/home/NIKHILREDDY/WORK/LLVM_OBJ/lib/Analysis/IPA'
make[2]: Leaving directory '/home/NIKHILREDDY/WORK/LLVM_OBJ/lib/Analysis'
make[3]: Entering directory '/home/NIKHILREDDY/WORK/LLVM_OBJ/lib/Transforms/InstCombine'
llvm[3]: Compiling InstCombineAddSub.cpp for Release+Asserts build
llvm[3]: Compiling LoopRerollPass.cpp for Release+Asserts build
llvm[3]: Compiling X86SelectionDAGInfo.cpp for Release+Asserts build
llvm[3]: Compiling DwarfCFIException.cpp for Release+Asserts build
llvm[3]: Compiling InstCombineAndOrXor.cpp for Release+Asserts build...