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

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

Issue 2687143005: Include metadata in AOT to expand inline frames in stack traces and provide line numbers. (Closed)
Patch Set: . Created 3 years, 10 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.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 RUNTIME_VM_PRECOMPILER_H_ 5 #ifndef RUNTIME_VM_PRECOMPILER_H_
6 #define RUNTIME_VM_PRECOMPILER_H_ 6 #define RUNTIME_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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 static inline intptr_t Hashcode(Key key) { return key->PcOffset(); } 80 static inline intptr_t Hashcode(Key key) { return key->PcOffset(); }
81 81
82 static inline bool IsKeyEqual(Pair pair, Key key) { 82 static inline bool IsKeyEqual(Pair pair, Key key) {
83 return pair->Equals(*key); 83 return pair->Equals(*key);
84 } 84 }
85 }; 85 };
86 86
87 typedef DirectChainedHashMap<StackMapKeyValueTrait> StackMapSet; 87 typedef DirectChainedHashMap<StackMapKeyValueTrait> StackMapSet;
88 88
89 89
90 class CodeSourceMapKeyValueTrait {
91 public:
92 // Typedefs needed for the DirectChainedHashMap template.
93 typedef const CodeSourceMap* Key;
94 typedef const CodeSourceMap* Value;
95 typedef const CodeSourceMap* Pair;
96
97 static Key KeyOf(Pair kv) { return kv; }
98
99 static Value ValueOf(Pair kv) { return kv; }
100
101 static inline intptr_t Hashcode(Key key) { return key->Length(); }
102
103 static inline bool IsKeyEqual(Pair pair, Key key) {
104 return pair->Equals(*key);
105 }
106 };
107
108 typedef DirectChainedHashMap<CodeSourceMapKeyValueTrait> CodeSourceMapSet;
109
110
90 class ArrayKeyValueTrait { 111 class ArrayKeyValueTrait {
91 public: 112 public:
92 // Typedefs needed for the DirectChainedHashMap template. 113 // Typedefs needed for the DirectChainedHashMap template.
93 typedef const Array* Key; 114 typedef const Array* Key;
94 typedef const Array* Value; 115 typedef const Array* Value;
95 typedef const Array* Pair; 116 typedef const Array* Pair;
96 117
97 static Key KeyOf(Pair kv) { return kv; } 118 static Key KeyOf(Pair kv) { return kv; }
98 119
99 static Value ValueOf(Pair kv) { return kv; } 120 static Value ValueOf(Pair kv) { return kv; }
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 void DropTypes(); 475 void DropTypes();
455 void DropTypeArguments(); 476 void DropTypeArguments();
456 void DropScriptData(); 477 void DropScriptData();
457 void DropClasses(); 478 void DropClasses();
458 void DropLibraries(); 479 void DropLibraries();
459 480
460 void BindStaticCalls(); 481 void BindStaticCalls();
461 void SwitchICCalls(); 482 void SwitchICCalls();
462 void ShareMegamorphicBuckets(); 483 void ShareMegamorphicBuckets();
463 void DedupStackMaps(); 484 void DedupStackMaps();
485 void DedupCodeSourceMaps();
464 void DedupLists(); 486 void DedupLists();
465 void DedupInstructions(); 487 void DedupInstructions();
466 void ResetPrecompilerState(); 488 void ResetPrecompilerState();
467 489
468 void CollectDynamicFunctionNames(); 490 void CollectDynamicFunctionNames();
469 491
470 void PrecompileStaticInitializers(); 492 void PrecompileStaticInitializers();
471 void PrecompileConstructors(); 493 void PrecompileConstructors();
472 494
473 void FinalizeAllClasses(); 495 void FinalizeAllClasses();
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 } 565 }
544 static RawObject* NewKey(const Function& function) { return function.raw(); } 566 static RawObject* NewKey(const Function& function) { return function.raw(); }
545 }; 567 };
546 568
547 typedef UnorderedHashSet<FunctionsTraits> UniqueFunctionsSet; 569 typedef UnorderedHashSet<FunctionsTraits> UniqueFunctionsSet;
548 570
549 571
550 } // namespace dart 572 } // namespace dart
551 573
552 #endif // RUNTIME_VM_PRECOMPILER_H_ 574 #endif // RUNTIME_VM_PRECOMPILER_H_
OLDNEW
« no previous file with comments | « runtime/vm/object.cc ('k') | runtime/vm/precompiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698