Chromium Code Reviews
DescriptionMore general CHA-based inlining and devirtualization for precompiled code.
Generalize current approach used for implicit getters/setters to all instance calls.
Additionally use propagated type to resolve targets if no concrete cid
is known:
class A {
void m() { }
void n() => m();
}
class B extends A { }
Even though the receiver type in n() can be A or B (concrete cid unknown), we can still
call m() directly since it is not overridden.
Also, allow inlining of methods that were not compiled yet in precompiled code.
BUG=
R=rmacnak@google.com, srdjan@google.com
Committed: https://github.com/dart-lang/sdk/commit/36e63481e026d91710139750dd57e2f2a43a3bc7
Patch Set 1 #Patch Set 2 : #
Total comments: 12
Patch Set 3 : addressed comments, fixed type propagation assertion failure #
Messages
Total messages: 11 (4 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||