search for: __fundamental_type_info_pseudo

Displaying 20 results from an estimated 22 matches for "__fundamental_type_info_pseudo".

2009 May 12
1
[LLVMdev] How distinguish Catch all llvm-IR from other catch type ?
...-o catch_all.ll: 1 ; ModuleID = 'catch_all.cpp' 2 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32" 3 target triple = "i386-pc-linux-gnu" 4 %struct.__fundamental_type_info_pseudo = type { %struct.__type_info_pseudo } 5 %struct.__type_info_pseudo = type { i8*, i8* } 6 @_ZTIi = external constant %struct.__fundamental_type_info_pseudo ; <%struct.__fundamental_type_info_pseudo*> [#uses=1] 7 8 define i32 @main() { 9 entry:...
2010 Dec 02
2
[LLVMdev] Alternative exception handling proposal
...sly semantically wrong if the combined invoke unwinds there. Here is the LLVM IR for functions "b" and "c". define void @_Z1bv() { entry: invoke void @_Z1av() to label %return unwind label %"<L1>" personality @__gxx_personality_v0 catches %struct.__fundamental_type_info_pseudo* @_ZTIi "<L1>": ; preds = %entry %exc_ptr = tail call i8* @llvm.eh.exception() %filter = tail call i32 @llvm.eh.selector() %typeid = tail call i32 @llvm.eh.typeid.for(i8* bitcast (%struct.__fundamental_type_info_pseudo* @_ZTIi to...
2010 Dec 01
0
[LLVMdev] Alternative exception handling proposal
On Dec 1, 2010, at 1:37 PM, Duncan Sands wrote: > Inlining > -------- > > Many a plausible seeming exception handling scheme has fallen by the way-side > because it interacts poorly with inlining. > > Here is how inlining would work with this scheme. It's pretty close to how > it works right now. Suppose you have > > invoke void @foo() > to
2010 Dec 01
8
[LLVMdev] Alternative exception handling proposal
...t; = [personality <ptr>] [cleanup] [catches <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'...
2009 Apr 28
3
[LLVMdev] how to resolve llvm exception IR?
...%0 = tail call i8* @__cxa_allocate_exception(i32 4) nounwind ; <i8*> [#uses=2] 49 %1 = bitcast i8* %0 to i32* ; <i32*> [#uses=1] 50 store i32 78, i32* %1, align 4 51 invoke void @__cxa_throw(i8* %0, i8* bitcast (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)* null) noreturn 52 to label %invcont unwind label %lpad 53 54 invcont: ; preds = %entry 55 unreachable 56 57 bb: ; preds = %lpad 58 %2 = tail call i8* @__cxa_begin_catch(i...
2010 Dec 07
0
[LLVMdev] RFC: Exception Handling Proposal Revised
Hi Bill, there are a couple of things I didn't understand about your proposal, for example how it interacts with inlining, whether it is feasible to do the "turn invoke-of-Unwind_Resume into a branch" optimization and also whether in "resumedest" you still plan to use _Unwind_Resume to continue unwinding up the stack. Could you please show what the LLVM IR would look like
2010 Dec 01
10
[LLVMdev] RFC: Exception Handling Proposal Revised
...m-g++ -o - -emit-llvm -S t.cpp -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:...
2009 Mar 26
2
[LLVMdev] how to get the InvodInst 's Operand Name?
HI all, here is a llvm IR : invoke void @__cxa_throw(i8* %7, i8* bitcast (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)* null) noreturn to label %invcont unwind label %lpad say I want to get the Invoke's Operand's name, I use getOperand(i)->getName(), it can work for that the Operand hasname, but some Operand hasn't name, So, My problem is how can i get all th...
2009 Mar 26
2
[LLVMdev] how to get the InvodInst 's Operand Name?
...name @_ZTi or @__cxa_throw, the latter @__cxa_throw i can get it throw value->getName(), but the @_ZTi it did n't has name! zhangzw thanks 2009/3/26 Duncan Sands <baldrick at free.fr>: > Hi zhangzw, > >> invoke void @__cxa_throw(i8* %7, i8* bitcast >> (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)* >> null) >> noreturn to label %invcont unwind label %lpad >> >> say I want to get the Invoke's Operand's name > > are you trying to get the name "@_ZTIi" or "@__cxa_throw"? > > Ciao, > > Dunc...
2010 Dec 01
0
[LLVMdev] RFC: Exception Handling Proposal Revised
...I don't see the advantage of the dispatch instruction over just 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_pseu...
2010 Dec 01
2
[LLVMdev] RFC: Exception Handling Proposal Revised
...spatch instruction over just 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 [ >...
2009 Mar 26
0
[LLVMdev] how to get the InvodInst 's Operand Name?
Hi zhangzw, > invoke void @__cxa_throw(i8* %7, i8* bitcast > (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)* > null) > noreturn to label %invcont unwind label %lpad > > say I want to get the Invoke's Operand's name are you trying to get the name "@_ZTIi" or "@__cxa_throw"? Ciao, Duncan.
2009 Mar 26
0
[LLVMdev] how to get the InvodInst 's Operand Name?
Hi zhangzw, >> invoke void @__cxa_throw(i8* %7, i8* bitcast >> (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)* >> null) >> noreturn to label %invcont unwind label %lpad > > >>are you trying to get the name "@_ZTIi" or "@__cxa_throw"? > > yes! i want get the name @_ZTi or @__cxa_throw, > the latter @__cxa_throw i can g...
2010 Dec 01
0
[LLVMdev] Alternative exception handling proposal
...;] [cleanup] [catches <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 excep...
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 branc...
2010 Dec 06
4
[LLVMdev] Inlining and exception handling in LLVM and GCC
...%memtmp = alloca %struct.X, align 8 ; <= Stack object for variable "x" %D.2669_1 = call i8* @__cxa_allocate_exception(i64 4) nounwind %D.2687_2 = bitcast i8* %D.2669_1 to i32* store i32 1, i32* %D.2687_2, align 4 invoke void @__cxa_throw(i8* %D.2669_1, i8* bitcast (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)* null) noreturn ; <= Call "throw" to label %invcont unwind label %rewind invcont: ; preds = %entry unreachable rewind: ; preds = %entry %exc_ptr = call i8* @l...
2010 Nov 24
5
[LLVMdev] RFC: Exception Handling Proposal II
...h in a function. IR objects reference this value to indicate that they 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 t...
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 fro...
2009 Mar 26
2
[LLVMdev] how to get the InvodInst 's Operand Name?
...have to build another node to store landingpad index to stack before llvm invoke instruction. am i write for the direction? hehe. zhangzw 2009/3/26 Duncan Sands <baldrick at free.fr>: > Hi zhangzw, > >>> invoke void @__cxa_throw(i8* %7, i8* bitcast >>> (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)* >>> null) >>> noreturn to label %invcont unwind label %lpad >> >> >>are you trying to get the name "@_ZTIi" or "@__cxa_throw"? >> >> yes! i want get the name @_ZTi or @__cxa_throw, >> the...
2010 Dec 02
3
[LLVMdev] Alternative exception handling proposal
.... If it was needed arbitrarily far downstream then of 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 inser...