Skip to content

Commit d9319db

Browse files
committed
Add commputed size for parallel map/set containets when possible.
1 parent 7f2c7e6 commit d9319db

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

include/gtl/debug_vis/gtl.natvis

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@
9191
<!-- parallel flat/node set -->
9292
<Type Name="gtl::parallel_flat_hash_set&lt;*,*,*,*,*,*&gt;">
9393
<AlternativeType Name="gtl::parallel_node_hash_set&lt;*,*,*,*,*,*&gt;" />
94-
<DisplayString>{{size = ?}}</DisplayString>
94+
<DisplayString Condition="$T5 == 0">{{size = {sets_._Elems[0].set_.size_}}}</DisplayString>
95+
<DisplayString Condition="$T5 == 1">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_}}}</DisplayString>
96+
<DisplayString Condition="$T5 == 2">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_ + sets_._Elems[2].set_.size_ + sets_._Elems[3].set_.size_}}}</DisplayString>
97+
<DisplayString Condition="$T5 == 3">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_ + sets_._Elems[2].set_.size_ + sets_._Elems[3].set_.size_ + sets_._Elems[4].set_.size_ + sets_._Elems[5].set_.size_ + sets_._Elems[6].set_.size_ + sets_._Elems[7].set_.size_}}}</DisplayString>
98+
<DisplayString Condition="$T5 == 4">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_ + sets_._Elems[2].set_.size_ + sets_._Elems[3].set_.size_ + sets_._Elems[4].set_.size_ + sets_._Elems[5].set_.size_ + sets_._Elems[6].set_.size_ + sets_._Elems[7].set_.size_ + sets_._Elems[8].set_.size_ + sets_._Elems[9].set_.size_ + sets_._Elems[10].set_.size_ + sets_._Elems[11].set_.size_ + sets_._Elems[12].set_.size_ + sets_._Elems[13].set_.size_ + sets_._Elems[14].set_.size_ + sets_._Elems[15].set_.size_}}}</DisplayString>
99+
<DisplayString Condition="$T5 == 5">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_ + sets_._Elems[2].set_.size_ + sets_._Elems[3].set_.size_ + sets_._Elems[4].set_.size_ + sets_._Elems[5].set_.size_ + sets_._Elems[6].set_.size_ + sets_._Elems[7].set_.size_ + sets_._Elems[8].set_.size_ + sets_._Elems[9].set_.size_ + sets_._Elems[10].set_.size_ + sets_._Elems[11].set_.size_ + sets_._Elems[12].set_.size_ + sets_._Elems[13].set_.size_ + sets_._Elems[14].set_.size_ + sets_._Elems[15].set_.size_ + sets_._Elems[16].set_.size_ + sets_._Elems[17].set_.size_ + sets_._Elems[18].set_.size_ + sets_._Elems[19].set_.size_ + sets_._Elems[20].set_.size_ + sets_._Elems[21].set_.size_ + sets_._Elems[22].set_.size_ + sets_._Elems[23].set_.size_ + sets_._Elems[24].set_.size_ + sets_._Elems[25].set_.size_ + sets_._Elems[26].set_.size_ + sets_._Elems[27].set_.size_ + sets_._Elems[28].set_.size_ + sets_._Elems[29].set_.size_ + sets_._Elems[30].set_.size_ + sets_._Elems[31].set_.size_}}}</DisplayString>
100+
<DisplayString Condition="$T5 &gt;= 6">{{size = ? (N={$T5})}}</DisplayString>
101+
<DisplayString>{{parallel_flat_hash_set}}</DisplayString>
95102
<Expand>
96103
<CustomListItems MaxItemsPerView="1000" ExcludeView="Test">
97104
<Variable Name="idx" InitialValue="0" />
@@ -100,7 +107,7 @@
100107
<Variable Name="slot" InitialValue="sets_._Elems[0].set_.slots_" />
101108
<Variable Name="ctrl_end" InitialValue="sets_._Elems[0].set_.ctrl_" />
102109
<Variable Name="slot_end" InitialValue="sets_._Elems[0].set_.slots_" />
103-
<Exec>maxidx = 2 &lt;&lt; maxidx</Exec>
110+
<Exec>maxidx = 1 &lt;&lt; maxidx</Exec>
104111
<Loop>
105112
<Break Condition="idx == maxidx" />
106113
<Exec>ctrl = sets_._Elems[idx].set_.ctrl_</Exec>
@@ -122,18 +129,25 @@
122129
</Type>
123130

124131
<!-- parallel flat/node map - only difference is $T6 instead of $T5 -->
125-
<Type Name="gtl::parallel_flat_hash_map&lt;*,*,*,*,*,*,*&gt;">
126-
<AlternativeType Name="gtl::parallel_node_hash_map&lt;*,*,*,*,*,*,*&gt;" />
127-
<DisplayString>{{size = ?}}</DisplayString>
128-
<Expand>
129-
<CustomListItems MaxItemsPerView="1000" ExcludeView="Test">
130-
<Variable Name="idx" InitialValue="0" />
131-
<Variable Name="maxidx" InitialValue="$T6" />
132-
<Variable Name="ctrl" InitialValue="sets_._Elems[0].set_.ctrl_" />
133-
<Variable Name="slot" InitialValue="sets_._Elems[0].set_.slots_" />
134-
<Variable Name="ctrl_end" InitialValue="sets_._Elems[0].set_.ctrl_" />
135-
<Variable Name="slot_end" InitialValue="sets_._Elems[0].set_.slots_" />
136-
<Exec>maxidx = 2 &lt;&lt; maxidx</Exec>
132+
<Type Name="gtl::parallel_flat_hash_map&lt;*,*,*,*,*,*,*&gt;">
133+
<AlternativeType Name="gtl::parallel_node_hash_map&lt;*,*,*,*,*,*,*&gt;" />
134+
<DisplayString Condition="$T6 == 0">{{size = {sets_._Elems[0].set_.size_}}}</DisplayString>
135+
<DisplayString Condition="$T6 == 1">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_}}}</DisplayString>
136+
<DisplayString Condition="$T6 == 2">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_ + sets_._Elems[2].set_.size_ + sets_._Elems[3].set_.size_}}}</DisplayString>
137+
<DisplayString Condition="$T6 == 3">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_ + sets_._Elems[2].set_.size_ + sets_._Elems[3].set_.size_ + sets_._Elems[4].set_.size_ + sets_._Elems[5].set_.size_ + sets_._Elems[6].set_.size_ + sets_._Elems[7].set_.size_}}}</DisplayString>
138+
<DisplayString Condition="$T6 == 4">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_ + sets_._Elems[2].set_.size_ + sets_._Elems[3].set_.size_ + sets_._Elems[4].set_.size_ + sets_._Elems[5].set_.size_ + sets_._Elems[6].set_.size_ + sets_._Elems[7].set_.size_ + sets_._Elems[8].set_.size_ + sets_._Elems[9].set_.size_ + sets_._Elems[10].set_.size_ + sets_._Elems[11].set_.size_ + sets_._Elems[12].set_.size_ + sets_._Elems[13].set_.size_ + sets_._Elems[14].set_.size_ + sets_._Elems[15].set_.size_}}}</DisplayString>
139+
<DisplayString Condition="$T6 == 5">{{size = {sets_._Elems[0].set_.size_ + sets_._Elems[1].set_.size_ + sets_._Elems[2].set_.size_ + sets_._Elems[3].set_.size_ + sets_._Elems[4].set_.size_ + sets_._Elems[5].set_.size_ + sets_._Elems[6].set_.size_ + sets_._Elems[7].set_.size_ + sets_._Elems[8].set_.size_ + sets_._Elems[9].set_.size_ + sets_._Elems[10].set_.size_ + sets_._Elems[11].set_.size_ + sets_._Elems[12].set_.size_ + sets_._Elems[13].set_.size_ + sets_._Elems[14].set_.size_ + sets_._Elems[15].set_.size_ + sets_._Elems[16].set_.size_ + sets_._Elems[17].set_.size_ + sets_._Elems[18].set_.size_ + sets_._Elems[19].set_.size_ + sets_._Elems[20].set_.size_ + sets_._Elems[21].set_.size_ + sets_._Elems[22].set_.size_ + sets_._Elems[23].set_.size_ + sets_._Elems[24].set_.size_ + sets_._Elems[25].set_.size_ + sets_._Elems[26].set_.size_ + sets_._Elems[27].set_.size_ + sets_._Elems[28].set_.size_ + sets_._Elems[29].set_.size_ + sets_._Elems[30].set_.size_ + sets_._Elems[31].set_.size_}}}</DisplayString>
140+
<DisplayString Condition="$T6 &gt;= 6">{{size = ? (N={$T6})}}</DisplayString>
141+
<DisplayString>{{parallel_flat_hash_map}}</DisplayString>
142+
<Expand>
143+
<CustomListItems MaxItemsPerView="1000" ExcludeView="Test">
144+
<Variable Name="idx" InitialValue="0" />
145+
<Variable Name="maxidx" InitialValue="$T6" />
146+
<Variable Name="ctrl" InitialValue="sets_._Elems[0].set_.ctrl_" />
147+
<Variable Name="slot" InitialValue="sets_._Elems[0].set_.slots_" />
148+
<Variable Name="ctrl_end" InitialValue="sets_._Elems[0].set_.ctrl_" />
149+
<Variable Name="slot_end" InitialValue="sets_._Elems[0].set_.slots_" />
150+
<Exec>maxidx = 1 &lt;&lt; maxidx</Exec>
137151
<Loop>
138152
<Break Condition="idx == maxidx" />
139153
<Exec>ctrl = sets_._Elems[idx].set_.ctrl_</Exec>

0 commit comments

Comments
 (0)