search for: incdec

Displaying 20 results from an estimated 40 matches for "incdec".

2013 Feb 14
1
[LLVMdev] LiveIntervals analysis problem
....i.i, label %for.cond.preheader.i.i, label %if.end.i for.cond.preheader.i.i: ; preds = %if.end %cmp5.i.i = icmp eq i16 %4, 0 br i1 %cmp5.i.i, label %for.inc.i.i, label %eisneg.exit for.inc.i.i: ; preds = %for.cond.preheader.i.i %incdec.ptr.i.i = getelementptr inbounds [13 x i16]* %e, i32 0, i32 1 %5 = load i16* %incdec.ptr.i.i, align 2, !tbaa !5 %cmp5.1.i.i = icmp eq i16 %5, 0 br i1 %cmp5.1.i.i, label %for.inc.1.i.i, label %eisneg.exit for.inc.1.i.i: ; preds = %for.inc.i.i %incdec.ptr.1...
2016 Oct 06
2
LoopVectorizer -- generating bad and unhandled shufflevector sequence
...target instruction - as can be seen at the bottom. I would appreciate any input on this, and if needed I can supply a test case. /Jonas Loop before vectorize pass: while.body320: ; preds = %while.body320.preheader, %while.body320 %dl.0291 = phi i64* [ %incdec.ptr335, %while.body320 ], [ %73, %while.body320.preheader ] %ll.0290 = phi i64* [ %incdec.ptr332, %while.body320 ], [ %74, %while.body320.preheader ] %rl.0289 = phi i64* [ %incdec.ptr333, %while.body320 ], [ %75, %while.body320.preheader ] %len.0288 = phi i32 [ %dec, %while.body320 ], [...
2016 Feb 09
3
[GVN] same sequence of instructions in if and else branch
Hello, I found that GVN doesn't promote identical sequence of instructions in if and else branch to their common predecessors. For example, for the following code snippet pred: … br i1 %cmp, label %if, label %else if: %incdec.ptr.1 = getelementptr inbounds i8, i8* %ptr, i64 1 %cast1 = ptrtoint i8* %incdec.ptr.1 to i64 … else: %incdec.ptr.2 = getelementptr inbounds i8, i8* %ptr, i64 1 %cast2 = ptrtoint i8* %incdec.ptr.2 to i64 GVN doesn't move instructions in 'if' and 'else' blocks to '...
2012 Jan 26
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...und 82 pair connections. BBV: selected pairs in the best tree for: %0 = load i8* %r.063, align 1, !tbaa !0 BBV: selected pair: %mul23 = mul nsw i32 %conv14, 234 <-> %mul35 = mul nsw i32 %conv15, 543 BBV: selected pair: %0 = load i8* %r.063, align 1, !tbaa !0 <-> %1 = load i8* %incdec.ptr11, align 1, !tbaa !0 BBV: selected pair: %conv14 = zext i8 %0 to i32 <-> %conv15 = zext i8 %1 to i32 BBV: selected pair: %add26 = add i32 %mul25, %mul23 <-> %add36 = add i32 %mul35, %mul33 BBV: selected pair: %mul = mul nsw i32 %conv14, 123 <-> %mul16 = mul nsw i32...
2012 Jan 26
3
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Thu, 2012-01-26 at 15:12 -0600, Sebastian Pop wrote: > On Thu, Jan 26, 2012 at 2:49 PM, Hal Finkel <hfinkel at anl.gov> wrote: > > Thanks! Did you compile with any non-default flags other than -mllvm > > -vectorize? > > I used -O3 and -vectorize, no other non-default flags. If I run clang -O3 -mllvm -vectorize -S -emit-llvm -o test.ll test.c then I get no
2016 Feb 09
2
[GVN] same sequence of instructions in if and else branch
...lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote: Hello, I found that GVN doesn't promote identical sequence of instructions in if and else branch to their common predecessors. For example, for the following code snippet pred: … br i1 %cmp, label %if, label %else if: %incdec.ptr.1 = getelementptr inbounds i8, i8* %ptr, i64 1 %cast1 = ptrtoint i8* %incdec.ptr.1 to i64 … else: %incdec.ptr.2 = getelementptr inbounds i8, i8* %ptr, i64 1 %cast2 = ptrtoint i8* %incdec.ptr.2 to i64 GVN doesn't move instructions in 'if' and 'else' blocks to '...
2012 Jan 26
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Thu, Jan 26, 2012 at 3:41 PM, Hal Finkel <hfinkel at anl.gov> wrote: > On Thu, 2012-01-26 at 15:36 -0600, Sebastian Pop wrote: >> arm-none-linux-gnueabi > > Indeed, adding -ccc-host-triple arm-none-linux-gnueabi I also get Minor remark: please use -target instead of -ccc-host-triple that is now deprecated. Thanks for looking at this testcase. Sebastian -- Qualcomm
2013 Oct 21
5
[LLVMdev] First attempt at recognizing pointer reduction
...into more complicated bits. An example of the debug output I get for my earlier example: LV: Checking a loop in "fn1" LV: Found a loop: for.body == Induction == LV: Found an induction variable. == Our write reduction == LV: Found a pointer add reduction PHI. %WRITE913 = phi i8* [ %incdec.ptr18, %for.body ], [ %WRITE, %for.body.preheader ] == Not sure what this is... Will check. == LV: Found an non-int non-pointer PHI. == Our read reduction == LV: Found a pointer add reduction PHI. %READ1012 = phi i8* [ %incdec.ptr2, %for.body ], [ %READ, %for.body.preheader ] == Below are the...
2012 Jan 26
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Thu, 2012-01-26 at 15:36 -0600, Sebastian Pop wrote: > arm-none-linux-gnueabi Indeed, adding -ccc-host-triple arm-none-linux-gnueabi I also get vectorization (even though I don't get vectorization when targeting x86_64). I'll let you know what I find. -Hal -- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory
2016 Feb 09
2
[GVN] same sequence of instructions in if and else branch
...t; if and else branch to their common predecessors. For example, for the >>> following code snippet >>> >>> >>> pred: >>> >>> … >>> >>> br i1 %cmp, label %if, label %else >>> >>> if: >>> >>> %incdec.ptr.1 = getelementptr inbounds i8, i8* %ptr, i64 1 >>> >>> %cast1 = ptrtoint i8* %incdec.ptr.1 to i64 >>> >>> … >>> >>> else: >>> >>> %incdec.ptr.2 = getelementptr inbounds i8, i8* %ptr, i64 1 >>> >>> %cas...
2013 Oct 21
0
[LLVMdev] First attempt at recognizing pointer reduction
...utput I get for my earlier example: > > LV: Checking a loop in "fn1" > LV: Found a loop: for.body > > == Induction == > > LV: Found an induction variable. > > == Our write reduction == > > LV: Found a pointer add reduction PHI. %WRITE913 = phi i8* [ %incdec.ptr18, %for.body ], [ %WRITE, %for.body.preheader ] > > == Not sure what this is... Will check. == > > LV: Found an non-int non-pointer PHI. > > == Our read reduction == > > LV: Found a pointer add reduction PHI. %READ1012 = phi i8* [ %incdec.ptr2, %for.body ], [ %READ,...
2013 Aug 22
2
[LLVMdev] scev questions
...IR for the loop and the SCEV dump: for.body: ; preds = %for.body.lr.ph, %for.body %i.07 = phi i32 [ 0, %for.body.lr.ph ], [ %add1, %for.body ] %s.06 = phi i32 [ 0, %for.body.lr.ph ], [ %add, %for.body ] %a.addr.05 = phi i32* [ %a, %for.body.lr.ph ], [ %incdec.ptr, %for.body ] %incdec.ptr = getelementptr inbounds i32* %a.addr.05, i64 1 %0 = load i32* %a.addr.05, align 4, !tbaa !0 %add = add i32 %0, %s.06 %add1 = add nsw i32 %i.07, 4 %cmp = icmp slt i32 %add1, %len br i1 %cmp, label %for.body, label %for.cond.for.end_crit_edge Classifying ex...
2013 Sep 11
0
[LLVMdev] removing unnecessary ZEXT
...if (!*c) break; ++c; } while (*c); } And in IR form: define void @test(i8* nocapture %c) { entry: %.pre = load i8* %c, align 1 br label %do.body do.body: %0 = phi i8 [ %.pre, %entry ], [ %1, %if.end ] %c.addr.0 = phi i8* [ %c, %entry ], [ %incdec.ptr, %if.end ] %tobool = icmp eq i8 %0, 0 br i1 %tobool, label %do.end, label %if.end if.end: %incdec.ptr = getelementptr inbounds i8* %c.addr.0, i64 1 %1 = load i8* %incdec.ptr, align 1 %tobool1 = icmp eq i8 %1, 0 br i1 %tobool1, label %do.end, label %do.bod...
2013 Oct 21
0
[LLVMdev] First attempt at recognizing pointer reduction
...utput I get for my earlier example: > > LV: Checking a loop in "fn1" > LV: Found a loop: for.body > > == Induction == > > LV: Found an induction variable. > > == Our write reduction == > > LV: Found a pointer add reduction PHI. %WRITE913 = phi i8* [ %incdec.ptr18, %for.body ], [ %WRITE, %for.body.preheader ] > > == Not sure what this is... Will check. == > > LV: Found an non-int non-pointer PHI. > > == Our read reduction == > > LV: Found a pointer add reduction PHI. %READ1012 = phi i8* [ %incdec.ptr2, %for.body ], [ %READ,...
2013 Sep 11
2
[LLVMdev] removing unnecessary ZEXT
On Sep 10, 2013, at 8:59 AM, Robert Lytton <robert at xmos.com> wrote: > Hi, > > A bit more information. > I believe my problem lies with the fact that the load is left as 'anyext from i8'. > On the XCore target we know this will become an 8bit zext load - as there is no 8bit sign extended load! > If BB#1 were to force the load to a "zext from i8" would
2006 Dec 14
5
persistant: Matlab->R
Dear list members, Could anyone tell me if there is an equivalent of the Matlab declaration 'persistant' in R? Thank you very much, Bernard Gregorry. (Matlaber converted to R). --------------------------------- [[alternative HTML version deleted]]
2007 Jan 06
2
[LLVMdev] More detailed example...
> How are you compiling this? I get the following sort of output: > > llvm-gcc incdec.cpp -o incdec I am currently using LLVM 1.8 -- I was basically holding off porting until LLVM 2.0 stabilises because I want to be able to move to 64 bit Intel and don't want to have to hit a moving target. > void %inc(int* %p) { > entry: > %tmp = volatile load int* %p...
2013 Aug 22
0
[LLVMdev] scev questions
...dump: > > for.body: ; preds = > %for.body.lr.ph, %for.body > %i.07 = phi i32 [ 0, %for.body.lr.ph ], [ %add1, %for.body ] > %s.06 = phi i32 [ 0, %for.body.lr.ph ], [ %add, %for.body ] > %a.addr.05 = phi i32* [ %a, %for.body.lr.ph ], [ %incdec.ptr, %for.body > ] > %incdec.ptr = getelementptr inbounds i32* %a.addr.05, i64 1 > %0 = load i32* %a.addr.05, align 4, !tbaa !0 > %add = add i32 %0, %s.06 > %add1 = add nsw i32 %i.07, 4 > %cmp = icmp slt i32 %add1, %len > br i1 %cmp, label %for.body, label %for.cond...
2016 May 05
2
No remapping of clone instruction in CloneBasicBlock
...%no_final.1 = phi i32 [ %no_final.055, %while.body ], [ 1, %if.end29 ], [ %no_final.055, %sw.bb20 ], [ %no_final.055, %sw.bb15 ], [ %no_final.055, %sw.bb10 ], [ %no_final.055, %sw.bb6 ], [ %no_final.055, %sw.bb2 ], [ %no_final.055, %sw.bb ] %locinput.1 = phi i8* [ %locinput.057, %while.body ], [ %incdec.ptr, %if.end29 ], [ %locinput.057, %sw.bb20 ], [ %locinput.057, %sw.bb15 ], [ %locinput.057, %sw.bb10 ], [ %locinput.057, %sw.bb6 ], [ %locinput.057, %sw.bb2 ], [ %locinput.057, %sw.bb ] %next30 = getelementptr inbounds %struct.Node, %struct.Node* %scan.056, i64 0, i32 0, !dbg !91 %8 = load %st...
2012 Feb 02
0
[LLVMdev] How to improve code generated for 'getelementptr' ?
...; preds = %for.body ret void } define void @Init2(i32* %p, i32* %e) nounwind { entry: %cmp1 = icmp eq i32* %p, %e br i1 %cmp1, label %while.end, label %while.body while.body: ; preds = %entry, %while.body %p.addr.02 = phi i32* [ %incdec.ptr, %while.body ], [ %p, %entry ] %incdec.ptr = getelementptr inbounds i32* %p.addr.02, i32 1 store i32 4, i32* %p.addr.02, align 4, !tbaa !0 %cmp = icmp eq i32* %incdec.ptr, %e br i1 %cmp, label %while.end, label %while.body while.end: ; preds = %wh...