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