search for: instructionsimplify

Displaying 20 results from an estimated 87 matches for "instructionsimplify".

2010 Dec 28
0
[LLVMdev] Latest build warnings
Running a build on r122586, gave me the following warnings with: gcc version 4.2.1 (Apple Inc. build 5664) =================================================== <dir>/llvm/lib/Analysis/InstructionSimplify.cpp:82: warning: comparison between signed and unsigned integer expressions <dir>/llvm/lib/Analysis/InstructionSimplify.cpp:106: warning: comparison between signed and unsigned integer expressions <dir>/llvm/lib/Analysis/InstructionSimplify.cpp: In function ‘llvm::Value* FactorizeBinOp(...
2015 Sep 24
3
Comparing stack addresses and function args (Was: [llvm] r174131 - Add a comment explaining an unavailable optimization)
...at gmail.com> wrote: > Author: djg > Date: Thu Jan 31 18:49:06 2013 > New Revision: 174131 > > URL: http://llvm.org/viewvc/llvm-project?rev=174131&view=rev > Log: > Add a comment explaining an unavailable optimization. > > Modified: > llvm/trunk/lib/Analysis/InstructionSimplify.cpp > > Modified: llvm/trunk/lib/Analysis/InstructionSimplify.cpp > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/InstructionSimplify.cpp?rev=174131&r1=174130&r2=174131&view=diff > ===========================================================================...
2011 Mar 09
1
[LLVMdev] Is InstructionSimplify still a good place to contribute?
I'm looking for some opportunities to contribute to the LLVM core without too big of a learning curve. The open projects page<http://llvm.org/OpenProjects.html#misc_imp>suggests moving logic from the instruction combining transformation to the InstructionSimplify analysis. But it looks like some work has been done there since the projects page was last edited. Is there more benefit to be gained? Thanks, -- Charlie Garrett -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachme...
2017 Mar 30
2
InstructionSimplify: adding a hook for shufflevector instructions
As Sanjay noted in D31426<https://reviews.llvm.org/D31426#712701>, InstructionSimplify is missing the following simplification: This function: define <4 x i32> @splat_operand(<4 x i32> %x) { %splat = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> zeroinitializer %shuf = shufflevector <4 x i32> %splat, <4 x i32> undef, <4 x i...
2016 Jul 20
2
Hitting assertion failure related to vectorization + instcombine
...... #8 0x00000000013a8553 llvm::APInt::operator==(llvm::APInt const&) const /scratch/1/ismail/llvm-upstream/include/llvm/ADT/APInt.h:984:0 #9 0x0000000001f875b0 simplifySelectBitTest(llvm::Value*, llvm::Value*, llvm::Value*, llvm::APInt const*, bool) /scratch/1/ismail/llvm-upstream/lib/Analysis/InstructionSimplify.cpp:3388:0 #10 0x0000000001f87ad5 simplifySelectWithICmpCond(llvm::Value*, llvm::Value*, llvm::Value*, (anonymous namespace)::Query const&, unsigned int) /scratch/1/ismail/llvm-upstream/lib/Analysis/InstructionSimplify.cpp:3434:0 #11 0x0000000001f87f6a SimplifySelectInst(llvm::Value*, llvm::Val...
2015 Sep 24
2
Comparing stack addresses and function args (Was: [llvm] r174131 - Add a comment explaining an unavailable optimization)
...8:49:06 2013 >>> New Revision: 174131 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=174131&view=rev >>> Log: >>> Add a comment explaining an unavailable optimization. >>> >>> Modified: >>> llvm/trunk/lib/Analysis/InstructionSimplify.cpp >>> >>> Modified: llvm/trunk/lib/Analysis/InstructionSimplify.cpp >>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/InstructionSimplify.cpp?rev=174131&r1=174130&r2=174131&view=diff >>> ===========================================...
2015 Sep 24
3
Comparing stack addresses and function args (Was: [llvm] r174131 - Add a comment explaining an unavailable optimization)
...t;>> >>>>> URL: http://llvm.org/viewvc/llvm-project?rev=174131&view=rev >>>>> Log: >>>>> Add a comment explaining an unavailable optimization. >>>>> >>>>> Modified: >>>>> llvm/trunk/lib/Analysis/InstructionSimplify.cpp >>>>> >>>>> Modified: llvm/trunk/lib/Analysis/InstructionSimplify.cpp >>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/InstructionSimplify.cpp?rev=174131&r1=174130&r2=174131&view=diff >>>>> ===========...
2016 Jul 25
2
Hitting assertion failure related to vectorization + instcombine
Sure. David, what do you think about merging this to 3.9? Sanjay: are you saying I'd just apply that diff to InstructionSimplify.cpp, not InstCombineSelect.cpp? On Fri, Jul 22, 2016 at 7:08 AM, Sanjay Patel <spatel at rotateright.com> wrote: > Hi Hans - > > Yes, I think this is a good patch for 3.9 (cc'ing David Majnemer as code > owner). The functional change was r276209. I made an NFC refactoring in...
2016 Jul 20
2
Hitting assertion failure related to vectorization + instcombine
...t::operator==(llvm::APInt const&) const >> /scratch/1/ismail/llvm-upstream/include/llvm/ADT/APInt.h:984:0 >> #9 0x0000000001f875b0 simplifySelectBitTest(llvm::Value*, llvm::Value*, >> llvm::Value*, llvm::APInt const*, bool) >> /scratch/1/ismail/llvm-upstream/lib/Analysis/InstructionSimplify.cpp:3388:0 >> #10 0x0000000001f87ad5 simplifySelectWithICmpCond(llvm::Value*, >> llvm::Value*, llvm::Value*, (anonymous namespace)::Query const&, unsigned >> int) >> /scratch/1/ismail/llvm-upstream/lib/Analysis/InstructionSimplify.cpp:3434:0 >> #11 0x0000000001f87f...
2015 Sep 25
2
Comparing stack addresses and function args (Was: [llvm] r174131 - Add a comment explaining an unavailable optimization)
...://llvm.org/viewvc/llvm-project?rev=174131&view=rev >>>>>>> Log: >>>>>>> Add a comment explaining an unavailable optimization. >>>>>>> >>>>>>> Modified: >>>>>>> llvm/trunk/lib/Analysis/InstructionSimplify.cpp >>>>>>> >>>>>>> Modified: llvm/trunk/lib/Analysis/InstructionSimplify.cpp >>>>>>> URL: >>>>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/InstructionSimplify.cpp?rev=174131&r1=174130&r2=...
2016 Jul 22
2
Hitting assertion failure related to vectorization + instcombine
...amp;) const >>>> /scratch/1/ismail/llvm-upstream/include/llvm/ADT/APInt.h:984:0 >>>> #9 0x0000000001f875b0 simplifySelectBitTest(llvm::Value*, llvm::Value*, >>>> llvm::Value*, llvm::APInt const*, bool) >>>> /scratch/1/ismail/llvm-upstream/lib/Analysis/InstructionSimplify.cpp:3388:0 >>>> #10 0x0000000001f87ad5 simplifySelectWithICmpCond(llvm::Value*, >>>> llvm::Value*, llvm::Value*, (anonymous namespace)::Query const&, unsigned >>>> int) >>>> /scratch/1/ismail/llvm-upstream/lib/Analysis/InstructionSimplify.cpp:3434...
2016 Jul 27
0
Hitting assertion failure related to vectorization + instcombine
David, Sanjay: ping? On Mon, Jul 25, 2016 at 11:07 AM, Hans Wennborg <hans at chromium.org> wrote: > Sure. David, what do you think about merging this to 3.9? > > Sanjay: are you saying I'd just apply that diff to > InstructionSimplify.cpp, not InstCombineSelect.cpp? > > On Fri, Jul 22, 2016 at 7:08 AM, Sanjay Patel <spatel at rotateright.com> wrote: >> Hi Hans - >> >> Yes, I think this is a good patch for 3.9 (cc'ing David Majnemer as code >> owner). The functional change was r276209. I ma...
2016 Jul 28
1
Hitting assertion failure related to vectorization + instcombine
...> David, Sanjay: ping? > > On Mon, Jul 25, 2016 at 11:07 AM, Hans Wennborg <hans at chromium.org > <javascript:;>> wrote: > > Sure. David, what do you think about merging this to 3.9? > > > > Sanjay: are you saying I'd just apply that diff to > > InstructionSimplify.cpp, not InstCombineSelect.cpp? > > > > On Fri, Jul 22, 2016 at 7:08 AM, Sanjay Patel <spatel at rotateright.com > <javascript:;>> wrote: > >> Hi Hans - > >> > >> Yes, I think this is a good patch for 3.9 (cc'ing David Majnemer as code >...
2011 Oct 11
4
[LLVMdev] Hint about how to contribute to LLVM
...ties and, more that, "additional reading" and a "current status" if someone are currently working in this. Looking at http://llvm.org/OpenProjects.html, one point seems interesting: "Miscellaneous Improvements. Move more optimizations out of the -instcombine pass and into InstructionSimplify. The optimizations that should be moved are those that do not create new instructions, for example turning sub i32 %x, 0 into %x. Many passes use InstructionSimplify to clean up code as they go, so making it smarter can result in improvements all over the place.". For a newbie, what is the co...
2010 Nov 11
5
[LLVMdev] Simplifying selects + arm stuff
...i32 %x, %y > %s = select i1 %cond, i32 %y, i32 %z > %r = and i32 %x, %s > > Here %r could be simplified to > %r = and i32 %x, %y > (i.e. the same as %z) so replaced with %z everywhere. > > We even have logic to do this (ThreadBinOpOverSelect, which I just added) in > InstructionSimplify. The nice thing about InstructionSimplify is that it > doesn't ever create any new instructions, so is pretty much always a win. > The problem is that the logic never fires: your instcombine logic gets there > first, and transforms the example into > > %z = select i1 %cond, i3...
2017 Mar 30
2
InstructionSimplify: adding a hook for shufflevector instructions
...swer is no, because the undef indices allow returning a value that is not a splat. Thanks, Zvi From: Sanjay Patel [mailto:spatel at rotateright.com] Sent: Thursday, March 30, 2017 18:31 To: Rackover, Zvi <zvi.rackover at intel.com> Cc: llvm-dev <llvm-dev at lists.llvm.org> Subject: Re: InstructionSimplify: adding a hook for shufflevector instructions My grasp of LLVM history isn't great, but I think these are missing because there wasn't much need for vector optimization in IR because there just weren't that many vector opportunities in IR. Ie, the vectorizers are relatively new, and ha...
2014 Aug 27
2
[LLVMdev] Bug 16257 - fmul of undef ConstantExpr not folded to undef
Hi Duncan, Thank you a lot for your time to provide that great and informative explanation. Now the "undef" logic makes much more sense for me. >> /You are wrong to say that "div undef, %X" is folded to "undef" by InstructionSimplify, it is folded to zero./ My mistake. I meant to say "*f****div* undef, %X" is folded to "undef" (not integer "div"). >> /Fdiv is harder than div because a floating point division by 0.0 has a defined result, unlike for div. / Probably, the "Undefined Valu...
2011 Jan 20
1
[LLVMdev] [llvm-commits] [llvm] r123754 - in /llvm/trunk: lib/Analysis/InstructionSimplify.cpp test/Transforms/InstSimplify/2010-12-20-Distribute.ll
...> I'm just asking because building a tool to generate the instruction simplifier > automatically is relatively high on my TODO list and I don't want to duplicate > work :) The auto-simplifier is a very simple kind of super-optimizer. It tries to find optimizations suitable for InstructionSimplify [instsimplify]. The difference between instsimplify and instcombine is that instcombine is allowed to create new instructions while instsimplify needs to simplify expressions to already existing subexpressions present inside the existing expression. For example instsimplify can turn this (X +...
2014 Aug 26
2
[LLVMdev] Bug 16257 - fmul of undef ConstantExpr not folded to undef
...ndef"/. Seems I am missing something important about floats here. The same applies to "fdiv". /"fdiv undef, undef"/ is not folded but /"div %X, undef"/ and /"div undef, %X"/ are folded to /"undef"/ (SimplifyFDivInst function in lib/Analysis/InstructionSimplify.cpp). Moreover, SimplifyFDivInst does not take into account whether signalling of SNaNs can be switched off or not - it always folds if one of the operands is /"undef"/. Another mysterious thing for me is folding of /"mul %X, undef"/. The result depends on whether %X is odd o...
2014 Aug 27
3
[LLVMdev] Bug 16257 - fmul of undef ConstantExpr not folded to undef
...buys you a lot > for any floating point operation, but if you are not willing to assume > that then you need to find some other trick or give up on folding the > operation to undef. This is confusing me a bit. On the one hand, we can assume undef to be an SNaN for the sake of folding. InstructionSimplify makes such an assumption and folds "fdiv undef, %X" and "fdiv %X, undef" to undef. On the other hand, there are the requests to fold "fmul undef, undef" / "fadd undef, undef" to undef as well. However, it was stated that such folding is questionable as sig...