OLD | NEW |
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 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 void AddField(const Field& field); | 302 void AddField(const Field& field); |
303 void AddFunction(const Function& function); | 303 void AddFunction(const Function& function); |
304 void AddInstantiatedClass(const Class& cls); | 304 void AddInstantiatedClass(const Class& cls); |
305 void AddSelector(const String& selector); | 305 void AddSelector(const String& selector); |
306 bool IsSent(const String& selector); | 306 bool IsSent(const String& selector); |
307 | 307 |
308 void ProcessFunction(const Function& function); | 308 void ProcessFunction(const Function& function); |
309 void CheckForNewDynamicFunctions(); | 309 void CheckForNewDynamicFunctions(); |
310 void TraceConstFunctions(); | 310 void TraceConstFunctions(); |
311 | 311 |
| 312 void TraceForRetainedFunctions(); |
312 void DropFunctions(); | 313 void DropFunctions(); |
313 void DropFields(); | 314 void DropFields(); |
314 void TraceTypesFromRetainedClasses(); | 315 void TraceTypesFromRetainedClasses(); |
315 void DropTypes(); | 316 void DropTypes(); |
316 void DropTypeArguments(); | 317 void DropTypeArguments(); |
317 void DropClasses(); | 318 void DropClasses(); |
318 void DropLibraries(); | 319 void DropLibraries(); |
319 | 320 |
320 void BindStaticCalls(); | 321 void BindStaticCalls(); |
321 void SwitchICCalls(); | 322 void SwitchICCalls(); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 intptr_t dropped_class_count_; | 356 intptr_t dropped_class_count_; |
356 intptr_t dropped_typearg_count_; | 357 intptr_t dropped_typearg_count_; |
357 intptr_t dropped_type_count_; | 358 intptr_t dropped_type_count_; |
358 intptr_t dropped_library_count_; | 359 intptr_t dropped_library_count_; |
359 | 360 |
360 GrowableObjectArray& libraries_; | 361 GrowableObjectArray& libraries_; |
361 const GrowableObjectArray& pending_functions_; | 362 const GrowableObjectArray& pending_functions_; |
362 SymbolSet sent_selectors_; | 363 SymbolSet sent_selectors_; |
363 FunctionSet enqueued_functions_; | 364 FunctionSet enqueued_functions_; |
364 FieldSet fields_to_retain_; | 365 FieldSet fields_to_retain_; |
| 366 FunctionSet functions_to_retain_; |
365 ClassSet classes_to_retain_; | 367 ClassSet classes_to_retain_; |
366 TypeArgumentsSet typeargs_to_retain_; | 368 TypeArgumentsSet typeargs_to_retain_; |
367 AbstractTypeSet types_to_retain_; | 369 AbstractTypeSet types_to_retain_; |
368 InstanceSet consts_to_retain_; | 370 InstanceSet consts_to_retain_; |
369 Error& error_; | 371 Error& error_; |
370 }; | 372 }; |
371 | 373 |
372 | 374 |
373 class FunctionsTraits { | 375 class FunctionsTraits { |
374 public: | 376 public: |
(...skipping 21 matching lines...) Expand all Loading... |
396 return function.raw(); | 398 return function.raw(); |
397 } | 399 } |
398 }; | 400 }; |
399 | 401 |
400 typedef UnorderedHashSet<FunctionsTraits> UniqueFunctionsSet; | 402 typedef UnorderedHashSet<FunctionsTraits> UniqueFunctionsSet; |
401 | 403 |
402 | 404 |
403 } // namespace dart | 405 } // namespace dart |
404 | 406 |
405 #endif // VM_PRECOMPILER_H_ | 407 #endif // VM_PRECOMPILER_H_ |
OLD | NEW |