search for: maycatch

Displaying 6 results from an estimated 6 matches for "maycatch".

2015 May 18
4
[LLVMdev] New EH representation for MSVC compatibility
On Fri, May 15, 2015 at 5:27 PM, Kaylor, Andrew <andrew.kaylor at intel.com> wrote: > I like the way this sorts out with regard to funclet code generation. > It feels very natural for Windows EH, though obviously not as natural for > non-Windows targets and I think it is likely to block some optimizations > that are currently possible with those targets. > Right, it will
2015 May 15
8
[LLVMdev] RFC: New EH representation for MSVC compatibility
...(1); Obj o; f(2); } catch (int e) { f(3); try { f(4); } catch (...) { f(5); } } } The IR for __CxxFrameHandler3: define void @foo() personality i32 (...)* @__CxxFrameHandler3 { %e.addr = alloca i32 invoke void @f(i32 1) to label %cont1 unwind label %maycatch.int cont1: invoke void @f(i32 2) to label %cont2 unwind label %cleanup.Obj cont2: call void @~Obj() br label %return return: ret void cleanup.Obj: cleanupblock unwind label %maycatch.int call void @~Obj() resume label %maycatch.int maycatch.int: catchblock void [i8* @typeid.in...
2015 May 19
2
[LLVMdev] RFC: New EH representation for MSVC compatibility
...wind' instruction would end a cleanup block, and would target the next action. I like this because I talk a lot about "unwind edges" in the CFG, and a cleanup finishing feels like an unwind edge. I could also see 'dispatch' here. Some possible new syntax: recover from label %maycatch.int to label %endcatchbb unwind from label %cleanup.obj to label %nextaction unwind from label %cleanup.obj ; unwinds out of the function, hook it up to the unwind edge of an inlined call site For Itanium, tail merging is profitable and doable with phis, so we might want to do this instead: re...
2015 May 19
2
[LLVMdev] RFC: New EH representation for MSVC compatibility
...would target the > next action. I like this because I talk a lot about "unwind edges" in the > CFG, and a cleanup finishing feels like an unwind edge. I could also see > 'dispatch' here. > > > > Some possible new syntax: > > > > recover from label %maycatch.int to label %endcatchbb > > unwind from label %cleanup.obj to label %nextaction > > unwind from label %cleanup.obj ; unwinds out of the function, hook it > up to the unwind edge of an inlined call site > > > > For Itanium, tail merging is profitable and doable with ph...
2015 May 20
2
[LLVMdev] RFC: New EH representation for MSVC compatibility
...would target the > next action. I like this because I talk a lot about "unwind edges" in the > CFG, and a cleanup finishing feels like an unwind edge. I could also see > 'dispatch' here. > > > > Some possible new syntax: > > > > recover from label %maycatch.int to label %endcatchbb > > unwind from label %cleanup.obj to label %nextaction > > unwind from label %cleanup.obj ; unwinds out of the function, hook it > up to the unwind edge of an inlined call site > > > > For Itanium, tail merging is profitable and doable with ph...
2015 May 18
2
[LLVMdev] RFC: New EH representation for MSVC compatibility
On Mon, May 18, 2015 at 12:03 PM, Joseph Tremoulet <jotrem at microsoft.com> wrote: > Hi, > > > > Thanks for sending this out. We're looking forward to seeing this come > about, since we need funclet separation for LLILC as well (and I have > cycles to spend on it, if that would be helpful). > > > > Some questions about the new proposal: > > >