search for: eh_select

Displaying 7 results from an estimated 7 matches for "eh_select".

2007 Dec 12
0
[LLVMdev] Darwin vs exceptions
...ch(A) { i = 1; } } void h() { try { g(); } catch(B) { i = 2; } } Without catch-alls this compiles to something like: define void @_Z1gv() { entry: invoke void @_Z1fv( ) to label %UnifiedReturnBlock unwind label %lpad ... lpad: ; preds = %entry %eh_ptr = tail call i8* @llvm.eh.exception( ) %eh_select = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i32 (...)* @__gxx_personality_v0, i8* A) %eh_typeid = tail call i32 @llvm.eh.typeid.for.i32( i8* A ) %tmp15 = icmp eq i32 %eh_select, %eh_typeid br i1 %tmp15, label %bb, label %Unwind ... Unwind: ; preds = %lpad tail call i32...
2007 Dec 10
3
[LLVMdev] Darwin vs exceptions
On Dec 10, 2007, at 11:38 AM, Duncan Sands wrote: >>> ... If you force a "cleanup" by changing the selector call to: >>> %eh_select8.i = tail call i32 (i8*, i8*, ...)* >>> @llvm.eh.selector.i32( i8* %eh_ptr.i, i8* bitcast (i32 (...)* >>> @__gxx_personality_v0 to i8*), i32 0) >>> then it doesn't work either: the unwinder observes that there is >>> only a cleanup, and >>> using som...
2009 May 12
1
[LLVMdev] How distinguish Catch all llvm-IR from other catch type ?
...14 to label %invcont unwind label %lpad 15 16 invcont: ; preds = %entry 17 unreachable 18 19 lpad: ; preds = %entry 20 %eh_ptr = tail call i8* @llvm.eh.exception() ; <i8*> [#uses=2] 21 %eh_select = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)) ; <i32> [#uses=0] 22 %2 = tail call i8* @__cxa_begin_catch(i8* %eh_ptr) nounwind ; <i8*> [#uses=0] 23 tail call void...
2009 May 12
2
[LLVMdev] catch all
Hi, that's right ! catch(all) has extra null arg, eh_select = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] I have doubt that : the llvm-IR like above are all translated from catch(all) statement . zhangzw
2009 May 12
0
[LLVMdev] catch all
> that's right ! catch(all) has extra null arg, > > eh_select = tail call i32 (i8*, i8*, ...)* > @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* > @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] > > I have doubt that : > the llvm-IR like above are all translated from catch(all) statement . I'm not sur...
2009 May 12
1
[LLVMdev] catch all
2009/5/12 Duncan Sands <baldrick at free.fr>: >>  that's  right !  catch(all) has extra null arg, >> >> eh_select = tail call i32 (i8*, i8*, ...)* >> @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* >> @__gxx_personality_v0 to i8*), i8* null)        ; <i32> [#uses=0] >> >> I have doubt  that  : >> the llvm-IR like above are  all translated from catch(all) statement...
2009 Apr 28
3
[LLVMdev] how to resolve llvm exception IR?
...; >"*> [#uses=0] 61 62 bb6: ; preds = %bb 63 tail call void @__cxa_end_catch() 64 ret i32 0 65 66 lpad: ; preds = %entry 67 %eh_ptr = tail call i8* @llvm.eh.exception() ; <i8*> [#uses=3] 68 %eh_select9 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* bitcast (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), i8* null) ; <i32> [#uses=1] 69 %eh_typeid = tail call i32 @llvm.eh.typeid.for.i32(...