-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Save flash on generated struct encoding logic #29608
Merged
mergify
merged 6 commits into
project-chip:master
from
tcarmelveilleux:more-savings-encode2
Oct 6, 2023
Merged
Save flash on generated struct encoding logic #29608
mergify
merged 6 commits into
project-chip:master
from
tcarmelveilleux:more-savings-encode2
Oct 6, 2023
+1,786
−2,072
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Problem: - Structural repetition in the generated code caused needless jumps to be inlined in very large numbers in `Encode` methods, in ways that could be factored-out. This PR: - Changes the generated code to use a proxy encoder class that reduces expanded inlined code, reduces 64 bit arguments usage and maintains correct early return behavior, while generating significantly smaller method bodies. Testing done: - Unit tests pass - Integration tests pass
pullapprove
bot
requested review from
andy31415,
andyg-apple,
anush-apple,
arkq,
bzbarsky-apple,
carol-apple,
cecille,
chrisdecenzo,
chshu,
chulspro,
cliffamzn,
Damian-Nordic,
dhrishi,
electrocucaracha,
gjc13,
harsha-rajendran,
hawk248,
hicklin,
jepenven-silabs,
jmartinez-silabs,
jmeg-sfy,
joonhaengHeo,
jtung-apple,
kkasperczyk-no,
kpschoedel,
ksperling-apple and
lazarkov
October 5, 2023 20:17
pullapprove
bot
requested review from
rcasallas-silabs,
robszewczyk,
saurabhst,
selissia,
sharadb-amazon,
tecimovic,
tehampson,
tima-q,
tobiasgraf,
vivien-apple,
wiba-nordic,
woody-apple,
younghak-hwang,
yufengwangca and
yunhanw-google
October 5, 2023 20:17
PR #29608: Size comparison from 94facb5 to 5ddcd5e Increases above 0.2%:
Increases (3 builds for cc32xx, linux)
Decreases (19 builds for cc13x4_26x4, cc32xx, k32w, linux, mbed, nrfconnect, qpg)
Full report (19 builds for cc13x4_26x4, cc32xx, k32w, linux, mbed, nrfconnect, qpg)
|
bzbarsky-apple
approved these changes
Oct 5, 2023
PR #29608: Size comparison from 94facb5 to 3ed4ee7 Increases above 0.2%:
Increases (28 builds for bl602, bl702, bl702l, cc32xx, linux, psoc6)
Decreases (67 builds for bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
Full report (71 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
yufengwangca
approved these changes
Oct 6, 2023
Damian-Nordic
approved these changes
Oct 6, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice result! :)
Co-authored-by: Damian Królik <66667989+Damian-Nordic@users.noreply.github.com>
PR #29608: Size comparison from 22a5485 to bb9d275 Increases above 0.2%:
Increases (28 builds for bl602, bl702, bl702l, cc32xx, linux, psoc6)
Decreases (67 builds for bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
Full report (71 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
HunsupJung
pushed a commit
to HunsupJung/connectedhomeip
that referenced
this pull request
Oct 23, 2023
* Save flash on generated struct encoding logic Problem: - Structural repetition in the generated code caused needless jumps to be inlined in very large numbers in `Encode` methods, in ways that could be factored-out. This PR: - Changes the generated code to use a proxy encoder class that reduces expanded inlined code, reduces 64 bit arguments usage and maintains correct early return behavior, while generating significantly smaller method bodies. Testing done: - Unit tests pass - Integration tests pass * Restyled by clang-format * Address review comments * Update src/app/data-model/WrappedStructEncoder.h Co-authored-by: Damian Królik <66667989+Damian-Nordic@users.noreply.github.com> * Regen --------- Co-authored-by: tennessee.carmelveilleux@gmail.com <tennessee@google.com> Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Damian Królik <66667989+Damian-Nordic@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem:
Encode
methods, in ways that could be factored-out.This PR:
Testing done: