Chromium Code Reviews
Descriptiondart2js cps: LICM, GVN, and constify for interceptors in one pass.
Neither of these optimizations can "obviously" be placed before any of
the others without missing out on an optimization:
Constifying an interceptor makes it LICM'able because its dependency on
the input disappears. This suggests we should constify before LICM.
Interceptors in disjoint scopes might become sharable after LICM.
This suggests we LICM before sharing.
Constifying an interceptor can prevent sharing, because we "forget"
which input it came from. This suggests we share before constifying.
The last point could also be resolved by performing a stronger analysis
to determine which interceptors in scope are a valid substitute for a
given interceptor. But having everything in one pass isn't too bad.
BUG=
R=sra@google.com
Committed: https://github.com/dart-lang/sdk/commit/3fa9c1f80abefbfedf1e231bf2adf32a81d8e826
Patch Set 1 #
Total comments: 4
Messages
Total messages: 5 (1 generated)
|
||||||||||||||||||||||||||||||||||||||||||||||