Skip to content

Commit

Permalink
cmake: enable -mcall-prologues
Browse files Browse the repository at this point in the history
Reduces flash memory usage by ~5KB

The CMake build outputs an ASM file for the firmware image  and is human readable.
To see the impacted functions, look for these routines:

__prologue_saves__
__epilogue_restores__

They should come in pairs.

For more info about this option, see:
https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/AVR-Options.html#AVR-Options
  • Loading branch information
gudnimg committed Aug 3, 2024
1 parent ff16bfd commit d3ed7d1
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,9 @@ if(CMAKE_CROSSCOMPILING)
add_compile_options(-flto -fno-fat-lto-objects)
add_link_options(-flto)

# Call Prologues/Epilogues to reduce code size
add_compile_options(-mcall-prologues)

# Create this target before we apply the GC options
add_library(avr_core STATIC ${AVR_SOURCES})
set_reproducible_target(avr_core)
Expand Down

0 comments on commit d3ed7d1

Please sign in to comment.