Skip to content

Commit f7b700d

Browse files
committed
Always add size summary report to sketches report
In addition to per-sketch, per-board memory usage data, the sketches report contains a per-board summary of the results from all the compilations for that board. Previously, when deltas data was not available, this summary section was arbitrarily omitted entirely from the sketches report. However, there is still board-universal information even without deltas: - Memory types - Maximums for each memory type It is useful to have that information available on a per-board level so a summary report should always be added to the sketches report.
1 parent e96af16 commit f7b700d

File tree

2 files changed

+57
-84
lines changed

2 files changed

+57
-84
lines changed

compilesketches/compilesketches.py

Lines changed: 47 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,55 +1300,52 @@ def get_sizes_summary_report(self, sketch_report_list):
13001300
sizes_summary_report = []
13011301
for sketch_report in sketch_report_list:
13021302
for size_report in sketch_report[self.ReportKeys.sizes]:
1303-
if self.ReportKeys.delta in size_report:
1304-
# Determine the sizes_summary_report index for this memory type
1305-
size_summary_report_index_list = [
1306-
index
1307-
for index, size_summary in enumerate(sizes_summary_report)
1308-
if size_summary.get(self.ReportKeys.name) == size_report[self.ReportKeys.name]
1309-
]
1310-
if not size_summary_report_index_list:
1311-
# There is no existing entry in the summary list for this memory type, so create one
1312-
sizes_summary_report.append(
1313-
{
1314-
self.ReportKeys.name: size_report[self.ReportKeys.name],
1315-
self.ReportKeys.maximum: size_report[self.ReportKeys.maximum],
1316-
self.ReportKeys.delta: {
1317-
self.ReportKeys.absolute: {
1318-
self.ReportKeys.minimum: size_report[self.ReportKeys.delta][
1319-
self.ReportKeys.absolute
1320-
],
1321-
self.ReportKeys.maximum: size_report[self.ReportKeys.delta][
1322-
self.ReportKeys.absolute
1323-
],
1324-
},
1325-
self.ReportKeys.relative: {
1326-
self.ReportKeys.minimum: size_report[self.ReportKeys.delta][
1327-
self.ReportKeys.relative
1328-
],
1329-
self.ReportKeys.maximum: size_report[self.ReportKeys.delta][
1330-
self.ReportKeys.relative
1331-
],
1332-
},
1333-
},
1334-
}
1335-
)
1336-
else:
1337-
size_summary_report_index = size_summary_report_index_list[0]
1303+
# Determine the sizes_summary_report index for this memory type
1304+
size_summary_report_index_list = [
1305+
index
1306+
for index, size_summary in enumerate(sizes_summary_report)
1307+
if size_summary.get(self.ReportKeys.name) == size_report[self.ReportKeys.name]
1308+
]
1309+
if not size_summary_report_index_list:
1310+
# There is no existing entry in the summary list for this memory type, so create one
1311+
sizes_summary_report.append({self.ReportKeys.name: size_report[self.ReportKeys.name]})
1312+
size_summary_report_index = len(sizes_summary_report) - 1
1313+
else:
1314+
size_summary_report_index = size_summary_report_index_list[0]
13381315

1339-
if (
1340-
sizes_summary_report[size_summary_report_index][self.ReportKeys.maximum]
1341-
== self.not_applicable_indicator
1342-
):
1343-
sizes_summary_report[size_summary_report_index][self.ReportKeys.maximum] = size_report[
1344-
self.ReportKeys.maximum
1345-
]
1316+
if (
1317+
self.ReportKeys.maximum not in sizes_summary_report[size_summary_report_index]
1318+
or sizes_summary_report[size_summary_report_index][self.ReportKeys.maximum]
1319+
== self.not_applicable_indicator
1320+
):
1321+
sizes_summary_report[size_summary_report_index][self.ReportKeys.maximum] = size_report[
1322+
self.ReportKeys.maximum
1323+
]
13461324

1325+
if self.ReportKeys.delta in size_report:
1326+
if (
1327+
self.ReportKeys.delta not in sizes_summary_report[size_summary_report_index]
1328+
or sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1329+
self.ReportKeys.absolute
1330+
][self.ReportKeys.minimum]
1331+
== self.not_applicable_indicator
1332+
):
1333+
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta] = {
1334+
self.ReportKeys.absolute: {
1335+
self.ReportKeys.minimum: size_report[self.ReportKeys.delta][self.ReportKeys.absolute],
1336+
self.ReportKeys.maximum: size_report[self.ReportKeys.delta][self.ReportKeys.absolute],
1337+
},
1338+
self.ReportKeys.relative: {
1339+
self.ReportKeys.minimum: size_report[self.ReportKeys.delta][self.ReportKeys.relative],
1340+
self.ReportKeys.maximum: size_report[self.ReportKeys.delta][self.ReportKeys.relative],
1341+
},
1342+
}
1343+
elif size_report[self.ReportKeys.delta][self.ReportKeys.absolute] != self.not_applicable_indicator:
13471344
if (
1348-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1345+
size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
1346+
< sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
13491347
self.ReportKeys.absolute
13501348
][self.ReportKeys.minimum]
1351-
== self.not_applicable_indicator
13521349
):
13531350
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
13541351
self.ReportKeys.absolute
@@ -1358,6 +1355,12 @@ def get_sizes_summary_report(self, sketch_report_list):
13581355
self.ReportKeys.relative
13591356
][self.ReportKeys.minimum] = size_report[self.ReportKeys.delta][self.ReportKeys.relative]
13601357

1358+
if (
1359+
size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
1360+
> sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1361+
self.ReportKeys.absolute
1362+
][self.ReportKeys.maximum]
1363+
):
13611364
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
13621365
self.ReportKeys.absolute
13631366
][self.ReportKeys.maximum] = size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
@@ -1366,45 +1369,6 @@ def get_sizes_summary_report(self, sketch_report_list):
13661369
self.ReportKeys.relative
13671370
][self.ReportKeys.maximum] = size_report[self.ReportKeys.delta][self.ReportKeys.relative]
13681371

1369-
elif size_report[self.ReportKeys.delta][self.ReportKeys.absolute] != (
1370-
self.not_applicable_indicator
1371-
):
1372-
if (
1373-
size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
1374-
< sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1375-
self.ReportKeys.absolute
1376-
][self.ReportKeys.minimum]
1377-
):
1378-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1379-
self.ReportKeys.absolute
1380-
][self.ReportKeys.minimum] = size_report[self.ReportKeys.delta][
1381-
self.ReportKeys.absolute
1382-
]
1383-
1384-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1385-
self.ReportKeys.relative
1386-
][self.ReportKeys.minimum] = size_report[self.ReportKeys.delta][
1387-
self.ReportKeys.relative
1388-
]
1389-
1390-
if (
1391-
size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
1392-
> sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1393-
self.ReportKeys.absolute
1394-
][self.ReportKeys.maximum]
1395-
):
1396-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1397-
self.ReportKeys.absolute
1398-
][self.ReportKeys.maximum] = size_report[self.ReportKeys.delta][
1399-
self.ReportKeys.absolute
1400-
]
1401-
1402-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1403-
self.ReportKeys.relative
1404-
][self.ReportKeys.maximum] = size_report[self.ReportKeys.delta][
1405-
self.ReportKeys.relative
1406-
]
1407-
14081372
return sizes_summary_report
14091373

14101374
def get_warnings_summary_report(self, sketch_report_list):

compilesketches/tests/test_compilesketches.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2631,7 +2631,16 @@ def test_get_sizes_summary_report():
26312631
},
26322632
]
26332633

2634-
expected_sizes_summary_report = []
2634+
expected_sizes_summary_report = [
2635+
{
2636+
compilesketches.CompileSketches.ReportKeys.name: "Foo memory type",
2637+
compilesketches.CompileSketches.ReportKeys.maximum: 111,
2638+
},
2639+
{
2640+
compilesketches.CompileSketches.ReportKeys.name: "Bar memory type",
2641+
compilesketches.CompileSketches.ReportKeys.maximum: 222,
2642+
},
2643+
]
26352644

26362645
assert compile_sketches.get_sizes_summary_report(sketch_report_list=sketch_report_list) == (
26372646
expected_sizes_summary_report

0 commit comments

Comments
 (0)