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...