Displaying 2 results from an estimated 2 matches for "fptr_casted".
2016 Jan 28
8
Proposal: virtual constant propagation
...ase”)
call void @llvm.assume(i1 %p) ; %vtable is assumed to point to
; _ZTV4Base+16 or _ZTV7Derived+16.
%fptrptr = getelementptr i8* %vtable, 1
%fptr = load i8*, i8** %fptrptr ; %fptr must point to Base::isOfType
; or Derived::isOfType.
%fptr_casted = bitcast i8% %fptr to i1 (i8***, i32)
%result = call i1 %fptr_casted(i8*** %obj, i32 0)
This gives the optimizer all the information it needs to implement the
optimization: the addresses of the virtual tables, the addresses of the
function pointers (within the virtual table initializers) and the...
2016 Jan 28
2
Proposal: virtual constant propagation
...able is assumed to point to
>> ; _ZTV4Base+16 or _ZTV7Derived+16.
>> %fptrptr = getelementptr i8* %vtable, 1
>> %fptr = load i8*, i8** %fptrptr ; %fptr must point to Base::isOfType
>> ; or Derived::isOfType.
>> %fptr_casted = bitcast i8% %fptr to i1 (i8***, i32)
>> %result = call i1 %fptr_casted(i8*** %obj, i32 0)
>>
>> This gives the optimizer all the information it needs to implement the
>> optimization: the addresses of the virtual tables, the addresses of the
>> function pointers (wi...