search for: __pointer_type_info_pseudo

Displaying 11 results from an estimated 11 matches for "__pointer_type_info_pseudo".

2010 Dec 01
0
[LLVMdev] RFC: Exception Handling Proposal Revised
...attaching the information to 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_pseu...
2010 Dec 01
2
[LLVMdev] RFC: Exception Handling Proposal Revised
...t; 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...
2010 Dec 03
1
[LLVMdev] Alternative exception handling proposal
...r up the call stack, since there would then only be cleanups all the way up the stack]. define i32 @main() noreturn { entry: %D.2324_1 = invoke i8* @_Znwm(i64 8) to label %"<bb 3>" unwind label %"<L2>" personality @__gxx_personality_v0 catches %struct.__pointer_type_info_pseudo* @_ZTIPSt9exception "<bb 3>": ; preds = %entry %0 = bitcast i8* %D.2324_1 to i32 (...)*** store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTVSt9exception, i64 0, i64 2), i32 (...)*** %0, align 8 %D.2306_4 = bitcast i8*...
2010 Dec 01
8
[LLVMdev] Alternative exception handling proposal
...<list of catches and filters>] 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 f...
2010 Dec 02
0
[LLVMdev] Alternative exception handling proposal
...; 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...
2010 Dec 02
3
[LLVMdev] Alternative exception handling proposal
...f course my proposal would be 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, includin...
2010 Dec 01
0
[LLVMdev] Alternative exception handling proposal
...gt;] > > 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 anythin...
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 >&...
2010 Dec 01
10
[LLVMdev] RFC: Exception Handling Proposal Revised
...8] 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 void @_Z3foov() to label %invcont1 unwind la...
2010 Nov 24
5
[LLVMdev] RFC: Exception Handling Proposal II
...ey belong to the same region. * 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 l...
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...