LTO
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
Build size and comparison to main:
| Section | Size | Difference |
|---|---|---|
| text | 354472B | -25612B |
| data | 920B | -24B |
| bss | 22560B | 16B |
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