Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tlv] Optimize code size of processing context tags #24224

Merged
merged 4 commits into from
Jan 4, 2023

Conversation

Damian-Nordic
Copy link
Contributor

TLV tag is represented as uint64_t that encodes the following components:

  • 16-bit vendor ID
  • 16-bit profile number
  • 32-bit tag number

Context tags, which account for vast majority of tag usage in the SDK, are encoded as having both vendor ID and profile
number equal to 0xFFFF. Anonymous tags are encoded in the same way, but using 0xFFFFFFFF tag number.
This is correct because vendor IDs higher than 0xFFF0 shall not be assigned to real manufacturers, but constructing
0xFF... constants in hundreds of places adds non-negligible overhead to the flash usage.

Make the internal representation of Tag private so that it is easier and safer to change it.
Encode profile ID in the negated form internally to optimize the code size when using special tags.

@github-actions
Copy link

github-actions bot commented Jan 2, 2023

PR #24224: Size comparison from 19c8ea4 to 8a5002b

Decreases (1 build for mbed)
platform target config section 19c8ea4 8a5002b change % change
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2463832 2462552 -1280 -0.1
.text 1426476 1425196 -1280 -0.1
Full report (1 build for mbed)
platform target config section 19c8ea4 8a5002b change % change
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2463832 2462552 -1280 -0.1
.bss 214932 214932 0 0.0
.data 5872 5872 0 0.0
.text 1426476 1425196 -1280 -0.1

@github-actions github-actions bot added the darwin label Jan 2, 2023
@github-actions
Copy link

github-actions bot commented Jan 2, 2023

PR #24224: Size comparison from 19c8ea4 to 18216bf

Increases above 0.2%:

platform target config section 19c8ea4 18216bf change % change
bl702 lighting-app bl702 .debug_ranges 363816 371696 7880 2.2
bl702+rpc .debug_ranges 387352 395232 7880 2.0
Increases (9 builds for bl602, bl702, linux, telink)
platform target config section 19c8ea4 18216bf change % change
bl602 lighting-app bl602 (read/write) 1356434 1357210 776 0.1
.text 1039192 1039968 776 0.1
bl602+rpc (read/write) 1402218 1403002 784 0.1
.text 1070616 1071394 778 0.1
bl702 lighting-app bl702 (read/write) 1196335 1197167 832 0.1
.debug_abbrev 1529044 1529983 939 0.1
.debug_line 5150433 5160006 9573 0.2
.debug_loc 3381394 3384746 3352 0.1
.debug_ranges 363816 371696 7880 2.2
.text 956880 957710 830 0.1
bl702+rpc (read/write) 1284827 1285659 832 0.1
.debug_abbrev 1676376 1677490 1114 0.1
.debug_line 5539882 5549455 9573 0.2
.debug_loc 3576086 3579495 3409 0.1
.debug_ranges 387352 395232 7880 2.0
.text 1030860 1031690 830 0.1
linux thermostat-no-ble arm64 .rodata 149560 149568 8 0.0
telink all-clusters-app tlsr9518adk80d (read/write) 1071532 1071548 16 0.0
text 726250 726266 16 0.0
all-clusters-minimal-app tlsr9518adk80d (read/write) 1010824 1010832 8 0.0
text 691406 691414 8 0.0
lighting-app tlsr9518adk80d (read/write) 1010248 1010256 8 0.0
text 703808 703810 2 0.0
thermostat tlsr9518adk80d (read/write) 935428 935436 8 0.0
text 638716 638722 6 0.0
Decreases (14 builds for bl702, k32w, linux, mbed, nrfconnect, qpg, telink)
platform target config section 19c8ea4 18216bf change % change
bl702 lighting-app bl702 .debug_frame 486476 486468 -8 -0.0
.debug_info 39187933 39181454 -6479 -0.0
.debug_str 3483437 3483261 -176 -0.0
bl702+rpc .debug_frame 513896 513888 -8 -0.0
.debug_info 43480352 43473935 -6417 -0.0
.debug_str 3885835 3885659 -176 -0.0
k32w contact k32w0+release (read/write) 662716 661260 -1456 -0.2
.text 564468 563012 -1456 -0.3
light k32w0+release (read/write) 673400 672136 -1264 -0.2
.text 593788 592524 -1264 -0.2
lock k32w0+release (read/write) 634244 632804 -1440 -0.2
.text 553852 552412 -1440 -0.3
linux chip-tool-ipv6only arm64 (read only) 10595932 10593452 -2480 -0.0
.text 8412948 8410468 -2480 -0.0
thermostat-no-ble arm64 (read only) 2478044 2476628 -1416 -0.1
.text 2067888 2066464 -1424 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2463832 2462552 -1280 -0.1
.text 1426476 1425196 -1280 -0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1191003 1189083 -1920 -0.2
text 820134 818224 -1910 -0.2
nrf7002dk_nrf5340_cpuapp (read/write) 1361266 1359554 -1712 -0.1
text 759970 758262 -1708 -0.2
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1136647 1134823 -1824 -0.2
text 790290 788478 -1812 -0.2
qpg lighting-app qpg6105+debug (read/write) 1151236 1149780 -1456 -0.1
.text 598336 596880 -1456 -0.2
lock-app qpg6105+debug (read/write) 1117556 1115980 -1576 -0.1
.text 564652 563076 -1576 -0.3
telink light-switch-app tlsr9518adk80d text 638032 638030 -2 -0.0
Full report (21 builds for bl602, bl702, k32w, linux, mbed, nrfconnect, qpg, telink)
platform target config section 19c8ea4 18216bf change % change
bl602 lighting-app bl602 (read/write) 1356434 1357210 776 0.1
.bss 86977 86977 0 0.0
.data 9984 9984 0 0.0
.text 1039192 1039968 776 0.1
bl602+rpc (read/write) 1402218 1403002 784 0.1
.bss 95017 95017 0 0.0
.data 10384 10384 0 0.0
.text 1070616 1071394 778 0.1
bl702 lighting-app bl702 (read only) 3262 3262 0 0.0
(read/write) 1196335 1197167 832 0.1
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 67102 67102 0 0.0
.bss_psram 30048 30048 0 0.0
.comment 48 48 0 0.0
.data 4048 4048 0 0.0
.debug_abbrev 1529044 1529983 939 0.1
.debug_aranges 132568 132568 0 0.0
.debug_frame 486476 486468 -8 -0.0
.debug_info 39187933 39181454 -6479 -0.0
.debug_line 5150433 5160006 9573 0.2
.debug_loc 3381394 3384746 3352 0.1
.debug_ranges 363816 371696 7880 2.2
.debug_str 3483437 3483261 -176 -0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 144 144 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 116400 116400 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 569377 569377 0 0.0
.symtab 172160 172160 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
956880 957710 830 0.1
bl702+rpc (read only) 3262 3262 0 0.0
(read/write) 1284827 1285659 832 0.1
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 75118 75118 0 0.0
.bss_psram 30304 30304 0 0.0
.comment 48 48 0 0.0
.data 4576 4576 0 0.0
.debug_abbrev 1676376 1677490 1114 0.1
.debug_aranges 140688 140688 0 0.0
.debug_frame 513896 513888 -8 -0.0
.debug_info 43480352 43473935 -6417 -0.0
.debug_line 5539882 5549455 9573 0.2
.debug_loc 3576086 3579495 3409 0.1
.debug_ranges 387352 395232 7880 2.0
.debug_str 3885835 3885659 -176 -0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 160 160 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 130144 130144 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 629661 629661 0 0.0
.symtab 190336 190336 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
1030860 1031690 830 0.1
k32w contact k32w0+release (read/write) 662716 661260 -1456 -0.2
.bss 77032 77032 0 0.0
.data 2104 2104 0 0.0
.text 564468 563012 -1456 -0.3
light k32w0+release (read/write) 673400 672136 -1264 -0.2
.bss 74824 74824 0 0.0
.data 2060 2060 0 0.0
.text 593788 592524 -1264 -0.2
lock k32w0+release (read/write) 634244 632804 -1440 -0.2
.bss 75584 75584 0 0.0
.data 2080 2080 0 0.0
.text 553852 552412 -1440 -0.3
linux chip-tool-ipv6only arm64 (read only) 10595932 10593452 -2480 -0.0
(read/write) 695928 695928 0 0.0
.bss 33912 33912 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 640376 640376 0 0.0
.dynamic 560 560 0 0.0
.got 13832 13832 0 0.0
.init 24 24 0 0.0
.init_array 200 200 0 0.0
.rodata 535180 535180 0 0.0
.text 8412948 8410468 -2480 -0.0
thermostat-no-ble arm64 (read only) 2478044 2476628 -1416 -0.1
(read/write) 145016 145016 0 0.0
.bss 55336 55336 0 0.0
.data 1816 1816 0 0.0
.data.rel.ro 78640 78640 0 0.0
.dynamic 560 560 0 0.0
.got 5192 5192 0 0.0
.init 24 24 0 0.0
.init_array 432 432 0 0.0
.rodata 149560 149568 8 0.0
.text 2067888 2066464 -1424 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2463832 2462552 -1280 -0.1
.bss 214932 214932 0 0.0
.data 5872 5872 0 0.0
.text 1426476 1425196 -1280 -0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1191003 1189083 -1920 -0.2
bss 145205 145205 0 0.0
rodata 144544 144544 0 0.0
text 820134 818224 -1910 -0.2
nrf7002dk_nrf5340_cpuapp (read/write) 1361266 1359554 -1712 -0.1
bss 105144 105144 0 0.0
rodata 211640 211640 0 0.0
text 759970 758262 -1708 -0.2
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1136647 1134823 -1824 -0.2
bss 144440 144440 0 0.0
rodata 120860 120860 0 0.0
text 790290 788478 -1812 -0.2
qpg lighting-app qpg6105+debug (read/write) 1151236 1149780 -1456 -0.1
.bss 100348 100348 0 0.0
.data 840 840 0 0.0
.text 598336 596880 -1456 -0.2
lock-app qpg6105+debug (read/write) 1117556 1115980 -1576 -0.1
.bss 95828 95828 0 0.0
.data 836 836 0 0.0
.text 564652 563076 -1576 -0.3
telink all-clusters-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1071532 1071548 16 0.0
bss 98856 98856 0 0.0
text 726250 726266 16 0.0
all-clusters-minimal-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1010824 1010832 8 0.0
bss 98080 98080 0 0.0
text 691406 691414 8 0.0
light-switch-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 932280 932280 0 0.0
bss 90320 90320 0 0.0
text 638032 638030 -2 -0.0
lighting-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1010248 1010256 8 0.0
bss 98380 98380 0 0.0
text 703808 703810 2 0.0
ota-requestor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 945884 945884 0 0.0
bss 91276 91276 0 0.0
text 649288 649288 0 0.0
thermostat tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 935428 935436 8 0.0
bss 91712 91712 0 0.0
text 638716 638722 6 0.0

@github-actions
Copy link

github-actions bot commented Jan 2, 2023

PR #24224: Size comparison from 19c8ea4 to 51f3ee4

Increases (1 build for linux)
platform target config section 19c8ea4 51f3ee4 change % change
linux thermostat-no-ble arm64 .rodata 149560 149568 8 0.0
Decreases (11 builds for k32w, linux, mbed, nrfconnect, qpg)
platform target config section 19c8ea4 51f3ee4 change % change
k32w contact k32w0+release (read/write) 662716 661260 -1456 -0.2
.text 564468 563012 -1456 -0.3
light k32w0+release (read/write) 673400 672136 -1264 -0.2
.text 593788 592524 -1264 -0.2
lock k32w0+release (read/write) 634244 632804 -1440 -0.2
.text 553852 552412 -1440 -0.3
linux chip-tool-ipv6only arm64 (read only) 10595932 10593452 -2480 -0.0
.text 8412948 8410468 -2480 -0.0
thermostat-no-ble arm64 (read only) 2478044 2476628 -1416 -0.1
.text 2067888 2066464 -1424 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2463832 2462552 -1280 -0.1
.text 1426476 1425196 -1280 -0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1191003 1189083 -1920 -0.2
text 820134 818220 -1914 -0.2
nrf7002dk_nrf5340_cpuapp (read/write) 1361266 1359554 -1712 -0.1
text 759970 758262 -1708 -0.2
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1136647 1134823 -1824 -0.2
text 790290 788478 -1812 -0.2
qpg lighting-app qpg6105+debug (read/write) 1151236 1149788 -1448 -0.1
.text 598336 596888 -1448 -0.2
lock-app qpg6105+debug (read/write) 1117556 1115980 -1576 -0.1
.text 564652 563076 -1576 -0.3
Full report (11 builds for k32w, linux, mbed, nrfconnect, qpg)
platform target config section 19c8ea4 51f3ee4 change % change
k32w contact k32w0+release (read/write) 662716 661260 -1456 -0.2
.bss 77032 77032 0 0.0
.data 2104 2104 0 0.0
.text 564468 563012 -1456 -0.3
light k32w0+release (read/write) 673400 672136 -1264 -0.2
.bss 74824 74824 0 0.0
.data 2060 2060 0 0.0
.text 593788 592524 -1264 -0.2
lock k32w0+release (read/write) 634244 632804 -1440 -0.2
.bss 75584 75584 0 0.0
.data 2080 2080 0 0.0
.text 553852 552412 -1440 -0.3
linux chip-tool-ipv6only arm64 (read only) 10595932 10593452 -2480 -0.0
(read/write) 695928 695928 0 0.0
.bss 33912 33912 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 640376 640376 0 0.0
.dynamic 560 560 0 0.0
.got 13832 13832 0 0.0
.init 24 24 0 0.0
.init_array 200 200 0 0.0
.rodata 535180 535180 0 0.0
.text 8412948 8410468 -2480 -0.0
thermostat-no-ble arm64 (read only) 2478044 2476628 -1416 -0.1
(read/write) 145016 145016 0 0.0
.bss 55336 55336 0 0.0
.data 1816 1816 0 0.0
.data.rel.ro 78640 78640 0 0.0
.dynamic 560 560 0 0.0
.got 5192 5192 0 0.0
.init 24 24 0 0.0
.init_array 432 432 0 0.0
.rodata 149560 149568 8 0.0
.text 2067888 2066464 -1424 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2463832 2462552 -1280 -0.1
.bss 214932 214932 0 0.0
.data 5872 5872 0 0.0
.text 1426476 1425196 -1280 -0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1191003 1189083 -1920 -0.2
bss 145205 145205 0 0.0
rodata 144544 144544 0 0.0
text 820134 818220 -1914 -0.2
nrf7002dk_nrf5340_cpuapp (read/write) 1361266 1359554 -1712 -0.1
bss 105144 105144 0 0.0
rodata 211640 211640 0 0.0
text 759970 758262 -1708 -0.2
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1136647 1134823 -1824 -0.2
bss 144440 144440 0 0.0
rodata 120860 120860 0 0.0
text 790290 788478 -1812 -0.2
qpg lighting-app qpg6105+debug (read/write) 1151236 1149788 -1448 -0.1
.bss 100348 100348 0 0.0
.data 840 840 0 0.0
.text 598336 596888 -1448 -0.2
lock-app qpg6105+debug (read/write) 1117556 1115980 -1576 -0.1
.bss 95828 95828 0 0.0
.data 836 836 0 0.0
.text 564652 563076 -1576 -0.3

@github-actions
Copy link

github-actions bot commented Jan 2, 2023

PR #24224: Size comparison from 19c8ea4 to 09097b0

Increases above 0.2%:

platform target config section 19c8ea4 09097b0 change % change
bl702 lighting-app bl702 .debug_ranges 363816 371696 7880 2.2
bl702+rpc .debug_ranges 387352 395232 7880 2.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 171564 173316 1752 1.0
lock-ftd LP_CC2652R7 (read/write) 171592 173128 1536 0.9
lock-mtd LP_CC2652R7 (read/write) 182068 183596 1528 0.8
pump-app LP_CC2652R7 (read/write) 159304 160648 1344 0.8
pump-controller-app LP_CC2652R7 (read/write) 175484 176860 1376 0.8
shell LP_CC2652R7 (read/write) 182668 184388 1720 0.9
psoc6 all-clusters cy8ckit_062s2_43012 .debug_abbrev 1238156 1242317 4161 0.3
.debug_line 3709696 3720593 10897 0.3
.debug_ranges 346584 355296 8712 2.5
all-clusters-minimal cy8ckit_062s2_43012 .debug_abbrev 1230047 1234098 4051 0.3
.debug_line 3728601 3739498 10897 0.3
.debug_ranges 345200 353912 8712 2.5
light cy8ckit_062s2_43012 .debug_abbrev 1064846 1067797 2951 0.3
.debug_line 3295718 3307618 11900 0.4
.debug_loc 3310296 3319425 9129 0.3
.debug_ranges 309336 318048 8712 2.8
lock cy8ckit_062s2_43012 .debug_abbrev 1066756 1069665 2909 0.3
.debug_line 3295604 3307560 11956 0.4
.debug_loc 3331730 3340969 9239 0.3
.debug_ranges 311192 319904 8712 2.8
Increases (22 builds for bl602, bl702, cc13x2_26x2, esp32, linux, psoc6, telink)
platform target config section 19c8ea4 09097b0 change % change
bl602 lighting-app bl602 (read/write) 1356434 1357210 776 0.1
.text 1039192 1039968 776 0.1
bl602+rpc (read/write) 1402218 1403002 784 0.1
.text 1070616 1071394 778 0.1
bl702 lighting-app bl702 (read/write) 1196335 1197167 832 0.1
.debug_abbrev 1529044 1529983 939 0.1
.debug_line 5150433 5160006 9573 0.2
.debug_loc 3381394 3384746 3352 0.1
.debug_ranges 363816 371696 7880 2.2
.text 956880 957710 830 0.1
bl702+rpc (read/write) 1284827 1285659 832 0.1
.debug_abbrev 1676376 1677490 1114 0.1
.debug_line 5539882 5549455 9573 0.2
.debug_loc 3576086 3579495 3409 0.1
.debug_ranges 387352 395232 7880 2.0
.text 1030860 1031690 830 0.1
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 171564 173316 1752 1.0
lock-ftd LP_CC2652R7 (read/write) 171592 173128 1536 0.9
lock-mtd LP_CC2652R7 (read/write) 182068 183596 1528 0.8
pump-app LP_CC2652R7 (read/write) 159304 160648 1344 0.8
pump-controller-app LP_CC2652R7 (read/write) 175484 176860 1376 0.8
shell LP_CC2652R7 (read/write) 182668 184388 1720 0.9
esp32 all-clusters-app m5stack (read/write) 564183 564187 4 0.0
.flash.rodata 314176 314180 4 0.0
linux thermostat-no-ble arm64 .rodata 149560 149568 8 0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_abbrev 1238156 1242317 4161 0.3
.debug_aranges 110768 110776 8 0.0
.debug_frame 371956 371984 28 0.0
.debug_line 3709696 3720593 10897 0.3
.debug_loc 3624770 3631641 6871 0.2
.debug_ranges 346584 355296 8712 2.5
.symtab 422128 422384 256 0.1
all-clusters-minimal cy8ckit_062s2_43012 .debug_abbrev 1230047 1234098 4051 0.3
.debug_aranges 110240 110248 8 0.0
.debug_frame 375012 375040 28 0.0
.debug_line 3728601 3739498 10897 0.3
.debug_loc 3612376 3619247 6871 0.2
.debug_ranges 345200 353912 8712 2.5
.symtab 408560 408656 96 0.0
light cy8ckit_062s2_43012 .debug_abbrev 1064846 1067797 2951 0.3
.debug_aranges 102440 102448 8 0.0
.debug_frame 345344 345372 28 0.0
.debug_line 3295718 3307618 11900 0.4
.debug_loc 3310296 3319425 9129 0.3
.debug_ranges 309336 318048 8712 2.8
.symtab 376928 377152 224 0.1
lock cy8ckit_062s2_43012 .debug_abbrev 1066756 1069665 2909 0.3
.debug_aranges 102824 102832 8 0.0
.debug_frame 347144 347172 28 0.0
.debug_line 3295604 3307560 11956 0.4
.debug_loc 3331730 3340969 9239 0.3
.debug_ranges 311192 319904 8712 2.8
.symtab 378928 378976 48 0.0
telink all-clusters-app tlsr9518adk80d (read/write) 1071532 1071540 8 0.0
text 726250 726264 14 0.0
all-clusters-minimal-app tlsr9518adk80d (read/write) 1010824 1010832 8 0.0
text 691406 691412 6 0.0
light-switch-app tlsr9518adk80d (read/write) 932280 932288 8 0.0
text 638032 638034 2 0.0
lighting-app tlsr9518adk80d (read/write) 1010248 1010256 8 0.0
text 703808 703812 4 0.0
ota-requestor-app tlsr9518adk80d text 649288 649292 4 0.0
thermostat tlsr9518adk80d (read/write) 935428 935436 8 0.0
text 638716 638724 8 0.0
Decreases (45 builds for bl702, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg)
platform target config section 19c8ea4 09097b0 change % change
bl702 lighting-app bl702 .debug_frame 486476 486468 -8 -0.0
.debug_info 39187933 39181454 -6479 -0.0
.debug_str 3483437 3483261 -176 -0.0
bl702+rpc .debug_frame 513896 513888 -8 -0.0
.debug_info 43480352 43473935 -6417 -0.0
.debug_str 3885835 3885659 -176 -0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 679883 678131 -1752 -0.3
.text 589576 587824 -1752 -0.3
all-clusters-minimal-app LP_CC2652R7 (read only) 644131 642491 -1640 -0.3
.text 564672 563032 -1640 -0.3
lock-ftd LP_CC2652R7 (read only) 677415 675879 -1536 -0.2
.text 599520 597984 -1536 -0.3
lock-mtd LP_CC2652R7 (read only) 662203 660675 -1528 -0.2
.text 558216 556688 -1528 -0.3
pump-app LP_CC2652R7 (read only) 690439 689095 -1344 -0.2
.text 598924 597580 -1344 -0.2
pump-controller-app LP_CC2652R7 (read only) 674363 672987 -1376 -0.2
.text 587296 585920 -1376 -0.2
shell LP_CC2652R7 (read only) 671106 669386 -1720 -0.3
.text 584052 582332 -1720 -0.3
cyw30739 light cyw930739m2evb_01 (read/write) 588482 587026 -1456 -0.2
.app_xip_area 464828 463372 -1456 -0.3
lock cyw930739m2evb_01 (read/write) 592310 590726 -1584 -0.3
.app_xip_area 463360 461776 -1584 -0.3
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 551862 550582 -1280 -0.2
.app_xip_area 433704 432424 -1280 -0.3
efr32 lighting-app BRD4161A+rpc (read/write) 976468 974964 -1504 -0.2
.text 822108 820604 -1504 -0.2
BRD4161A+rs911x (read/write) 1038920 1037896 -1024 -0.1
.text 850240 849216 -1024 -0.1
BRD4187C (read/write) 1149948 1148740 -1208 -0.1
.text 984268 983060 -1208 -0.1
lock-app BRD4161A+wf200 (read/write) 1069152 1067696 -1456 -0.1
.text 908924 907468 -1456 -0.2
window-app BRD4187C (read/write) 1142592 1141544 -1048 -0.1
.text 975472 974424 -1048 -0.1
esp32 all-clusters-app c3devkit (read only) 1219474 1219344 -130 -0.0
.flash.text 1219474 1219344 -130 -0.0
m5stack (read only) 1233407 1233311 -96 -0.0
.flash.text 1228023 1227927 -96 -0.0
k32w contact k32w0+release (read/write) 662716 661260 -1456 -0.2
.text 564468 563012 -1456 -0.3
light k32w0+release (read/write) 673400 672136 -1264 -0.2
.text 593788 592524 -1264 -0.2
lock k32w0+release (read/write) 634244 632804 -1440 -0.2
.text 553852 552412 -1440 -0.3
linux all-clusters-app debug (read only) 3114537 3112009 -2528 -0.1
.text 2648242 2645714 -2528 -0.1
all-clusters-minimal-app debug (read only) 2938137 2935577 -2560 -0.1
.rodata 281035 281003 -32 -0.0
.text 2475458 2472930 -2528 -0.1
bridge-app debug (read only) 2497209 2495097 -2112 -0.1
.rodata 212320 212288 -32 -0.0
.text 2113106 2111026 -2080 -0.1
chip-tool debug (read only) 11182713 11179017 -3696 -0.0
.text 9078820 9075124 -3696 -0.0
chip-tool-ipv6only arm64 (read only) 10595932 10593452 -2480 -0.0
.text 8412948 8410468 -2480 -0.0
lighting-app debug+rpc (read only) 2664337 2662129 -2208 -0.1
.text 2259362 2257154 -2208 -0.1
lock-app debug (read only) 2623465 2621369 -2096 -0.1
.text 2207074 2204978 -2096 -0.1
ota-provider-app debug (read only) 2197337 2195225 -2112 -0.1
.text 1861650 1859538 -2112 -0.1
ota-requestor-app debug (read only) 2358841 2356585 -2256 -0.1
.text 2007426 2005170 -2256 -0.1
shell debug (read only) 2646993 2644785 -2208 -0.1
.text 2247426 2245218 -2208 -0.1
thermostat-no-ble arm64 (read only) 2478044 2476628 -1416 -0.1
.text 2067888 2066464 -1424 -0.1
tv-app debug (read only) 3286737 3284113 -2624 -0.1
.rodata 268856 268824 -32 -0.0
.text 2823554 2820962 -2592 -0.1
tv-casting-app debug (read only) 5645937 5642321 -3616 -0.1
.text 5009026 5005410 -3616 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2463832 2462552 -1280 -0.1
.text 1426476 1425196 -1280 -0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1191003 1189083 -1920 -0.2
text 820134 818224 -1910 -0.2
nrf7002dk_nrf5340_cpuapp (read/write) 1361266 1359554 -1712 -0.1
text 759970 758262 -1708 -0.2
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1136647 1134823 -1824 -0.2
text 790290 788478 -1812 -0.2
psoc6 all-clusters cy8ckit_062s2_43012 (read/write) 1749660 1748860 -800 -0.0
.debug_info 27060315 27044656 -15659 -0.1
.debug_str 3453864 3453688 -176 -0.0
.text 1549984 1549184 -800 -0.1
all-clusters-minimal cy8ckit_062s2_43012 (read/write) 1692188 1691500 -688 -0.0
.debug_info 26797113 26781384 -15729 -0.1
.debug_str 3442876 3442700 -176 -0.0
.text 1493240 1492552 -688 -0.0
light cy8ckit_062s2_43012 (read/write) 1610404 1609508 -896 -0.1
.debug_info 22259723 22249281 -10442 -0.0
.debug_str 3248462 3248286 -176 -0.0
.text 1419648 1418752 -896 -0.1
lock cy8ckit_062s2_43012 (read/write) 1644356 1643508 -848 -0.1
.debug_info 22478114 22468002 -10112 -0.0
.debug_str 3264300 3264124 -176 -0.0
.text 1448608 1447760 -848 -0.1
qpg lighting-app qpg6105+debug (read/write) 1151236 1149788 -1448 -0.1
.text 598336 596888 -1448 -0.2
lock-app qpg6105+debug (read/write) 1117556 1115980 -1576 -0.1
.text 564652 563076 -1576 -0.3
Full report (53 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 19c8ea4 09097b0 change % change
bl602 lighting-app bl602 (read/write) 1356434 1357210 776 0.1
.bss 86977 86977 0 0.0
.data 9984 9984 0 0.0
.text 1039192 1039968 776 0.1
bl602+rpc (read/write) 1402218 1403002 784 0.1
.bss 95017 95017 0 0.0
.data 10384 10384 0 0.0
.text 1070616 1071394 778 0.1
bl702 lighting-app bl702 (read only) 3262 3262 0 0.0
(read/write) 1196335 1197167 832 0.1
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 67102 67102 0 0.0
.bss_psram 30048 30048 0 0.0
.comment 48 48 0 0.0
.data 4048 4048 0 0.0
.debug_abbrev 1529044 1529983 939 0.1
.debug_aranges 132568 132568 0 0.0
.debug_frame 486476 486468 -8 -0.0
.debug_info 39187933 39181454 -6479 -0.0
.debug_line 5150433 5160006 9573 0.2
.debug_loc 3381394 3384746 3352 0.1
.debug_ranges 363816 371696 7880 2.2
.debug_str 3483437 3483261 -176 -0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 144 144 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 116400 116400 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 569377 569377 0 0.0
.symtab 172160 172160 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
956880 957710 830 0.1
bl702+rpc (read only) 3262 3262 0 0.0
(read/write) 1284827 1285659 832 0.1
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 75118 75118 0 0.0
.bss_psram 30304 30304 0 0.0
.comment 48 48 0 0.0
.data 4576 4576 0 0.0
.debug_abbrev 1676376 1677490 1114 0.1
.debug_aranges 140688 140688 0 0.0
.debug_frame 513896 513888 -8 -0.0
.debug_info 43480352 43473935 -6417 -0.0
.debug_line 5539882 5549455 9573 0.2
.debug_loc 3576086 3579495 3409 0.1
.debug_ranges 387352 395232 7880 2.0
.debug_str 3885835 3885659 -176 -0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 160 160 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 130144 130144 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 629661 629661 0 0.0
.symtab 190336 190336 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
1030860 1031690 830 0.1
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 679883 678131 -1752 -0.3
(read/write) 171564 173316 1752 1.0
.bss 81140 81140 0 0.0
.data 3380 3380 0 0.0
.rodata 89995 89995 0 0.0
.text 589576 587824 -1752 -0.3
all-clusters-minimal-app LP_CC2652R7 (read only) 644131 642491 -1640 -0.3
(read/write) 157916 157916 0 0.0
.bss 80420 80420 0 0.0
.data 3380 3380 0 0.0
.rodata 79139 79139 0 0.0
.text 564672 563032 -1640 -0.3
lock-ftd LP_CC2652R7 (read only) 677415 675879 -1536 -0.2
(read/write) 171592 173128 1536 0.9
.bss 78788 78788 0 0.0
.data 3304 3304 0 0.0
.rodata 77415 77415 0 0.0
.text 599520 597984 -1536 -0.3
lock-mtd LP_CC2652R7 (read only) 662203 660675 -1528 -0.2
(read/write) 182068 183596 1528 0.8
.bss 74052 74052 0 0.0
.data 3304 3304 0 0.0
.rodata 103507 103507 0 0.0
.text 558216 556688 -1528 -0.3
pump-app LP_CC2652R7 (read only) 690439 689095 -1344 -0.2
(read/write) 159304 160648 1344 0.8
.bss 78756 78756 0 0.0
.data 3296 3296 0 0.0
.rodata 91031 91031 0 0.0
.text 598924 597580 -1344 -0.2
pump-controller-app LP_CC2652R7 (read only) 674363 672987 -1376 -0.2
(read/write) 175484 176860 1376 0.8
.bss 78860 78860 0 0.0
.data 3292 3292 0 0.0
.rodata 86587 86587 0 0.0
.text 587296 585920 -1376 -0.2
shell LP_CC2652R7 (read only) 671106 669386 -1720 -0.3
(read/write) 182668 184388 1720 0.9
.bss 83468 83468 0 0.0
.data 3376 3376 0 0.0
.rodata 86738 86738 0 0.0
.text 584052 582332 -1720 -0.3
cyw30739 light cyw930739m2evb_01 (read/write) 588482 587026 -1456 -0.2
.app_xip_area 464828 463372 -1456 -0.3
.bss 66112 66112 0 0.0
.data 728 728 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 592310 590726 -1584 -0.3
.app_xip_area 463360 461776 -1584 -0.3
.bss 71400 71400 0 0.0
.data 736 736 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 551862 550582 -1280 -0.2
.app_xip_area 433704 432424 -1280 -0.3
.bss 60656 60656 0 0.0
.data 684 684 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rpc (read/write) 976468 974964 -1504 -0.2
.bss 152172 152172 0 0.0
.data 2168 2168 0 0.0
.text 822108 820604 -1504 -0.2
BRD4161A+rs911x (read/write) 1038920 1037896 -1024 -0.1
.bss 186648 186648 0 0.0
.data 2012 2012 0 0.0
.text 850240 849216 -1024 -0.1
BRD4187C (read/write) 1149948 1148740 -1208 -0.1
.bss 138568 138568 0 0.0
.data 2516 2516 0 0.0
.text 984268 983060 -1208 -0.1
lock-app BRD4161A+wf200 (read/write) 1069152 1067696 -1456 -0.1
.bss 158184 158184 0 0.0
.data 2020 2020 0 0.0
.text 908924 907468 -1456 -0.2
window-app BRD4187C (read/write) 1142592 1141544 -1048 -0.1
.bss 139984 139984 0 0.0
.data 2540 2540 0 0.0
.text 975472 974424 -1048 -0.1
esp32 all-clusters-app c3devkit (read only) 1219474 1219344 -130 -0.0
(read/write) 1790954 1790954 0 0.0
.dram0.bss 76912 76912 0 0.0
.dram0.data 13928 13928 0 0.0
.flash.rodata 248392 248392 0 0.0
.flash.text 1219474 1219344 -130 -0.0
.iram0.text 71188 71188 0 0.0
m5stack (read only) 1233407 1233311 -96 -0.0
(read/write) 564183 564187 4 0.0
.dram0.bss 82064 82064 0 0.0
.dram0.data 34224 34224 0 0.0
.flash.rodata 314176 314180 4 0.0
.flash.text 1228023 1227927 -96 -0.0
.iram0.text 124803 124803 0 0.0
k32w contact k32w0+release (read/write) 662716 661260 -1456 -0.2
.bss 77032 77032 0 0.0
.data 2104 2104 0 0.0
.text 564468 563012 -1456 -0.3
light k32w0+release (read/write) 673400 672136 -1264 -0.2
.bss 74824 74824 0 0.0
.data 2060 2060 0 0.0
.text 593788 592524 -1264 -0.2
lock k32w0+release (read/write) 634244 632804 -1440 -0.2
.bss 75584 75584 0 0.0
.data 2080 2080 0 0.0
.text 553852 552412 -1440 -0.3
linux all-clusters-app debug (read only) 3114537 3112009 -2528 -0.1
(read/write) 158600 158600 0 0.0
.bss 62464 62464 0 0.0
.data 2304 2304 0 0.0
.data.rel.ro 87240 87240 0 0.0
.dynamic 608 608 0 0.0
.got 4768 4768 0 0.0
.init 27 27 0 0.0
.init_array 1184 1184 0 0.0
.rodata 281611 281611 0 0.0
.text 2648242 2645714 -2528 -0.1
all-clusters-minimal-app debug (read only) 2938137 2935577 -2560 -0.1
(read/write) 150000 150000 0 0.0
.bss 61664 61664 0 0.0
.data 2272 2272 0 0.0
.data.rel.ro 79608 79608 0 0.0
.dynamic 608 608 0 0.0
.got 4680 4680 0 0.0
.init 27 27 0 0.0
.init_array 1160 1160 0 0.0
.rodata 281035 281003 -32 -0.0
.text 2475458 2472930 -2528 -0.1
bridge-app debug (read only) 2497209 2495097 -2112 -0.1
(read/write) 133120 133120 0 0.0
.bss 52544 52544 0 0.0
.data 3792 3792 0 0.0
.data.rel.ro 70696 70696 0 0.0
.dynamic 608 608 0 0.0
.got 4600 4600 0 0.0
.init 27 27 0 0.0
.init_array 856 856 0 0.0
.rodata 212320 212288 -32 -0.0
.text 2113106 2111026 -2080 -0.1
chip-tool debug (read only) 11182713 11179017 -3696 -0.0
(read/write) 646808 646808 0 0.0
.bss 25912 25912 0 0.0
.data 2754 2754 0 0.0
.data.rel.ro 611568 611568 0 0.0
.dynamic 608 608 0 0.0
.got 5184 5184 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 605029 605029 0 0.0
.text 9078820 9075124 -3696 -0.0
chip-tool-ipv6only arm64 (read only) 10595932 10593452 -2480 -0.0
(read/write) 695928 695928 0 0.0
.bss 33912 33912 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 640376 640376 0 0.0
.dynamic 560 560 0 0.0
.got 13832 13832 0 0.0
.init 24 24 0 0.0
.init_array 200 200 0 0.0
.rodata 535180 535180 0 0.0
.text 8412948 8410468 -2480 -0.0
lighting-app debug+rpc (read only) 2664337 2662129 -2208 -0.1
(read/write) 132488 132488 0 0.0
.bss 49984 49984 0 0.0
.data 2288 2288 0 0.0
.data.rel.ro 74024 74024 0 0.0
.dynamic 608 608 0 0.0
.got 4632 4632 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 228224 228224 0 0.0
.text 2259362 2257154 -2208 -0.1
lock-app debug (read only) 2623465 2621369 -2096 -0.1
(read/write) 127472 127472 0 0.0
.bss 48416 48416 0 0.0
.data 1904 1904 0 0.0
.data.rel.ro 70936 70936 0 0.0
.dynamic 608 608 0 0.0
.got 4664 4664 0 0.0
.init 27 27 0 0.0
.init_array 904 904 0 0.0
.rodata 244488 244488 0 0.0
.text 2207074 2204978 -2096 -0.1
ota-provider-app debug (read only) 2197337 2195225 -2112 -0.1
(read/write) 105904 105904 0 0.0
.bss 46592 46592 0 0.0
.data 2080 2080 0 0.0
.data.rel.ro 52120 52120 0 0.0
.dynamic 608 608 0 0.0
.got 3728 3728 0 0.0
.init 27 27 0 0.0
.init_array 744 744 0 0.0
.rodata 195784 195784 0 0.0
.text 1861650 1859538 -2112 -0.1
ota-requestor-app debug (read only) 2358841 2356585 -2256 -0.1
(read/write) 113952 113952 0 0.0
.bss 49088 49088 0 0.0
.data 2448 2448 0 0.0
.data.rel.ro 57208 57208 0 0.0
.dynamic 608 608 0 0.0
.got 3728 3728 0 0.0
.init 27 27 0 0.0
.init_array 824 824 0 0.0
.rodata 202512 202512 0 0.0
.text 2007426 2005170 -2256 -0.1
shell debug (read only) 2646993 2644785 -2208 -0.1
(read/write) 143064 143064 0 0.0
.bss 57864 57864 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 78136 78136 0 0.0
.dynamic 608 608 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 1032 1032 0 0.0
.rodata 239858 239858 0 0.0
.text 2247426 2245218 -2208 -0.1
thermostat-no-ble arm64 (read only) 2478044 2476628 -1416 -0.1
(read/write) 145016 145016 0 0.0
.bss 55336 55336 0 0.0
.data 1816 1816 0 0.0
.data.rel.ro 78640 78640 0 0.0
.dynamic 560 560 0 0.0
.got 5192 5192 0 0.0
.init 24 24 0 0.0
.init_array 432 432 0 0.0
.rodata 149560 149568 8 0.0
.text 2067888 2066464 -1424 -0.1
tv-app debug (read only) 3286737 3284113 -2624 -0.1
(read/write) 262312 262312 0 0.0
.bss 170808 170808 0 0.0
.data 4256 4256 0 0.0
.data.rel.ro 80544 80544 0 0.0
.dynamic 608 608 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 1064 1064 0 0.0
.rodata 268856 268824 -32 -0.0
.text 2823554 2820962 -2592 -0.1
tv-casting-app debug (read only) 5645937 5642321 -3616 -0.1
(read/write) 162672 162672 0 0.0
.bss 52184 52184 0 0.0
.data 1936 1936 0 0.0
.data.rel.ro 101960 101960 0 0.0
.dynamic 608 608 0 0.0
.got 4920 4920 0 0.0
.init 27 27 0 0.0
.init_array 1040 1040 0 0.0
.rodata 359321 359321 0 0.0
.text 5009026 5005410 -3616 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2463832 2462552 -1280 -0.1
.bss 214932 214932 0 0.0
.data 5872 5872 0 0.0
.text 1426476 1425196 -1280 -0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1191003 1189083 -1920 -0.2
bss 145205 145205 0 0.0
rodata 144544 144544 0 0.0
text 820134 818224 -1910 -0.2
nrf7002dk_nrf5340_cpuapp (read/write) 1361266 1359554 -1712 -0.1
bss 105144 105144 0 0.0
rodata 211640 211640 0 0.0
text 759970 758262 -1708 -0.2
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1136647 1134823 -1824 -0.2
bss 144440 144440 0 0.0
rodata 120860 120860 0 0.0
text 790290 788478 -1812 -0.2
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 842056 842056 0 0.0
(read/write) 1749660 1748860 -800 -0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 188624 188624 0 0.0
.comment 200 200 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2664 2664 0 0.0
.debug_abbrev 1238156 1242317 4161 0.3
.debug_aranges 110768 110776 8 0.0
.debug_frame 371956 371984 28 0.0
.debug_info 27060315 27044656 -15659 -0.1
.debug_line 3709696 3720593 10897 0.3
.debug_loc 3624770 3631641 6871 0.2
.debug_ranges 346584 355296 8712 2.5
.debug_str 3453864 3453688 -176 -0.0
.heap 842056 842056 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 572205 572205 0 0.0
.symtab 422128 422384 256 0.1
.text 1549984 1549184 -800 -0.1
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 842784 842784 0 0.0
(read/write) 1692188 1691500 -688 -0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 187896 187896 0 0.0
.comment 200 200 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2664 2664 0 0.0
.debug_abbrev 1230047 1234098 4051 0.3
.debug_aranges 110240 110248 8 0.0
.debug_frame 375012 375040 28 0.0
.debug_info 26797113 26781384 -15729 -0.1
.debug_line 3728601 3739498 10897 0.3
.debug_loc 3612376 3619247 6871 0.2
.debug_ranges 345200 353912 8712 2.5
.debug_str 3442876 3442700 -176 -0.0
.heap 842784 842784 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 536294 536294 0 0.0
.symtab 408560 408656 96 0.0
.text 1493240 1492552 -688 -0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 850976 850976 0 0.0
(read/write) 1610404 1609508 -896 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 179912 179912 0 0.0
.comment 200 200 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2456 2456 0 0.0
.debug_abbrev 1064846 1067797 2951 0.3
.debug_aranges 102440 102448 8 0.0
.debug_frame 345344 345372 28 0.0
.debug_info 22259723 22249281 -10442 -0.0
.debug_line 3295718 3307618 11900 0.4
.debug_loc 3310296 3319425 9129 0.3
.debug_ranges 309336 318048 8712 2.8
.debug_str 3248462 3248286 -176 -0.0
.heap 850976 850976 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 472619 472619 0 0.0
.symtab 376928 377152 224 0.1
.text 1419648 1418752 -896 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 845984 845984 0 0.0
(read/write) 1644356 1643508 -848 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 184888 184888 0 0.0
.comment 200 200 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2472 2472 0 0.0
.debug_abbrev 1066756 1069665 2909 0.3
.debug_aranges 102824 102832 8 0.0
.debug_frame 347144 347172 28 0.0
.debug_info 22478114 22468002 -10112 -0.0
.debug_line 3295604 3307560 11956 0.4
.debug_loc 3331730 3340969 9239 0.3
.debug_ranges 311192 319904 8712 2.8
.debug_str 3264300 3264124 -176 -0.0
.heap 845984 845984 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 475336 475336 0 0.0
.symtab 378928 378976 48 0.0
.text 1448608 1447760 -848 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1151236 1149788 -1448 -0.1
.bss 100348 100348 0 0.0
.data 840 840 0 0.0
.text 598336 596888 -1448 -0.2
lock-app qpg6105+debug (read/write) 1117556 1115980 -1576 -0.1
.bss 95828 95828 0 0.0
.data 836 836 0 0.0
.text 564652 563076 -1576 -0.3
telink all-clusters-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1071532 1071540 8 0.0
bss 98856 98856 0 0.0
text 726250 726264 14 0.0
all-clusters-minimal-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1010824 1010832 8 0.0
bss 98080 98080 0 0.0
text 691406 691412 6 0.0
light-switch-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 932280 932288 8 0.0
bss 90320 90320 0 0.0
text 638032 638034 2 0.0
lighting-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1010248 1010256 8 0.0
bss 98380 98380 0 0.0
text 703808 703812 4 0.0
ota-requestor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 945884 945884 0 0.0
bss 91276 91276 0 0.0
text 649288 649292 4 0.0
thermostat tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 935428 935436 8 0.0
bss 91712 91712 0 0.0
text 638716 638724 8 0.0

src/lib/core/CHIPTLVTags.h Outdated Show resolved Hide resolved
src/lib/core/CHIPTLVTags.h Outdated Show resolved Hide resolved
src/lib/core/CHIPTLVWriter.cpp Outdated Show resolved Hide resolved
Make the internal representation of Tag private so that
it is easier and safer to change it.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
TLV tag is represented as uint64_t that encodes the
following components:
- 16-bit vendor ID
- 16-bit profile number
- 32-bit tag number

Context tags, which account for vast majority of tag usage
in the SDK, are encoded as having both vendor ID and profile
number equal to 0xFFFF. Anonymous tags are encoded in the
same way, but using 0xFFFFFFFF tag number.
This is correct because vendor IDs higher than 0xFFF0 shall
not be assigned to real manufacturers, but constructing
0xFF... constants in hundreds of places adds non-negligible
overhead to the flash usage.

Encode profile ID in the negated form internally to optimize
the code size when using special tags.
@github-actions
Copy link

github-actions bot commented Jan 4, 2023

PR #24224: Size comparison from 23e5fb2 to 72e9d23

Increases above 0.2%:

platform target config section 23e5fb2 72e9d23 change % change
bl702 lighting-app bl702 .debug_ranges 363816 371696 7880 2.2
bl702+rpc .debug_ranges 387352 395232 7880 2.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_abbrev 1238156 1243517 5361 0.4
.debug_line 3720067 3730910 10843 0.3
.debug_ranges 346584 355296 8712 2.5
all-clusters-minimal cy8ckit_062s2_43012 .debug_abbrev 1230047 1235298 5251 0.4
.debug_line 3738965 3749808 10843 0.3
.debug_ranges 345200 353912 8712 2.5
light cy8ckit_062s2_43012 .debug_abbrev 1064846 1068709 3863 0.4
.debug_line 3303995 3315841 11846 0.4
.debug_loc 3310296 3319451 9155 0.3
.debug_ranges 309336 318048 8712 2.8
lock cy8ckit_062s2_43012 .debug_abbrev 1066756 1070601 3845 0.4
.debug_line 3305102 3317004 11902 0.4
.debug_loc 3331730 3340995 9265 0.3
.debug_ranges 311192 319904 8712 2.8
Increases (15 builds for bl602, bl702, linux, psoc6, telink)
platform target config section 23e5fb2 72e9d23 change % change
bl602 lighting-app bl602 (read/write) 1356434 1357210 776 0.1
.text 1039192 1039964 772 0.1
bl602+rpc (read/write) 1402218 1402986 768 0.1
.text 1070614 1071384 770 0.1
bl702 lighting-app bl702 (read/write) 1196351 1197167 816 0.1
.debug_abbrev 1529044 1530943 1899 0.1
.debug_line 5162847 5172361 9514 0.2
.debug_loc 3381394 3384818 3424 0.1
.debug_ranges 363816 371696 7880 2.2
.text 956882 957702 820 0.1
bl702+rpc (read/write) 1284827 1285659 832 0.1
.debug_abbrev 1676376 1678450 2074 0.1
.debug_line 5552342 5561856 9514 0.2
.debug_loc 3576086 3579567 3481 0.1
.debug_ranges 387352 395232 7880 2.0
.text 1030862 1031682 820 0.1
linux thermostat-no-ble arm64 .rodata 149560 149568 8 0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_abbrev 1238156 1243517 5361 0.4
.debug_aranges 110768 110776 8 0.0
.debug_frame 371956 371984 28 0.0
.debug_line 3720067 3730910 10843 0.3
.debug_loc 3624770 3631667 6897 0.2
.debug_ranges 346584 355296 8712 2.5
.symtab 422128 422384 256 0.1
all-clusters-minimal cy8ckit_062s2_43012 .debug_abbrev 1230047 1235298 5251 0.4
.debug_aranges 110240 110248 8 0.0
.debug_frame 375012 375040 28 0.0
.debug_line 3738965 3749808 10843 0.3
.debug_loc 3612376 3619273 6897 0.2
.debug_ranges 345200 353912 8712 2.5
.symtab 408560 408656 96 0.0
light cy8ckit_062s2_43012 .debug_abbrev 1064846 1068709 3863 0.4
.debug_aranges 102440 102448 8 0.0
.debug_frame 345344 345372 28 0.0
.debug_line 3303995 3315841 11846 0.4
.debug_loc 3310296 3319451 9155 0.3
.debug_ranges 309336 318048 8712 2.8
.symtab 376928 377152 224 0.1
lock cy8ckit_062s2_43012 .debug_abbrev 1066756 1070601 3845 0.4
.debug_aranges 102824 102832 8 0.0
.debug_frame 347144 347172 28 0.0
.debug_line 3305102 3317004 11902 0.4
.debug_loc 3331730 3340995 9265 0.3
.debug_ranges 311192 319904 8712 2.8
.symtab 378928 378976 48 0.0
telink all-clusters-app tlsr9518adk80d (read/write) 1071564 1071580 16 0.0
text 726282 726300 18 0.0
all-clusters-minimal-app tlsr9518adk80d (read/write) 1010856 1010864 8 0.0
text 691436 691448 12 0.0
light-switch-app tlsr9518adk80d text 638044 638048 4 0.0
lighting-app tlsr9518adk80d (read/write) 1010264 1010272 8 0.0
text 703822 703830 8 0.0
ota-requestor-app tlsr9518adk80d text 649302 649306 4 0.0
thermostat tlsr9518adk80d (read/write) 935460 935468 8 0.0
text 638748 638758 10 0.0
Decreases (27 builds for bl702, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg)
platform target config section 23e5fb2 72e9d23 change % change
bl702 lighting-app bl702 .debug_frame 486476 486468 -8 -0.0
.debug_info 39187934 39181408 -6526 -0.0
.debug_str 3483414 3483238 -176 -0.0
bl702+rpc .debug_frame 513896 513888 -8 -0.0
.debug_info 43480353 43473889 -6464 -0.0
.debug_str 3885812 3885636 -176 -0.0
cyw30739 light cyw930739m2evb_01 (read/write) 588482 587026 -1456 -0.2
.app_xip_area 464828 463372 -1456 -0.3
lock cyw930739m2evb_01 (read/write) 592310 590734 -1576 -0.3
.app_xip_area 463360 461784 -1576 -0.3
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 551862 550590 -1272 -0.2
.app_xip_area 433704 432432 -1272 -0.3
efr32 lighting-app BRD4161A+rpc (read/write) 976468 974964 -1504 -0.2
.text 822108 820604 -1504 -0.2
BRD4161A+rs911x (read/write) 1038920 1037896 -1024 -0.1
.text 850240 849216 -1024 -0.1
BRD4187C (read/write) 1149948 1148732 -1216 -0.1
.text 984268 983052 -1216 -0.1
lock-app BRD4161A+wf200 (read/write) 1069152 1067696 -1456 -0.1
.text 908924 907468 -1456 -0.2
window-app BRD4187C (read/write) 1142592 1141536 -1056 -0.1
.text 975472 974416 -1056 -0.1
esp32 all-clusters-app c3devkit (read only) 1219472 1219340 -132 -0.0
.flash.text 1219472 1219340 -132 -0.0
m5stack (read only) 1233407 1233307 -100 -0.0
.flash.text 1228023 1227923 -100 -0.0
k32w contact k32w0+release (read/write) 662716 661260 -1456 -0.2
.text 564468 563012 -1456 -0.3
light k32w0+release (read/write) 673400 672136 -1264 -0.2
.text 593788 592524 -1264 -0.2
lock k32w0+release (read/write) 634244 632804 -1440 -0.2
.text 553852 552412 -1440 -0.3
linux chip-tool-ipv6only arm64 (read only) 10555516 10553020 -2496 -0.0
.text 8372436 8369940 -2496 -0.0
thermostat-no-ble arm64 (read only) 2478044 2476628 -1416 -0.1
.text 2067888 2066464 -1424 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2463832 2462552 -1280 -0.1
.text 1426476 1425196 -1280 -0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1179071 1177167 -1904 -0.2
text 815854 813952 -1902 -0.2
nrf7002dk_nrf5340_cpuapp (read/write) 1349822 1348110 -1712 -0.1
text 755954 754250 -1704 -0.2
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1124719 1122911 -1808 -0.2
text 786006 784206 -1800 -0.2
psoc6 all-clusters cy8ckit_062s2_43012 (read/write) 1749660 1748844 -816 -0.0
.debug_info 27060315 27044612 -15703 -0.1
.debug_str 3453830 3453654 -176 -0.0
.text 1549984 1549168 -816 -0.1
all-clusters-minimal cy8ckit_062s2_43012 (read/write) 1692188 1691484 -704 -0.0
.debug_info 26797114 26781338 -15776 -0.1
.debug_str 3442842 3442666 -176 -0.0
.text 1493240 1492536 -704 -0.0
light cy8ckit_062s2_43012 (read/write) 1610404 1609508 -896 -0.1
.debug_info 22259724 22249212 -10512 -0.0
.debug_str 3248428 3248252 -176 -0.0
.text 1419648 1418752 -896 -0.1
lock cy8ckit_062s2_43012 (read/write) 1644356 1643508 -848 -0.1
.debug_info 22478113 22467937 -10176 -0.0
.debug_str 3264266 3264090 -176 -0.0
.text 1448608 1447760 -848 -0.1
qpg lighting-app qpg6105+debug (read/write) 1151236 1149796 -1440 -0.1
.text 598336 596896 -1440 -0.2
lock-app qpg6105+debug (read/write) 1117556 1115972 -1584 -0.1
.text 564652 563068 -1584 -0.3
Full report (35 builds for bl602, bl702, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 23e5fb2 72e9d23 change % change
bl602 lighting-app bl602 (read/write) 1356434 1357210 776 0.1
.bss 86977 86977 0 0.0
.data 9984 9984 0 0.0
.text 1039192 1039964 772 0.1
bl602+rpc (read/write) 1402218 1402986 768 0.1
.bss 95017 95017 0 0.0
.data 10384 10384 0 0.0
.text 1070614 1071384 770 0.1
bl702 lighting-app bl702 (read only) 3262 3262 0 0.0
(read/write) 1196351 1197167 816 0.1
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 67102 67102 0 0.0
.bss_psram 30048 30048 0 0.0
.comment 48 48 0 0.0
.data 4048 4048 0 0.0
.debug_abbrev 1529044 1530943 1899 0.1
.debug_aranges 132568 132568 0 0.0
.debug_frame 486476 486468 -8 -0.0
.debug_info 39187934 39181408 -6526 -0.0
.debug_line 5162847 5172361 9514 0.2
.debug_loc 3381394 3384818 3424 0.1
.debug_ranges 363816 371696 7880 2.2
.debug_str 3483414 3483238 -176 -0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 144 144 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 116400 116400 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 569377 569377 0 0.0
.symtab 172160 172160 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
956882 957702 820 0.1
bl702+rpc (read only) 3262 3262 0 0.0
(read/write) 1284827 1285659 832 0.1
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 75118 75118 0 0.0
.bss_psram 30304 30304 0 0.0
.comment 48 48 0 0.0
.data 4576 4576 0 0.0
.debug_abbrev 1676376 1678450 2074 0.1
.debug_aranges 140688 140688 0 0.0
.debug_frame 513896 513888 -8 -0.0
.debug_info 43480353 43473889 -6464 -0.0
.debug_line 5552342 5561856 9514 0.2
.debug_loc 3576086 3579567 3481 0.1
.debug_ranges 387352 395232 7880 2.0
.debug_str 3885812 3885636 -176 -0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 160 160 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 130144 130144 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 629661 629661 0 0.0
.symtab 190336 190336 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
1030862 1031682 820 0.1
cyw30739 light cyw930739m2evb_01 (read/write) 588482 587026 -1456 -0.2
.app_xip_area 464828 463372 -1456 -0.3
.bss 66112 66112 0 0.0
.data 728 728 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 592310 590734 -1576 -0.3
.app_xip_area 463360 461784 -1576 -0.3
.bss 71400 71400 0 0.0
.data 736 736 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 551862 550590 -1272 -0.2
.app_xip_area 433704 432432 -1272 -0.3
.bss 60656 60656 0 0.0
.data 684 684 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rpc (read/write) 976468 974964 -1504 -0.2
.bss 152172 152172 0 0.0
.data 2168 2168 0 0.0
.text 822108 820604 -1504 -0.2
BRD4161A+rs911x (read/write) 1038920 1037896 -1024 -0.1
.bss 186648 186648 0 0.0
.data 2012 2012 0 0.0
.text 850240 849216 -1024 -0.1
BRD4187C (read/write) 1149948 1148732 -1216 -0.1
.bss 138568 138568 0 0.0
.data 2516 2516 0 0.0
.text 984268 983052 -1216 -0.1
lock-app BRD4161A+wf200 (read/write) 1069152 1067696 -1456 -0.1
.bss 158184 158184 0 0.0
.data 2020 2020 0 0.0
.text 908924 907468 -1456 -0.2
window-app BRD4187C (read/write) 1142592 1141536 -1056 -0.1
.bss 139984 139984 0 0.0
.data 2540 2540 0 0.0
.text 975472 974416 -1056 -0.1
esp32 all-clusters-app c3devkit (read only) 1219472 1219340 -132 -0.0
(read/write) 1790954 1790954 0 0.0
.dram0.bss 76912 76912 0 0.0
.dram0.data 13928 13928 0 0.0
.flash.rodata 248392 248392 0 0.0
.flash.text 1219472 1219340 -132 -0.0
.iram0.text 71188 71188 0 0.0
m5stack (read only) 1233407 1233307 -100 -0.0
(read/write) 564187 564187 0 0.0
.dram0.bss 82064 82064 0 0.0
.dram0.data 34224 34224 0 0.0
.flash.rodata 314180 314180 0 0.0
.flash.text 1228023 1227923 -100 -0.0
.iram0.text 124803 124803 0 0.0
k32w contact k32w0+release (read/write) 662716 661260 -1456 -0.2
.bss 77032 77032 0 0.0
.data 2104 2104 0 0.0
.text 564468 563012 -1456 -0.3
light k32w0+release (read/write) 673400 672136 -1264 -0.2
.bss 74824 74824 0 0.0
.data 2060 2060 0 0.0
.text 593788 592524 -1264 -0.2
lock k32w0+release (read/write) 634244 632804 -1440 -0.2
.bss 75584 75584 0 0.0
.data 2080 2080 0 0.0
.text 553852 552412 -1440 -0.3
linux chip-tool-ipv6only arm64 (read only) 10555516 10553020 -2496 -0.0
(read/write) 695928 695928 0 0.0
.bss 33912 33912 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 640376 640376 0 0.0
.dynamic 560 560 0 0.0
.got 13832 13832 0 0.0
.init 24 24 0 0.0
.init_array 200 200 0 0.0
.rodata 535276 535276 0 0.0
.text 8372436 8369940 -2496 -0.0
thermostat-no-ble arm64 (read only) 2478044 2476628 -1416 -0.1
(read/write) 145016 145016 0 0.0
.bss 55336 55336 0 0.0
.data 1816 1816 0 0.0
.data.rel.ro 78640 78640 0 0.0
.dynamic 560 560 0 0.0
.got 5192 5192 0 0.0
.init 24 24 0 0.0
.init_array 432 432 0 0.0
.rodata 149560 149568 8 0.0
.text 2067888 2066464 -1424 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2463832 2462552 -1280 -0.1
.bss 214932 214932 0 0.0
.data 5872 5872 0 0.0
.text 1426476 1425196 -1280 -0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1179071 1177167 -1904 -0.2
bss 145205 145205 0 0.0
rodata 136900 136900 0 0.0
text 815854 813952 -1902 -0.2
nrf7002dk_nrf5340_cpuapp (read/write) 1349822 1348110 -1712 -0.1
bss 105144 105144 0 0.0
rodata 204212 204212 0 0.0
text 755954 754250 -1704 -0.2
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1124719 1122911 -1808 -0.2
bss 144440 144440 0 0.0
rodata 113220 113220 0 0.0
text 786006 784206 -1800 -0.2
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 842056 842056 0 0.0
(read/write) 1749660 1748844 -816 -0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 188624 188624 0 0.0
.comment 200 200 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2664 2664 0 0.0
.debug_abbrev 1238156 1243517 5361 0.4
.debug_aranges 110768 110776 8 0.0
.debug_frame 371956 371984 28 0.0
.debug_info 27060315 27044612 -15703 -0.1
.debug_line 3720067 3730910 10843 0.3
.debug_loc 3624770 3631667 6897 0.2
.debug_ranges 346584 355296 8712 2.5
.debug_str 3453830 3453654 -176 -0.0
.heap 842056 842056 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 572205 572205 0 0.0
.symtab 422128 422384 256 0.1
.text 1549984 1549168 -816 -0.1
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 842784 842784 0 0.0
(read/write) 1692188 1691484 -704 -0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 187896 187896 0 0.0
.comment 200 200 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2664 2664 0 0.0
.debug_abbrev 1230047 1235298 5251 0.4
.debug_aranges 110240 110248 8 0.0
.debug_frame 375012 375040 28 0.0
.debug_info 26797114 26781338 -15776 -0.1
.debug_line 3738965 3749808 10843 0.3
.debug_loc 3612376 3619273 6897 0.2
.debug_ranges 345200 353912 8712 2.5
.debug_str 3442842 3442666 -176 -0.0
.heap 842784 842784 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 536294 536294 0 0.0
.symtab 408560 408656 96 0.0
.text 1493240 1492536 -704 -0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 850976 850976 0 0.0
(read/write) 1610404 1609508 -896 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 179912 179912 0 0.0
.comment 200 200 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2456 2456 0 0.0
.debug_abbrev 1064846 1068709 3863 0.4
.debug_aranges 102440 102448 8 0.0
.debug_frame 345344 345372 28 0.0
.debug_info 22259724 22249212 -10512 -0.0
.debug_line 3303995 3315841 11846 0.4
.debug_loc 3310296 3319451 9155 0.3
.debug_ranges 309336 318048 8712 2.8
.debug_str 3248428 3248252 -176 -0.0
.heap 850976 850976 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 472619 472619 0 0.0
.symtab 376928 377152 224 0.1
.text 1419648 1418752 -896 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 845984 845984 0 0.0
(read/write) 1644356 1643508 -848 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 184888 184888 0 0.0
.comment 200 200 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2472 2472 0 0.0
.debug_abbrev 1066756 1070601 3845 0.4
.debug_aranges 102824 102832 8 0.0
.debug_frame 347144 347172 28 0.0
.debug_info 22478113 22467937 -10176 -0.0
.debug_line 3305102 3317004 11902 0.4
.debug_loc 3331730 3340995 9265 0.3
.debug_ranges 311192 319904 8712 2.8
.debug_str 3264266 3264090 -176 -0.0
.heap 845984 845984 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 475336 475336 0 0.0
.symtab 378928 378976 48 0.0
.text 1448608 1447760 -848 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1151236 1149796 -1440 -0.1
.bss 100348 100348 0 0.0
.data 840 840 0 0.0
.text 598336 596896 -1440 -0.2
lock-app qpg6105+debug (read/write) 1117556 1115972 -1584 -0.1
.bss 95828 95828 0 0.0
.data 836 836 0 0.0
.text 564652 563068 -1584 -0.3
telink all-clusters-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1071564 1071580 16 0.0
bss 98856 98856 0 0.0
text 726282 726300 18 0.0
all-clusters-minimal-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1010856 1010864 8 0.0
bss 98080 98080 0 0.0
text 691436 691448 12 0.0
light-switch-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 932296 932296 0 0.0
bss 90320 90320 0 0.0
text 638044 638048 4 0.0
lighting-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1010264 1010272 8 0.0
bss 98380 98380 0 0.0
text 703822 703830 8 0.0
ota-requestor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 945900 945900 0 0.0
bss 91276 91276 0 0.0
text 649302 649306 4 0.0
thermostat tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 935460 935468 8 0.0
bss 91712 91712 0 0.0
text 638748 638758 10 0.0

@bzbarsky-apple bzbarsky-apple merged commit 5f3dda9 into project-chip:master Jan 4, 2023
lecndav pushed a commit to lecndav/connectedhomeip that referenced this pull request Mar 22, 2023
* [tlv] Encapsulate Tag encoding

Make the internal representation of Tag private so that
it is easier and safer to change it.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>

* [tlv] Optimize code size of processing context tags

TLV tag is represented as uint64_t that encodes the
following components:
- 16-bit vendor ID
- 16-bit profile number
- 32-bit tag number

Context tags, which account for vast majority of tag usage
in the SDK, are encoded as having both vendor ID and profile
number equal to 0xFFFF. Anonymous tags are encoded in the
same way, but using 0xFFFFFFFF tag number.
This is correct because vendor IDs higher than 0xFFF0 shall
not be assigned to real manufacturers, but constructing
0xFF... constants in hundreds of places adds non-negligible
overhead to the flash usage.

Encode profile ID in the negated form internally to optimize
the code size when using special tags.

* Fix build

* Code review

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
@Damian-Nordic Damian-Nordic deleted the tlv-opt-2 branch April 6, 2023 08:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants