Описание тега link-time-optimization

1 ответ

Как условно включить ltcg, только если Qt был собран с ltcg?

Иногда проект qmake создается с использованием Qt, который был скомпилирован с помощью ltcg. Поскольку параметр сборки Qt ltcg не распространяется автоматически на проект, использующий данную установку Qt, компоновщик MSVC тратит время и выдает след…
09 авг '18 в 19:25
0 ответов

Оптимизация времени соединения: что такое "слияние типов"

На этой странице GCC 5 перечисляет следующее в разделе Улучшения оптимизации во время соединения: Было реализовано объединение типов C++ на основе одного определения. Слияние типов обеспечивает лучшую девиртуализацию и анализ псевдонимов. Что такое …
0 ответов

Определение препроцессора для генерации временного кода Microsoft Link

После просмотра документов MSDN ( здесь, здесь и здесь) я не могу найти, существует ли макрос препроцессора, который MSVC определяет, когда он использует Link Time Generation Generation. Существует ли такой макрос?
04 май '18 в 17:23
1 ответ

Clang: Как проверить, был ли выполнен LTO

Для gcc этот ответ говорит нам о том, как мы можем проверить, была ли выполнена оптимизация Link-Time. Для clang я не вижу записей, похожих на .gnu.lto, В частности, у меня есть бинарный файл, в котором я совершенно уверен, что LTO должен иметь знач…
26 июн '18 в 17:21
1 ответ

Использование LTO с arm-none-eabi и newlib-nano

Я работаю над голым железом для проекта STM32F103 и использую GNU ARM Embedded версии 7-2017-q4-major. Я сейчас компилирую через GNU ARM Eclipse. Я нахожусь в точке, где мне нужно начать оптимизацию проекта для скорости, и в качестве первого шага я,…
06 июн '18 в 08:52
1 ответ

arm-none-eabi-g++ неправильно обрабатывает слабый псевдоним с -flto

Я программирую микроконтроллер STM32F413 с помощью SystemWorkbench 4 stm32. Векторы прерываний определяются в файле запуска сборки как слабые псевдонимы, как показано ниже: .weak TIM1_UP_TIM10_IRQHandler .thumb_set TIM1_UP_TIM10_IRQHandler,Default_H…
21 авг '18 в 10:09
1 ответ

Удалить мертвый код перед установкой ссылки

В проекте, который состоит из нескольких статически связанных объектных файлов, я заменяю один из них отдельной реализацией. Я хотел бы проверить свой код еще до того, как реализовал каждый символ, предоставленный замененным объектным файлом, поэтом…
0 ответов

Может ли gfortran выполнить оптимизацию времени соединения, которая привела бы к встраиванию чистой функции из другого блока перевода?

У нас есть база кода на Фортране, которая состоит из больших (более 5 тысяч строк) файлов модулей. Файлы выросли настолько сильно из-за страха, что компилятор не сможет учитывать встроенные вызовы кросс-модульных функций. Это все еще проблема с gcc …
26 июл '18 в 11:48
0 ответов

С включенной оптимизацией всей программы влияет ли встраивание на то, где реализован метод?

С включенной оптимизацией всей программы (она же время соединения) влияет ли на метод inline, где реализуется метод? Без включенной оптимизации всей программы методы, которые публично объявлены в заголовке, но реализованы в соответствующем cpp, очев…
0 ответов

Можете ли вы сделать статическую библиотеку ".a" с IR-кодом как gcc, так и clang?

И gcc, и clang реализуют оптимизацию во время соединения, позволяя объектные файлы.o) не только содержать целевой код машины, но и промежуточные представления (битовый код GIMPLE или LLVM), используемые самими компиляторами. Эти объектные файлы могу…
1 ответ

GCC -flto и встроенное ключевое слово

У меня простой вопрос: влияет ли ключевое слово inline на оптимизацию времени ссылки? Под оптимизацией времени соединения я имею в виду версию GCC, которая поддерживает -flto(Оптимизация времени соединения). Например: main.c #include "b.h" int main(…
18 мар '18 в 09:13
1 ответ

Может ли встроенное устройство nvlink функционировать из отдельных модулей компиляции?

Если отдельные единицы компиляции, которые подают в качестве входных данных для nvlink содержит ядра cuda и функции устройства, которые вызывают функции устройства, помеченные как __forceinline__Будут ли эти функции встроены? Предположим, что они бу…
25 июл '18 в 04:39
1 ответ

Всегда встроенные функции в разных.so

В Linux, используя gcc если я объявлю функцию в динамической библиотеке как __attribute__((always_inline)) и затем я динамически загружаю эту библиотеку, будет ли функция встроена динамическим компоновщиком? Я собираю динамические библиотеки, в -O3 …
1 ответ

Может ли LTO для gcc или clang оптимизироваться в методах C и C++

Если для gcc или clang используется оптимизация во время компоновки (LTO), возможно ли оптимизировать код за пределами границ языка C и C++? Например, может ли функция C быть встроена в C++?
30 дек '17 в 03:37
1 ответ

Оптимизация времени соединения (lto) для смешанных программ на C++/C

Интересно, можно ли было бы эффективно использовать оптимизацию во время соединения (lto) для программ, состоящих из TU с кодом C++, вызывающего некоторую функцию в TU с кодом C. Итак, есть ли способ встроить функцию C в результирующую программу? Ре…
14 ноя '17 в 06:50
0 ответов

Неопределенная ссылка с оптимизацией времени ссылки и флагом --as-required ld

У меня возникли некоторые проблемы при компиляции большого проекта C++, который использует оптимизацию времени ссылки. После некоторых раскопок мне удалось создать (почти) минимальный рабочий пример, демонстрирующий ту же проблему. Скажите, что у ме…
29 май '19 в 21:27
3 ответа

Разрешено ли LTO удалять неиспользуемый глобальный объект, если в другом модуле перевода есть код, основанный на побочных эффектах его построения?

Во-первых, просто чтобы избежать проблемы XY: эта проблема возникла по https://github.com/cnjinhao/nana/issues/445. Библиотечный код, вероятно, не должен делать этого (полагаться на конструирование неиспользуемого глобального объекта), но вопрос ско…
17 июн '19 в 12:28
1 ответ

INTERPROCEDURAL_OPTIMIZATION не устанавливается, даже если check_ipo_supported() работает в CMake

У меня есть следующий проект в CMake 3.14.0, который создает проект для 64-разрядного генератора Visual Studio 2017 (минимальная версия 3.10.0, потому что другие разработчики могут иметь предыдущие версии CMake, но больше 3.9.0): cmake_minimum_requi…
1 ответ

Работает ли монолитная оптимизация времени компоновки со статическими библиотеками?

В этой статье обсуждается, как объектные файлы могут содержать LLVM IR, который используется для оптимизации времени компоновки. Но что, если компоновщик компилирует проект, который включает статическую библиотеку, статические библиотеки также имеют…
11 окт '19 в 04:16
0 ответов

Как правильно использовать оптимизацию времени компоновки с исходными файлами и файлами сборки?

В настоящее время я играю с LTO для встроенной системы (чтобы увидеть, может ли она уменьшить размер), и у меня возникли некоторые проблемы с тем, чтобы все правильно связать, используя ld напрямую, и мне было интересно, что я делаю не так. В основн…
19 май '21 в 19:47