-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Description
Currently vtable lookups are not exposed until after optimization; this prevents them from being CSE'd and hoisted out of loops. We should move expansion of vtable lookups to morph or some phase before optimization and mark them as suitably invariant so they can be CSE'd and hoisted.
Note most vtable lookups require 3 dependent memory loads so CSE/hoist should provide a nice perf benefit. As part of the work we should verify that consecutive virtual calls on the same object to different methods can be partially CSE'd. And with the advent of PGO we will also see more method table fetches/type tests and these will provide partial CSEs for subsequent virtual calls.
Am adding this to the PGO epic, though it has broader benefit.
category:cq
theme:cse
skill-level:expert
cost:medium
Metadata
Metadata
Assignees
Labels
Type
Projects
Status