Maps#

pw_containers: Generic collections of objects for embedded devices

A map is an associative collection of keys that map to values. Pigweed provides an implementation of a constant “flat” map that can find values by key in constant time. It also provides implementations of dynamic maps that can insert, find, and remove key-value pairs in logarithmic time.

pw::containers::FlatMap#

FlatMap provides a simple, fixed-size associative array with O(log n) lookup by key.

pw::containers::FlatMap contains the same methods and features for looking up data as std::map. However, modification of the underlying data is limited to the mapped values, via .at() (key must exist) and mapped_iterator objects returned by .mapped_begin() and .mapped_end(). mapped_iterator objects are bidirectional iterators that can be dereferenced to access and mutate the mapped value objects.

The underlying array in pw::containers::FlatMap does not need to be sorted. During construction, pw::containers::FlatMap will perform a constexpr insertion sort.

Examples#

A FlatMap can be created in one of several ways. Each of the following examples defines a FlatMap with two items.

 1using pw::containers::FlatMap;
 2using pw::containers::Pair;
 3
 4// Initialized by an initializer list.
 5FlatMap<int, char, 2> my_flat_map1({{
 6    {1, 'a'},
 7    {-3, 'b'},
 8}});
 9
10// Initialized by a std::array of Pair<K, V> objects.
11std::array<Pair<int, char>, 2> my_array{{
12    {1, 'a'},
13    {-3, 'b'},
14}};
15FlatMap my_flat_map2(my_array);
16
17// Initialized by Pair<K, V> objects.
18FlatMap my_flat_map3 = {
19    Pair<int, char>{1, 'a'},
20    Pair<int, char>{-3, 'b'},
21};

pw::IntrusiveMap#

pw::IntrusiveMap provides an embedded-friendly, tree-based, intrusive map implementation. The intrusive aspect of the map is very similar to that of pw::IntrusiveList.

This class is similar to std::map<K, V>. Items to be added must derive from pw::IntrusiveMap<K, V>::Item or an equivalent type.

See also Using items with multiple containers.

Example#

 1struct Book : public pw::IntrusiveMap<uint32_t, Book>::Pair {
 2 private:
 3  using Pair = pw::IntrusiveMap<uint32_t, Book>::Pair;
 4
 5 public:
 6  Book(const char* name, uint32_t oclc) : Pair(oclc), name_(name) {}
 7  const char* name() const { return name_; }
 8
 9 private:
10  const char* name_;
11};
12
13std::array<Book, 8> books = {{
14    {"A Tale of Two Cities", 20848014u},
15    {"The Little Prince", 182537909u},
16    {"The Alchemist", 26857452u},
17    {"Harry Potter and the Philosopher's Stone", 44795766u},
18    {"And Then There Were None", 47032439u},
19    {"Dream of the Red Chamber", 20692970u},
20    {"The Hobbit", 1827184u},
21    {"Alice's Adventures in Wonderland", 5635965u},
22}};
23
24pw::IntrusiveMap<uint32_t, Book> library(books.begin(), books.end());
25
26void VisitLibrary(pw::IntrusiveMap<uint32_t, Book>& book_bag) {
27  // Return any books we previously checked out.
28  library.merge(book_bag);
29
30  // Pick out some new books to read to the kids, but only if they're available.
31  std::array<uint32_t, 3> oclcs = {
32      1827184u,   // The Hobbit
33      11914189u,  // Curious George
34      44795766u,  // Harry Potter
35  };
36  for (uint32_t oclc : oclcs) {
37    auto iter = library.find(oclc);
38    if (iter != library.end()) {
39      Book& book = *iter;
40      library.erase(iter);
41      book_bag.insert(book);
42    }
43  }
44}

If you need to add this item to containers of more than one type, see Using items with multiple containers,

pw::IntrusiveMultiMap#

pw::IntrusiveMultiMap provides an embedded-friendly, tree-based, intrusive multimap implementation. This is very similar to pw::IntrusiveMap, except that the tree may contain multiple items with equivalent keys.

This class is similar to std::multimap<K, V>. Items to be added must derive from pw::IntrusiveMultiMap<K, V>::Item or an equivalent type.

See also Using items with multiple containers.

Example#

 1struct Book : public pw::IntrusiveMultiMap<uint32_t, Book>::Pair {
 2 private:
 3  using Pair = pw::IntrusiveMultiMap<uint32_t, Book>::Pair;
 4
 5 public:
 6  Book(const char* name, uint32_t oclc) : Pair(oclc), name_(name) {}
 7  const char* name() const { return name_; }
 8
 9 private:
10  const char* name_;
11};
12
13std::array<Book, 12> books = {{
14    {"The Little Prince", 182537909u},
15    {"Harry Potter and the Philosopher's Stone", 44795766u},
16    {"Harry Potter and the Philosopher's Stone", 44795766u},
17    {"Harry Potter and the Philosopher's Stone", 44795766u},
18    {"Harry Potter and the Philosopher's Stone", 44795766u},
19    {"Harry Potter and the Philosopher's Stone", 44795766u},
20    {"The Hobbit", 1827184u},
21    {"The Hobbit", 1827184u},
22    {"The Hobbit", 1827184u},
23    {"The Hobbit", 1827184u},
24    {"Alice's Adventures in Wonderland", 5635965u},
25    {"Alice's Adventures in Wonderland", 5635965u},
26}};
27pw::IntrusiveMultiMap<uint32_t, Book> library(books.begin(), books.end());
28
29void VisitLibrary(pw::IntrusiveMultiMap<uint32_t, Book>& book_bag) {
30  // Pick out some new books to read to the kids, but only if they're available.
31  std::array<uint32_t, 3> oclcs = {
32      1827184u,    // The Hobbit
33      5635965u,    // Alice's Adventures in Wonderland
34      182537909u,  // The Little Prince
35  };
36  for (uint32_t oclc : oclcs) {
37    auto iter = library.find(oclc);
38    if (iter != library.end()) {
39      Book& book = *iter;
40      library.erase(iter);
41      book_bag.insert(book);
42    }
43  }
44}

If you need to add this item to containers of more than one type, see Using items with multiple containers.

pw::DynamicHashMap#

pw::DynamicHashMap is an unordered associative container, similar to std::unordered_map, but optimized for memory-constrained environments.

Key features of pw::DynamicHashMap:

  • Allocator-driven: Uses a pw::Allocator for all memory operations.

  • Hybrid Storage:
    • Nodes: Stored in a dense pw::DynamicPtrVector to enable efficient, linear iteration.

    • Buckets: Stored in a pw::DynamicDeque for O(1) average lookup.

  • Fallible API: Adds try_* versions of operations (e.g., try_insert, try_emplace, try_rehash) that return std::nullopt or false on allocation failure instead of crashing.

  • Unstable Iteration: Uses “swap-and-pop” erasure for efficiency. Erasing an element moves the last element of the map into the erased position, changing the iteration order.

  • Flexible Load Factor: Supports a load factor up to 500%. While 75% is standard for speed, higher limits allow shrinking the bucket array’s footprint when RAM is more scarce than CPU cycles.

Example#

 1struct Book {
 2  Book(const char* n, uint32_t o) : name(n), oclc(o) {}
 3
 4  const char* name;
 5  uint32_t oclc;
 6};
 7
 8void PopulateLibrary(pw::DynamicHashMap<uint32_t, Book>& library) {
 9  library.emplace(20848014u, "A Tale of Two Cities", 20848014u);
10  library.emplace(182537909u, "The Little Prince", 182537909u);
11  library.emplace(26857452u, "The Alchemist", 26857452u);
12  library.emplace(
13      44795766u, "Harry Potter and the Philosopher's Stone", 44795766u);
14  library.emplace(47032439u, "And Then There Were None", 47032439u);
15  library.emplace(20692970u, "Dream of the Red Chamber", 20692970u);
16  library.emplace(1827184u, "The Hobbit", 1827184u);
17  library.emplace(5635965u, "Alice's Adventures in Wonderland", 5635965u);
18}
19
20void VisitLibrary(pw::DynamicHashMap<uint32_t, Book>& library,
21                  pw::DynamicHashMap<uint32_t, Book>& book_bag) {
22  // Return any books we previously checked out.
23  // The merge function moves elements from book_bag into library if the
24  // key doesn't already exist in library.
25  library.merge(book_bag);
26
27  // Pick out some new books to read to the kids, but only if they're available.
28  std::array<uint32_t, 3> oclcs = {
29      1827184u,   // The Hobbit
30      11914189u,  // Curious George (Not in library)
31      44795766u,  // Harry Potter
32  };
33
34  for (uint32_t oclc : oclcs) {
35    auto iter = library.find(oclc);
36    if (iter != library.end()) {
37      // Move the book from the library into our bag.
38      // *iter refers to a pair<const Key, Value>.
39      if (book_bag.try_insert(*iter)) {
40        library.erase(iter);
41      }
42    }
43  }
44}

pw::DynamicMap#

pw::DynamicMap provides an embedded-friendly, tree-based, dynamic map implementation. It uses a pw::Allocator for all memory operations.

This class is similar to std::map<K, V>.

Key features of pw::DynamicMap:

Example#

 1struct Book {
 2  Book(const char* n, uint32_t o) : name(n), oclc(o) {}
 3
 4  const char* name;
 5  uint32_t oclc;
 6};
 7
 8void PopulateLibrary(pw::DynamicMap<uint32_t, Book>& library) {
 9  library.emplace(20848014u, "A Tale of Two Cities", 20848014u);
10  library.emplace(182537909u, "The Little Prince", 182537909u);
11  library.emplace(26857452u, "The Alchemist", 26857452u);
12  library.emplace(
13      44795766u, "Harry Potter and the Philosopher's Stone", 44795766u);
14  library.emplace(47032439u, "And Then There Were None", 47032439u);
15  library.emplace(20692970u, "Dream of the Red Chamber", 20692970u);
16  library.emplace(1827184u, "The Hobbit", 1827184u);
17  library.emplace(5635965u, "Alice's Adventures in Wonderland", 5635965u);
18}
19
20void VisitLibrary(pw::DynamicMap<uint32_t, Book>& library,
21                  pw::DynamicMap<uint32_t, Book>& book_bag) {
22  // Return any books we previously checked out.
23  library.merge(book_bag);
24
25  // Pick out some new books to read to the kids, but only if they're available.
26  std::array<uint32_t, 3> oclcs = {
27      1827184u,   // The Hobbit
28      11914189u,  // Curious George
29      44795766u,  // Harry Potter
30  };
31
32  for (uint32_t oclc : oclcs) {
33    auto iter = library.find(oclc);
34    if (iter != library.end()) {
35      if (book_bag.try_insert(*iter)) {
36        library.erase(iter);
37      }
38    }
39  }
40}

API reference#

Moved: pw_containers_maps

Size reports#

The tables below illustrate the following scenarios:

  • Scenarios related to FlatMap:

    • The memory and code size cost incurred by adding another FlatMap

    • The memory and code size cost incurred by adding another FlatMap with different key and value types. As FlatMap is templated on both key and value types, this results in additional code being generated.

  • Scenarios related to IntrusiveMap:

    • The memory and code size cost incurred by a adding a single IntrusiveMap.

    • The memory and code size cost incurred by adding another IntrusiveMap with the same key type, but a different value type. As IntrusiveMap is templated on both key and value types, this results in additional code being generated.

    • The memory and code size cost incurred by adding another IntrusiveMap with the same value type, but a different key type. As IntrusiveMap is templated on both key and value types, this results in additional code being generated.

  • Scenarios related to IntrusiveMultiMap:

    • The memory and code size cost incurred by a adding a single IntrusiveMultiMap.

    • The memory and code size cost incurred by adding another IntrusiveMultiMap with the same key type, but a different value type. As IntrusiveMultiMap is templated on both key and value types, this results in additional code being generated.

    • The memory and code size cost incurred by adding another IntrusiveMultiMap with the same value type, but a different key type. As IntrusiveMultiMap is templated on both key and value types, this results in additional code being generated.

  • The memory and code size cost incurred by a adding both an IntrusiveMap and an IntrusiveMultiMap of the same type. These types reuse code, so the combined sum is less than the sum of its parts.

  • Scenarios related to DynamicHashMap:

    • The memory and code size cost incurred by a adding a single DynamicHashMap.

    • The memory and code size cost incurred by adding another DynamicHashMap with the same key type, but a different value type. As DynamicHashMap is templated on both key and value types, this results in additional code being generated.

    • The memory and code size cost incurred by adding another DynamicHashMap with a different key type and a different value type. As DynamicHashMap is templated on both key and value types, this results in additional code being generated.

  • Scenarios related to DynamicMap:

    • The memory and code size cost incurred by a adding a single DynamicMap.

    • The memory and code size cost incurred by adding another DynamicMap with the same key type, but a different value type. As DynamicMap is templated on both key and value types, this results in additional code being generated.

    • The memory and code size cost incurred by adding another DynamicMap with a different key type and a different value type. As DynamicMap is templated on both key and value types, this results in additional code being generated.

Label

Segment

Delta

std::unordered_map

FLASH

+148

[section .rodata]

+4

pw::containers::size_report::Measure()

-2

_ZN2pw9allocator6Layout2OfIA_yTnNSt3__29enable_ifIX20is_unbounded_array_vIT_EEiE4typeELi0EEES1_j

-4

__bi_84

-4

operator delete()

-2

__llvm_libc_23_0_0_git::internal::exit()

+12

vClearInterruptMaskFromISR

NEW

+536

__aeabi_fdiv

NEW

+358

_ZZNSt3__212__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjNS_4pairIKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRjSI_EEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_ENKUlRS5_SI_SI_E_clEST_SI_SI_

NEW

+354

_ZZNSt3__212__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjNS_4pairIKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_IjjEEEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_ENKUlRS5_SJ_E_clESU_SJ_

NEW

+320

__aeabi_fadd

NEW

+316

std::__2::__next_prime()

NEW

+248

std::__2::__hash_table<>::remove()

NEW

+240

std::__2::__hash_table<>::find<>()

NEW

+236

__aeabi_fmul

NEW

+192

std::__2::(anonymous namespace)::indices

NEW

+192

std::__2::(anonymous namespace)::small_primes

NEW

+174

std::__2::__hash_table<>::__do_rehash<>()

NEW

+154

_ZN2pw10containers11size_report14MeasureHashMapINSt3__213unordered_mapIjjNS3_4hashIjEENS3_8equal_toIjEENS3_9allocatorINS3_4pairIKjjEEEEEETpTnRiJENS3_11__wrap_iterIPNSA_IjjEEEEEEiRT_T1_SM_j

NEW

+118

std::__2::__hash_table<>::__rehash<>()

NEW

+96

__compiler_rt_fnorm2

NEW

+94

ceilf

NEW

+88

__aeabi_ui2f

NEW

+88

__compiler_rt_funder

NEW

+74

std::__2::__hash_table<>::__construct_node_hash<>()

NEW

+64

__aeabi_f2uiz

NEW

+60

__compiler_rt_fnan2

NEW

+60

__eqsf2

NEW

+60

__gtsf2

NEW

+56

_ZN2pw10containers11size_report22MeasureStdUnorderedMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_j

NEW

+48

std::__2::(anonymous namespace)::increments

NEW

+42

pw::containers::size_report::MeasureContainer<>()

NEW

+40

std::__2::__hash_table<>::clear()

NEW

+34

_ZNSt3__212__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjNS_4pairIKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__reserve_uniqueB9nqn230000Ej

NEW

+28

std::__2::__hash_table<>::__erase_unique<>()

NEW

+28

std::__2::__hash_table<>::erase()

NEW

+28

std::__2::unordered_map<>::insert<>()

NEW

+26

std::__2::__hash_table<>::__equal_range_unique<>()

NEW

+24

__aeabi_fcmpun

NEW

+22

_ZNSt3__212__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjNS_4pairIKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE22__deallocate_node_listB9nqn230000EPNS_16__hash_node_baseIPNS_11__hash_nodeIS2_PvEEEE

NEW

+20

_ZNSt3__210unique_ptrIA_PNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_value_typeIjjEEPvEEEENS_25__bucket_list_deallocatorINS_9allocatorIS9_EEEEE5resetB9nqn230000IPS9_TnNS_9enable_ifIXsr28_CheckArrayPointerConversionIT_EE5valueEiE4typeELi0EEEvSJ_

NEW

+20

_ZNSt3__210unique_ptrINS_11__hash_nodeINS_17__hash_value_typeIjjEEPvEENS_22__hash_node_destructorINS_9allocatorIS5_EEEEE5resetB9nqn230000EPS5_

NEW

+20

_ZNSt3__213unordered_mapIjjNS_4hashIjEENS_8equal_toIjEENS_9allocatorINS_4pairIKjjEEEEE6insertB9nqn230000IRNS6_IjjEETnNS_9enable_ifIXsr16is_constructibleIS8_T_EE5valueEiE4typeELi0EEENS6_INS_19__hash_map_iteratorINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeIjjEEPvEEEEEEbEEOSF_

NEW

+20

_ZNSt3__213unordered_mapIjjNS_4hashIjEENS_8equal_toIjEENS_9allocatorINS_4pairIKjjEEEEE7emplaceB9nqn230000IJRjSC_EEENS6_INS_19__hash_map_iteratorINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeIjjEEPvEEEEEEbEEDpOT_

NEW

+20

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_12__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjNS_4pairIKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS7_SB_S9_EENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRjSJ_EEENS5_INS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEEbEEDpOT_EUlRS6_SJ_SJ_E_ZNSI_IJSJ_SJ_EEESQ_ST_EUlSJ_SJ_E_JSJ_SJ_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SX_DpOSY_

NEW

+20

_ZNSt3__225__try_key_extraction_implB9nqn230000IjNS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeIjjEEPvEEEEbEEZNS_12__hash_tableIS5_NS_22__unordered_map_hasherIjNS1_IKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjSE_SI_SG_EENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRjSQ_EEESA_DpOT_EUlRSD_SQ_SQ_E_ZNSP_IJSQ_SQ_EEESA_ST_EUlSQ_SQ_E_SQ_SQ_TnNS_9enable_ifIXsr7is_sameIT_u14__remove_constIu20__remove_reference_tIT3_EEEE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSZ_OT4_

NEW

+20

__aeabi_fcmpeq

NEW

+20

__aeabi_fcmpge

NEW

+20

__aeabi_fcmpgt

NEW

+20

__aeabi_fcmple

NEW

+20

__aeabi_fcmplt

NEW

+18

_ZNSt3__213unordered_mapIjjNS_4hashIjEENS_8equal_toIjEENS_9allocatorINS_4pairIKjjEEEEE11equal_rangeB9nqn230000ERS7_

NEW

+18

_ZNSt3__29allocatorIPNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_value_typeIjjEEPvEEEEE8allocateB9nqn230000Ej

NEW

+16

_ZNSt3__210unique_ptrINS_11__hash_nodeINS_17__hash_value_typeIjjEEPvEENS_22__hash_node_destructorINS_9allocatorIS5_EEEEED2B9nqn230000Ev

NEW

+16

_ZNSt3__212__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjNS_4pairIKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRjSI_EEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_

NEW

+16

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_12__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjNS_4pairIKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS7_SB_S9_EENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRNS5_IjjEEEEENS5_INS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEEbEEDpOT_EUlRS6_SK_E_ZNSI_IJSK_EEESR_SU_EUlSK_E_JSK_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SY_DpOSZ_

NEW

+16

_ZNSt3__222__throw_overflow_errorB9nqn230000EPKc

NEW

+16

_ZNSt3__225__bucket_list_deallocatorINS_9allocatorIPNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_value_typeIjjEEPvEEEEEEEclB9nqn230000EPSA_

NEW

+16

_ZNSt3__225__try_key_extraction_implB9nqn230000IjNS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeIjjEEPvEEEEbEEZNS_12__hash_tableIS5_NS_22__unordered_map_hasherIjNS1_IKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjSE_SI_SG_EENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRNS1_IjjEEEEESA_DpOT_EUlRSD_SR_E_ZNSP_IJSR_EEESA_SU_EUlSR_E_SR_TnNS_9enable_ifIXaa11__is_pair_vIu14__remove_constIu20__remove_reference_tIT3_EEEsr7is_sameIu14__remove_constINS11_10first_typeEET_EE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSZ_

NEW

+12

_ZNSt3__212__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjNS_4pairIKjjEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_IjjEEEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_

NEW

+12

_ZSt28__throw_bad_array_new_lengthB9nqn230000v

NEW

+12

std::__2::__hash_table<>::__count_unique<>()

NEW

+8

operator new()

NEW

+6

abort

NEW

+4

std::__2::__libcpp_verbose_abort()

+5,056

RAM

+1

__Thumbv6MABSLongThunk_best_effort_wfe_or_timeout

NEW

+79

pw::containers::size_report::GetPairs<>()::pairs

NEW

+20

_ZZN2pw10containers11size_report22MeasureStdUnorderedMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_jE12std_hash_map

NEW

+4

_ZGVZN2pw10containers11size_report22MeasureStdUnorderedMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_jE12std_hash_map

+104

Additional std::unordered_map with different value type

FLASH

+248

std::__2::__hash_table<>::remove()

+240

std::__2::__hash_table<>::find<>()

+174

std::__2::__hash_table<>::__do_rehash<>()

+118

std::__2::__hash_table<>::__rehash<>()

+2

ceilf

+84

std::__2::__hash_table<>::__construct_node_hash<>()

+48

pw::containers::size_report::MeasureContainer<>()

+40

std::__2::__hash_table<>::clear()

+20

pw::containers::size_report::Measure()

+28

std::__2::__hash_table<>::__erase_unique<>()

+28

std::__2::__hash_table<>::erase()

+30

std::__2::unordered_map<>::insert<>()

+26

std::__2::__hash_table<>::__equal_range_unique<>()

-4

vClearInterruptMaskFromISR

+12

std::__2::__hash_table<>::__count_unique<>()

NEW

+358

_ZZNSt3__212__hash_tableINS_17__hash_value_typeIjyEENS_22__unordered_map_hasherIjNS_4pairIKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRjRyEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_ENKUlRS5_SI_SJ_E_clESU_SI_SJ_

NEW

+354

_ZZNSt3__212__hash_tableINS_17__hash_value_typeIjyEENS_22__unordered_map_hasherIjNS_4pairIKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_IjyEEEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_ENKUlRS5_SJ_E_clESU_SJ_

NEW

+156

_ZN2pw10containers11size_report14MeasureHashMapINSt3__213unordered_mapIjyNS3_4hashIjEENS3_8equal_toIjEENS3_9allocatorINS3_4pairIKjyEEEEEETpTnRiJENS3_11__wrap_iterIPNSA_IjyEEEEEEiRT_T1_SM_j

NEW

+56

_ZN2pw10containers11size_report22MeasureStdUnorderedMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_j

NEW

+34

_ZNSt3__212__hash_tableINS_17__hash_value_typeIjyEENS_22__unordered_map_hasherIjNS_4pairIKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__reserve_uniqueB9nqn230000Ej

NEW

+22

_ZNSt3__212__hash_tableINS_17__hash_value_typeIjyEENS_22__unordered_map_hasherIjNS_4pairIKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE22__deallocate_node_listB9nqn230000EPNS_16__hash_node_baseIPNS_11__hash_nodeIS2_PvEEEE

NEW

+20

_ZNSt3__210unique_ptrIA_PNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_value_typeIjyEEPvEEEENS_25__bucket_list_deallocatorINS_9allocatorIS9_EEEEE5resetB9nqn230000IPS9_TnNS_9enable_ifIXsr28_CheckArrayPointerConversionIT_EE5valueEiE4typeELi0EEEvSJ_

NEW

+20

_ZNSt3__210unique_ptrINS_11__hash_nodeINS_17__hash_value_typeIjyEEPvEENS_22__hash_node_destructorINS_9allocatorIS5_EEEEE5resetB9nqn230000EPS5_

NEW

+20

_ZNSt3__213unordered_mapIjyNS_4hashIjEENS_8equal_toIjEENS_9allocatorINS_4pairIKjyEEEEE6insertB9nqn230000IRNS6_IjyEETnNS_9enable_ifIXsr16is_constructibleIS8_T_EE5valueEiE4typeELi0EEENS6_INS_19__hash_map_iteratorINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeIjyEEPvEEEEEEbEEOSF_

NEW

+20

_ZNSt3__213unordered_mapIjyNS_4hashIjEENS_8equal_toIjEENS_9allocatorINS_4pairIKjyEEEEE7emplaceB9nqn230000IJRjRyEEENS6_INS_19__hash_map_iteratorINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeIjyEEPvEEEEEEbEEDpOT_

NEW

+20

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_12__hash_tableINS_17__hash_value_typeIjyEENS_22__unordered_map_hasherIjNS_4pairIKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS7_SB_S9_EENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRjRyEEENS5_INS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEEbEEDpOT_EUlRS6_SJ_SK_E_ZNSI_IJSJ_SK_EEESR_SU_EUlSJ_SK_E_JSJ_SK_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SY_DpOSZ_

NEW

+20

_ZNSt3__225__try_key_extraction_implB9nqn230000IjNS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeIjyEEPvEEEEbEEZNS_12__hash_tableIS5_NS_22__unordered_map_hasherIjNS1_IKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjSE_SI_SG_EENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRjRyEEESA_DpOT_EUlRSD_SQ_SR_E_ZNSP_IJSQ_SR_EEESA_SU_EUlSQ_SR_E_SQ_SR_TnNS_9enable_ifIXsr7is_sameIT_u14__remove_constIu20__remove_reference_tIT3_EEEE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OS10_OT4_

NEW

+18

_ZNSt3__213unordered_mapIjyNS_4hashIjEENS_8equal_toIjEENS_9allocatorINS_4pairIKjyEEEEE11equal_rangeB9nqn230000ERS7_

NEW

+18

_ZNSt3__29allocatorIPNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_value_typeIjyEEPvEEEEE8allocateB9nqn230000Ej

NEW

+16

_ZNSt3__212__hash_tableINS_17__hash_value_typeIjyEENS_22__unordered_map_hasherIjNS_4pairIKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRjRyEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_

NEW

+16

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_12__hash_tableINS_17__hash_value_typeIjyEENS_22__unordered_map_hasherIjNS_4pairIKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS7_SB_S9_EENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRNS5_IjyEEEEENS5_INS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEEbEEDpOT_EUlRS6_SK_E_ZNSI_IJSK_EEESR_SU_EUlSK_E_JSK_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SY_DpOSZ_

NEW

+16

_ZNSt3__225__bucket_list_deallocatorINS_9allocatorIPNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_value_typeIjyEEPvEEEEEEEclB9nqn230000EPSA_

NEW

+16

_ZNSt3__225__try_key_extraction_implB9nqn230000IjNS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeIjyEEPvEEEEbEEZNS_12__hash_tableIS5_NS_22__unordered_map_hasherIjNS1_IKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjSE_SI_SG_EENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRNS1_IjyEEEEESA_DpOT_EUlRSD_SR_E_ZNSP_IJSR_EEESA_SU_EUlSR_E_SR_TnNS_9enable_ifIXaa11__is_pair_vIu14__remove_constIu20__remove_reference_tIT3_EEEsr7is_sameIu14__remove_constINS11_10first_typeEET_EE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSZ_

NEW

+14

_ZNSt3__210unique_ptrINS_11__hash_nodeINS_17__hash_value_typeIjyEEPvEENS_22__hash_node_destructorINS_9allocatorIS5_EEEEED2B9nqn230000Ev

NEW

+12

_ZNSt3__212__hash_tableINS_17__hash_value_typeIjyEENS_22__unordered_map_hasherIjNS_4pairIKjyEENS_4hashIjEENS_8equal_toIjEEEENS_21__unordered_map_equalIjS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_IjyEEEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_

+2,320

RAM

+164

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

NEW

+20

_ZZN2pw10containers11size_report22MeasureStdUnorderedMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_jE12std_hash_map

NEW

+4

_ZGVZN2pw10containers11size_report22MeasureStdUnorderedMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_jE12std_hash_map

+184

Additional std::unordered_map with different key and value types

FLASH

+248

std::__2::__hash_table<>::remove()

+240

std::__2::__hash_table<>::find<>()

+174

std::__2::__hash_table<>::__do_rehash<>()

+118

std::__2::__hash_table<>::__rehash<>()

+86

std::__2::__hash_table<>::__construct_node_hash<>()

+48

pw::containers::size_report::MeasureContainer<>()

+40

std::__2::__hash_table<>::clear()

+20

pw::containers::size_report::Measure()

+28

std::__2::__hash_table<>::__erase_unique<>()

+28

std::__2::__hash_table<>::erase()

+30

std::__2::unordered_map<>::insert<>()

+26

std::__2::__hash_table<>::__equal_range_unique<>()

-4

vClearInterruptMaskFromISR

+12

std::__2::__hash_table<>::__count_unique<>()

NEW

+358

_ZZNSt3__212__hash_tableINS_17__hash_value_typeItyEENS_22__unordered_map_hasherItNS_4pairIKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRtRyEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_ENKUlRS5_SI_SJ_E_clESU_SI_SJ_

NEW

+354

_ZZNSt3__212__hash_tableINS_17__hash_value_typeItyEENS_22__unordered_map_hasherItNS_4pairIKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_ItyEEEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_ENKUlRS5_SJ_E_clESU_SJ_

NEW

+156

_ZN2pw10containers11size_report14MeasureHashMapINSt3__213unordered_mapItyNS3_4hashItEENS3_8equal_toItEENS3_9allocatorINS3_4pairIKtyEEEEEETpTnRiJENS3_11__wrap_iterIPNSA_ItyEEEEEEiRT_T1_SM_j

NEW

+56

_ZN2pw10containers11size_report22MeasureStdUnorderedMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_j

NEW

+34

_ZNSt3__212__hash_tableINS_17__hash_value_typeItyEENS_22__unordered_map_hasherItNS_4pairIKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItS6_SA_S8_EENS_9allocatorIS6_EEE16__reserve_uniqueB9nqn230000Ej

NEW

+22

_ZNSt3__212__hash_tableINS_17__hash_value_typeItyEENS_22__unordered_map_hasherItNS_4pairIKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItS6_SA_S8_EENS_9allocatorIS6_EEE22__deallocate_node_listB9nqn230000EPNS_16__hash_node_baseIPNS_11__hash_nodeIS2_PvEEEE

NEW

+20

_ZNSt3__210unique_ptrIA_PNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_value_typeItyEEPvEEEENS_25__bucket_list_deallocatorINS_9allocatorIS9_EEEEE5resetB9nqn230000IPS9_TnNS_9enable_ifIXsr28_CheckArrayPointerConversionIT_EE5valueEiE4typeELi0EEEvSJ_

NEW

+20

_ZNSt3__210unique_ptrINS_11__hash_nodeINS_17__hash_value_typeItyEEPvEENS_22__hash_node_destructorINS_9allocatorIS5_EEEEE5resetB9nqn230000EPS5_

NEW

+20

_ZNSt3__213unordered_mapItyNS_4hashItEENS_8equal_toItEENS_9allocatorINS_4pairIKtyEEEEE6insertB9nqn230000IRNS6_ItyEETnNS_9enable_ifIXsr16is_constructibleIS8_T_EE5valueEiE4typeELi0EEENS6_INS_19__hash_map_iteratorINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeItyEEPvEEEEEEbEEOSF_

NEW

+20

_ZNSt3__213unordered_mapItyNS_4hashItEENS_8equal_toItEENS_9allocatorINS_4pairIKtyEEEEE7emplaceB9nqn230000IJRtRyEEENS6_INS_19__hash_map_iteratorINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeItyEEPvEEEEEEbEEDpOT_

NEW

+20

_ZNSt3__220__try_key_extractionB9nqn230000ItZNS_12__hash_tableINS_17__hash_value_typeItyEENS_22__unordered_map_hasherItNS_4pairIKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItS7_SB_S9_EENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRtRyEEENS5_INS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEEbEEDpOT_EUlRS6_SJ_SK_E_ZNSI_IJSJ_SK_EEESR_SU_EUlSJ_SK_E_JSJ_SK_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SY_DpOSZ_

NEW

+20

_ZNSt3__225__try_key_extraction_implB9nqn230000ItNS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeItyEEPvEEEEbEEZNS_12__hash_tableIS5_NS_22__unordered_map_hasherItNS1_IKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItSE_SI_SG_EENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRtRyEEESA_DpOT_EUlRSD_SQ_SR_E_ZNSP_IJSQ_SR_EEESA_SU_EUlSQ_SR_E_SQ_SR_TnNS_9enable_ifIXsr7is_sameIT_u14__remove_constIu20__remove_reference_tIT3_EEEE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OS10_OT4_

NEW

+18

_ZNSt3__213unordered_mapItyNS_4hashItEENS_8equal_toItEENS_9allocatorINS_4pairIKtyEEEEE11equal_rangeB9nqn230000ERS7_

NEW

+18

_ZNSt3__29allocatorIPNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_value_typeItyEEPvEEEEE8allocateB9nqn230000Ej

NEW

+16

_ZNSt3__212__hash_tableINS_17__hash_value_typeItyEENS_22__unordered_map_hasherItNS_4pairIKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRtRyEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_

NEW

+16

_ZNSt3__220__try_key_extractionB9nqn230000ItZNS_12__hash_tableINS_17__hash_value_typeItyEENS_22__unordered_map_hasherItNS_4pairIKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItS7_SB_S9_EENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRNS5_ItyEEEEENS5_INS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEEbEEDpOT_EUlRS6_SK_E_ZNSI_IJSK_EEESR_SU_EUlSK_E_JSK_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SY_DpOSZ_

NEW

+16

_ZNSt3__225__bucket_list_deallocatorINS_9allocatorIPNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_value_typeItyEEPvEEEEEEEclB9nqn230000EPSA_

NEW

+16

_ZNSt3__225__try_key_extraction_implB9nqn230000ItNS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeINS_17__hash_value_typeItyEEPvEEEEbEEZNS_12__hash_tableIS5_NS_22__unordered_map_hasherItNS1_IKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItSE_SI_SG_EENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRNS1_ItyEEEEESA_DpOT_EUlRSD_SR_E_ZNSP_IJSR_EEESA_SU_EUlSR_E_SR_TnNS_9enable_ifIXaa11__is_pair_vIu14__remove_constIu20__remove_reference_tIT3_EEEsr7is_sameIu14__remove_constINS11_10first_typeEET_EE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSZ_

NEW

+14

_ZNSt3__210unique_ptrINS_11__hash_nodeINS_17__hash_value_typeItyEEPvEENS_22__hash_node_destructorINS_9allocatorIS5_EEEEED2B9nqn230000Ev

NEW

+12

_ZNSt3__212__hash_tableINS_17__hash_value_typeItyEENS_22__unordered_map_hasherItNS_4pairIKtyEENS_4hashItEENS_8equal_toItEEEENS_21__unordered_map_equalItS6_SA_S8_EENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_ItyEEEEENS4_INS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEEDpOT_

+2,320

RAM

+164

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

NEW

+20

_ZZN2pw10containers11size_report22MeasureStdUnorderedMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_jE12std_hash_map

NEW

+4

_ZGVZN2pw10containers11size_report22MeasureStdUnorderedMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_jE12std_hash_map

+184

DynamicHashMap

FLASH

+348

[section .rodata]

+4

pw::containers::size_report::Measure()

-2

_ZN2pw9allocator6Layout2OfIA_yTnNSt3__29enable_ifIX20is_unbounded_array_vIT_EEiE4typeELi0EEES1_j

-4

__bi_84

+8

vClearInterruptMaskFromISR

NEW

+432

pw::DynamicHashMap<>::TryEmplaceImpl<>()

NEW

+176

pw::DynamicHashMap<>::try_rehash()

NEW

+168

pw::DynamicPtrVector<>::try_emplace<>()

NEW

+162

_ZN2pw10containers11size_report14MeasureHashMapINS_14DynamicHashMapIjjNS_4HashENS_7EqualToEtEETpTnRiJENSt3__211__wrap_iterIPNS8_4pairIjjEEEEEEiRT_T1_SG_j

NEW

+126

pw::DynamicDeque<>::ReallocateBuffer()

NEW

+116

pw::containers::internal::GenericDeque<>::operator[]()

NEW

+112

pw::DynamicHashMap<>::emplace<>()

NEW

+100

_ZNSt3__220__uninitialized_moveB9nqn230000IPN2pw14DynamicHashMapIjjNS1_4HashENS1_7EqualToEtE4NodeENS1_10containers8internal13DequeIteratorINS1_12DynamicDequeIS7_tEEEESD_SD_NS_14__always_falseEZNS_18uninitialized_moveB9nqn230000ISD_SD_EET0_T_SH_SG_EUlOSH_E_EENS_4pairISG_T2_EESG_T1_SL_T3_T4_

NEW

+98

_ZNKSt3__220__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqn230000IN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeIPNS4_14DynamicHashMapIjjNS4_4HashENS4_7EqualToEtE4NodeEtEEEESG_SG_EENS_4pairIT_T1_EESI_T0_SJ_

NEW

+82

pw::containers::internal::GenericDeque<>::contiguous_data()

NEW

+80

_ZN2pw10containers11size_report21MeasureDynamicHashMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_j

NEW

+78

pw::containers::internal::GenericDeque<>::ShiftRight()

NEW

+74

pw::DynamicDeque<>::try_reserve()

NEW

+74

pw::containers::internal::GenericDeque<>::try_emplace_shift_right<>()

NEW

+68

pw::DynamicDeque<>::IncreaseCapacity()

NEW

+68

pw::DynamicHashMap<>::GetBucketIndex()

NEW

+60

pw::DynamicHashMap<>::FindAndUnlinkFromBucket<>()

NEW

+60

pw::DynamicPtrVector<>::try_emplace_back<>()

NEW

+60

pw::containers::internal::GenericDeque<>::back()

NEW

+56

pw::DynamicVector<>::try_emplace<>()

NEW

+54

_ZNSt3__224__copy_move_unwrap_itersB9nqn230000INS_20__move_backward_implINS_17_ClassicAlgPolicyEEEN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeIPNS4_14DynamicHashMapIjjNS4_4HashENS4_7EqualToEtE4NodeEtEEEESG_SG_TnNS_9enable_ifIXsr12__can_rewrapIT0_T2_EE5valueEiE4typeELi0EEENS_4pairISI_SJ_EESI_T1_SJ_

NEW

+54

pw::DynamicHashMap<>::try_reserve()

NEW

+52

pw::DynamicHashMap<>::FindImpl()

NEW

+52

pw::DynamicHashMap<>::find()

NEW

+52

pw::containers::internal::GenericDequeBase<>::AbsoluteIndexChecked()

NEW

+50

pw::DynamicHashMap<>::EraseFromVector()

NEW

+48

pw::containers::internal::GenericDeque<>::try_assign()

NEW

+44

pw::DynamicDeque<>::operator=()

NEW

+44

pw::DynamicHashMap<>::equal_range()

NEW

+42

pw::DynamicPtrVector<>::clear()

NEW

+40

pw::DynamicHashMap<>::rehash()

NEW

+40

pw::DynamicHashMap<>::reserve()

NEW

+40

pw::containers::internal::GenericDeque<>::pop_back()

NEW

+36

_ZNSt3__213move_backwardB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeIPNS1_14DynamicHashMapIjjNS1_4HashENS1_7EqualToEtE4NodeEtEEEESD_EET0_T_SF_SE_

NEW

+36

_ZNSt3__218uninitialized_moveB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeIPNS1_14DynamicHashMapIjjNS1_4HashENS1_7EqualToEtE4NodeEtEEEESD_EET0_T_SF_SE_

NEW

+34

_ZN2pw9Allocator3NewINS_14DynamicHashMapIjjNS_4HashENS_7EqualToEtE4NodeETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJKjjEEEPSA_DpOT2_

NEW

+34

_ZN2pw9Allocator3NewINS_14DynamicHashMapIjjNS_4HashENS_7EqualToEtE4NodeETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJRjSD_EEEPSA_DpOT2_

NEW

+34

pw::DynamicPtrVector<>::pop_back()

NEW

+34

pw::containers::size_report::MeasureContainer<>()

NEW

+30

pw::DynamicHashMap<>::insert<>()

NEW

+28

pw::DynamicHashMap<>::erase<>()

NEW

+28

pw::containers::internal::GenericDequeBase<>::MoveAssignIndices()

NEW

+24

pw::DynamicHashMap<>::UnlinkFromBucket<>()

NEW

+24

pw::DynamicHashMap<>::count()

NEW

+24

pw::containers::internal::GenericDequeBase<>::PushBack()

NEW

+22

pw::containers::internal::GenericDeque<>::CheckCapacityAdd()

NEW

+22

pw::containers::internal::GenericDequeBase<>::PopBack()

NEW

+20

_ZN2pw9allocator6Layout2OfIA_PNS_14DynamicHashMapIjjNS_4HashENS_7EqualToEtE4NodeETnNSt3__29enable_ifIX20is_unbounded_array_vIT_EEiE4typeELi0EEES1_j

NEW

+20

pw::DynamicHashMap<>::clear()

NEW

+18

_ZNSt3__29__advanceB9nqn230000IN2pw14DynamicHashMapIjjNS1_4HashENS1_7EqualToEtE8IteratorILb0EEEEEvRT_NS_15iterator_traitsIS8_E15difference_typeENS_18input_iterator_tagE

NEW

+16

pw::containers::internal::GenericDeque<>::at()

NEW

+14

_ZNSt3__222__uninitialized_fill_nB9nqn230000IPN2pw14DynamicHashMapIjjNS1_4HashENS1_7EqualToEtE4NodeEPS7_tS7_EET0_S9_T1_RKT2_

NEW

+14

_ZNSt3__24nextB9nqn230000IN2pw14DynamicHashMapIjjNS1_4HashENS1_7EqualToEtE8IteratorILb0EEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEES9_S9_NS_15iterator_traitsIS9_E15difference_typeE

NEW

+12

pw::containers::internal::DequeIterator<>::operator*()

NEW

+10

pw::DynamicHashMap<>::insert()

NEW

+10

pw::DynamicPtrVector<>::back()

NEW

+8

_ZNSt3__27advanceB9nqn230000IN2pw14DynamicHashMapIjjNS1_4HashENS1_7EqualToEtE8IteratorILb0EEEiiTnNS_9enable_ifIXsr11is_integralIT1_EE5valueEiE4typeELi0EEEvRT_T0_

+3,768

RAM

+1

__Thumbv6MABSLongThunk_best_effort_wfe_or_timeout

NEW

+79

pw::containers::size_report::GetPairs<>()::pairs

NEW

+40

_ZZN2pw10containers11size_report21MeasureDynamicHashMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_jE16dynamic_hash_map

NEW

+4

_ZGVZN2pw10containers11size_report21MeasureDynamicHashMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_jE16dynamic_hash_map

+124

Additional DynamicHashMap with different value type

FLASH

+432

pw::DynamicHashMap<>::TryEmplaceImpl<>()

+176

pw::DynamicHashMap<>::try_rehash()

+168

pw::DynamicPtrVector<>::try_emplace<>()

+126

pw::DynamicDeque<>::ReallocateBuffer()

+116

pw::containers::internal::GenericDeque<>::operator[]()

+112

pw::DynamicHashMap<>::emplace<>()

+82

pw::containers::internal::GenericDeque<>::contiguous_data()

+78

pw::containers::internal::GenericDeque<>::ShiftRight()

+74

pw::DynamicDeque<>::try_reserve()

+74

pw::containers::internal::GenericDeque<>::try_emplace_shift_right<>()

+68

pw::DynamicDeque<>::IncreaseCapacity()

+68

pw::DynamicHashMap<>::GetBucketIndex()

+60

pw::DynamicHashMap<>::FindAndUnlinkFromBucket<>()

+60

pw::DynamicPtrVector<>::try_emplace_back<>()

+60

pw::containers::internal::GenericDeque<>::back()

+56

pw::DynamicVector<>::try_emplace<>()

+54

pw::DynamicHashMap<>::try_reserve()

+52

pw::DynamicHashMap<>::FindImpl()

+52

pw::DynamicHashMap<>::find()

+50

pw::DynamicHashMap<>::EraseFromVector()

+48

pw::containers::internal::GenericDeque<>::try_assign()

+44

pw::DynamicDeque<>::operator=()

+44

pw::DynamicHashMap<>::equal_range()

+42

pw::DynamicPtrVector<>::clear()

+40

pw::DynamicHashMap<>::rehash()

+40

pw::DynamicHashMap<>::reserve()

+40

pw::containers::internal::GenericDeque<>::pop_back()

+34

pw::DynamicPtrVector<>::pop_back()

+34

pw::containers::size_report::MeasureContainer<>()

+32

pw::DynamicHashMap<>::insert<>()

+28

pw::DynamicHashMap<>::erase<>()

+20

pw::containers::size_report::Measure()

+24

pw::DynamicHashMap<>::UnlinkFromBucket<>()

+24

pw::DynamicHashMap<>::count()

+22

pw::containers::internal::GenericDeque<>::CheckCapacityAdd()

+20

pw::DynamicHashMap<>::clear()

+2

pw::allocator::LibCAllocator::DoReallocate()

+16

pw::containers::internal::GenericDeque<>::at()

+12

pw::containers::internal::DequeIterator<>::operator*()

+12

pw::DynamicHashMap<>::insert()

+10

pw::DynamicPtrVector<>::back()

NEW

+168

_ZN2pw10containers11size_report14MeasureHashMapINS_14DynamicHashMapIjyNS_4HashENS_7EqualToEtEETpTnRiJENSt3__211__wrap_iterIPNS8_4pairIjyEEEEEEiRT_T1_SG_j

NEW

+100

_ZNSt3__220__uninitialized_moveB9nqn230000IPN2pw14DynamicHashMapIjyNS1_4HashENS1_7EqualToEtE4NodeENS1_10containers8internal13DequeIteratorINS1_12DynamicDequeIS7_tEEEESD_SD_NS_14__always_falseEZNS_18uninitialized_moveB9nqn230000ISD_SD_EET0_T_SH_SG_EUlOSH_E_EENS_4pairISG_T2_EESG_T1_SL_T3_T4_

NEW

+98

_ZNKSt3__220__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqn230000IN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeIPNS4_14DynamicHashMapIjyNS4_4HashENS4_7EqualToEtE4NodeEtEEEESG_SG_EENS_4pairIT_T1_EESI_T0_SJ_

NEW

+80

_ZN2pw10containers11size_report21MeasureDynamicHashMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_j

NEW

+54

_ZNSt3__224__copy_move_unwrap_itersB9nqn230000INS_20__move_backward_implINS_17_ClassicAlgPolicyEEEN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeIPNS4_14DynamicHashMapIjyNS4_4HashENS4_7EqualToEtE4NodeEtEEEESG_SG_TnNS_9enable_ifIXsr12__can_rewrapIT0_T2_EE5valueEiE4typeELi0EEENS_4pairISI_SJ_EESI_T1_SJ_

NEW

+38

_ZN2pw9Allocator3NewINS_14DynamicHashMapIjyNS_4HashENS_7EqualToEtE4NodeETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJKjyEEEPSA_DpOT2_

NEW

+38

_ZN2pw9Allocator3NewINS_14DynamicHashMapIjyNS_4HashENS_7EqualToEtE4NodeETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJRjRyEEEPSA_DpOT2_

NEW

+36

_ZNSt3__213move_backwardB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeIPNS1_14DynamicHashMapIjyNS1_4HashENS1_7EqualToEtE4NodeEtEEEESD_EET0_T_SF_SE_

NEW

+36

_ZNSt3__218uninitialized_moveB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeIPNS1_14DynamicHashMapIjyNS1_4HashENS1_7EqualToEtE4NodeEtEEEESD_EET0_T_SF_SE_

NEW

+20

_ZN2pw9allocator6Layout2OfIA_PNS_14DynamicHashMapIjyNS_4HashENS_7EqualToEtE4NodeETnNSt3__29enable_ifIX20is_unbounded_array_vIT_EEiE4typeELi0EEES1_j

NEW

+18

_ZNSt3__29__advanceB9nqn230000IN2pw14DynamicHashMapIjyNS1_4HashENS1_7EqualToEtE8IteratorILb0EEEEEvRT_NS_15iterator_traitsIS8_E15difference_typeENS_18input_iterator_tagE

NEW

+14

_ZNSt3__222__uninitialized_fill_nB9nqn230000IPN2pw14DynamicHashMapIjyNS1_4HashENS1_7EqualToEtE4NodeEPS7_tS7_EET0_S9_T1_RKT2_

NEW

+14

_ZNSt3__24nextB9nqn230000IN2pw14DynamicHashMapIjyNS1_4HashENS1_7EqualToEtE8IteratorILb0EEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEES9_S9_NS_15iterator_traitsIS9_E15difference_typeE

NEW

+8

_ZNSt3__27advanceB9nqn230000IN2pw14DynamicHashMapIjyNS1_4HashENS1_7EqualToEtE8IteratorILb0EEEiiTnNS_9enable_ifIXsr11is_integralIT1_EE5valueEiE4typeELi0EEEvRT_T0_

+3,328

RAM

+164

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

NEW

+40

_ZZN2pw10containers11size_report21MeasureDynamicHashMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_jE16dynamic_hash_map

NEW

+4

_ZGVZN2pw10containers11size_report21MeasureDynamicHashMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_jE16dynamic_hash_map

+204

Additional DynamicHashMap with different key and value types

FLASH

+432

pw::DynamicHashMap<>::TryEmplaceImpl<>()

+176

pw::DynamicHashMap<>::try_rehash()

+168

pw::DynamicPtrVector<>::try_emplace<>()

+126

pw::DynamicDeque<>::ReallocateBuffer()

+116

pw::containers::internal::GenericDeque<>::operator[]()

+112

pw::DynamicHashMap<>::emplace<>()

+82

pw::containers::internal::GenericDeque<>::contiguous_data()

+78

pw::containers::internal::GenericDeque<>::ShiftRight()

+74

pw::DynamicDeque<>::try_reserve()

+74

pw::containers::internal::GenericDeque<>::try_emplace_shift_right<>()

+68

pw::DynamicDeque<>::IncreaseCapacity()

+68

pw::DynamicHashMap<>::GetBucketIndex()

+60

pw::DynamicHashMap<>::FindAndUnlinkFromBucket<>()

+60

pw::DynamicPtrVector<>::try_emplace_back<>()

+60

pw::containers::internal::GenericDeque<>::back()

+56

pw::DynamicVector<>::try_emplace<>()

+54

pw::DynamicHashMap<>::try_reserve()

+52

pw::DynamicHashMap<>::FindImpl()

+52

pw::DynamicHashMap<>::find()

+50

pw::DynamicHashMap<>::EraseFromVector()

+48

pw::containers::internal::GenericDeque<>::try_assign()

+44

pw::DynamicDeque<>::operator=()

+44

pw::DynamicHashMap<>::equal_range()

+42

pw::DynamicPtrVector<>::clear()

+40

pw::DynamicHashMap<>::rehash()

+40

pw::DynamicHashMap<>::reserve()

+40

pw::containers::internal::GenericDeque<>::pop_back()

+34

pw::DynamicPtrVector<>::pop_back()

+34

pw::containers::size_report::MeasureContainer<>()

+32

pw::DynamicHashMap<>::insert<>()

+28

pw::DynamicHashMap<>::erase<>()

+20

pw::containers::size_report::Measure()

+24

pw::DynamicHashMap<>::UnlinkFromBucket<>()

+24

pw::DynamicHashMap<>::count()

+22

pw::containers::internal::GenericDeque<>::CheckCapacityAdd()

+20

pw::DynamicHashMap<>::clear()

+2

pw::allocator::LibCAllocator::DoReallocate()

+16

pw::containers::internal::GenericDeque<>::at()

+12

pw::containers::internal::DequeIterator<>::operator*()

+12

pw::DynamicHashMap<>::insert()

+10

pw::DynamicPtrVector<>::back()

NEW

+168

_ZN2pw10containers11size_report14MeasureHashMapINS_14DynamicHashMapItyNS_4HashENS_7EqualToEtEETpTnRiJENSt3__211__wrap_iterIPNS8_4pairItyEEEEEEiRT_T1_SG_j

NEW

+100

_ZNSt3__220__uninitialized_moveB9nqn230000IPN2pw14DynamicHashMapItyNS1_4HashENS1_7EqualToEtE4NodeENS1_10containers8internal13DequeIteratorINS1_12DynamicDequeIS7_tEEEESD_SD_NS_14__always_falseEZNS_18uninitialized_moveB9nqn230000ISD_SD_EET0_T_SH_SG_EUlOSH_E_EENS_4pairISG_T2_EESG_T1_SL_T3_T4_

NEW

+98

_ZNKSt3__220__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqn230000IN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeIPNS4_14DynamicHashMapItyNS4_4HashENS4_7EqualToEtE4NodeEtEEEESG_SG_EENS_4pairIT_T1_EESI_T0_SJ_

NEW

+80

_ZN2pw10containers11size_report21MeasureDynamicHashMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_j

NEW

+54

_ZNSt3__224__copy_move_unwrap_itersB9nqn230000INS_20__move_backward_implINS_17_ClassicAlgPolicyEEEN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeIPNS4_14DynamicHashMapItyNS4_4HashENS4_7EqualToEtE4NodeEtEEEESG_SG_TnNS_9enable_ifIXsr12__can_rewrapIT0_T2_EE5valueEiE4typeELi0EEENS_4pairISI_SJ_EESI_T1_SJ_

NEW

+38

_ZN2pw9Allocator3NewINS_14DynamicHashMapItyNS_4HashENS_7EqualToEtE4NodeETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJKtyEEEPSA_DpOT2_

NEW

+38

_ZN2pw9Allocator3NewINS_14DynamicHashMapItyNS_4HashENS_7EqualToEtE4NodeETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJRtRyEEEPSA_DpOT2_

NEW

+36

_ZNSt3__213move_backwardB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeIPNS1_14DynamicHashMapItyNS1_4HashENS1_7EqualToEtE4NodeEtEEEESD_EET0_T_SF_SE_

NEW

+36

_ZNSt3__218uninitialized_moveB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeIPNS1_14DynamicHashMapItyNS1_4HashENS1_7EqualToEtE4NodeEtEEEESD_EET0_T_SF_SE_

NEW

+20

_ZN2pw9allocator6Layout2OfIA_PNS_14DynamicHashMapItyNS_4HashENS_7EqualToEtE4NodeETnNSt3__29enable_ifIX20is_unbounded_array_vIT_EEiE4typeELi0EEES1_j

NEW

+18

_ZNSt3__29__advanceB9nqn230000IN2pw14DynamicHashMapItyNS1_4HashENS1_7EqualToEtE8IteratorILb0EEEEEvRT_NS_15iterator_traitsIS8_E15difference_typeENS_18input_iterator_tagE

NEW

+14

_ZNSt3__222__uninitialized_fill_nB9nqn230000IPN2pw14DynamicHashMapItyNS1_4HashENS1_7EqualToEtE4NodeEPS7_tS7_EET0_S9_T1_RKT2_

NEW

+14

_ZNSt3__24nextB9nqn230000IN2pw14DynamicHashMapItyNS1_4HashENS1_7EqualToEtE8IteratorILb0EEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEES9_S9_NS_15iterator_traitsIS9_E15difference_typeE

NEW

+8

_ZNSt3__27advanceB9nqn230000IN2pw14DynamicHashMapItyNS1_4HashENS1_7EqualToEtE8IteratorILb0EEEiiTnNS_9enable_ifIXsr11is_integralIT1_EE5valueEiE4typeELi0EEEvRT_T0_

+3,328

RAM

+164

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

NEW

+40

_ZZN2pw10containers11size_report21MeasureDynamicHashMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_jE16dynamic_hash_map

NEW

+4

_ZGVZN2pw10containers11size_report21MeasureDynamicHashMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_jE16dynamic_hash_map

+204

std::map

FLASH

+4

pw::containers::size_report::Measure()

+2

pw::allocator::LibCAllocator::DoReallocate()

-4

operator delete()

+4

vClearInterruptMaskFromISR

NEW

+428

_ZNSt3__213__tree_removeB9nqn230000IPNS_16__tree_node_baseIPvEEEEvT_S5_

NEW

+134

_ZNSt3__227__tree_balance_after_insertB9nqn230000IPNS_16__tree_node_baseIPvEEEEvT_S5_

NEW

+130

_ZN2pw10containers11size_report10MeasureMapINSt3__23mapIjjNS3_4lessIjEENS3_9allocatorINS3_4pairIKjjEEEEEETpTnRiJENS3_11__wrap_iterIPNS8_IjjEEEEEEiRT_T1_SK_j

NEW

+116

_ZZNSt3__26__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS6_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS4_IjjEEEESH_EEvT_T0_ENKUlRS5_RSF_E_clESK_SL_

NEW

+94

_ZNSt3__26__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS6_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS4_IjjEEEESH_EEvT_T0_

NEW

+78

_ZZNSt3__26__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRjSE_EEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_ENKUlRS5_SE_SE_E_clESP_SE_SE_

NEW

+76

_ZZNSt3__26__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_IjjEEEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_ENKUlRS5_SF_E_clESQ_SF_

NEW

+68

std::__2::__tree<>::__construct_node<>()

NEW

+56

std::__2::__tree<>::__equal_range_unique<>()

NEW

+48

_ZN2pw10containers11size_report13MeasureStdMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_j

NEW

+48

_ZNSt3__26__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS6_EEE12__find_equalB9nqn230000IjEENS4_IPNS_15__tree_end_nodeIPNS_16__tree_node_baseIPvEEEERSI_EERKT_

NEW

+48

pw::containers::size_report::MeasureContainer<>()

NEW

+40

std::__2::__tree<>::__insert_node_at()

NEW

+40

std::__2::__tree<>::__remove_node_pointer()

NEW

+34

_ZNSt3__218__tree_left_rotateB9nqn230000IPNS_16__tree_node_baseIPvEEEEvT_

NEW

+34

_ZNSt3__219__tree_right_rotateB9nqn230000IPNS_16__tree_node_baseIPvEEEEvT_

NEW

+34

_ZNSt3__26__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS6_EEE14__tree_deleterclB9nqn230000EPNS_11__tree_nodeIS2_PvEE

NEW

+30

std::__2::__tree<>::__erase_unique<>()

NEW

+28

_ZNSt3__211__tree_nextB9nqn230000IPNS_16__tree_node_baseIPvEEEET_S5_

NEW

+28

_ZNSt3__216__tree_next_iterB9nqn230000IPNS_15__tree_end_nodeIPNS_16__tree_node_baseIPvEEEES5_EET_T0_

NEW

+28

std::__2::__tree<>::__count_unique<>()

NEW

+26

_ZNSt3__26__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS6_EEE4findB9nqn230000IjEENS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEERKT_

NEW

+22

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_6__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS7_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS5_IjjEEEESI_EEvT_T0_EUlRS6_RSG_E_ZNSE_ISI_SI_EEvSJ_SK_EUlSM_E_JSM_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEESK_SP_DpOSQ_

NEW

+22

std::__2::__tree<>::clear()

NEW

+22

std::__2::__tree<>::erase()

NEW

+20

_ZNSt3__210unique_ptrINS_11__tree_nodeINS_12__value_typeIjjEEPvEENS_22__tree_node_destructorINS_9allocatorIS5_EEEEE5resetB9nqn230000EPS5_

NEW

+20

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_6__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRjSF_EEENS5_INS_15__tree_iteratorIS3_PNS_11__tree_nodeIS3_PvEEiEEbEEDpOT_EUlRS6_SF_SF_E_ZNSE_IJSF_SF_EEESM_SP_EUlSF_SF_E_JSF_SF_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_ST_DpOSU_

NEW

+20

_ZNSt3__225__try_key_extraction_implB9nqn230000IjNS_4pairINS_15__tree_iteratorINS_12__value_typeIjjEEPNS_11__tree_nodeIS4_PvEEiEEbEEZNS_6__treeIS4_NS_19__map_value_compareIjNS1_IKjjEENS_4lessIjEEEENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRjSM_EEESA_DpOT_EUlRSD_SM_SM_E_ZNSL_IJSM_SM_EEESA_SP_EUlSM_SM_E_SM_SM_TnNS_9enable_ifIXsr7is_sameIT_u14__remove_constIu20__remove_reference_tIT3_EEEE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSV_OT4_

NEW

+20

_ZNSt3__23mapIjjNS_4lessIjEENS_9allocatorINS_4pairIKjjEEEEE6insertB9nqn230000IRNS4_IjjEETnNS_9enable_ifIXsr16is_constructibleIS6_T_EE5valueEiE4typeELi0EEENS4_INS_14__map_iteratorINS_15__tree_iteratorINS_12__value_typeIjjEEPNS_11__tree_nodeISJ_PvEEiEEEEbEEOSD_

NEW

+20

_ZNSt3__23mapIjjNS_4lessIjEENS_9allocatorINS_4pairIKjjEEEEE7emplaceB9nqn230000IJRjSA_EEENS4_INS_14__map_iteratorINS_15__tree_iteratorINS_12__value_typeIjjEEPNS_11__tree_nodeISE_PvEEiEEEEbEEDpOT_

NEW

+18

_ZNSt3__225__try_key_extraction_implB9nqn230000IjvZNS_6__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS7_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS5_IjjEEEESI_EEvT_T0_EUlRS6_RSG_E_ZNSE_ISI_SI_EEvSJ_SK_EUlSM_E_SM_TnNS_9enable_ifIXaa11__is_pair_vIu14__remove_constIu20__remove_reference_tIT3_EEEsr7is_sameIu14__remove_constINSS_10first_typeEESJ_EE5valueEiE4typeELi0EEESK_NS_14__priority_tagILj1EEET1_T2_OSQ_

NEW

+18

_ZNSt3__23mapIjjNS_4lessIjEENS_9allocatorINS_4pairIKjjEEEEE11equal_rangeB9nqn230000ERS5_

NEW

+16

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_6__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRNS5_IjjEEEEENS5_INS_15__tree_iteratorIS3_PNS_11__tree_nodeIS3_PvEEiEEbEEDpOT_EUlRS6_SG_E_ZNSE_IJSG_EEESN_SQ_EUlSG_E_JSG_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SU_DpOSV_

NEW

+16

_ZNSt3__225__try_key_extraction_implB9nqn230000IjNS_4pairINS_15__tree_iteratorINS_12__value_typeIjjEEPNS_11__tree_nodeIS4_PvEEiEEbEEZNS_6__treeIS4_NS_19__map_value_compareIjNS1_IKjjEENS_4lessIjEEEENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRNS1_IjjEEEEESA_DpOT_EUlRSD_SN_E_ZNSL_IJSN_EEESA_SQ_EUlSN_E_SN_TnNS_9enable_ifIXaa11__is_pair_vIu14__remove_constIu20__remove_reference_tIT3_EEEsr7is_sameIu14__remove_constINSX_10first_typeEET_EE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSV_

NEW

+16

_ZNSt3__26__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRjSE_EEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_

NEW

+14

_ZNSt3__210unique_ptrINS_11__tree_nodeINS_12__value_typeIjjEEPvEENS_22__tree_node_destructorINS_9allocatorIS5_EEEEED2B9nqn230000Ev

NEW

+12

_ZNSt3__210__tree_maxB9nqn230000IPNS_16__tree_node_baseIPvEEEET_S5_

NEW

+12

_ZNSt3__210__tree_minB9nqn230000IPNS_16__tree_node_baseIPvEEEET_S5_

NEW

+12

_ZNSt3__26__treeINS_12__value_typeIjjEENS_19__map_value_compareIjNS_4pairIKjjEENS_4lessIjEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_IjjEEEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_

NEW

+12

operator new()

NEW

+12

std::__2::__tree<>::destroy()

+1,976

RAM

+1

__Thumbv6MABSLongThunk_best_effort_wfe_or_timeout

NEW

+79

pw::containers::size_report::GetPairs<>()::pairs

NEW

+12

_ZZN2pw10containers11size_report13MeasureStdMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_jE7std_map

NEW

+4

_ZGVZN2pw10containers11size_report13MeasureStdMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_jE7std_map

+96

Additional std::map with different value type

FLASH

+76

std::__2::__tree<>::__construct_node<>()

+56

std::__2::__tree<>::__equal_range_unique<>()

+48

pw::containers::size_report::MeasureContainer<>()

+40

std::__2::__tree<>::__insert_node_at()

+40

std::__2::__tree<>::__remove_node_pointer()

+30

std::__2::__tree<>::__erase_unique<>()

+20

pw::containers::size_report::Measure()

+28

std::__2::__tree<>::__count_unique<>()

+22

std::__2::__tree<>::clear()

+22

std::__2::__tree<>::erase()

+12

std::__2::__tree<>::destroy()

NEW

+134

_ZN2pw10containers11size_report10MeasureMapINSt3__23mapIjyNS3_4lessIjEENS3_9allocatorINS3_4pairIKjyEEEEEETpTnRiJENS3_11__wrap_iterIPNS8_IjyEEEEEEiRT_T1_SK_j

NEW

+116

_ZZNSt3__26__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS6_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS4_IjyEEEESH_EEvT_T0_ENKUlRS5_RSF_E_clESK_SL_

NEW

+94

_ZNSt3__26__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS6_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS4_IjyEEEESH_EEvT_T0_

NEW

+78

_ZZNSt3__26__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRjRyEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_ENKUlRS5_SE_SF_E_clESQ_SE_SF_

NEW

+76

_ZZNSt3__26__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_IjyEEEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_ENKUlRS5_SF_E_clESQ_SF_

NEW

+48

_ZN2pw10containers11size_report13MeasureStdMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_j

NEW

+48

_ZNSt3__26__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS6_EEE12__find_equalB9nqn230000IjEENS4_IPNS_15__tree_end_nodeIPNS_16__tree_node_baseIPvEEEERSI_EERKT_

NEW

+34

_ZNSt3__26__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS6_EEE14__tree_deleterclB9nqn230000EPNS_11__tree_nodeIS2_PvEE

NEW

+26

_ZNSt3__26__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS6_EEE4findB9nqn230000IjEENS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEERKT_

NEW

+22

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_6__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS7_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS5_IjyEEEESI_EEvT_T0_EUlRS6_RSG_E_ZNSE_ISI_SI_EEvSJ_SK_EUlSM_E_JSM_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEESK_SP_DpOSQ_

NEW

+20

_ZNSt3__210unique_ptrINS_11__tree_nodeINS_12__value_typeIjyEEPvEENS_22__tree_node_destructorINS_9allocatorIS5_EEEEE5resetB9nqn230000EPS5_

NEW

+20

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_6__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRjRyEEENS5_INS_15__tree_iteratorIS3_PNS_11__tree_nodeIS3_PvEEiEEbEEDpOT_EUlRS6_SF_SG_E_ZNSE_IJSF_SG_EEESN_SQ_EUlSF_SG_E_JSF_SG_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SU_DpOSV_

NEW

+20

_ZNSt3__225__try_key_extraction_implB9nqn230000IjNS_4pairINS_15__tree_iteratorINS_12__value_typeIjyEEPNS_11__tree_nodeIS4_PvEEiEEbEEZNS_6__treeIS4_NS_19__map_value_compareIjNS1_IKjyEENS_4lessIjEEEENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRjRyEEESA_DpOT_EUlRSD_SM_SN_E_ZNSL_IJSM_SN_EEESA_SQ_EUlSM_SN_E_SM_SN_TnNS_9enable_ifIXsr7is_sameIT_u14__remove_constIu20__remove_reference_tIT3_EEEE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSW_OT4_

NEW

+20

_ZNSt3__23mapIjyNS_4lessIjEENS_9allocatorINS_4pairIKjyEEEEE6insertB9nqn230000IRNS4_IjyEETnNS_9enable_ifIXsr16is_constructibleIS6_T_EE5valueEiE4typeELi0EEENS4_INS_14__map_iteratorINS_15__tree_iteratorINS_12__value_typeIjyEEPNS_11__tree_nodeISJ_PvEEiEEEEbEEOSD_

NEW

+20

_ZNSt3__23mapIjyNS_4lessIjEENS_9allocatorINS_4pairIKjyEEEEE7emplaceB9nqn230000IJRjRyEEENS4_INS_14__map_iteratorINS_15__tree_iteratorINS_12__value_typeIjyEEPNS_11__tree_nodeISF_PvEEiEEEEbEEDpOT_

NEW

+18

_ZNSt3__225__try_key_extraction_implB9nqn230000IjvZNS_6__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS7_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS5_IjyEEEESI_EEvT_T0_EUlRS6_RSG_E_ZNSE_ISI_SI_EEvSJ_SK_EUlSM_E_SM_TnNS_9enable_ifIXaa11__is_pair_vIu14__remove_constIu20__remove_reference_tIT3_EEEsr7is_sameIu14__remove_constINSS_10first_typeEESJ_EE5valueEiE4typeELi0EEESK_NS_14__priority_tagILj1EEET1_T2_OSQ_

NEW

+18

_ZNSt3__23mapIjyNS_4lessIjEENS_9allocatorINS_4pairIKjyEEEEE11equal_rangeB9nqn230000ERS5_

NEW

+16

_ZNSt3__220__try_key_extractionB9nqn230000IjZNS_6__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRNS5_IjyEEEEENS5_INS_15__tree_iteratorIS3_PNS_11__tree_nodeIS3_PvEEiEEbEEDpOT_EUlRS6_SG_E_ZNSE_IJSG_EEESN_SQ_EUlSG_E_JSG_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SU_DpOSV_

NEW

+16

_ZNSt3__225__try_key_extraction_implB9nqn230000IjNS_4pairINS_15__tree_iteratorINS_12__value_typeIjyEEPNS_11__tree_nodeIS4_PvEEiEEbEEZNS_6__treeIS4_NS_19__map_value_compareIjNS1_IKjyEENS_4lessIjEEEENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRNS1_IjyEEEEESA_DpOT_EUlRSD_SN_E_ZNSL_IJSN_EEESA_SQ_EUlSN_E_SN_TnNS_9enable_ifIXaa11__is_pair_vIu14__remove_constIu20__remove_reference_tIT3_EEEsr7is_sameIu14__remove_constINSX_10first_typeEET_EE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSV_

NEW

+16

_ZNSt3__26__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRjRyEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_

NEW

+14

_ZNSt3__210unique_ptrINS_11__tree_nodeINS_12__value_typeIjyEEPvEENS_22__tree_node_destructorINS_9allocatorIS5_EEEEED2B9nqn230000Ev

NEW

+12

_ZNSt3__26__treeINS_12__value_typeIjyEENS_19__map_value_compareIjNS_4pairIKjyEENS_4lessIjEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_IjyEEEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_

+1,280

RAM

+164

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

NEW

+12

_ZZN2pw10containers11size_report13MeasureStdMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_jE7std_map

NEW

+4

_ZGVZN2pw10containers11size_report13MeasureStdMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_jE7std_map

+176

Additional std::map with different key and value types

FLASH

+76

std::__2::__tree<>::__construct_node<>()

+56

std::__2::__tree<>::__equal_range_unique<>()

+48

pw::containers::size_report::MeasureContainer<>()

+40

std::__2::__tree<>::__insert_node_at()

+40

std::__2::__tree<>::__remove_node_pointer()

+30

std::__2::__tree<>::__erase_unique<>()

+20

pw::containers::size_report::Measure()

+28

std::__2::__tree<>::__count_unique<>()

+22

std::__2::__tree<>::clear()

+22

std::__2::__tree<>::erase()

+12

std::__2::__tree<>::destroy()

NEW

+134

_ZN2pw10containers11size_report10MeasureMapINSt3__23mapItyNS3_4lessItEENS3_9allocatorINS3_4pairIKtyEEEEEETpTnRiJENS3_11__wrap_iterIPNS8_ItyEEEEEEiRT_T1_SK_j

NEW

+116

_ZZNSt3__26__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS6_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS4_ItyEEEESH_EEvT_T0_ENKUlRS5_RSF_E_clESK_SL_

NEW

+94

_ZNSt3__26__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS6_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS4_ItyEEEESH_EEvT_T0_

NEW

+78

_ZZNSt3__26__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRtRyEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_ENKUlRS5_SE_SF_E_clESQ_SE_SF_

NEW

+76

_ZZNSt3__26__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_ItyEEEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_ENKUlRS5_SF_E_clESQ_SF_

NEW

+48

_ZN2pw10containers11size_report13MeasureStdMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_j

NEW

+48

_ZNSt3__26__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS6_EEE12__find_equalB9nqn230000ItEENS4_IPNS_15__tree_end_nodeIPNS_16__tree_node_baseIPvEEEERSI_EERKT_

NEW

+34

_ZNSt3__26__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS6_EEE14__tree_deleterclB9nqn230000EPNS_11__tree_nodeIS2_PvEE

NEW

+26

_ZNSt3__26__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS6_EEE4findB9nqn230000ItEENS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEERKT_

NEW

+22

_ZNSt3__220__try_key_extractionB9nqn230000ItZNS_6__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS7_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS5_ItyEEEESI_EEvT_T0_EUlRS6_RSG_E_ZNSE_ISI_SI_EEvSJ_SK_EUlSM_E_JSM_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEESK_SP_DpOSQ_

NEW

+20

_ZNSt3__210unique_ptrINS_11__tree_nodeINS_12__value_typeItyEEPvEENS_22__tree_node_destructorINS_9allocatorIS5_EEEEE5resetB9nqn230000EPS5_

NEW

+20

_ZNSt3__220__try_key_extractionB9nqn230000ItZNS_6__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRtRyEEENS5_INS_15__tree_iteratorIS3_PNS_11__tree_nodeIS3_PvEEiEEbEEDpOT_EUlRS6_SF_SG_E_ZNSE_IJSF_SG_EEESN_SQ_EUlSF_SG_E_JSF_SG_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SU_DpOSV_

NEW

+20

_ZNSt3__225__try_key_extraction_implB9nqn230000ItNS_4pairINS_15__tree_iteratorINS_12__value_typeItyEEPNS_11__tree_nodeIS4_PvEEiEEbEEZNS_6__treeIS4_NS_19__map_value_compareItNS1_IKtyEENS_4lessItEEEENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRtRyEEESA_DpOT_EUlRSD_SM_SN_E_ZNSL_IJSM_SN_EEESA_SQ_EUlSM_SN_E_SM_SN_TnNS_9enable_ifIXsr7is_sameIT_u14__remove_constIu20__remove_reference_tIT3_EEEE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSW_OT4_

NEW

+20

_ZNSt3__23mapItyNS_4lessItEENS_9allocatorINS_4pairIKtyEEEEE6insertB9nqn230000IRNS4_ItyEETnNS_9enable_ifIXsr16is_constructibleIS6_T_EE5valueEiE4typeELi0EEENS4_INS_14__map_iteratorINS_15__tree_iteratorINS_12__value_typeItyEEPNS_11__tree_nodeISJ_PvEEiEEEEbEEOSD_

NEW

+20

_ZNSt3__23mapItyNS_4lessItEENS_9allocatorINS_4pairIKtyEEEEE7emplaceB9nqn230000IJRtRyEEENS4_INS_14__map_iteratorINS_15__tree_iteratorINS_12__value_typeItyEEPNS_11__tree_nodeISF_PvEEiEEEEbEEDpOT_

NEW

+18

_ZNSt3__225__try_key_extraction_implB9nqn230000ItvZNS_6__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS7_EEE21__insert_range_uniqueB9nqn230000INS_11__wrap_iterIPNS5_ItyEEEESI_EEvT_T0_EUlRS6_RSG_E_ZNSE_ISI_SI_EEvSJ_SK_EUlSM_E_SM_TnNS_9enable_ifIXaa11__is_pair_vIu14__remove_constIu20__remove_reference_tIT3_EEEsr7is_sameIu14__remove_constINSS_10first_typeEESJ_EE5valueEiE4typeELi0EEESK_NS_14__priority_tagILj1EEET1_T2_OSQ_

NEW

+18

_ZNSt3__23mapItyNS_4lessItEENS_9allocatorINS_4pairIKtyEEEEE11equal_rangeB9nqn230000ERS5_

NEW

+16

_ZNSt3__220__try_key_extractionB9nqn230000ItZNS_6__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS7_EEE16__emplace_uniqueB9nqn230000IJRNS5_ItyEEEEENS5_INS_15__tree_iteratorIS3_PNS_11__tree_nodeIS3_PvEEiEEbEEDpOT_EUlRS6_SG_E_ZNSE_IJSG_EEESN_SQ_EUlSG_E_JSG_EEEDTclclsr3stdE7declvalIT1_EEspclsr3stdE7declvalIT2_EEEET0_SU_DpOSV_

NEW

+16

_ZNSt3__225__try_key_extraction_implB9nqn230000ItNS_4pairINS_15__tree_iteratorINS_12__value_typeItyEEPNS_11__tree_nodeIS4_PvEEiEEbEEZNS_6__treeIS4_NS_19__map_value_compareItNS1_IKtyEENS_4lessItEEEENS_9allocatorISE_EEE16__emplace_uniqueB9nqn230000IJRNS1_ItyEEEEESA_DpOT_EUlRSD_SN_E_ZNSL_IJSN_EEESA_SQ_EUlSN_E_SN_TnNS_9enable_ifIXaa11__is_pair_vIu14__remove_constIu20__remove_reference_tIT3_EEEsr7is_sameIu14__remove_constINSX_10first_typeEET_EE5valueEiE4typeELi0EEET0_NS_14__priority_tagILj1EEET1_T2_OSV_

NEW

+16

_ZNSt3__26__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRtRyEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_

NEW

+14

_ZNSt3__210unique_ptrINS_11__tree_nodeINS_12__value_typeItyEEPvEENS_22__tree_node_destructorINS_9allocatorIS5_EEEEED2B9nqn230000Ev

NEW

+12

_ZNSt3__26__treeINS_12__value_typeItyEENS_19__map_value_compareItNS_4pairIKtyEENS_4lessItEEEENS_9allocatorIS6_EEE16__emplace_uniqueB9nqn230000IJRNS4_ItyEEEEENS4_INS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEEDpOT_

+1,280

RAM

+164

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

NEW

+12

_ZZN2pw10containers11size_report13MeasureStdMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_jE7std_map

NEW

+4

_ZGVZN2pw10containers11size_report13MeasureStdMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_jE7std_map

+176

DynamicMap

FLASH

+552

[section .rodata]

+4

pw::containers::size_report::Measure()

-2

_ZN2pw9allocator6Layout2OfIA_yTnNSt3__29enable_ifIX20is_unbounded_array_vIT_EEiE4typeELi0EEES1_j

+2

pw::allocator::LibCAllocator::DoReallocate()

-4

__bi_84

+8

vClearInterruptMaskFromISR

NEW

+288

pw::DynamicMap<>::TryEmplaceImpl<>()

NEW

+190

pw::containers::internal::KeyedAATree<>::InsertImpl()

NEW

+184

pw::containers::internal::AATreeItem::Rebalance()

NEW

+150

_ZN2pw10containers11size_report10MeasureMapINS_10DynamicMapIjjEETpTnRiJENSt3__211__wrap_iterIPNS6_4pairIjjEEEEEEiRT_T1_SE_j

NEW

+138

pw::containers::internal::AATreeItem::Unmap()

NEW

+104

pw::DynamicMap<>::emplace<>()

NEW

+98

pw::containers::internal::KeyedAATree<>::insert()

NEW

+90

pw::containers::internal::AATreeItem::Split()

NEW

+86

pw::containers::internal::KeyedAATree<>::find()

NEW

+84

pw::containers::internal::KeyedAATree<>::GetLowerBoundImpl()

NEW

+84

pw::containers::internal::KeyedAATree<>::GetUpperBoundImpl()

NEW

+78

pw::IntrusiveMap<>::IntrusiveMap<>()

NEW

+72

pw::containers::internal::AATreeIterator<>::operator++()

NEW

+68

pw::containers::internal::AATreeItem::Skew()

NEW

+62

pw::DynamicMap<>::erase<>()

NEW

+60

_ZN2pw10containers11size_report17MeasureDynamicMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_j

NEW

+60

fit::internal::target<>::ops

NEW

+60

pw::containers::internal::AATree<>::AATree()

NEW

+56

pw::containers::internal::GenericAATree::erase_one()

NEW

+56

pw::containers::internal::KeyedAATree<>::KeyedAATree()

NEW

+52

pw::containers::internal::AATreeItem::IsMapped()

NEW

+48

pw::containers::size_report::MeasureContainer<>()

NEW

+44

pw::DynamicMap<>::contains()

NEW

+44

pw::DynamicMap<>::end()

NEW

+44

pw::DynamicMap<>::find()

NEW

+44

pw::IntrusiveMap<>::find()

NEW

+44

pw::PackedPtr<>::set()

NEW

+44

pw::PackedPtr<>::set_packed_value()

NEW

+42

pw::containers::internal::AATreeItem::GetPredecessor()

NEW

+42

pw::containers::internal::AATreeItem::GetSuccessor()

NEW

+42

pw::containers::internal::GenericAATree::end()

NEW

+40

pw::IntrusiveMap<>::end()

NEW

+40

pw::containers::internal::AATreeItem::GetTreeSize()

NEW

+40

pw::containers::internal::AATreeItem::SetLevel()

NEW

+40

pw::containers::internal::AATreeItem::~AATreeItem()

NEW

+38

pw::containers::internal::AATreeItem::Replace()

NEW

+36

_ZN2pw9Allocator3NewINS_10DynamicMapIjjE7MapItemETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJKjjEEEPS8_DpOT2_

NEW

+36

_ZN2pw9Allocator3NewINS_10DynamicMapIjjE7MapItemETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJRjSB_EEEPS8_DpOT2_

NEW

+36

pw::Deallocator::DeleteArray<>()

NEW

+36

pw::containers::internal::KeyedAATree<>::equal_range()

NEW

+34

pw::DynamicMap<>::clear()

NEW

+34

pw::DynamicMap<>::erase()

NEW

+34

pw::containers::internal::KeyedAATree<>::lower_bound()

NEW

+34

pw::containers::internal::KeyedAATree<>::upper_bound()

NEW

+30

fit::internal::target<>::invoke()

NEW

+30

pw::DynamicMap<>::equal_range()

NEW

+30

pw::DynamicMap<>::insert<>()

NEW

+30

pw::IntrusiveMap<>::equal_range()

NEW

+30

pw::containers::internal::AATreeItem::SetRight()

NEW

+28

pw::containers::internal::AATreeItem::SetLeft()

NEW

+26

pw::containers::internal::GenericAATree::begin()

NEW

+24

__aeabi_uread4

NEW

+24

pw::IntrusiveMap<>::insert()

NEW

+22

_ZNSt3__29destroy_nB9nqn230000IPN2pw10DynamicMapIjjE7MapItemEjEET_S6_T0_

NEW

+22

fit::internal::inline_trivial_target_move<>()

NEW

+22

pw::DynamicMap<>::begin()

NEW

+22

pw::IntrusiveMap<>::erase()

NEW

+22

pw::containers::internal::AATreeItem::GetLevel()

NEW

+20

pw::IntrusiveMap<>::begin()

NEW

+18

pw::containers::internal::GenericAATree::size()

NEW

+16

pw::containers::internal::GenericAATree::SetRoot()

NEW

+14

pw::containers::internal::AATreeItem::GetLeftmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRightmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRoot()

NEW

+12

pw::DynamicMap<>::insert()

NEW

+10

_ZN2pw11Deallocator6DeleteINS_10DynamicMapIjjE7MapItemETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EEEvPS8_

NEW

+10

pw::containers::internal::AATreeItem::Reset()

NEW

+8

pw::DynamicMap<>::count()

NEW

+8

pw::IntrusiveMap<>::IntrusiveMap()

NEW

+2

fit::internal::inline_target_get()

+4,104

RAM

+1

__Thumbv6MABSLongThunk_best_effort_wfe_or_timeout

NEW

+79

pw::containers::size_report::GetPairs<>()::pairs

NEW

+36

_ZZN2pw10containers11size_report17MeasureDynamicMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_jE11dynamic_map

NEW

+4

_ZGVZN2pw10containers11size_report17MeasureDynamicMapIjjTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjjEEEEEEiT2_SA_jE11dynamic_map

+120

Additional DynamicMap with different value type

FLASH

+288

pw::DynamicMap<>::TryEmplaceImpl<>()

+104

pw::DynamicMap<>::emplace<>()

+76

pw::IntrusiveMap<>::IntrusiveMap<>()

+62

pw::DynamicMap<>::erase<>()

+40

fit::internal::target<>::ops

+60

pw::containers::internal::AATree<>::AATree()

+48

pw::containers::size_report::MeasureContainer<>()

+44

pw::DynamicMap<>::contains()

+44

pw::DynamicMap<>::end()

+44

pw::DynamicMap<>::find()

+44

pw::IntrusiveMap<>::find()

+40

pw::IntrusiveMap<>::end()

+36

pw::Deallocator::DeleteArray<>()

+34

pw::DynamicMap<>::clear()

+34

pw::DynamicMap<>::erase()

+18

fit::internal::target<>::invoke()

+30

pw::DynamicMap<>::equal_range()

+32

pw::DynamicMap<>::insert<>()

+30

pw::IntrusiveMap<>::equal_range()

+20

pw::containers::size_report::Measure()

+24

pw::IntrusiveMap<>::insert()

-2

_ZNSt3__29destroy_nB9nqn230000IPN2pw10DynamicMapIjjE7MapItemEjEET_S6_T0_

+22

pw::DynamicMap<>::begin()

+22

pw::IntrusiveMap<>::erase()

-2

pw::allocator::LibCAllocator::DoReallocate()

+20

pw::IntrusiveMap<>::begin()

-8

vClearInterruptMaskFromISR

+12

pw::DynamicMap<>::insert()

+8

pw::DynamicMap<>::count()

+8

pw::IntrusiveMap<>::IntrusiveMap()

NEW

+156

_ZN2pw10containers11size_report10MeasureMapINS_10DynamicMapIjyEETpTnRiJENSt3__211__wrap_iterIPNS6_4pairIjyEEEEEEiRT_T1_SE_j

NEW

+60

_ZN2pw10containers11size_report17MeasureDynamicMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_j

NEW

+40

_ZN2pw9Allocator3NewINS_10DynamicMapIjyE7MapItemETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJKjyEEEPS8_DpOT2_

NEW

+40

_ZN2pw9Allocator3NewINS_10DynamicMapIjyE7MapItemETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJRjRyEEEPS8_DpOT2_

NEW

+22

_ZNSt3__29destroy_nB9nqn230000IPN2pw10DynamicMapIjyE7MapItemEjEET_S6_T0_

NEW

+10

_ZN2pw11Deallocator6DeleteINS_10DynamicMapIjyE7MapItemETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EEEvPS8_

+1,560

RAM

+164

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

NEW

+36

_ZZN2pw10containers11size_report17MeasureDynamicMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_jE11dynamic_map

NEW

+4

_ZGVZN2pw10containers11size_report17MeasureDynamicMapIjyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairIjyEEEEEEiT2_SA_jE11dynamic_map

+200

Additional DynamicMap with different key and value types

FLASH

+288

pw::DynamicMap<>::TryEmplaceImpl<>()

+190

pw::containers::internal::KeyedAATree<>::InsertImpl()

+104

pw::DynamicMap<>::emplace<>()

+98

pw::containers::internal::KeyedAATree<>::insert()

+86

pw::containers::internal::KeyedAATree<>::find()

+84

pw::containers::internal::KeyedAATree<>::GetLowerBoundImpl()

+86

pw::containers::internal::KeyedAATree<>::GetUpperBoundImpl()

+76

pw::IntrusiveMap<>::IntrusiveMap<>()

+62

pw::DynamicMap<>::erase<>()

+60

fit::internal::target<>::ops

+60

pw::containers::internal::AATree<>::AATree()

+56

pw::containers::internal::KeyedAATree<>::KeyedAATree()

+48

pw::containers::size_report::MeasureContainer<>()

+44

pw::DynamicMap<>::contains()

+44

pw::DynamicMap<>::end()

+44

pw::DynamicMap<>::find()

+44

pw::IntrusiveMap<>::find()

+40

pw::IntrusiveMap<>::end()

+36

pw::Deallocator::DeleteArray<>()

+36

pw::containers::internal::KeyedAATree<>::equal_range()

+34

pw::DynamicMap<>::clear()

+34

pw::DynamicMap<>::erase()

+34

pw::containers::internal::KeyedAATree<>::lower_bound()

+34

pw::containers::internal::KeyedAATree<>::upper_bound()

+30

fit::internal::target<>::invoke()

+30

pw::DynamicMap<>::equal_range()

+32

pw::DynamicMap<>::insert<>()

+30

pw::IntrusiveMap<>::equal_range()

+20

pw::containers::size_report::Measure()

+24

pw::IntrusiveMap<>::insert()

-2

_ZNSt3__29destroy_nB9nqn230000IPN2pw10DynamicMapIjjE7MapItemEjEET_S6_T0_

+22

pw::DynamicMap<>::begin()

+22

pw::IntrusiveMap<>::erase()

-2

pw::allocator::LibCAllocator::DoReallocate()

+20

pw::IntrusiveMap<>::begin()

-4

vClearInterruptMaskFromISR

+4

__bi_84

+12

pw::DynamicMap<>::insert()

+8

pw::DynamicMap<>::count()

+8

pw::IntrusiveMap<>::IntrusiveMap()

NEW

+156

_ZN2pw10containers11size_report10MeasureMapINS_10DynamicMapItyEETpTnRiJENSt3__211__wrap_iterIPNS6_4pairItyEEEEEEiRT_T1_SE_j

NEW

+60

_ZN2pw10containers11size_report17MeasureDynamicMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_j

NEW

+40

_ZN2pw9Allocator3NewINS_10DynamicMapItyE7MapItemETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJKtyEEEPS8_DpOT2_

NEW

+40

_ZN2pw9Allocator3NewINS_10DynamicMapItyE7MapItemETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EJRtRyEEEPS8_DpOT2_

NEW

+22

_ZNSt3__29destroy_nB9nqn230000IPN2pw10DynamicMapItyE7MapItemEjEET_S6_T0_

NEW

+10

_ZN2pw11Deallocator6DeleteINS_10DynamicMapItyE7MapItemETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EEEvPS8_

+2,304

RAM

+164

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

NEW

+36

_ZZN2pw10containers11size_report17MeasureDynamicMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_jE11dynamic_map

NEW

+4

_ZGVZN2pw10containers11size_report17MeasureDynamicMapItyTpTnRiJENSt3__211__wrap_iterIPNS4_4pairItyEEEEEEiT2_SA_jE11dynamic_map

+200

FlatMap

FLASH

+2

pw::containers::size_report::SetBaseline()

-8

pw::containers::size_report::Measure()

+12

vClearInterruptMaskFromISR

NEW

+74

pw::containers::FlatMap<>::ConstexprSort()

NEW

+56

_ZNSt3__223__lower_bound_bisectingB9nqn230000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPKN2pw10containers4PairIjjEEEEjNS_10__identityEPFbRS7_jEEET0_SE_RKT1_NS_15iterator_traitsISE_E15difference_typeERT3_RT2_

NEW

+56

pw::containers::size_report::MeasureFlatMap<>()

NEW

+42

_ZNSt3__213__upper_boundB9nqn230000INS_17_ClassicAlgPolicyEZNK2pw10containers7FlatMapIjjLj10EE11upper_boundERKjEUljRKNS3_4PairIjjEEE_NS_11__wrap_iterIPSA_EESF_jNS_10__identityEEET1_SH_T2_RKT3_OT0_OT4_

NEW

+36

pw::containers::size_report::GetContainer<>()

NEW

+32

pw::containers::FlatMap<>::equal_range()

NEW

+28

pw::containers::FlatMap<>::find()

NEW

+22

_ZNSt3__211lower_boundB9nqn230000INS_11__wrap_iterIPKN2pw10containers4PairIjjEEEEjPFbRS6_jEEET_SC_SC_RKT0_T1_

NEW

+22

pw::containers::FlatMap<>::FlatMap()

NEW

+20

_ZNSt3__211upper_boundB9nqn230000INS_11__wrap_iterIPKN2pw10containers4PairIjjEEEEjZNKS3_7FlatMapIjjLj10EE11upper_boundERKjEUljRS6_E_EET_SF_SF_RKT0_T1_

NEW

+20

_ZNSt3__213__lower_boundB9nqn230000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPKN2pw10containers4PairIjjEEEES9_jNS_10__identityEPFbRS7_jEEET0_SE_T1_RKT2_RT4_RT3_

NEW

+20

pw::containers::FlatMap<>::lower_bound()

NEW

+18

pw::containers::FlatMap<>::contains()

NEW

+14

pw::containers::FlatMap<>::IsItemKeyLessThanGivenKey()

NEW

+14

pw::containers::FlatMap<>::upper_bound()

+480

RAM

+1

__Thumbv6MABSLongThunk_best_effort_wfe_or_timeout

NEW

+84

pw::containers::size_report::GetContainer<>()::container

NEW

+79

pw::containers::size_report::GetPairs<>()::pairs

+164

Additional FlatMap with different key and value types

FLASH

+104

pw::containers::FlatMap<>::ConstexprSort()

+56

pw::containers::size_report::MeasureFlatMap<>()

+36

pw::containers::size_report::GetContainer<>()

+32

pw::containers::FlatMap<>::equal_range()

+28

pw::containers::FlatMap<>::find()

+22

pw::containers::FlatMap<>::FlatMap()

+20

pw::containers::FlatMap<>::lower_bound()

-4

vClearInterruptMaskFromISR

+18

pw::containers::FlatMap<>::contains()

+12

pw::containers::size_report::Measure()

+14

pw::containers::FlatMap<>::IsItemKeyLessThanGivenKey()

+14

pw::containers::FlatMap<>::upper_bound()

NEW

+56

_ZNSt3__223__lower_bound_bisectingB9nqn230000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPKN2pw10containers4PairIjyEEEEjNS_10__identityEPFbRS7_jEEET0_SE_RKT1_NS_15iterator_traitsISE_E15difference_typeERT3_RT2_

NEW

+42

_ZNSt3__213__upper_boundB9nqn230000INS_17_ClassicAlgPolicyEZNK2pw10containers7FlatMapIjyLj10EE11upper_boundERKjEUljRKNS3_4PairIjyEEE_NS_11__wrap_iterIPSA_EESF_jNS_10__identityEEET1_SH_T2_RKT3_OT0_OT4_

NEW

+22

_ZNSt3__211lower_boundB9nqn230000INS_11__wrap_iterIPKN2pw10containers4PairIjyEEEEjPFbRS6_jEEET_SC_SC_RKT0_T1_

NEW

+20

_ZNSt3__211upper_boundB9nqn230000INS_11__wrap_iterIPKN2pw10containers4PairIjyEEEEjZNKS3_7FlatMapIjyLj10EE11upper_boundERKjEUljRS6_E_EET_SF_SF_RKT0_T1_

NEW

+20

_ZNSt3__213__lower_boundB9nqn230000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPKN2pw10containers4PairIjyEEEES9_jNS_10__identityEPFbRS7_jEEET0_SE_T1_RKT2_RT4_RT3_

+512

RAM

+164

pw::containers::size_report::GetContainer<>()::container

+164

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

+324

IntrusiveMap

FLASH

+360

[section .rodata]

-2

pw::Allocator::Resize()

+4

pw::containers::size_report::Measure()

-4

__bi_84

+8

vClearInterruptMaskFromISR

NEW

+188

pw::containers::internal::KeyedAATree<>::InsertImpl()

NEW

+184

pw::containers::internal::AATreeItem::Rebalance()

NEW

+170

_ZN2pw10containers11size_report19MeasureIntrusiveMapIjNS1_7MapPairIjjEETpTnRiJENSt3__211__wrap_iterIPS4_EEEEiT2_SA_j

NEW

+138

pw::containers::internal::AATreeItem::Unmap()

NEW

+98

pw::containers::internal::KeyedAATree<>::insert()

NEW

+90

pw::containers::internal::AATreeItem::Split()

NEW

+86

pw::containers::internal::KeyedAATree<>::find()

NEW

+84

pw::containers::internal::KeyedAATree<>::GetLowerBoundImpl()

NEW

+84

pw::containers::internal::KeyedAATree<>::GetUpperBoundImpl()

NEW

+78

pw::IntrusiveMap<>::IntrusiveMap<>()

NEW

+72

pw::containers::internal::AATreeIterator<>::operator++()

NEW

+68

pw::containers::internal::AATreeItem::Skew()

NEW

+60

fit::internal::target<>::ops

NEW

+60

pw::containers::internal::AATree<>::AATree()

NEW

+56

pw::containers::internal::GenericAATree::erase_one()

NEW

+56

pw::containers::internal::KeyedAATree<>::KeyedAATree()

NEW

+56

pw::containers::internal::KeyedAATree<>::merge()

NEW

+52

pw::containers::internal::AATreeItem::IsMapped()

NEW

+46

pw::containers::size_report::MeasureContainer<>()

NEW

+44

pw::PackedPtr<>::set()

NEW

+44

pw::PackedPtr<>::set_packed_value()

NEW

+42

pw::containers::internal::AATreeItem::GetPredecessor()

NEW

+42

pw::containers::internal::AATreeItem::GetSuccessor()

NEW

+42

pw::containers::internal::GenericAATree::end()

NEW

+42

pw::containers::internal::KeyedAATree<>::count()

NEW

+40

pw::containers::internal::AATreeItem::GetTreeSize()

NEW

+40

pw::containers::internal::AATreeItem::SetLevel()

NEW

+40

pw::containers::internal::CheckIntrusiveContainerIsEmpty()

NEW

+38

_ZNSt3__210__distanceB9nqn230000IN2pw10containers8internal14AATreeIteratorINS3_10AATreeItemEEES6_EENS_11conditionalIXsr21__is_primary_templateINS_15iterator_traitsIu14__remove_cvrefIT_EEEEE5valueENS_20incrementable_traitsISA_EESB_E4type15difference_typeES9_T0_

NEW

+38

pw::containers::internal::AATreeItem::Replace()

NEW

+36

pw::containers::internal::KeyedAATree<>::equal_range()

NEW

+36

pw::containers::size_report::GetContainer<>()

NEW

+34

pw::containers::internal::KeyedAATree<>::lower_bound()

NEW

+34

pw::containers::internal::KeyedAATree<>::upper_bound()

NEW

+32

pw::containers::internal::KeyedAATree<>::~KeyedAATree()

NEW

+30

fit::internal::target<>::invoke()

NEW

+30

pw::IntrusiveMap<>::equal_range()

NEW

+30

pw::containers::internal::AATreeItem::SetRight()

NEW

+28

pw::containers::internal::AATreeItem::SetLeft()

NEW

+28

pw::containers::internal::KeyedAATree<>::insert<>()

NEW

+26

pw::containers::internal::GenericAATree::begin()

NEW

+24

__aeabi_uread4

NEW

+24

pw::IntrusiveMap<>::insert()

NEW

+22

fit::internal::inline_trivial_target_move<>()

NEW

+22

pw::IntrusiveMap<>::find()

NEW

+22

pw::containers::internal::AATree<>::~AATree()

NEW

+22

pw::containers::internal::AATreeItem::GetLevel()

NEW

+20

pw::IntrusiveMap<>::begin()

NEW

+20

pw::IntrusiveMap<>::end()

NEW

+20

pw::IntrusiveMap<>::erase()

NEW

+18

pw::containers::internal::GenericAATree::size()

NEW

+18

pw::containers::internal::GenericAATree::~GenericAATree()

NEW

+16

pw::containers::internal::GenericAATree::SetRoot()

NEW

+14

pw::containers::internal::AATreeItem::GetLeftmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRightmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRoot()

NEW

+10

pw::containers::internal::AATreeItem::Reset()

NEW

+10

pw::containers::internal::GenericAATree::swap()

NEW

+8

pw::IntrusiveMap<>::IntrusiveMap()

NEW

+2

fit::internal::inline_target_get()

+3,208

RAM

-8

[section .data]

+1

__Thumbv6MABSLongThunk_best_effort_wfe_or_timeout

NEW

+199

pw::containers::size_report::GetPairs<>()::pairs

NEW

+36

pw::containers::size_report::GetContainer<>()::container

+228

Additional IntrusiveMap with different key type

(ALL)

0

Additional IntrusiveMap with different key and value types

FLASH

+2

pw::containers::size_report::SetBaseline()

+78

pw::IntrusiveMap<>::IntrusiveMap<>()

+40

fit::internal::target<>::ops

+60

pw::containers::internal::AATree<>::AATree()

+46

pw::containers::size_report::MeasureContainer<>()

+36

pw::containers::size_report::GetContainer<>()

+18

fit::internal::target<>::invoke()

+30

pw::IntrusiveMap<>::equal_range()

+28

pw::containers::internal::KeyedAATree<>::insert<>()

+20

pw::containers::size_report::Measure()

+24

pw::IntrusiveMap<>::insert()

+22

pw::IntrusiveMap<>::find()

+22

pw::containers::internal::AATree<>::~AATree()

+20

pw::IntrusiveMap<>::begin()

+20

pw::IntrusiveMap<>::end()

+20

pw::IntrusiveMap<>::erase()

+8

pw::IntrusiveMap<>::IntrusiveMap()

NEW

+170

_ZN2pw10containers11size_report19MeasureIntrusiveMapIjNS1_7MapPairIjyEETpTnRiJENSt3__211__wrap_iterIPS4_EEEEiT2_SA_j

+664

RAM

+244

pw::containers::size_report::GetPairs<>()::pairs

-4

[section .data]

+36

pw::containers::size_report::GetContainer<>()::container

+276

IntrusiveMultiMap

FLASH

+360

[section .rodata]

-2

pw::Allocator::Resize()

+4

pw::containers::size_report::Measure()

-4

__bi_84

+12

vClearInterruptMaskFromISR

NEW

+188

pw::containers::internal::KeyedAATree<>::InsertImpl()

NEW

+184

pw::containers::internal::AATreeItem::Rebalance()

NEW

+170

_ZN2pw10containers11size_report24MeasureIntrusiveMultiMapIjNS1_12MultiMapPairIjjEETpTnRiJENSt3__211__wrap_iterIPS4_EEEEiT2_SA_j

NEW

+138

pw::containers::internal::AATreeItem::Unmap()

NEW

+98

pw::containers::internal::KeyedAATree<>::insert()

NEW

+90

pw::containers::internal::AATreeItem::Split()

NEW

+86

pw::containers::internal::KeyedAATree<>::find()

NEW

+84

pw::containers::internal::KeyedAATree<>::GetLowerBoundImpl()

NEW

+84

pw::containers::internal::KeyedAATree<>::GetUpperBoundImpl()

NEW

+78

pw::IntrusiveMultiMap<>::IntrusiveMultiMap<>()

NEW

+72

pw::containers::internal::AATreeIterator<>::operator++()

NEW

+68

pw::containers::internal::AATreeItem::Skew()

NEW

+60

fit::internal::target<>::ops

NEW

+60

pw::containers::internal::AATree<>::AATree()

NEW

+56

pw::containers::internal::GenericAATree::erase_one()

NEW

+56

pw::containers::internal::KeyedAATree<>::KeyedAATree()

NEW

+56

pw::containers::internal::KeyedAATree<>::merge()

NEW

+52

pw::containers::internal::AATreeItem::IsMapped()

NEW

+46

pw::containers::size_report::MeasureContainer<>()

NEW

+44

pw::PackedPtr<>::set()

NEW

+44

pw::PackedPtr<>::set_packed_value()

NEW

+42

pw::containers::internal::AATreeItem::GetPredecessor()

NEW

+42

pw::containers::internal::AATreeItem::GetSuccessor()

NEW

+42

pw::containers::internal::GenericAATree::end()

NEW

+42

pw::containers::internal::KeyedAATree<>::count()

NEW

+40

pw::containers::internal::AATreeItem::GetTreeSize()

NEW

+40

pw::containers::internal::AATreeItem::SetLevel()

NEW

+40

pw::containers::internal::CheckIntrusiveContainerIsEmpty()

NEW

+38

_ZNSt3__210__distanceB9nqn230000IN2pw10containers8internal14AATreeIteratorINS3_10AATreeItemEEES6_EENS_11conditionalIXsr21__is_primary_templateINS_15iterator_traitsIu14__remove_cvrefIT_EEEEE5valueENS_20incrementable_traitsISA_EESB_E4type15difference_typeES9_T0_

NEW

+38

pw::containers::internal::AATreeItem::Replace()

NEW

+36

pw::containers::internal::KeyedAATree<>::equal_range()

NEW

+36

pw::containers::size_report::GetContainer<>()

NEW

+34

pw::containers::internal::KeyedAATree<>::lower_bound()

NEW

+34

pw::containers::internal::KeyedAATree<>::upper_bound()

NEW

+32

pw::containers::internal::KeyedAATree<>::~KeyedAATree()

NEW

+30

fit::internal::target<>::invoke()

NEW

+30

pw::IntrusiveMultiMap<>::equal_range()

NEW

+30

pw::containers::internal::AATreeItem::SetRight()

NEW

+28

pw::containers::internal::AATreeItem::SetLeft()

NEW

+28

pw::containers::internal::KeyedAATree<>::insert<>()

NEW

+26

pw::containers::internal::GenericAATree::begin()

NEW

+24

__aeabi_uread4

NEW

+22

fit::internal::inline_trivial_target_move<>()

NEW

+22

pw::IntrusiveMultiMap<>::find()

NEW

+22

pw::containers::internal::AATree<>::~AATree()

NEW

+22

pw::containers::internal::AATreeItem::GetLevel()

NEW

+20

pw::IntrusiveMultiMap<>::begin()

NEW

+20

pw::IntrusiveMultiMap<>::end()

NEW

+20

pw::IntrusiveMultiMap<>::erase()

NEW

+20

pw::IntrusiveMultiMap<>::insert()

NEW

+18

pw::containers::internal::GenericAATree::size()

NEW

+18

pw::containers::internal::GenericAATree::~GenericAATree()

NEW

+16

pw::containers::internal::GenericAATree::SetRoot()

NEW

+14

pw::containers::internal::AATreeItem::GetLeftmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRightmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRoot()

NEW

+10

pw::containers::internal::AATreeItem::Reset()

NEW

+10

pw::containers::internal::GenericAATree::swap()

NEW

+8

pw::IntrusiveMultiMap<>::IntrusiveMultiMap()

NEW

+2

fit::internal::inline_target_get()

+3,208

RAM

-8

[section .data]

+1

__Thumbv6MABSLongThunk_best_effort_wfe_or_timeout

NEW

+199

pw::containers::size_report::GetPairs<>()::pairs

NEW

+36

pw::containers::size_report::GetContainer<>()::container

+228

Additional IntrusiveMultiMap with different key type

(ALL)

0

Additional IntrusiveMultiMap with different key and value types

FLASH

+2

pw::containers::size_report::SetBaseline()

+78

pw::IntrusiveMultiMap<>::IntrusiveMultiMap<>()

+40

fit::internal::target<>::ops

+60

pw::containers::internal::AATree<>::AATree()

+46

pw::containers::size_report::MeasureContainer<>()

+36

pw::containers::size_report::GetContainer<>()

+18

fit::internal::target<>::invoke()

+30

pw::IntrusiveMultiMap<>::equal_range()

+16

pw::containers::size_report::Measure()

+22

pw::IntrusiveMultiMap<>::find()

+22

pw::containers::internal::AATree<>::~AATree()

+20

pw::IntrusiveMultiMap<>::begin()

+20

pw::IntrusiveMultiMap<>::end()

+20

pw::IntrusiveMultiMap<>::erase()

+20

pw::IntrusiveMultiMap<>::insert()

-12

vClearInterruptMaskFromISR

+8

pw::IntrusiveMultiMap<>::IntrusiveMultiMap()

NEW

+170

_ZN2pw10containers11size_report24MeasureIntrusiveMultiMapIjNS1_12MultiMapPairIjyEETpTnRiJENSt3__211__wrap_iterIPNS3_IjjEEEEEEiT2_SB_j

+616

RAM

+36

pw::containers::size_report::GetContainer<>()::container

+36

IntrusiveMap and IntrusiveMultiMap

FLASH

+360

[section .rodata]

+2

pw::containers::size_report::SetBaseline()

-2

pw::Allocator::Resize()

+24

pw::containers::size_report::Measure()

-4

__bi_84

+12

vClearInterruptMaskFromISR

NEW

+188

pw::containers::internal::KeyedAATree<>::InsertImpl()

NEW

+184

pw::containers::internal::AATreeItem::Rebalance()

NEW

+170

_ZN2pw10containers11size_report19MeasureIntrusiveMapIjNS1_7MapPairIjjEETpTnRiJENSt3__211__wrap_iterIPS4_EEEEiT2_SA_j

NEW

+170

_ZN2pw10containers11size_report24MeasureIntrusiveMultiMapIjNS1_12MultiMapPairIjjEETpTnRiJENSt3__211__wrap_iterIPS4_EEEEiT2_SA_j

NEW

+138

pw::containers::internal::AATreeItem::Unmap()

NEW

+120

pw::containers::internal::AATree<>::AATree()

NEW

+100

fit::internal::target<>::ops

NEW

+98

pw::containers::internal::KeyedAATree<>::insert()

NEW

+92

pw::containers::size_report::MeasureContainer<>()

NEW

+90

pw::containers::internal::AATreeItem::Split()

NEW

+86

pw::containers::internal::KeyedAATree<>::find()

NEW

+84

pw::containers::internal::KeyedAATree<>::GetLowerBoundImpl()

NEW

+84

pw::containers::internal::KeyedAATree<>::GetUpperBoundImpl()

NEW

+78

pw::IntrusiveMap<>::IntrusiveMap<>()

NEW

+78

pw::IntrusiveMultiMap<>::IntrusiveMultiMap<>()

NEW

+72

pw::containers::internal::AATreeIterator<>::operator++()

NEW

+72

pw::containers::size_report::GetContainer<>()

NEW

+68

pw::containers::internal::AATreeItem::Skew()

NEW

+56

pw::containers::internal::GenericAATree::erase_one()

NEW

+56

pw::containers::internal::KeyedAATree<>::KeyedAATree()

NEW

+56

pw::containers::internal::KeyedAATree<>::insert<>()

NEW

+56

pw::containers::internal::KeyedAATree<>::merge()

NEW

+52

pw::containers::internal::AATreeItem::IsMapped()

NEW

+48

fit::internal::target<>::invoke()

NEW

+44

pw::PackedPtr<>::set()

NEW

+44

pw::PackedPtr<>::set_packed_value()

NEW

+44

pw::containers::internal::AATree<>::~AATree()

NEW

+42

pw::containers::internal::AATreeItem::GetPredecessor()

NEW

+42

pw::containers::internal::AATreeItem::GetSuccessor()

NEW

+42

pw::containers::internal::GenericAATree::end()

NEW

+42

pw::containers::internal::KeyedAATree<>::count()

NEW

+40

pw::containers::internal::AATreeItem::GetTreeSize()

NEW

+40

pw::containers::internal::AATreeItem::SetLevel()

NEW

+40

pw::containers::internal::CheckIntrusiveContainerIsEmpty()

NEW

+38

_ZNSt3__210__distanceB9nqn230000IN2pw10containers8internal14AATreeIteratorINS3_10AATreeItemEEES6_EENS_11conditionalIXsr21__is_primary_templateINS_15iterator_traitsIu14__remove_cvrefIT_EEEEE5valueENS_20incrementable_traitsISA_EESB_E4type15difference_typeES9_T0_

NEW

+38

pw::containers::internal::AATreeItem::Replace()

NEW

+36

pw::containers::internal::KeyedAATree<>::equal_range()

NEW

+34

pw::containers::internal::KeyedAATree<>::lower_bound()

NEW

+34

pw::containers::internal::KeyedAATree<>::upper_bound()

NEW

+32

pw::containers::internal::KeyedAATree<>::~KeyedAATree()

NEW

+30

pw::IntrusiveMap<>::equal_range()

NEW

+30

pw::IntrusiveMultiMap<>::equal_range()

NEW

+30

pw::containers::internal::AATreeItem::SetRight()

NEW

+28

pw::containers::internal::AATreeItem::SetLeft()

NEW

+26

pw::containers::internal::GenericAATree::begin()

NEW

+24

__aeabi_uread4

NEW

+24

pw::IntrusiveMap<>::insert()

NEW

+22

fit::internal::inline_trivial_target_move<>()

NEW

+22

pw::IntrusiveMap<>::find()

NEW

+22

pw::IntrusiveMultiMap<>::find()

NEW

+22

pw::containers::internal::AATreeItem::GetLevel()

NEW

+20

pw::IntrusiveMap<>::begin()

NEW

+20

pw::IntrusiveMap<>::end()

NEW

+20

pw::IntrusiveMap<>::erase()

NEW

+20

pw::IntrusiveMultiMap<>::begin()

NEW

+20

pw::IntrusiveMultiMap<>::end()

NEW

+20

pw::IntrusiveMultiMap<>::erase()

NEW

+20

pw::IntrusiveMultiMap<>::insert()

NEW

+18

pw::containers::internal::GenericAATree::size()

NEW

+18

pw::containers::internal::GenericAATree::~GenericAATree()

NEW

+16

pw::containers::internal::GenericAATree::SetRoot()

NEW

+14

pw::containers::internal::AATreeItem::GetLeftmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRightmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRoot()

NEW

+10

pw::containers::internal::AATreeItem::Reset()

NEW

+10

pw::containers::internal::GenericAATree::swap()

NEW

+8

pw::IntrusiveMap<>::IntrusiveMap()

NEW

+8

pw::IntrusiveMultiMap<>::IntrusiveMultiMap()

NEW

+2

fit::internal::inline_target_get()

+3,872

RAM

+1

__Thumbv6MABSLongThunk_best_effort_wfe_or_timeout

NEW

+399

pw::containers::size_report::GetPairs<>()::pairs

NEW

+72

pw::containers::size_report::GetContainer<>()::container

+472