diff options
| author | 2014-08-15 23:27:29 +0000 | |
|---|---|---|
| committer | 2014-08-15 18:44:51 +0000 | |
| commit | aa1ed01d119ee6d93e6254789c79246e91fcec32 (patch) | |
| tree | 90a1afdaa989959e788a2f596fd4278629cdc579 /compiler/driver/compiler_driver.h | |
| parent | c28d8a6f0fbfbec8993854b1a9be08af7d506e7b (diff) | |
| parent | e3ea83811d47152c00abea24a9b420651a33b496 (diff) | |
Merge "ART source line debug info in OAT files"
Diffstat (limited to 'compiler/driver/compiler_driver.h')
| -rw-r--r-- | compiler/driver/compiler_driver.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/compiler/driver/compiler_driver.h b/compiler/driver/compiler_driver.h index 233c4f887b..d8f318ba97 100644 --- a/compiler/driver/compiler_driver.h +++ b/compiler/driver/compiler_driver.h @@ -601,6 +601,7 @@ class CompilerDriver { LOCKS_EXCLUDED(compiled_classes_lock_); std::vector<uint8_t>* DeduplicateCode(const std::vector<uint8_t>& code); + SrcMap* DeduplicateSrcMappingTable(const SrcMap& src_map); std::vector<uint8_t>* DeduplicateMappingTable(const std::vector<uint8_t>& code); std::vector<uint8_t>* DeduplicateVMapTable(const std::vector<uint8_t>& code); std::vector<uint8_t>* DeduplicateGCMap(const std::vector<uint8_t>& code); @@ -770,14 +771,15 @@ class CompilerDriver { bool support_boot_image_fixup_; // DeDuplication data structures, these own the corresponding byte arrays. + template <typename ByteArray> class DedupeHashFunc { public: - size_t operator()(const std::vector<uint8_t>& array) const { + size_t operator()(const ByteArray& array) const { // For small arrays compute a hash using every byte. static const size_t kSmallArrayThreshold = 16; size_t hash = 0x811c9dc5; if (array.size() <= kSmallArrayThreshold) { - for (uint8_t b : array) { + for (auto b : array) { hash = (hash * 16777619) ^ b; } } else { @@ -803,11 +805,13 @@ class CompilerDriver { return hash; } }; - DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc, 4> dedupe_code_; - DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc, 4> dedupe_mapping_table_; - DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc, 4> dedupe_vmap_table_; - DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc, 4> dedupe_gc_map_; - DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc, 4> dedupe_cfi_info_; + + DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc<std::vector<uint8_t>>, 4> dedupe_code_; + DedupeSet<SrcMap, size_t, DedupeHashFunc<SrcMap>, 4> dedupe_src_mapping_table_; + DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc<std::vector<uint8_t>>, 4> dedupe_mapping_table_; + DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc<std::vector<uint8_t>>, 4> dedupe_vmap_table_; + DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc<std::vector<uint8_t>>, 4> dedupe_gc_map_; + DedupeSet<std::vector<uint8_t>, size_t, DedupeHashFunc<std::vector<uint8_t>>, 4> dedupe_cfi_info_; DISALLOW_COPY_AND_ASSIGN(CompilerDriver); }; |