search for: _ztipkc

Displaying 19 results from an estimated 19 matches for "_ztipkc".

2011 Jul 25
0
[LLVMdev] RFC: Exception Handling Rewrite
> %exn.val = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0 > catch i8** @_ZTIi, i8** @_ZTId > filter i8** @_ZTIPKc > br label %lpad.split What is the semantics of filter? Is it undefined reference if an exception not matching ZTIi, ZTId or ZTIPKc passes by? Cheers, Rafael
2010 Dec 01
0
[LLVMdev] RFC: Exception Handling Proposal Revised
...each invoke. Right now you have invoke void @_Z3foov() to label %invcont unwind label %catch.handlers catch.handlers: landingpad dispatch resume to label %... catches [ %struct.__fundamental_type_info_pseudo* @_ZTIi, label %ch.int %struct.__pointer_type_info_pseudo* @_ZTIPKc, label %ch.str ] catchall [i8* null, label % ch.ca] Why not combine this into: invoke void @_Z3foov() to label %invcont unwind resume to label %... catches [ %struct.__fundamental_type_info_pseudo* @_ZTIi, label %ch.int %struct.__pointer_type_info_pseudo* @_ZTIP...
2010 Dec 01
2
[LLVMdev] RFC: Exception Handling Proposal Revised
...gt; invoke void @_Z3foov() > to label %invcont unwind label %catch.handlers > > catch.handlers: landingpad > dispatch resume to label %... > catches [ > %struct.__fundamental_type_info_pseudo* @_ZTIi, label %ch.int > %struct.__pointer_type_info_pseudo* @_ZTIPKc, label %ch.str > ] > catchall [i8* null, label % ch.ca] > > Why not combine this into: > > invoke void @_Z3foov() > to label %invcont unwind resume to label %... > catches [ > %struct.__fundamental_type_info_pseudo* @_ZTIi, label %ch.int >...
2010 Dec 01
8
[LLVMdev] Alternative exception handling proposal
...ers>] Here's an example where there is no cleanup and there are two handlers: invoke void @_Z3foov() to label %invcont unwind label %catch.handlers personality @__gxx_personality_v0 catches %struct.__fundamental_type_info_pseudo* @_ZTIi, %struct.__pointer_type_info_pseudo* @_ZTIPKc Note that unlike in Bill's proposal there isn't a label for each catch object, just one global label (the existing unwind label). The semantics of the invoke instruction are slightly modified: if an exception unwinds and it doesn't match anything in the list of catches and filters, an...
2011 Jul 23
14
[LLVMdev] RFC: Exception Handling Rewrite
...esented in LLVM IR is target specific. // Examples: ;; A landing pad which can catch an integer or double and which can throw only ;; a const char *. %res = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0 catch i8** @_ZTIi, i8** @_ZTId filter i8** @_ZTIPKc ;; A landing pad that is a cleanup. %res = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0 cleanup ;; A landing pad which indicates that the personality function should call the ;; terminate function. %res = landingpad { i8*, i32 } personality i32 (...)*...
2011 Jul 23
0
[LLVMdev] RFC: Exception Handling Rewrite
...ic. > > // Examples: > > ;; A landing pad which can catch an integer or double and which can throw only > ;; a const char *. > %res = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0 > catch i8** @_ZTIi, i8** @_ZTId > filter i8** @_ZTIPKc > > ;; A landing pad that is a cleanup. > %res = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0 > cleanup > > ;; A landing pad which indicates that the personality function should call the > ;; terminate function. > %res = landingpad {...
2010 Dec 01
0
[LLVMdev] Alternative exception handling proposal
...example where there is no cleanup and there are two handlers: > > invoke void @_Z3foov() > to label %invcont unwind label %catch.handlers personality > @__gxx_personality_v0 catches %struct.__fundamental_type_info_pseudo* @_ZTIi, > %struct.__pointer_type_info_pseudo* @_ZTIPKc > > Note that unlike in Bill's proposal there isn't a label for each catch > object, just one global label (the existing unwind label). > > The semantics of the invoke instruction are slightly modified: if an exception > unwinds and it doesn't match anything in the l...
2010 Dec 01
0
[LLVMdev] RFC: Exception Handling Proposal Revised
Hi Bill, >> Why not combine this into: >> >> invoke void @_Z3foov() >> to label %invcont unwind resume to label %... >> catches [ >> %struct.__fundamental_type_info_pseudo* @_ZTIi, label %ch.int >> %struct.__pointer_type_info_pseudo* @_ZTIPKc, label %ch.str >> ] >> catchall [i8* null, label % ch.ca <http://ch.ca>] >> >> ? That would get rid of the "landingpad" basic block attribute, and rules about >> what can branch to landing pads, that these cannot be split etc. Your rules >> mean t...
2010 Dec 01
10
[LLVMdev] RFC: Exception Handling Proposal Revised
...Os @.str = private constant [16 x i8] c"caught int: %d\0A\00", align 1 @.str1 = private constant [19 x i8] c"caught string: %s\0A\00", align 1 @.str2 = private constant [9 x i8] c"catchall\00", align 1 @_ZTIi = external constant %struct.__fundamental_type_info_pseudo @_ZTIPKc = external constant %struct.__pointer_type_info_pseudo define void @_Z3barv() optsize ssp { entry: %a = alloca %struct.A, align 8 %b = alloca %struct.B, align 8 %c = alloca %struct.C, align 8 invoke void @_Z3foov() to label %invcont unwind label %catch.handlers invcont: invoke...
2010 Nov 24
5
[LLVMdev] RFC: Exception Handling Proposal II
...* The "filters" clause lists the types of exceptions which may be thrown by the region. Example: ;; With catch-all block dispatch region(37) resume to label %Resume [ %struct.__fundamental_type_info_pseudo* @_ZTIi, label %bb1.lpad %struct.__pointer_type_info_pseudo* @_ZTIPKc, label %bb2.lpad ] catchall [i8* null, label %catchall.lpad] filters [i8* bitcast (%struct.__pointer_type_info_pseudo* @_ZTIPKc to i8*), i8* bitcast (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*] ;; No catch-all block dispatch region(927) resume to label %Resu...
2010 Dec 02
3
[LLVMdev] Alternative exception handling proposal
...dead. But it isn't! Got an example where it is? > Example, if you have this: > > invoke void @foo() > to label %invcont unwind label %lpad > personality @__gxx_personality_v0 > catches %struct.__fundamental_type_info_pseudo* @_ZTIi, > %struct.__pointer_type_info_pseudo* @_ZTIPKc > > lpad: > call void @bar(%A* %a) ; a cleanup > br label %ppad > > ppad: > %eh_ptr = call i8* llvm.eh.exception() > %eh_sel = call i32 llvm.eh.selector() > ; code to clean up. > > The call to @bar can insert an arbitrarily complex amount of code, including > inv...
2010 Nov 25
0
[LLVMdev] RFC: Exception Handling Proposal II
>  dispatch region(927) resume to label %Resume [ >      %struct.__fundamental_type_info_pseudo* @_ZTIi, label %bb1.lpad >      %struct.__pointer_type_info_pseudo* @_ZTIPKc, label %bb2.lpad >    ] How do you handle two language types that map to the same LLVM type? Some languages need fancier catches. For example, being able to catch any object of class foo or a class that derives from foo. This is to be implemented by having a landing pad for foo that does the n...
2010 Nov 25
2
[LLVMdev] RFC: Exception Handling Proposal II
> How do you handle two language types that map to the same LLVM type? Duncan just explained to me on IRC that it is just the globals that are used, not the types. LGTM :-) Cheers, Rafael
2010 Nov 25
0
[LLVMdev] RFC: Exception Handling Proposal II
2010/11/25 Rafael Espíndola <rafael.espindola at gmail.com>: >> How do you handle two language types that map to the same LLVM type? > > Duncan just explained to me on IRC that it is just the globals that > are used, not the types. LGTM :-) Can someone elaborate on the mailing list? I still don't really understand this aspect. Reid
2010 Dec 02
0
[LLVMdev] Alternative exception handling proposal
...xample where it is? > >> Example, if you have this: >> >> invoke void @foo() >> to label %invcont unwind label %lpad >> personality @__gxx_personality_v0 >> catches %struct.__fundamental_type_info_pseudo* @_ZTIi, >> %struct.__pointer_type_info_pseudo* @_ZTIPKc >> >> lpad: >> call void @bar(%A* %a) ; a cleanup >> br label %ppad >> >> ppad: >> %eh_ptr = call i8* llvm.eh.exception() >> %eh_sel = call i32 llvm.eh.selector() >> ; code to clean up. >> >> The call to @bar can insert an arbitra...
2009 Nov 24
0
[LLVMdev] RFC: New Exception Handling Proposal
...t; lpad: > %eh_ptr = tail call i8* @llvm.eh.exception() > %eh_select27 = tail call i32 (i8*, i8*, ...)* > @llvm.eh.selector(i8* %eh_ptr, > i8* @__gxx_personality_v0, > i8* @_ZTIi, > i8* @_ZTIPKc, > i8* null) > %eh_typeid = tail call i32 @llvm.eh.typeid.for( @_ZTIi ) > %6 = icmp eq i32 %eh_select27, %eh_typeid > br i1 %6, label %bb1, label %ppad > > ppad: > %eh_typeid55 = tail call i32 @llvm.eh.typeid.for( @_ZTIPKc ) >...
2009 Nov 18
11
[LLVMdev] RFC: New Exception Handling Proposal
...%lpad return: ret void lpad: %eh_ptr = tail call i8* @llvm.eh.exception() %eh_select27 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* @__gxx_personality_v0, i8* @_ZTIi, i8* @_ZTIPKc, i8* null) %eh_typeid = tail call i32 @llvm.eh.typeid.for( @_ZTIi ) %6 = icmp eq i32 %eh_select27, %eh_typeid br i1 %6, label %bb1, label %ppad ppad: %eh_typeid55 = tail call i32 @llvm.eh.typeid.for( @_ZTIPKc ) %7 = icmp eq i32 %eh_select27, %eh...
2014 Apr 01
6
[LLVMdev] Proposal: Loads/stores with deterministic trap/unwind behavior
...ipermail/llvm-dev/attachments/20140331/913072b5/attachment-0002.patch> -------------- next part -------------- ; RUN: llvm-as < %s | llvm-dis > %t1.ll ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll ; RUN: diff %t1.ll %t2.ll @_ZTIc = external constant i8* @_ZTId = external constant i8* @_ZTIPKc = external constant i8* define i8 @_Z3barv(i8* %ptr) uwtable optsize ssp { entry: %v = iload i8* %ptr to label %try.cont unwind label %lpad try.cont: ; preds = %entry, %invoke.cont4 ret i8 %v lpad:...
2010 Dec 03
1
[LLVMdev] Alternative exception handling proposal
...to replace all the catch info with a single global constant (which would be in the llvm.metadata section) that contains the info. So an invoke would look like this (I left bitcasts off the global): @catch32 = private constant { i8*, i1, { i8*, i8* }} = { @__gxx_personality_v0, false, { @_ZTIi, @_ZTIPKc } } ; would be in metadata section, I forget the syntax ... invoke void @_Z3foov() to label %invcont unwind label on @catch32 Or something like that. Anyway, personalities, type infos etc would no longer be hard-wired into the IR. > >> Do you have an idea for how to ke...