Исключение функций из оптимизатора времени компоновки GCC (LTO)

Кто-нибудь знает, есть ли способ исключить определенные функции из оптимизатора времени компоновки GCC? Мы тестируем использование оптимизатора времени компоновки GCC в небольшом встроенном проекте ARM, и при его включении высвобождается приличное количество невероятно ценной флэш-памяти, но это вызывает серьезные проблемы с производительностью для некоторых функций.

Я пытаюсь выяснить, есть ли способ с помощью #pragma или чего-то подобного, чтобы исключить определенные функции из оптимизатора времени компоновки. Это позволит нам использовать большую часть экономии на флэш-памяти без снижения производительности этих функций.

Сделайте их всегда встроенными

0___________ 01.05.2018 14:35

Кстати, какую устаревшую микросхему вы используете? У $ 3 есть 512kb, что много.

0___________ 01.05.2018 14:37

Не уверен, что это правильный способ справиться с этим, но вы можете посмотреть на такие атрибуты, как noipa (или более слабые атрибуты в его списках документации).

Marc Glisse 01.05.2018 14:58

@ PeterJ_01 Мы используем NXP Kinetis EA micro. Это автомобильная микросхема, и стоимость этого проекта имеет значение в копейках. Я ценю эту мысль, но я бы не стал задавать этот вопрос, если бы можно было просто перейти к большей части (поверьте мне, я бы хотел пойти дальше).

harmankardon 01.05.2018 15:06

Так как же LTO может уменьшить использование флэш-памяти? Только не встраивая функцию.

0___________ 01.05.2018 15:51

Я вижу, что это старый вопрос, но, поскольку ответа нет, я предлагаю его в качестве решения. Если вы поместите функции, которые должны быть не затронуты LTO, в отдельный исходный файл и скомпилируете его без флагов LTO, ld не сможет выполнить LTO для этих функций.

henrik 27.08.2019 11:40
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
6
164
0

Другие вопросы по теме