search for: _ztii

Displaying 20 results from an estimated 52 matches for "_ztii".

2009 Mar 26
2
[LLVMdev] how to get the InvodInst 's Operand Name?
Hi Duncan, >>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 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...
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 the Operan...
2009 Mar 13
2
[LLVMdev] how to reslove gcc_except_table?
....uleb128 0x5 # action 118 .LLSDACSE2: 119 .byte 0x1 # Action record table 120 .byte 0x0 121 .byte 0x2 122 .byte 0x7d 123 .byte 0x3 124 .byte 0x7d 125 .align 4 126 .long _ZTIi 127 .long _ZTIc 128 .long _ZTIb 129 .LLSDATT2: ok: my problem is the action(line 117) how to index to the action record table? in Action record table , why there are the magic 0x7d?. $ g++ -v $ Using built-in specs. $ Target: i686-pc-linux-gnu $ Configured...
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 May 12
1
[LLVMdev] How distinguish Catch all llvm-IR from other catch type ?
...: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: 10 %0 = tail call i8* @__cxa_allocate_exception(i32 4) nounwind ; <i8*> [#uses=2]...
2009 Mar 13
0
[LLVMdev] how to reslove gcc_except_table?
...> { > try { > throw 34; > } > catch (int) { > } > catch (char) { > } > catch (bool) { > } > } The action is 0x5, this refers to 123 .byte 0x3 124 .byte 0x7d where 0x3 means that the typeinfo is _ZTIi (int). The 0x7d says that if the typeinfo doesn't match, then the next action to consider is at offset -3 from here. In other words, it will continue with 121 .byte 0x2 122 .byte 0x7d i.e. it will then try and match with _ZTIc. If this doesn't match then th...
2014 Nov 24
1
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
...;entry' invoke of Middle constructor ; outer needs post-catch cleanup lpad: ; preds = %if.end, %entry %2 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) cleanup catch i8* bitcast (i8** @_ZTIi to i8*) %3 = extractvalue { i8*, i32 } %2, 0 store i8* %3, i8** %exn.slot %4 = extractvalue { i8*, i32 } %2, 1 store i32 %4, i32* %ehselector.slot ; No pre-catch cleanup for this landingpad br label %catch.dispatch ; From 'if.then' invoke of do_thing_one() ; Or from 'if.els...
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 get it th...
2009 Apr 28
3
[LLVMdev] how to resolve llvm exception IR?
...llocate_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(i8* %eh_p...
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
2011 Jul 23
0
[LLVMdev] RFC: Exception Handling Rewrite
...re > represented 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 >...
2010 Jan 13
1
[LLVMdev] invoke/unwind
On 01/13/2010 02:07 AM, Duncan Sands wrote: > Hi Dustin, the code generators do not support unwind, only the > interpreter does. Ah, the secret is not to even try to frob the gnorts. Manual unwinding, here I come. :-( I was going to say the interpreter doesn't either, but then I recalled it JITs when it can. I don't know how to call into libc from the interpreter to test that.
2010 Dec 01
10
[LLVMdev] RFC: Exception Handling Proposal Revised
...rs...it's handcrafted): $ llvm-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()...
2015 Jan 27
2
[LLVMdev] RFC: Native Windows C++ exception handling
...ad invoke.cont4: call void @llvm.eh.setehstate(i32 0) call void @llvm.eh.setehstate(i32 -1) call void @_Z10keep_goingv() ret void lpad: %eh.vals = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) cleanup catch i8* bitcast (i8** @_ZTIi to i8*) catch i8* bitcast (i8** @_ZTIf to i8*) %eh.ptrs = extractvalue { i8*, i32 } %eh.vals, 0 %eh.sel = extractvalue { i8*, i32 } %eh.vals, 1 br label %unwind.handlers unwind.handlers: %unwind.state = call i32 @llvm.eh.getunwindstate(%eh.ptrs) br label %unwind.dispatch unwi...
2012 Jan 10
3
[LLVMdev] landingpad instruction documentation is vague
...lues and types passed to catch clause? I see that practically type is i8* and value is bitcast (i8** @<typeinfo> to i8*). Is this target specific? If yes, documentation should mention this, if not, it should describe them. 4. Example in documentation shows catch clause as "catch i8** @_ZTIi" and clang++ generated example shows "catch i8* bitcast (i8** @_ZTIi to i8*)" Yuri
2010 Dec 01
0
[LLVMdev] RFC: Exception Handling Proposal Revised
...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_pseudo* @_ZT...
2011 Jul 23
14
[LLVMdev] RFC: Exception Handling Rewrite
...w the personality function results are represented 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 = la...
2010 Dec 01
8
[LLVMdev] Alternative exception handling proposal
...leanup] [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't match...
2010 Dec 01
2
[LLVMdev] RFC: Exception Handling Proposal Revised
...ching 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 [ > %...
2012 Dec 27
1
[LLVMdev] Throwing an exception from JITed code, and catching in C++
...cat thrower.s ################ ; ModuleID = 'thrower.cpp' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" @_ZTIi = external constant i8* define void @_Z8throwIntv() uwtable { %1 = call i8* @__cxa_allocate_exception(i64 4) nounwind %2 = bitcast i8* %1 to i32* store i32 1, i32* %2 call void @__cxa_throw(i8* %1, i8* bitcast (i8** @_ZTIi to i8*), i8* null) noreturn unreachable...