Displaying 2 results from an estimated 2 matches for "vtablesize".
Did you mean:
tablesize
2017 Apr 06
2
Dereferenceable load semantics & LICM
...ow that %ptrptr is also dereferenceable.
The vptr and vtable properties are non local, so I don't see how
hoisting vptr load could be dangerous:
void foo(A& a) {
if (false)
a.foo();
}
will be:
void foo(A* dereferenceable(8) %a) {
if (false)
%vptr = load %a, !dereferenceable !{VtableSize, "GlobalProperty"},
!invariant.group !0
%vfunction = load %vptr, !invariant.load !0
call %vfunction();
}
and after hoisting:
void foo(A* dereferenceable(8) %a) {
%vptr = load %a, !dereferenceable !{VtableSize, "GlobalProperty"},
!invariant.group !{"GlobalPropert...
2017 Apr 03
4
Dereferenceable load semantics & LICM
2017-04-01 15:59 GMT+02:00 Piotr Padlewski <piotr.padlewski at gmail.com>:
>
>
> 2017-03-31 23:20 GMT+02:00 Sanjoy Das <sanjoy at playingwithpointers.com>:
>
>> Hi Piotr,
>>
>> On March 31, 2017 at 1:07:12 PM, Piotr Padlewski
>> (piotr.padlewski at gmail.com) wrote:
>> > [snip]
>> > Do I understand it correctly, that it is legal to