LTO - #2169
Conversation
|
Build size and comparison to main:
|
|
Since more functions get inlined, the stack has to accommodate more local variables at once. Given the increased stack usage of LTO, I think this is may be not such a good idea, as InfiniTime is very RAM limited - moreso than it is flash limited. This PR works perfectly fine though, so keeping it around as a draft Edit: Need to collect some actual numbers for memory usage LTO off/on |
|
With #2331 systemtask stack pressure is reduced now. Still, it needs some extra compared to before. I'm using GCC 14 locally, but I've never seen it go below 48 minimum with 400 size so that should be sufficient |
|
One thing to do is make the CI build with LTO and without LTO (if it doesn't already), since some compiler errors will only appear with LTO off |
|
I've also been running this for a long time, and I think it's well worth merging. Memory requirements for the SystemTask still do rise a bit, but 26K of flash back is huge and gives us plenty of breathing room for things like #2399 |
Based off #867, a compiler upgrade isn't needed anymore and I also simplified the changeset to the minimal needed.
I'm testing it locally now and all seems good so far, but I've only been running it for a few hours.
The original in discussion in #867 regarding why the memory usage has changed is still to be answered - I haven't looked into this yet