search for: bb5

Displaying 20 results from an estimated 71 matches for "bb5".

Did you mean: b5
2009 Jan 06
2
[LLVMdev] LLVM Optmizer
..."i386-pc-linux-gnu" define i32 @TESTE2(i32 %parami, i32 %paraml, double %paramd) nounwind readnone { entry: %0 = shl i32 %parami, 1 ; <i32> [#uses=1] %varx.110 = add i32 %0, %paraml ; <i32> [#uses=2] %1 = icmp slt i32 %paraml, 1 ; <i1> [#uses=1] br i1 %1, label %bb5, label %bb3 bb3: ; preds = %bb3, %entry %indvar = phi i32 [ %indvar.next, %bb3 ], [ 0, %entry ] ; <i32> [#uses=3] %2 = add i32 %indvar, 2 ; <i32> [#uses=1] %3 = icmp sgt i32 %2, %paraml ; <i1> [#uses=1] %indvar.next = add i32 %indvar, 1 ; <i32> [#uses=1] br i1 %3,...
2007 Sep 28
3
[LLVMdev] Crash on accessing deleted MBBs (new backend)
...Now I've run into branches and I have a crash I don't really understand. Here's the sample IR I'm running llc on to generate assembly: define i32 @ilog2(i32 %x) { entry: %tmp718 = icmp eq i32 %x, 0 ; <i1> [#uses=1] br i1 %tmp718, label %bb9, label %bb5 bb5: ; preds = %bb5, %entry %indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb5 ] ; <i32> [#uses=2] %x_addr.015.0 = phi i32 [ %x, %entry ], [ %tmp2, %bb5 ] ; <i32> [#uses=2] %tmp2 = ashr i32 %x_addr.015.0, 1 ; <i32> [#uses=1]...
2010 Nov 17
1
[LLVMdev] Copy Instruction from one Basic block to another
...b1 bb2 \ / bb3 | bb4 Now I want to create a new basic block, say bb5 between bb2 & bb3, copy some instructions from bb3 to bb5. Then I want to add between bb2 and bb3, then outgoing edge from bb5 is to be attached with bb4. Finally my program will look like : bb...
2009 Sep 03
2
[LLVMdev] Non-local DSE optimization
...ionB* nocapture %CHAIN. > 190) { > entry: > br i1 undef, label %bb, label %bb3 > > bb: ; preds = %entry > unreachable > > bb3: ; preds = %entry > br i1 undef, label %bb4, label %bb5 > > bb4: ; preds = %bb3 > unreachable > > bb5: ; preds = %bb3 > invoke void undef() > to label %invcont unwind label %lpad > > invcont:...
2009 Sep 06
0
[LLVMdev] Non-local DSE optimization
...0) { >> entry: >> br i1 undef, label %bb, label %bb3 >> >> bb: ; preds = %entry >> unreachable >> >> bb3: ; preds = %entry >> br i1 undef, label %bb4, label %bb5 >> >> bb4: ; preds = %bb3 >> unreachable >> >> bb5: ; preds = %bb3 >> invoke void undef() >> to label %invcont unwind label %lpad >> >> invcont:...
2009 Aug 28
1
[LLVMdev] va_arg
...#uses=2] %2 = getelementptr [1 x %struct.__va_list_tag]* %list, i64 0, i64 0, i32 3 ; <i8**> [#uses=1] %3 = getelementptr [1 x %struct.__va_list_tag]* %list, i64 0, i64 0, i32 2 ; <i8**> [#uses=2] br label %bb bb: ; preds = %bb5, %bb.nph %i.011 = phi i32 [ 0, %bb.nph ], [ %indvar.next, %bb5 ] ; <i32> [#uses=1] %sum.012 = phi i32 [ 0, %bb.nph ], [ %14, %bb5 ] ; <i32> [#uses=1] %4 = load i32* %1, align 8 ; <i32> [#uses=3] %5 = icmp ult i32 %4, 48...
2009 Sep 08
2
[LLVMdev] Non-local DSE optimization
...>> br i1 undef, label %bb, label %bb3 >>> >>> bb: ; preds = %entry >>> unreachable >>> >>> bb3: ; preds = %entry >>> br i1 undef, label %bb4, label %bb5 >>> >>> bb4: ; preds = %bb3 >>> unreachable >>> >>> bb5: ; preds = %bb3 >>> invoke void undef() >>> to label %invcont unwind label %lpad &...
2011 Dec 09
1
[LLVMdev] Branch Instruction layout
Given an instruction like this: br i1 %tmp12, label %bb5, label %bb6 I'm confused as to why Operand(1) = bb6 and not bb5 and why Operand(2) is bb5 and not bb6. Why in the instruction does the true path always list first but when accessing the operands of the instruction, it is backwards? Is there a particular reason for this? -------------- next pa...
2008 Jan 04
0
[LLVMdev] Extraction of Arguments Passed to a Function
...hat the temporary variables created for different basic block are independent from each other, for example in the following IR the temp variables used in the basic block bb: i.e. %tmp, %tmp1, %tmp2 are only dependent on the variables defined in the entry: basic block, and same holds for basic block bb5: i.e. variables %tmp6, %tmp7, %tmp8 etc are only dependent on the variables in the entry block (%limit_addr, %i.. etc) and the temp variables defined in the same basic block. Is this true ?, as far as i have seen, by generating the bitcode for various test codes, and it holds true for all. So, now...
2009 Sep 03
0
[LLVMdev] Non-local DSE optimization
Hi Jakub, interesting patch. I ran it over the Ada testsuite and this picked up some problems even without enabling dse-ssu. For example, "opt -inline -dse -domtree" crashes on the attached testcase. Ciao, Duncan. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: dom_crash.ll URL:
2011 Nov 21
1
[LLVMdev] Fwd: Order of Basic Blocks
...googlemail.com> This worked, though the RPO_iterator apparently wasn't what I was looking for anyways, it seems it doesn't rreally go top->down. I have a simple example code, where the block follow this path: BB0->BB1 (T), BB8 (F) BB1-> BB2 (T), BB3 (F) BB2-> BB4 BB3-> BB5 BB4-> BB6 BB5-> BB8 (T), BB5 (F) BB6-> BB7 (T), BB4 (F) BB7-> BB8 (T), BB4 (F) BB8 (end) So, this is the basic block flow graph. When I iterate using the ReversePostOrderTraversal iterator, the basic blocks vistied are in this order: BB0, BB1, BB3, BB2, BB7, BB6, BB4, BB5, BB8 Can so...
2009 Aug 31
2
[LLVMdev] Non-local DSE optimization
Hello, This patch adds non-local DSE optimization. It uses Static Single Use representation. This is my first "big" patch, please be tolerant :-) Please note that optimization is disabled by default. -Jakub -------------- next part -------------- A non-text attachment was scrubbed... Name: dse_ssu.patch Type: application/octet-stream Size: 17352 bytes Desc: not available URL:
2007 Dec 20
0
[LLVMdev] First time!
...can simply traverse the graph bottom up till the root. The number of nodes encountered would be the number of predecessors. The second way would be to use the special ;preds marker in the llvm IR. Each basic block starts with this line which details the name of its predecessor blocks for example bb5: ; preds bb2, bb3 thus bb5 is preceeded by bb2 and bb3. but, one word of caution, even bb2 and bb3 can be preceeded by some other basic blocks, thus the count for bb5 (number of predecessors) won't be 2, but would be more (depends upon the predecessors of bb2 and bb3). You can also try to...
2008 Apr 21
3
[LLVMdev] Whole-function isel
...tty picture too! Each part of the switch is emitted directly into the DAG, rather than being deferred. This is the function: define i32 @foo(i32 %x, i32 %z) nounwind { entry: switch i32 %x, label %UnifiedReturnBlock [ i32 0, label %bb i32 1, label %bb5 ] bb: ; preds = %entry %tmp4 = mul i32 %z, %x ; <i32> [#uses=1] ret i32 %tmp4 bb5: ; preds = %entry %tmp8 = add i32 %z, %x ; <i32> [#uses=1] ret i32 %tmp8 UnifiedReturnBlock: ; preds = %ent...
2007 Dec 20
4
[LLVMdev] First time!
Hi! I want to know How to count the number of predecessors for each basic block? Thank You ____________________________________________________________________________________ Never miss a thing. Make Yahoo your home page. http://www.yahoo.com/r/hs
2011 May 20
3
[LLVMdev] convert a char * to a value
...i execute the pass (opt -load ....) i get an error: Call parameter type does not match function signature! [3 x i8] c"bb\00" i8* call void @branchPredict([3 x i8] c"bb\00", [4 x i8] c"bb1\00") Call parameter type does not match function signature! [4 x i8] c"bb5\00" i8* call void @branchPredict([4 x i8] c"bb5\00", [18 x i8] c"bb3.bb3_crit_edge\00") Broken module found, compilation aborted! 0 libLLVM-2.8.so.1 0x01421628 Stack dump: 0. Program arguments: opt -load /home/inspiron/PhdWork/llvm-2.8/Release/lib/Example.so -Example6 1....
2016 Sep 21
2
Propagation of debug information for variable into basic blocks.
...is for real is ... not obvious at a glance. > I had to construct an example to see the problem, but my example is bit contrived (it depends on starting in the middle of the graph) so I wonder if there is a better counterexample. BB0:y BB1:x,y | | BB2:⊥ BB3:⊥ BB4:⊥ | / | / BB5:x | / \ | / BB6: ? | +-> back-edge to BB1, BB4 BB5 has a definition for x but neither kills nor defines y. No block ever kills y. Let's assume we for whatever reason started in BB5. The first join() at BB6 will yield the set [x] (BB3 and BB4 are un...
2010 Nov 14
2
[LLVMdev] Copy Instruction from one Basic block to another
I have created a new basic block. Now I want to make copy of instructions from one basic block to another . How to do that ? -- regards, soumya prasad ukil -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20101115/ddb0c4ab/attachment.html>
2010 Nov 15
0
[LLVMdev] Copy Instruction from one Basic block to another
On Nov 14, 2010, at 12:13 PM, Soumya Prasad Ukil wrote: > I have created a new basic block. Now I want to make copy of instructions from one basic block to another . How to do that ? See CloneBasicBlock @ Transforms/Utils/Cloning.h - Devang
2008 Apr 22
0
[LLVMdev] Whole-function isel
...he switch is emitted directly into the DAG, rather > than being deferred. > > This is the function: > define i32 @foo(i32 %x, i32 %z) nounwind { > entry: > switch i32 %x, label %UnifiedReturnBlock [ > i32 0, label %bb > i32 1, label %bb5 > ] > bb: ; preds = %entry > %tmp4 = mul i32 %z, %x ; <i32> [#uses=1] > ret i32 %tmp4 > bb5: ; preds = %entry > %tmp8 = add i32 %z, %x ; <i32> [#uses=1] > ret i32 %tmp8 > UnifiedReturnBlo...