| 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 139 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 150   } | 150   } | 
| 151 | 151 | 
| 152   static inline bool IsKeyEqual(Pair pair, Key key) { | 152   static inline bool IsKeyEqual(Pair pair, Key key) { | 
| 153     return pair->Equals(*key); | 153     return pair->Equals(*key); | 
| 154   } | 154   } | 
| 155 }; | 155 }; | 
| 156 | 156 | 
| 157 typedef DirectChainedHashMap<InstructionsKeyValueTrait> InstructionsSet; | 157 typedef DirectChainedHashMap<InstructionsKeyValueTrait> InstructionsSet; | 
| 158 | 158 | 
| 159 | 159 | 
|  | 160 class UnlinkedCallKeyValueTrait { | 
|  | 161  public: | 
|  | 162   // Typedefs needed for the DirectChainedHashMap template. | 
|  | 163   typedef const UnlinkedCall* Key; | 
|  | 164   typedef const UnlinkedCall* Value; | 
|  | 165   typedef const UnlinkedCall* Pair; | 
|  | 166 | 
|  | 167   static Key KeyOf(Pair kv) { return kv; } | 
|  | 168 | 
|  | 169   static Value ValueOf(Pair kv) { return kv; } | 
|  | 170 | 
|  | 171   static inline intptr_t Hashcode(Key key) { | 
|  | 172     return String::Handle(key->target_name()).Hash(); | 
|  | 173   } | 
|  | 174 | 
|  | 175   static inline bool IsKeyEqual(Pair pair, Key key) { | 
|  | 176     return (pair->target_name() == key->target_name()) && | 
|  | 177         (pair->args_descriptor() == key->args_descriptor()); | 
|  | 178   } | 
|  | 179 }; | 
|  | 180 | 
|  | 181 typedef DirectChainedHashMap<UnlinkedCallKeyValueTrait> UnlinkedCallSet; | 
|  | 182 | 
|  | 183 | 
| 160 class FunctionKeyValueTrait { | 184 class FunctionKeyValueTrait { | 
| 161  public: | 185  public: | 
| 162   // Typedefs needed for the DirectChainedHashMap template. | 186   // Typedefs needed for the DirectChainedHashMap template. | 
| 163   typedef const Function* Key; | 187   typedef const Function* Key; | 
| 164   typedef const Function* Value; | 188   typedef const Function* Value; | 
| 165   typedef const Function* Pair; | 189   typedef const Function* Pair; | 
| 166 | 190 | 
| 167   static Key KeyOf(Pair kv) { return kv; } | 191   static Key KeyOf(Pair kv) { return kv; } | 
| 168 | 192 | 
| 169   static Value ValueOf(Pair kv) { return kv; } | 193   static Value ValueOf(Pair kv) { return kv; } | 
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 471     return function.raw(); | 495     return function.raw(); | 
| 472   } | 496   } | 
| 473 }; | 497 }; | 
| 474 | 498 | 
| 475 typedef UnorderedHashSet<FunctionsTraits> UniqueFunctionsSet; | 499 typedef UnorderedHashSet<FunctionsTraits> UniqueFunctionsSet; | 
| 476 | 500 | 
| 477 | 501 | 
| 478 }  // namespace dart | 502 }  // namespace dart | 
| 479 | 503 | 
| 480 #endif  // VM_PRECOMPILER_H_ | 504 #endif  // VM_PRECOMPILER_H_ | 
| OLD | NEW | 
|---|