Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(429)

Unified Diff: runtime/vm/precompiler.cc

Issue 1969843002: VM: Another fix for precompiling with >1 iterations. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/precompiler.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/precompiler.cc
diff --git a/runtime/vm/precompiler.cc b/runtime/vm/precompiler.cc
index 924d8a19118ef45b1bbb746b3e5d5ffb9d75f57d..3ece322ca4df7b0cb5aa04bb94a289ac01c2dca9 100644
--- a/runtime/vm/precompiler.cc
+++ b/runtime/vm/precompiler.cc
@@ -292,14 +292,6 @@ void Precompiler::AddRoots(Dart_QualifiedFunctionName embedder_entry_points[]) {
}
Dart_QualifiedFunctionName vm_entry_points[] = {
- // TODO(rmacnak): These types are not allocated from C++ but they are
- // cached in the object store. Consider clearing them from the object store
- // before snapshotting and adjusting InitKnownObjects to allow their
- // absence.
- { "dart:async", "Future", "Future." },
- { "dart:async", "Completer", "Completer." },
- { "dart:async", "StreamIterator", "StreamIterator." },
-
// Functions
{ "dart:async", "::", "_setScheduleImmediateClosure" },
{ "dart:core", "::", "_completeDeferredLoads" },
@@ -326,6 +318,7 @@ void Precompiler::AddRoots(Dart_QualifiedFunctionName embedder_entry_points[]) {
{ "dart:isolate", "::", "_getIsolateScheduleImmediateClosure" },
{ "dart:isolate", "::", "_setupHooks" },
{ "dart:isolate", "::", "_startMainIsolate" },
+ { "dart:isolate", "::", "_startIsolate" },
{ "dart:isolate", "_RawReceivePortImpl", "_handleMessage" },
{ "dart:isolate", "_RawReceivePortImpl", "_lookupHandler" },
{ "dart:isolate", "_SendPortImpl", "send" },
@@ -336,6 +329,7 @@ void Precompiler::AddRoots(Dart_QualifiedFunctionName embedder_entry_points[]) {
{ "dart:_vmservice", "::", "_registerIsolate" },
{ "dart:_vmservice", "::", "boot" },
{ "dart:developer", "Metrics", "_printMetrics" },
+ { "dart:developer", "::", "_runExtension" },
#endif // !PRODUCT
// Fields
{ "dart:core", "Error", "_stackTrace" },
@@ -787,7 +781,6 @@ void Precompiler::AddField(const Field& field) {
RawFunction* Precompiler::CompileStaticInitializer(const Field& field) {
ASSERT(field.is_static());
- ASSERT(!field.HasPrecompiledInitializer());
Thread* thread = Thread::Current();
StackZone zone(thread);
@@ -1130,6 +1123,9 @@ void Precompiler::CollectDynamicFunctionNames() {
AddNameToFunctionsTable(zone(), &table, fname, function);
fname = Field::NameFromGetter(fname);
AddNameToFunctionsTable(zone(), &table, fname, function);
+ } else if (function.IsMethodExtractor()) {
+ // Skip. We already add getter names for regular methods below.
+ continue;
} else {
// Regular function. Enter both getter and non getter name.
AddNameToFunctionsTable(zone(), &table, fname, function);
@@ -1177,18 +1173,6 @@ void Precompiler::CollectDynamicFunctionNames() {
}
-void Precompiler::GetUniqueDynamicTarget(Isolate* isolate,
- const String& fname,
- Object* function) {
- UniqueFunctionsSet functions_set(
- isolate->object_store()->unique_dynamic_targets());
- ASSERT(fname.IsSymbol());
- *function = functions_set.GetOrNull(fname);
- ASSERT(functions_set.Release().raw() ==
- isolate->object_store()->unique_dynamic_targets());
-}
-
-
void Precompiler::TraceConstFunctions() {
// Compilation of const accessors happens outside of the treeshakers
// queue, so we haven't previously scanned its literal pool.
« no previous file with comments | « runtime/vm/precompiler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698