similar to: Basic Blocks of a Function called inside Loop

Displaying 20 results from an estimated 10000 matches similar to: "Basic Blocks of a Function called inside Loop"

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 -------------- next part -------------- An HTML attachment was scrubbed...
2011 Nov 21
1
[LLVMdev] Fwd: Order of Basic Blocks
---------- Forwarded message ---------- From: Ryan Taylor <ryta1203 at gmail.com> Date: Mon, Nov 21, 2011 at 10:30 AM Subject: 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,
2018 May 25
1
LLVM Pass To Remove Dead Code In A Basic Block
> I’m just wondering why not have a ‘br’ to an exit basic block instead of ‘ret’ mid-stream of instructions. > Have you considered this approach instead? Thanks for bringing this up. Yes. In fact, I tried that approach/pattern first. Simply, you create default exit block and a local return variable (to track return value) per function, but it requires extra flags and variables to track
2018 May 25
0
LLVM Pass To Remove Dead Code In A Basic Block
> On 25 May 2018, at 03:53, Aaron <acraft at gmail.com> wrote: > > 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. > There’s a dead code elimination pass, but it works with a control flow graph (it removes basic blocks that are unreachable after constant
2010 Nov 05
0
[LLVMdev] Basic block liveouts
They cannot be found like the live in values because different values may be live out. For instance the psudocode may look like: BB0: vreg1 = rand() if( vreg1 > .5 ) goto BB1; else goto BB2; BB1: vreg 2 = rand(); EAX = copy vreg2; Return BB2: vreg 3 = rand() * rand()' EAX = copy vreg3; Return On Fri, Nov 5, 2010 at 7:41 AM, s Last namerc <srcsrc84 at yahoo.com>
2020 Jul 31
2
What is the "correct" way to add a print pass in the NPM ?
Hi, I'm interested in the sort of pass where you write `-passes=print<pass-name>` and it calls the `print()` function of the pass. I have seen some other passes that can invoke `-passes=print<>` but the implementation seems to be in the wrapper pass for the old pass manager. Thanks, Stefanos Baziotis -------------- next part -------------- An HTML attachment was scrubbed... URL:
2016 Sep 21
2
Propagation of debug information for variable into basic blocks.
> On Sep 21, 2016, at 2:23 PM, Daniel Berlin <dberlin at dberlin.org> wrote: > > > > // For all predecessors of this MBB, find the set of VarLocs that > // can be joined. > for (auto p : MBB.predecessors()) { > auto OL = OutLocs.find(p); > // Join is null in case of empty OutLocs from any of the pred. > if (OL == OutLocs.end()) >
2011 May 09
0
[LLVMdev] get basic blocks inside a loop
Whenever I was tying to do that (in version 2.8), it didn't give them to me in a topological order. What I did, as a hack-ish temporary measure, was rely on Function's ordering, and just iterated over all the blocks in the function, checking to see if the loop contains that block. Not at all ideal, and what I was writing later evolved to not need the topological ordering constraint, so I
2011 May 09
2
[LLVMdev] get basic blocks inside a loop
Hi all, I have a question about llvm::LoopBase getBlocks() method. Does it return the basic blocks inside the loop in random order? I need to order the blocks in some valid topological ordering of the AST. If getBlocks() does not do that, what can I do to find the ordering? Thanks, Naznin -------------- next part -------------- An HTML attachment was scrubbed... URL:
2011 May 09
1
[LLVMdev] get basic blocks inside a loop
Thanks Michael. Can you please explain you way a bit more? Did you run a function pass then a loop pass? On Mon, May 9, 2011 at 12:56 PM, Michael Ilseman <michael at lunarg.com> wrote: > Whenever I was tying to do that (in version 2.8), it didn't give them > to me in a topological order. What I did, as a hack-ish temporary > measure, was rely on Function's ordering, and
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: >
2008 Jul 12
3
[LLVMdev] Little bug in LoopInfo after Rotate?
Hello, I have two for loops (one inside the other), that after indvars, looprotate, etc. (the important here is the loop rotate), is similar to this (I've stripped the real operations): define i32 @f() nounwind { entry: br label %bb1 bb1: ; preds = %bb3, %bb1, %entry %i.0.reg2mem.0.ph = phi i32 [ 0, %entry ], [ %i.0.reg2mem.0.ph, %bb1 ], [ %indvar.next9, %bb3 ] ;
2019 Apr 11
1
[RFC 2/3] hw/virtio-rdma: VirtIO rdma device
Signed-off-by: Yuval Shaia <yuval.shaia at oracle.com> --- hw/Kconfig | 1 + hw/rdma/Kconfig | 4 + hw/rdma/Makefile.objs | 2 + hw/rdma/virtio/virtio-rdma-ib.c | 287 ++++++++++++++++++++ hw/rdma/virtio/virtio-rdma-ib.h | 93 +++++++ hw/rdma/virtio/virtio-rdma-main.c
2002 Nov 28
1
[LLVMdev] lli unreliable?
lli executed the bytecode corresponding to test_3.0_ml.ll without a failure, even though Function() is accessing an invalid memory address. The original code is in test_3.0.c, and the malloc() in Create() has been replaced by alloca() in test_3.0_ml.ll. I expected lli to segfault or similar when testing my code. Are my assumptions erroneous? -------------- next part --------------
2012 Jul 25
0
[LLVMdev] Question about an unusual jump instruction
On Wed, Jul 25, 2012 at 12:48 AM, Michele Scandale <michele.scandale at gmail.com> wrote: > Dear all, > > I'm working on an exploratory backend on llvm. In the instruction set I'm using > I have an instruction (called DECJNZ) that decrements a register and, if the > decremented value is not zero, jumps (with a relative jump) to a given offset. > > I've
2012 Jul 25
2
[LLVMdev] Question about an unusual jump instruction
Dear all, I'm working on an exploratory backend on llvm. In the instruction set I'm using I have an instruction (called DECJNZ) that decrements a register and, if the decremented value is not zero, jumps (with a relative jump) to a given offset. I've described in tablegen this instruction as follow: def DECJNZ : Instruction { let Namespace = "MyTarget"; let
2012 Jul 25
1
[LLVMdev] Question about an unusual jump instruction
Il 25/07/2012 10:07, Eli Friedman ha scritto: > On Wed, Jul 25, 2012 at 12:48 AM, Michele Scandale > <michele.scandale at gmail.com> wrote: >> Dear all, >> >> I'm working on an exploratory backend on llvm. In the instruction set I'm using >> I have an instruction (called DECJNZ) that decrements a register and, if the >> decremented value is not
2016 Sep 21
2
Propagation of debug information for variable into basic blocks.
> > > Conceptually, the LiveDebugValues data flow analysis should be using > three-valued logic arranged in a lattice > > ⊥ (uninitialized / don't know) > / \ > true false (is (not) available) > > where join(x, ⊥) = x, otherwise it behaves like boolean &. > > All debug variable values are initialized to the bottom element first. > After
2013 Nov 04
0
[LLVMdev] conditional flow resulting in "Instruction does not dominate all uses!"
Well, what I had in mind was actually something like the following: entry: result0 = invoke func0 to defer_block unwind landing0 landing0: landingpad result1 = invoke func1 to defer_block unwind landing1 landing1: landingpad br defer_block defer_block: result = phi [ result0, entry ], [ result1, landing0 ], [ null, landing1 ] ... This doesn't have landing pads with multiple
2013 Nov 04
2
[LLVMdev] conditional flow resulting in "Instruction does not dominate all uses!"
On 4 November 2013 08:19, Henrique Santos <henrique.nazare.santos at gmail.com> wrote: > Well, what I had in mind was actually something like the following: > > entry: > result0 = invoke func0 to defer_block unwind landing0 > > landing0: > landingpad > result1 = invoke func1 to defer_block unwind landing1 > > landing1: > landingpad > br