search for: bb0

Displaying 20 results from an estimated 80 matches for "bb0".

Did you mean: b0
2009 Jun 09
1
Problem : solving a equation with R , fail with uniroot function
Hi , I would like to know if a R function have the same behaviour than the matlab solve function. I tried something with uniroot but I have some problems: The equation I need to solve is : exp(c0-r0)*(bb0+x)*(bb1-x)=(bb0+x+1)(bb1-x-1) So I tried this: STEP 1: my function test test <- function(x,bb0=-3,bb1=5,c0=2,r0=0) { + ((exp(c0-r0)*(bb0+x)*(bb1-x))/((bb0+x+1)(bb1-x-1))-1)} STEP 2: > uniroot(test,c(-100,100))$root* Erreur dans f(lower, ...) : tentative d'appliquer un objet qui n...
2008 Jul 12
3
[LLVMdev] Little bug in LoopInfo after Rotate?
...; <i1> [#uses=1] br i1 %exitcond10, label %bb6, label %bb1 bb6: ; preds = %bb3 ret i32 0 } LoopInfo says: Loop Containing: %bb1, %bb3. Only detects the outer loop By the way, if I separate the header of the outer loop, like: define i32 @f() nounwind { entry: br label %bb0 bb0: ; preds = %entry, %bb3 %i.0.reg2mem.0.ph = phi i32 [ 0, %entry ], [ %indvar.next9, %bb3 ] ; <i32> [#uses=4] br label %bb1 bb1: ; preds = %bb1, %bb0 %j.0.reg2mem.0 = phi i32 [ 0, %bb0 ], [ %indvar.next, %bb1 ] ; <i32> [#uses=3] %indvar.next...
2012 Jul 25
2
[LLVMdev] Question about an unusual jump instruction
...an optimization pass to make countable loops faster by using this instruction. The simplest loop that I would like to optimize is like: ////////////////////////// int i = a; do { // loop body --i; } while (i != 0); ////////////////////////// After code selection I've something like: BB0: %vreg0<def> = COPY %R0; // R0 contains 'a' J <#BB1> BB1: %vreg1<def> = PHI %vreg0, <#BB0>, %vreg3, <#BB3> J <#BB2> BB2: // loop body BB3: %vreg3<def> = ADDI %vreg1<kill>, 1 CMPNE %vreg3, 0, %SR<implicit,def> JNZ...
2011 Feb 11
1
[LLVMdev] preserving an implicit def between basic blocks
Hi, I have the following problem: In BB0 there is an instruction that defines a flag (implicit def) and in BB1 there is one that reads the flag (implicit use). When i run llc with -O3, the instruction in BB0 that defines the flag is removed. How can i prevent this? BB0 and BB1 are consecutive basic blocks. Thanks, Alex -------------- nex...
2012 Jul 25
0
[LLVMdev] Question about an unusual jump instruction
...truction. > > The simplest loop that I would like to optimize is like: > > ////////////////////////// > int i = a; > do { > // loop body > --i; > } while (i != 0); > ////////////////////////// > > > After code selection I've something like: > > BB0: > %vreg0<def> = COPY %R0; // R0 contains 'a' > J <#BB1> > BB1: > %vreg1<def> = PHI %vreg0, <#BB0>, %vreg3, <#BB3> > J <#BB2> > BB2: > // loop body > BB3: > %vreg3<def> = ADDI %vreg1<kill>, 1 >...
2017 Feb 06
2
Adding Extended-SSA to LLVM
On Sun, Feb 5, 2017 at 3:41 PM, Nuno Lopes <nunoplopes at sapo.pt> wrote: > Thanks for the answers! The plan makes sense to me. > > Regarding phis, what about diamonds, e.g.: > > > define i32 @f(i32 %x) { > br .., label %bb0, label %bb1 > bb0: > %cmp = icmp sge i32 %x, 0 ; x > 0 > br i1 %cmp, label %bb2, label %bb3 > bb1: > %x2 = add nsw nuw %x, 1 > %cmp2 = icmp sge i32 %x2, 2 ; x+1 > 2 / x > 1 > br i1 %cmp2, label %bb2, label %bb3 > bb2: > %x3 = phi i32 [ %x, %bb0 ]...
2005 Jun 08
2
policy or rules
...sh: SHA1 Dear all, I''m a bit confused on the rules and would like your help. I''ve 4 NIC, eth0 --> WAN (net) eth1 --> OSPF1 (bb1) eth2 --> OSPF2 (bb2) I would like to enable all the icmp function (ping and traceroute) Wonder what effect will the following policy make. bb0 all ACCEPT info bb1 all ACCEPT info net all ACCEPT info all bb0 ACCEPT info all bb1 ACCEPT info all net ACCEPT...
2015 Jan 14
2
[LLVMdev] Bug in InsertElement constant propagation?
Hi, When I run opt on the following LLVM IR: define i32 @foo() { bb0: %0 = bitcast i32 2139171423 to float %1 = insertelement <1 x float> undef, float %0, i32 0 %2 = extractelement <1 x float> %1, i32 0 %3 = bitcast float %2 to i32 ret i32 %3 } -> It generates: define i32 @foo() { bb0: ret i32 2143365727 } While tracking the value I see t...
2019 Jan 20
2
Basic Blocks of a Function called inside Loop
Hello, I have written pass to know basic blocks inside loops.. But for eg a function is called inside loop then all its basic block are also considered part of the loop... I am unable to detect that... How to do so? BB0.....if BB0 is part of Func0 and Func0 is called inside loop (L1) with 10 iterations then BB0 will be executed 10 times... How to detect in LLVM pass that BB0 is inside loop L1? Please help.. Regards -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.l...
2002 Nov 28
1
[LLVMdev] lli unreliable?
...-------------- %FILE = type { [16 x long] } %__FILE = type { [16 x long] } %struct.__FILE = type { [16 x long] } %.LC0 = internal global [31 x sbyte] c"The value in the heap is \22%d\22\0A\00" ; <[31 x sbyte]*> [#uses=1] implementation ; Functions: internal void %__main() { bb0: ; No predecessors! ret void } declare int %printf(sbyte*, ...) internal sbyte* %Create() { bb0: ; No predecessors! %reg2131 = alloca sbyte, uint 4 ; <sbyte*> [#uses=1] ret sbyte* %reg2131 } internal int %Function() { bb0: ; No predecessors! %reg214 = call sbyte* %Create( ) ; <...
2011 Nov 10
3
[LLVMdev] Alternate instruction sequences
...struction I1 is an alternative > for instruction I2 --- in LLVM IR. Could there be any interest in this functionality? Do you think bending the meaning of existing constructs like select i1 undef, <ty> <val0>, <ty> <val1> (for instructions) or switch i1 undef, label <bb0>, i1 1, label <bb1> (for basic blocks) could be feasible/acceptable?
2018 May 25
0
LLVM Pass To Remove Dead Code In A Basic Block
...simpler to me. I’m not sure whether you can have non-entry blocks with no predecessors in LLVM (need to look up the langref about that) but I can imagine it’s a fairly useful construct to support. e.g. something like (pseudo-IR): .entry: <this is the entry block> <…> br .exit .bb0: <this is by definition unreachable> <…> br .exit .exit: ret This structure makes it easier for dead code elimination to determine that .bb0 is unreachable from .entry and can elide it safely. From your front-end, you can have a single ‘.exit’ block in a function and let the o...
2017 Feb 05
3
Adding Extended-SSA to LLVM
...> Any plans to support this? (i.e., is the current algorithm "easily" > upgradable to support this scenario?) > It is easy to do, but it is ... messy, IMHO. Note that such a thing is generally a mess. Here is the degenerate case: As an example: define i32 @f1(i32 %x) { bb0: %cmp = icmp eq i32 %x, 0 br i1 %cmp, label %bb2, label %bb1 bb1: br label %bb2 bb2: %cond = phi i32 [ %x, %bb0 ], [ %x, %bb1 ] %foo = add i32 %cond, %x ret i32 %foo } the critical edge from bb0 to bb2 causes us to have no place to place predicateinfo in the current algorithm...
2012 Jul 25
1
[LLVMdev] Question about an unusual jump instruction
...e to optimize is like: >> >> ////////////////////////// >> int i = a; >> do { >> // loop body >> --i; >> } while (i != 0); >> ////////////////////////// >> >> >> After code selection I've something like: >> >> BB0: >> %vreg0<def> = COPY %R0; // R0 contains 'a' >> J <#BB1> >> BB1: >> %vreg1<def> = PHI %vreg0, <#BB0>, %vreg3, <#BB3> >> J <#BB2> >> BB2: >> // loop body >> BB3: >> %vreg3<d...
2015 Feb 25
4
[LLVMdev] Jump Theading/GVN bug - moving discussion to llvm-dev
...is: If unreachable definitions dominate nothing, how are > unreachable uses always dominated by their unreachable defs? I think the comment is just just missing an "otherwise" at the start. If we were to define dominance rules as you suggest, we would still accept define void @f() { bb0: ret void bb1: %a = getelementptr inbounds i8* %b, i64 1 ret void bb2: %b = getelementptr inbounds i8* %a, i64 1 ret void } Since bb1 dominates bb2 and bb2 dominates bb1, no? It looks like a case where we would just be getting a bigger rug to swipe dirt under. I think the definition we...
2011 Nov 21
1
[LLVMdev] Fwd: Order of Basic Blocks
...Re: [LLVMdev] Order of Basic Blocks To: Benjamin Kramer <benny.kra at 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 vistie...
2019 Feb 25
3
getelementptr inbounds with offset 0
Hi Bruce, On 25.02.19 13:10, Bruce Hoult wrote: > LLVM has no idea whether the address computed by GEP is actually > within a legal object. The "inbounds" keyword is just you, the > programmer, promising LLVM that you know it's ok and that you don't > care what happens if it is actually out of bounds. > >
2018 May 25
1
LLVM Pass To Remove Dead Code In A Basic Block
...ction's exit block. Then function can generate return instruction by using local return variable or just ret void. entry: <this is the entry block> <alloc local return variable> <…> <store return value into local return variable, if returns a value> br .exit .bb0: <this is by definition unreachable> <…> <store return value into local return variables, if returns a value> br .exit .exit: ret <local return value> OR ret void. But this approach still does not resolve the issue I had. Front-end still can create multiple &quo...
2020 Jul 09
3
question on analyzeBranch and getFallThrough
I am working on a back end for an architecture whose jump via table instruction includes the range check. If the index is out of range, the jump table instruction just falls through. I implemented a pass to remove the range check generated before the jump table instruction because it is superfluous. This causes as assertion in MachineBlockPlacement.cpp:
2018 May 24
2
LLVM Pass To Remove Dead Code In A Basic Block
Hi Dean, Thanks for your reply. That's exactly what I am doing, but I was looking for a default optimization or pass implementation if there was. I used BasicBlock::splitBasicBlock() but it puts "br" end of original basic block. I tried to delete the br instruction by using eraseFromParent() but it didn't work. I had to rewrite my own splitBasicBlock() by modifying the