Skip to main content
  • Products
  • Evaluate our Software
  • Downloads
  • Free Utilities
  • Purchase
  • Support
  • About Us
  • Blog
  • Forum
  • Search
    • Contact Us
    • Forum
    • Wiki
    • Web Shop
    • Newsletter
    • RSS
  •   Jobs
  •   Videos
  •   Blog
  •   Sustainability
  • Embedded Studio
  • SEGGER Linker
  • Technology
  • Toolchain
  • Editions
  • License
SEGGER - Embedded Studio Product Icon

Link Time Optimization

Embedded Studio enables link time optimization to make your code even smaller.

  • One-click enable, no tinkering with command-line options
  • Linker-independent, works with GNU Linker and SEGGER Linker
  • Save up to 10% of ROM
Embedded Studio Downloads

Embedded Studio can run link time optimization (LTO, also intermodular optimization) on your project to produce a smaller application.

LTO is an additional step in the build process which is executed before the actual linking. It combines all input object files into one module and re-assembles it, which enables the compiler to further optimize code that came from different sources.

Link time optimization does not require changes in the source code or the linker scripts. You can simply enable it in the project options of your release configuration.

Embedded Studio's link time optimization can be used with the legacy GNU Linker as well as with the modern SEGGER Linker. In contrast to standard (GCC) makefile-based build systems, Embedded Studio made LTO an independent, stand-alone step.

Link time optimization mainly works on code and constant data and can reduce the ROM (Flash) requirements by up to 10%.

Use LTO in Embedded Studio

To use link time optimization in Embedded Studio, you simply need to enable it.

  1. Open the Project Properties (Right-click on the project in Project Explorer -> Options...
  2. Select the configuration you want LTO to be enabled in (usually your Release configuration)
  3. Set "Link Time Optimization" to "Yes".

LTO is ideally used with an application that is set to be optimized for size (set "Optimization Level" to "Optimize For Size").

When you now build your application, you will see an additional step "Link Time Optimization" before "Linking" in the Output Window.

More Information

Purchase

  • Pricing

Technology

  • CPU Support
  • System Requirements
  • Installation
  • Build Performance
  • Project Management
  • Compiler
  • Code Editor
  • Code Analysis
  • Debugger
  • SEGGER Semihosting
  • Project Importer

Toolchain

  • SEGGER Compiler
  • SEGGER Linker
  • SEGGER C++ Library

Editions

  • ARM
  • Cortex-M
  • RISC-V
  • PRO Cortex-M
  • PRO Cortex-A/R

License

  • Licensing conditions
  • License Activation

About us

  • The Company
  • Partners
  • Job Offers
  • Media
  • Contact us

Support

  • Technical Support
  • Blog
  • Forum
  • Wiki

Downloads

  • Application Notes
  • Embedded Studio
  • embOS
  • emCompress
  • emCrypt
  • emFile
  • emLib
  • emLoad
  • emModbus
  • emNet
  • emPower
  • emSecure
  • emSSH
  • emSSL
  • emUSB-Device
  • emUSB-Host
  • emVNC
  • emWin
  • Flasher
  • Free Utilities
  • IoT
  • J-Link / J-Trace
  • Linux Studio
  • SystemView
  • CE / REACH

Social Media

Headquarters

SEGGER Microcontroller GmbH

Ecolab-Allee 5
40789 Monheim am Rhein, Germany
info@segger.com
Tel.: +49-2173-99312-0
Fax: +49-2173-99312-28

Locations

USA: SEGGER Microcontroller Systems LLC

Boston area
101 Suffolk Lane
Gardner, MA 01440, USA
us-east@segger.com
Tel.: +1-978-874-0299
Fax: +1-978-874-0599

Silicon Valley
Milpitas, CA 95035, USA
us-west@segger.com
Tel.: +1-408-767-4068

China: SEGGER Microcontroller China Co., Ltd.

Room 218, Block A, Dahongqiaoguoji
No. 133 Xiulian Road
Minhang District, Shanghai 201199, China
china@segger.com
Tel.: +86-133-619-907-60

ISO 9001 certified

ISO 9001

30+ years of experience

First-class embedded software tools since 1992
  • Imprint
  • Disclaimer
  • Privacy Policy

© 2023 SEGGER - All rights reserved.