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