similar to: [LLVMdev] Cast instructions

Displaying 20 results from an estimated 1200 matches similar to: "[LLVMdev] Cast instructions"

2008 Nov 09
2
[LLVMdev] m_Not Pattern Question
I have a question about the pattern matching stuff that's used in the Instruction Combiner. If I have code like this: if (match(B, m_Select(m_Value(), m_ConstantInt(0), m_ConstantInt(-1)))) { if (match(C, m_Not(m_Value(B)))) return SelectInst::Create(cast<User>(B)->getOperand(0), D, A); and we match, the program fails during the
2008 Nov 09
0
[LLVMdev] m_Not Pattern Question
Bill Wendling wrote: > I have a question about the pattern matching stuff that's used in the > Instruction Combiner. If I have code like this: > > if (match(B, m_Select(m_Value(), m_ConstantInt(0), > m_ConstantInt(-1)))) { > if (match(C, m_Not(m_Value(B)))) > return SelectInst::Create(cast<User>(B)->getOperand(0), D, A); > > and we
2006 Apr 07
0
[LLVMdev] CVS Broken?
On Fri, 7 Apr 2006, Robert L. Bocchino Jr. wrote: > I did a utils/cvsupdate, and there are no conflicts. srcdir != objdir. This > is on persephone. > > Are you not getting this error? Perhaps I should check out a fresh tree and > try to compile it? Nope, I don't think anyone else is getting this error. If you could try a fresh build that would be great, I'll fire
2006 Apr 07
2
[LLVMdev] CVS Broken?
I did a utils/cvsupdate, and there are no conflicts. srcdir != objdir. This is on persephone. Are you not getting this error? Perhaps I should check out a fresh tree and try to compile it? Rob On Apr 7, 2006, at 11:40 AM, Chris Lattner wrote: > On Fri, 7 Apr 2006, Robert L. Bocchino Jr. wrote: >> I just updated from CVS, and after doing a clean rebuild I get >> this
2006 Apr 07
0
[LLVMdev] CVS Broken?
On Fri, 7 Apr 2006, Robert L. Bocchino Jr. wrote: > I just updated from CVS, and after doing a clean rebuild I get this error: Are you sure that no conflicts prevented updating from going smoothly? How are you building (srcdir ==/!= objdir)? -Chris > /Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h: In static > member function 'static bool
2006 Apr 07
0
[LLVMdev] CVS Broken?
I'm guessing the problem occurred because I hadn't updated in a while (maybe a couple of weeks?) and I had an old Intrinsics.gen file hanging around in my source directory that was getting picked up by the makefile for some reason. This is a bug, but maybe it's harmless because there's a onetime workaround (delete the file by hand) and it won't be a problem for
2006 Apr 07
2
[LLVMdev] CVS Broken?
I've done several CVS head builds today .. no problems on Linux. Reid. On Fri, 2006-04-07 at 11:53 -0500, Chris Lattner wrote: > On Fri, 7 Apr 2006, Robert L. Bocchino Jr. wrote: > > > I did a utils/cvsupdate, and there are no conflicts. srcdir != objdir. This > > is on persephone. > > > > Are you not getting this error? Perhaps I should check out a fresh
2006 Apr 07
3
[LLVMdev] CVS Broken?
I just updated from CVS, and after doing a clean rebuild I get this error: /Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h: In static member function 'static bool llvm::DbgInfoIntrinsic::classof (const llvm::IntrinsicInst*)': /Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h:77: error: 'dbg_declare' is not a member of 'llvm::Intrinsic'
2006 Apr 07
2
[LLVMdev] CVS Broken?
OK, when I copy $(SRCDIR)/include/llvm/Intrinsics.gen to $(OBJDIR)/ include/llvm/ by hand after building (and failing) once, the build succeeds. This is definitely a makefile bug. Rob On Apr 7, 2006, at 11:40 AM, Chris Lattner wrote: > On Fri, 7 Apr 2006, Robert L. Bocchino Jr. wrote: >> I just updated from CVS, and after doing a clean rebuild I get >> this error: > >
2006 Jan 08
0
[LLVMdev] Dynamically loaded passes under OS X
Here's why I was questioning the change to sample/lib/sample Makefile: make[4]: Entering directory `/proj/llvm/build/projects/sample/lib/sample' llvm[4]: Compiling sample.c for Debug build (PIC) llvm[4]: Linking Debug Shared Library sample.so llvm[4]: Linking Debug Object Library sample.o /proj/install/lib/libstdc++.a: member /proj/install/lib/libstdc++.a (allocator-inst.o) in archive is
2009 Jun 29
3
[LLVMdev] About debug in LLVM!!!
Hi all LLVMdev! Here is a question: I try to understand how I can realize a debugging in LLVM!? I have written a back end for my target and now I need a debug. I asked developers Chris Lattner and Robert L. Bocchino. They recommend me ask the LLVMdev. Is there a tool like "llvm-db" about Robert said? Here a mail from Robert: On Jun 29, 2009, at 17:14 PM, Robert L. Bocchino
2017 Jul 13
2
failing to optimize boolean ops on cmps
We have several optimizations in InstCombine for bitwise logic ops (and/or/xor) that fail to handle compare patterns with the equivalent bitwise logic. Example: define i8 @or_and_not(i8 %a, i8 %b) { %nota = xor i8 %a, -1 %and = and i8 %nota, %b %res = or i8 %and, %a ret i8 %res } define i1 @or_and_cmp_not(i32 %a, i32 %b, i1 %c) { %cmp = icmp sgt i32 %a, %b %cmp_inv = icmp sle i32 %a,
2006 Jan 06
2
[LLVMdev] Dynamically loaded passes under OS X
When I tried this a while back, the .so file wasn't being built on Mac OS X. Now it looks like it is. I got dynamic loading to work following the instructions in http://llvm.cs.uiuc.edu/docs/ WritingAnLLVMPass.html. However, there was a typo in the instructions (it should say LOADABLE_MODULE = 1), and I fixed that and committed it. I also fixed the sample/lib/sample Makefile to
2017 Jul 13
2
failing to optimize boolean ops on cmps
This can't be an instsimplify though? The values we want in these cases do not exist already: %res = or i8 %b, %a %res = or i1 %cmp, %c On Thu, Jul 13, 2017 at 5:10 PM, Daniel Berlin <dberlin at dberlin.org> wrote: > > > On Thu, Jul 13, 2017 at 2:12 PM, Sanjay Patel <spatel at rotateright.com> > wrote: > >> We have several optimizations in InstCombine
2006 Apr 19
0
[LLVMdev] 1.7 Pre-Release Ready for Testing
I haven't seen anyone claim x86 linux objdir == srcdir, so I'll test it out. Missed the 18th,but I'll try to have it done asap. On Apr 18, 2006, at 2:51 PM, Robert L. Bocchino Jr. wrote: > I'll test on Darwin/PPC, precompiled llvmgcc, objdir == srcdir. > > Rob > > On Apr 16, 2006, at 1:42 PM, Chris Lattner wrote: > >> On Sun, 16 Apr 2006, Tanya Lattner
2006 Jan 06
0
[LLVMdev] Dynamically loaded passes under OS X
The answer lies in the lib/System/ltdl.c which is the dynamic loader used by LLVM for cross platform dynamic loading. If there are paths or files that we're not looking for on OS/X then that needs to be fixed. Could you be a little more specific about what failures you are experiencing? Reid. On Fri, 2006-01-06 at 14:25 -0600, Robert L. Bocchino Jr. wrote: > Hi, > > > In the
2018 Dec 18
2
should we do this time-consuming transform in InstCombine?
Hi, There is an opportunity in instCombine for following instruction pattern: %mul = mul nsw i32 %b, %a %cmp = icmp sgt i32 %mul, -1 %sub = sub i32 0, %a %mul2 = mul nsw i32 %sub, %b %cond = select i1 %cmp, i32 %mul, i32 %mul2 Source code for above pattern: return (a*b) >=0 ? (a*b) : -a*b; Currently, llvm(-O3) can not recognize this as abs(a*b). I initially think we could do this in
2008 May 17
2
[LLVMdev] More info, was Help needed after hiatus
Hi, I know my last question was very vague (i.e. "It stopped working, what went wrong?"), so here is a little more concrete example: If I run the optimizer (opt) on this code snippet with -std-compile-opts the optimizer hangs. ; ModuleID = 'test.ubc' target datalayout =
2018 Dec 18
2
should we do this time-consuming transform in InstCombine?
Hi Roman, Thanks for your good idea. I think it can solve the abs issue very well. I can continue with my work now^-^. But if it is not abs and there is no select, %res = OP i32 %b, %a %sub = sub i32 0, %b %res2 = OP i32 %sub, %a theoretically, we can still do the following transform for the above pattern: %res2 = OP i32 %sub, %a ==> %res2 = sub i32 0, %res Not sure whether we can do it
2012 Feb 09
2
[LLVMdev] Your commit 149912 "Remove some dead code and tidy things up"...
Hi Chris, this was a very tempting commit to make, unfortunately it broke pattern matching of vectors of booleans. The problem is that a ConstantDataVector is only formed if the element type is one of i8, i16, etc. So vectors of funky types, or not so funky types like i1, are no longer matched. I noticed this while working on PR11948. The good thing is that the testcase there no longer crashes