[VM] Ensure we handle devirtualized calls inside ApplyClassIds() as well
After recent changes to pragmas, TFA devirtualizes more calls, which has
regressed a Prime
This gets rid of the 5% regression in PrimeNumber/PrimeNumberTyped in
dart-aot (which 0ef66e0f5 introduced). Furthermore it improves MD5/SHA
by double digits percent.
Change-Id: Ia4d1fb62512495dec7111efc53c4d7a4de5ef3af
Reviewed-on: https://dart-review.googlesource.com/c/85398
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
This commit is contained in:
committed by
commit-bot@chromium.org
parent
e25c744138
commit
4aff8f93fb
@@ -187,6 +187,10 @@ void CallSpecializer::ApplyClassIds() {
|
||||
VisitInstanceCall(call);
|
||||
}
|
||||
}
|
||||
} else if (auto static_call = instr->AsStaticCall()) {
|
||||
// If TFA devirtualized instance calls to static calls we also want to
|
||||
// process them here.
|
||||
VisitStaticCall(static_call);
|
||||
} else if (instr->IsPolymorphicInstanceCall()) {
|
||||
SpecializePolymorphicInstanceCall(instr->AsPolymorphicInstanceCall());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user