Descriptiondart2js cps: Generate interceptors at use-site and share afterwards.
Previously, interceptors were generated at the definition-site to ensure
sharing, and sometimes sunk to its use-site if desirable.
Now they are (again) generated at use-site, then pulled out of loops,
and replaced by dominating calls to getInterceptor.
This means interceptors are only computed if they really are needed,
but on the other hand, they are sometimes computed more than once, when
there are uses that don't have a common dominator.
Interceptor constants are currently not shared/hoisted as it is not
clear when this is beneficial.
R=kmillikin@google.com
Committed: https://github.com/dart-lang/sdk/commit/ade4822108cc1e61dea7120da46e2bb8518715c4
Patch Set 1 #
Total comments: 3
Patch Set 2 : Merge #Patch Set 3 : Also share/hoist interceptor constants #Patch Set 4 : Revert patch #3. I read Golem results backwards. #
Messages
Total messages: 8 (2 generated)
|