Displaying 7 results from an estimated 7 matches for "_zn1bd1ev".
2012 Mar 19
5
[LLVMdev] recognizing DTORs and vptr updates in LLVM.
...also
know when a function is a DTOR.
Rationale: need to distinguish benign and harmful races on vptr (
http://code.google.com/p/data-race-test/wiki/PopularDataRaces#Data_race_on_vptr
).
Currently, I can figure out when a function is a DTOR and when a store
touches vptr by analyzing mangled names.
_ZN1BD1Ev=="B::~B()"
_ZTV1B=="vtable for B"
define linkonce_odr void @_ZN1BD1Ev(%struct.B* %this) unnamed_addr nounwind
uwtable align 2 {
entry:
....
store i32 (...)** bitcast (i8** getelementptr inbounds ([5 x i8*]*
@_ZTV1B, i64 0, i64 2) to i32 (...)**), i32 (...)*** %0, align 8
H...
2012 Mar 19
0
[LLVMdev] recognizing DTORs and vptr updates in LLVM.
...nction is a DTOR.
> Rationale: need to distinguish benign and harmful races on vptr (http://code.google.com/p/data-race-test/wiki/PopularDataRaces#Data_race_on_vptr).
>
> Currently, I can figure out when a function is a DTOR and when a store touches vptr by analyzing mangled names.
> _ZN1BD1Ev=="B::~B()"
> _ZTV1B=="vtable for B"
>
> define linkonce_odr void @_ZN1BD1Ev(%struct.B* %this) unnamed_addr nounwind uwtable align 2 {
> entry:
> ....
> store i32 (...)** bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTV1B, i64 0, i64 2) to i32 (...)**...
2012 Mar 19
0
[LLVMdev] recognizing DTORs and vptr updates in LLVM.
...is a DTOR.
> Rationale: need to distinguish benign and harmful races on vptr
> (http://code.google.com/p/data-race-test/wiki/PopularDataRaces#Data_race_on_vptr).
>
> Currently, I can figure out when a function is a DTOR and when a store
> touches vptr by analyzing mangled names.
> _ZN1BD1Ev=="B::~B()"
> _ZTV1B=="vtable for B"
>
> define linkonce_odr void @_ZN1BD1Ev(%struct.B* %this) unnamed_addr nounwind
> uwtable align 2 {
> entry:
> ....
> store i32 (...)** bitcast (i8** getelementptr inbounds ([5 x i8*]*
> @_ZTV1B, i64 0, i64 2) to i3...
2012 Mar 19
5
[LLVMdev] recognizing DTORs and vptr updates in LLVM.
...is a DTOR.
> Rationale: need to distinguish benign and harmful races on vptr
> (http://code.google.com/p/data-race-test/wiki/PopularDataRaces#Data_race_on_vptr).
>
> Currently, I can figure out when a function is a DTOR and when a store
> touches vptr by analyzing mangled names.
> _ZN1BD1Ev=="B::~B()"
> _ZTV1B=="vtable for B"
>
> define linkonce_odr void @_ZN1BD1Ev(%struct.B* %this) unnamed_addr nounwind
> uwtable align 2 {
> entry:
> ....
> store i32 (...)** bitcast (i8** getelementptr inbounds ([5 x i8*]*
> @_ZTV1B, i64 0, i64 2) to i3...
2012 Mar 20
1
[LLVMdev] recognizing DTORs and vptr updates in LLVM.
...OR.
> Rationale: need to distinguish benign and harmful races on vptr (
> http://code.google.com/p/data-race-test/wiki/PopularDataRaces#Data_race_on_vptr
> ).
>
> Currently, I can figure out when a function is a DTOR and when a store
> touches vptr by analyzing mangled names.
> _ZN1BD1Ev=="B::~B()"
> _ZTV1B=="vtable for B"
>
> define linkonce_odr void @_ZN1BD1Ev(%struct.B* %this) unnamed_addr
> nounwind uwtable align 2 {
> entry:
> ....
> store i32 (...)** bitcast (i8** getelementptr inbounds ([5 x i8*]*
> @_ZTV1B, i64 0, i64 2) to i3...
2010 Dec 01
10
[LLVMdev] RFC: Exception Handling Proposal Revised
...unwind label %a.dtor
invcont1:
invoke void @_Z3foov()
to label %invcont2 unwind label %b.dtor
invcont2:
invoke void @_Z3foov()
to label %bb1 unwind label %c.dtor
bb1:
invoke void @_ZN1CD1Ev(%struct.C* %c)
to label %bb2 unwind label %b.dtor
bb2:
invoke void @_ZN1BD1Ev(%struct.B* %b)
to label %bb3 unwind label %a.dtor
bb3:
invoke void @_ZN1AD1Ev(%struct.A* %a)
to label %return unwind label %catch.handlers
return:
ret void
;; Catch Handlers
catch.handlers: landingpad
%eh_ptr = call i8* @llvm.eh.exception()
dispatch resume to label %....
2010 Dec 01
8
[LLVMdev] Alternative exception handling proposal
...to label %"7" unwind label %lpad26 personality @__gxx_personality_v0
catches %struct.__fundamental_type_info_pseudo* @_ZTIi,
%struct.__pointer_type_info_pseudo* @_ZTIPKc, i8* null
"7": ; preds = %"6"
invoke void @_ZN1BD1Ev(%struct.A* %memtmp1)
to label %"8" unwind label %lpad25 personality @__gxx_personality_v0
catches %struct.__fundamental_type_info_pseudo* @_ZTIi,
%struct.__pointer_type_info_pseudo* @_ZTIPKc, i8* null
"8": ; preds = %&qu...