search for: succ1

Displaying 10 results from an estimated 10 matches for "succ1".

Did you mean: succa
2011 Aug 02
0
[LLVMdev] Multiple successors, single dynamic successor
...n LLVM IR ("best" in the sense of allowing > other optimizations to run effectively)? Bear in mind that in this > example N=2, but it may be way bigger than that. Just to clarify: I already figured out two ways to do it, i.e.: %0 = phi i8* [blockaddr(%succ0), %pred0], [blockaddr(%succ1), %pred1], ... ... indirectbr %0, [%succ0, %succ1, ...] or %0 = phi i8 [0, %pred0], [1, %pred1], ... ... switch %0, undef, [0, %succ0], [1, %succ1], ... what I'd like to know is which one do you think is better (and why) or if there are better ways I didn't think of. -- Carlo Alberto...
2010 Nov 24
2
[LLVMdev] RFC: Exception Handling Proposal II
...more regions. So, in this example: A { A(); ~A() throw(); }; void foo() throw() { A x; b(); } Your model has this as follows, modulo syntax: entry: %x = alloca %A invoke void @A::A(%A* %x) to label %succ0 unwind label %lp0 region 0 succ0: invoke void @b() to label %succ1 unwind label %lp1 region 0 succ1: call void @A::~A(%A* %x) nounwind ret void lp0: call void @A::~A(%A* %x) nounwind br label %lp1 lp1: dispatch region 0 [filter i8* null] # no resume edge Whereas my model has this as follows: entry: %x = alloca %A invoke void...
2010 Nov 25
0
[LLVMdev] RFC: Exception Handling Proposal II
...; ~A() throw(); }; > void foo() throw() { > A x; > b(); > } > > Your model has this as follows, modulo syntax: > entry: > %x = alloca %A > invoke void @A::A(%A* %x) to label %succ0 unwind label %lp0 region 0 > succ0: > invoke void @b() to label %succ1 unwind label %lp1 region 0 > succ1: > call void @A::~A(%A* %x) nounwind > ret void > lp0: > call void @A::~A(%A* %x) nounwind > br label %lp1 > lp1: > dispatch region 0 [filter i8* null] # no resume edge > > Whereas my model has this as follows: &...
2011 Aug 02
3
[LLVMdev] Multiple successors, single dynamic successor
Nella citazione martedì 2 agosto 2011 20:02:08, Michael Ilseman ha scritto: > I'm assuming that you're talking about a situation where this can't be > determined statically in the existing LLVM IR, but you know it's true > and want to put it in (e.g. you're the one generating LLVM IR). Correct. Or, more precisely, I'd like to investigate macro compression, i.e.
2010 Oct 12
1
[LLVMdev] Specify dominator for BasicBlock to avoid "Instruction does not dominate all uses!"
...of them in BB_unique. B1 (declares PHI_1) B3 | | B2 | | | ExitBB1 ExitBB2 | Succ1 (uses PHI_1) becomes: B1 (declares PHI_1) B3 | | B2 | | | ExitBB1 ExitBB2...
2010 Nov 24
0
[LLVMdev] RFC: Exception Handling Proposal II
On Nov 24, 2010, at 4:58 AM, John McCall wrote: >> If that's so, how do you encode which which landing pad is to be >> followed per region? >> >> Consider the following code: >> >> try { >> Foo f(); >> f.run(); // can throw exception >> Bar b(); >> b.run(); // can throw exception >> Baz z(); >> z.run(); // can throw
2010 Nov 24
3
[LLVMdev] RFC: Exception Handling Proposal II
On Nov 24, 2010, at 2:59 AM, Renato Golin wrote: > If I got it right, the dispatch instruction will tell the > instructions/calls to unwind to specific landing pads (cleanup areas, > terminate), but the region number will encode try/catch areas, so that > all those cleanup landing pads should ultimately end up in the catch > area for that region. Caveat: I'm speaking from what
2010 Oct 11
0
[LLVMdev] Specify dominator for BasicBlock to avoid "Instruction does not dominate all uses!"
On Oct 11, 2010, at 9:05 AM, Xinfinity wrote: > > Hi, > > I am working on a pass aimed to unify multiple exits of a loop into a unique > basic block. The approach is straight forward: > I create a unique BasicBlock BB_unique that has as predecessors all the exit > blocks of the loop, it contains a phi instruction and a switch to redirect > the flow correctly.
2010 Nov 25
3
[LLVMdev] RFC: Exception Handling Proposal II
...o() throw() { >> A x; >> b(); >> } >> >> Your model has this as follows, modulo syntax: >> entry: >> %x = alloca %A >> invoke void @A::A(%A* %x) to label %succ0 unwind label %lp0 region 0 >> succ0: >> invoke void @b() to label %succ1 unwind label %lp1 region 0 >> succ1: >> call void @A::~A(%A* %x) nounwind >> ret void >> lp0: >> call void @A::~A(%A* %x) nounwind >> br label %lp1 >> lp1: >> dispatch region 0 [filter i8* null] # no resume edge >> >> Whereas...
2010 Oct 11
3
[LLVMdev] Specify dominator for BasicBlock to avoid "Instruction does not dominate all uses!"
Hi, I am working on a pass aimed to unify multiple exits of a loop into a unique basic block. The approach is straight forward: I create a unique BasicBlock BB_unique that has as predecessors all the exit blocks of the loop, it contains a phi instruction and a switch to redirect the flow correctly. Additionally, for each initial exit block I create an associated block that will jump to the