<SNIP>
Egor,
The Alexey's solution does not affect devirtualizer at all. How can we do without devirtualizer changes here? We need to replace Object->Vtable with Object->class->vtable. Am I missing something?
If vtables are pinned Aleksey's solution does not affect JITs at all. If vtables move, it will be one more level of indirection for guarded devirtualization: was object->vtable, will be object->vtable->class. Unpinning vtables does not cause the need to enumerate them from JIT, if JIT does not store pointers to them. -- Pavel Pervov, Intel Enterprise Solutions Software Division