search for: bb15

Displaying 20 results from an estimated 23 matches for "bb15".

Did you mean: bb1
2010 May 08
2
[LLVMdev] Remove identical or redundant basic blocks?
Dear all, after optimizing a small LLVM example program (i.e., with opt -O3), the resulting code contains several basic blocks, which I consider identical or redundant. For instance, return: ; preds = %min.exit ret i32 0 bb15: ; preds = %min.exit ret i32 0 or, bb7.i: ; preds = %bb1.i br label %bb3.i bb9.i: ; preds = %bb1.i br label %bb3.i I think it is safe to remove the blocks b...
2016 May 05
2
No remapping of clone instruction in CloneBasicBlock
Hi, Found CloneBasicBlock utility only does the cloning without any remapping. Consider below example: Input block: sw.epilog: ; preds = %sw.bb20, %sw.bb15, %sw.bb10, %sw.bb6, %sw.bb2, %sw.bb, %while.body, %if.end29 %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.b...
2010 May 08
2
[LLVMdev] Remove identical or redundant basic blocks?
...program (i.e., with opt -O3), >> the >> resulting code contains several basic blocks, which I consider >> identical >> or redundant.  For instance, >> >> return:                                           ; preds = %min.exit >>   ret i32 0 >> >> bb15:                                             ; preds = %min.exit >>   ret i32 0 >> >> or, >> >> bb7.i:                                            ; preds = %bb1.i >>   br label %bb3.i >> >> bb9.i:                                            ; preds = %...
2010 May 08
0
[LLVMdev] Remove identical or redundant basic blocks?
...optimizing a small LLVM example program (i.e., with opt -O3), > the > resulting code contains several basic blocks, which I consider > identical > or redundant. For instance, > > return: ; preds = %min.exit > ret i32 0 > > bb15: ; preds = %min.exit > ret i32 0 > > or, > > bb7.i: ; preds = %bb1.i > br label %bb3.i > > bb9.i: ; preds = %bb1.i > br label %bb3.i &gt...
2010 May 09
0
[LLVMdev] Remove identical or redundant basic blocks?
...gt;> the >>> resulting code contains several basic blocks, which I consider >>> identical >>> or redundant. For instance, >>> >>> return: ; preds = %min.exit >>> ret i32 0 >>> >>> bb15: ; preds = %min.exit >>> ret i32 0 >>> >>> or, >>> >>> bb7.i: ; preds = %bb1.i >>> br label %bb3.i >>> >>> bb9.i:...
2013 Nov 15
2
[LLVMdev] dominator, post-dominator and memory leak
...tiple free's to be inserted on the path from malloc to an exit. For example, in the following CFG: BB10 (malloc) / \ BB11 BB12 ... / \ / \ ... \ / \ / \ / BB13 BB14 BB15 | ... | / BB16 The block BB10 dominates BB11, BB12 and BB14. The dominance frontier of BB10 contains BB13, BB15 and BB16. So if the predecessors of the dominance frontier contains BB11, BB12 and BB14. If a call to free is inse...
2013 Nov 15
0
[LLVMdev] dominator, post-dominator and memory leak
Try breaking the critical edges (-break-crit-edges). This way, a new block will be created between BB13 and BB11 (call this BB11.break) and BB15 and BB12 (call this BB12.break). The predecessors of the dominance frontier will, thus, be BB11.break, BB12.break, and BB14. When we enter through a block with a call to malloc(), we will end up in one of the blocks in the dominance frontier (kind of). These blocks must have multiple predecessors,...
2017 Jan 30
3
Folding zext from i1 into PHI nodes with only zwo incoming values.
...= "x86_64-unknown-linux-gnu" define fastcc zeroext i1 @testfunc(i8** noalias nocapture readonly dereferenceable(8)) unnamed_addr { entry-block: %1 = load i8*, i8** %0, align 8 %2 = icmp ne i8* %1, null %.mux = zext i1 %2 to i8 br i1 %2, label %bb10, label %bb15 bb10: ; preds = %entry-block %3 = load i8, i8* %1, align 1 %4 = icmp eq i8 %3, 42 %.1 = zext i1 %4 to i8 br label %bb15 bb15: ; preds = %entry-block, %bb10 %_0.1 = phi i8...
2013 Nov 13
3
[LLVMdev] dominator, post-dominator and memory leak
...there is >> any pass that does similar analysis in order to avoid duplication of >> efforts. >> >> BB10 (entry) >> / \ >> BB11 BB12 (malloc) >> / / \ >> BB13 / BB15 >> \ / / \ >> \ / BB18 BB19 >> \ / \ / >> BB20 BB21 BB22 >> \ | / >> \ | / >> \ | / &gt...
2013 Nov 13
0
[LLVMdev] dominator, post-dominator and memory leak
...that does similar analysis in order to avoid duplication of >>> efforts. >>> >>> BB10 (entry) >>> / \ >>> BB11 BB12 (malloc) >>> / / \ >>> BB13 / BB15 >>> \ / / \ >>> \ / BB18 BB19 >>> \ / \ / >>> BB20 BB21 BB22 >>> \ | / >>> \ | / >>>...
2010 May 09
1
[LLVMdev] Remove identical or redundant basic blocks?
...lting code contains several basic blocks, which I consider >>>> identical >>>> or redundant. For instance, >>>> >>>> return: ; preds = %min.exit >>>> ret i32 0 >>>> >>>> bb15: ; preds = %min.exit >>>> ret i32 0 >>>> >>>> or, >>>> >>>> bb7.i: ; preds = %bb1.i >>>> br label %bb3.i >>>> >>>...
2013 Nov 13
2
[LLVMdev] dominator, post-dominator and memory leak
...exits after all users of malloc to avoid memory leak. I wonder whether there is any pass that does similar analysis in order to avoid duplication of efforts. BB10 (entry) / \ BB11 BB12 (malloc) / / \ BB13 / BB15 \ / / \ \ / BB18 BB19 \ / \ / BB20 BB21 BB22 \ | / \ | / \ | / \ | / BB23 (exit) Any advice...
2017 Jan 30
0
Folding zext from i1 into PHI nodes with only zwo incoming values.
...> > define fastcc zeroext i1 @testfunc(i8** noalias nocapture readonly > dereferenceable(8)) unnamed_addr { > entry-block: > %1 = load i8*, i8** %0, align 8 > %2 = icmp ne i8* %1, null > %.mux = zext i1 %2 to i8 > br i1 %2, label %bb10, label %bb15 > > bb10: ; preds = > %entry-block > %3 = load i8, i8* %1, align 1 > %4 = icmp eq i8 %3, 42 > %.1 = zext i1 %4 to i8 > br label %bb15 > > bb15: ; preds...
2008 Dec 01
2
[LLVMdev] Question in LLVM IR
...int x=0,y=0; if(a+b>10){ x=b-a; y=i-2*b; }else{ x=2*a+b; y=b-2*i; } return(x+y); } translates to %tmp11 = add i32 %a.0, %b.0 %tmp12 = icmp sgt i32 %tmp11, 10 br i1 %tmp12, label %bb15, label %bb32 bb15: ; preds = %entry %tmp29.pn38 = shl i32 %b.0, 1 %tmp18 = sub i32 %i, %a.0 %y.039 = add i32 %tmp18, %b.0 %tmp3540 = sub i32 %y.039, %tmp29.pn38 ret i32 %tmp3540 bb32: ; preds = %...
2013 Nov 13
0
[LLVMdev] dominator, post-dominator and memory leak
...id memory leak. I wonder whether there is > any pass that does similar analysis in order to avoid duplication of > efforts. > > BB10 (entry) > / \ > BB11 BB12 (malloc) > / / \ > BB13 / BB15 > \ / / \ > \ / BB18 BB19 > \ / \ / > BB20 BB21 BB22 > \ | / > \ | / > \ | / > \ | /...
2017 Jan 29
3
Folding zext from i1 into PHI nodes with only zwo incoming values.
Hi, AFAICT there are two places where zext instructions may get folded into PHI nodes. One is FoldPHIArgZextsIntoPHI and the other is the more generic FoldPHIArgOpIntoPHI. Now, the former only handles PHIs with more than 2 incoming values, while the latter only handles casts where the source type is legal. This means that for an PHI node with two incoming i8 values, both resulting from `zext i1
2013 Nov 13
2
[LLVMdev] dominator, post-dominator and memory leak
...n order to avoid duplication of >>>> efforts. >>>> >>>> BB10 (entry) >>>> / \ >>>> BB11 BB12 (malloc) >>>> / / \ >>>> BB13 / BB15 >>>> \ / / \ >>>> \ / BB18 BB19 >>>> \ / \ / >>>> BB20 BB21 BB22 >>>> \ | / >>>> \ |...
2014 Dec 05
2
[LLVMdev] InlineSpiller.cpp bug?
...ps from %vreg121 to %vreg122 (@2948, @2968), and the identity COPY from valno 5 to 6 @1520 for %vreg122. 3. Vreg122:5 @1472 is the beginning of a basic block. It was there all along, first in %vreg111, and then in %vreg122. %vreg111 gets split two blocks further down @1764. Outer loop { BB2: ... BB15: ... BB3: //joining BB2 and BB15 @1472 // PHI value that should have been detected as part of OrigLI. @1520 identity COPY 122 to 122 ... BB4: ... BB5: @1764 // This is where vreg111 is split and tracing of vreg121 begins. OrigVNI passed is @1520. // Exits with two edges into two o...
2014 Dec 09
2
[LLVMdev] InlineSpiller.cpp bug?
...for %vreg122. >> >> 3. >> Vreg122:5 @1472 is the beginning of a basic block. It was there all along, first in %vreg111, and then in %vreg122. %vreg111 gets split two blocks further down @1764. >> >> Outer loop >> { >> >> BB2: >> … >> BB15: >> … >> BB3: //joining BB2 and BB15 >> @1472 // PHI value that should have been detected as part of OrigLI. >> @1520 identity COPY 122 to 122 >> … >> BB4: >> … >> BB5: >> @1764 // This is where vreg111 is split and tracing of vr...
2013 Nov 13
0
[LLVMdev] dominator, post-dominator and memory leak
...serted in all the paths from BB12 to all exits > after all users of malloc to avoid memory leak. I wonder whether > there is any pass that does similar analysis in order to avoid > duplication of efforts. > > > BB10 (entry) > / \ > BB11 BB12 (malloc) > / / \ > BB13 / BB15 > \ / / \ > \ / BB18 BB19 > \ / \ / > BB20 BB21 BB22 > \ | / > \ | / > \ | / > \ | / > BB23 (exit) > > > Any advice is appreciated. Thanks in advance! > Bill > > > _______________________________________________ > LLVM Developers mailing list &...