Displaying 3 results from an estimated 3 matches for "vtable_b".
Did you mean:
table_b
2018 Mar 19
4
RFC: Devirtualization v2
...e problem arises
because after changing %b to %a in LLVM, the load from virtual pointer can
be devirtualized to different type. %vtable_a = load %a,
!invariant.group;;;; %a == %b%bool = icmp %a, %bbr %bool, %if, %afterif:;
if this will be changed to %a, then the optimizer will be able to replace ;
%vtable_b with %vtable_a%vtable_b = load %b, !invariant.groupFor other
corner cases check out appendix.SolutionThe proposed solution is to model
pointers to dynamic types as “fat pointers”. We can think of them as
pointers that also store the current dynamic type. Virtual calls would
consist of virtual point...
2018 Mar 28
0
[cfe-dev] RFC: Devirtualization v2
...VM, the load from virtual pointer can be devirtualized to different type.
>
> %vtable_a = load %a, !invariant.group
> ;;;
> ; %a == %b
> %bool = icmp %a, %b
> br %bool, %if, %after
> if:
> ; if this will be changed to %a, then the optimizer will be able to replace
> ; %vtable_b with %vtable_a
> %vtable_b = load %b, !invariant.group
>
> For other corner cases check out appendix.
> Solution
> The proposed solution is to model pointers to dynamic types as “fat pointers”. We can think of them as pointers that also store the current dynamic type. Virtual calls...
2018 Mar 29
2
[cfe-dev] RFC: Devirtualization v2
...ause after changing %b to %a in LLVM, the load from virtual pointer can
> be devirtualized to different type. %vtable_a = load %a,
> !invariant.group;;;; %a == %b%bool = icmp %a, %bbr %bool, %if, %afterif:;
> if this will be changed to %a, then the optimizer will be able to replace ;
> %vtable_b with %vtable_a%vtable_b = load %b, !invariant.groupFor other
> corner cases check out appendix.SolutionThe proposed solution is to model
> pointers to dynamic types as “fat pointers”. We can think of them as
> pointers that also store the current dynamic type. Virtual calls would
> cons...