search for: vtable_b

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