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

Side by Side Diff: runtime/vm/precompiler.h

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 unified diff | Download patch
« no previous file with comments | « runtime/vm/object_store.cc ('k') | runtime/vm/precompiler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_PRECOMPILER_H_ 5 #ifndef VM_PRECOMPILER_H_
6 #define VM_PRECOMPILER_H_ 6 #define VM_PRECOMPILER_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/hash_map.h" 9 #include "vm/hash_map.h"
10 #include "vm/hash_table.h" 10 #include "vm/hash_table.h"
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 258
259 typedef DirectChainedHashMap<InstanceKeyValueTrait> InstanceSet; 259 typedef DirectChainedHashMap<InstanceKeyValueTrait> InstanceSet;
260 260
261 261
262 class Precompiler : public ValueObject { 262 class Precompiler : public ValueObject {
263 public: 263 public:
264 static RawError* CompileAll( 264 static RawError* CompileAll(
265 Dart_QualifiedFunctionName embedder_entry_points[], 265 Dart_QualifiedFunctionName embedder_entry_points[],
266 bool reset_fields); 266 bool reset_fields);
267 267
268 // Returns named function that is a unique dynamic target, i.e.,
269 // - the target is identified by its name alone, since it occurs only once.
270 // - target's class has no subclasses, and neither is subclassed, i.e.,
271 // the receiver type can be only the function's class.
272 // Returns Function::null() if there is no unique dynamic target for
273 // given 'fname'. 'fname' must be a symbol.
274 static void GetUniqueDynamicTarget(Isolate* isolate,
275 const String& fname,
276 Object* function);
277
278 static RawError* CompileFunction(Thread* thread, const Function& function); 268 static RawError* CompileFunction(Thread* thread, const Function& function);
279 269
280 static RawObject* EvaluateStaticInitializer(const Field& field); 270 static RawObject* EvaluateStaticInitializer(const Field& field);
281 static RawObject* ExecuteOnce(SequenceNode* fragment); 271 static RawObject* ExecuteOnce(SequenceNode* fragment);
282 272
283 private: 273 private:
284 Precompiler(Thread* thread, bool reset_fields); 274 Precompiler(Thread* thread, bool reset_fields);
285 275
286 276
287 static RawFunction* CompileStaticInitializer(const Field& field); 277 static RawFunction* CompileStaticInitializer(const Field& field);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 return function.raw(); 388 return function.raw();
399 } 389 }
400 }; 390 };
401 391
402 typedef UnorderedHashSet<FunctionsTraits> UniqueFunctionsSet; 392 typedef UnorderedHashSet<FunctionsTraits> UniqueFunctionsSet;
403 393
404 394
405 } // namespace dart 395 } // namespace dart
406 396
407 #endif // VM_PRECOMPILER_H_ 397 #endif // VM_PRECOMPILER_H_
OLDNEW
« no previous file with comments | « runtime/vm/object_store.cc ('k') | runtime/vm/precompiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698