LLVM: различия между версиями

Материал из ALT Linux Wiki
Строка 9: Строка 9:
* clang - "LLVM native" C/C++/Objective-C компилятор, собирает код [http://clang.llvm.org/ в 3 раза быстрее, чем gcc], также имеет развитые средства для диагностики и анализа кода.
* clang - "LLVM native" C/C++/Objective-C компилятор, собирает код [http://clang.llvm.org/ в 3 раза быстрее, чем gcc], также имеет развитые средства для диагностики и анализа кода.
* lld - линковщик кода, который может заменить стандартный ld/gold из binutils, при этом поддерживает все стандартные команды и возможности, работает быстрее и имеет [https://archive.fosdem.org/2017/schedule/event/lld/attachments/slides/1446/export/events/attachments/lld/slides/1446/FosdemLLD2017.pdf ряд интересных особенностей].
* lld - линковщик кода, который может заменить стандартный ld/gold из binutils, при этом поддерживает все стандартные команды и возможности, работает быстрее и имеет [https://archive.fosdem.org/2017/schedule/event/lld/attachments/slides/1446/export/events/attachments/lld/slides/1446/FosdemLLD2017.pdf ряд интересных особенностей].
Все компоненты собраны с помощью самих себя с использованием технологии [http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html ThinLTO], позволяющей получить значительный выигрыш в оптимизации C++ кода и как следствие работает быстрее, чем предыдущие версии собранные gcc.


=== Известные проблемы ===
=== Известные проблемы ===

Версия от 00:07, 2 мая 2018

Особенности сборки пакетов проекта LLVM в ALTLinux Sisyphus

Введение

Несмотря на то, что проект LLVM является довольно зрелым и вполне сформировавшимся, в ALTLinux он появился и стал активно использоваться совсем недавно. Поэтому существует целый ряд проблем, которые будут решены в будущем или будут считаться отличительными особенностями.

Особенности сборки

В настоящий момент в Сизифе существуют след. компоненты:

  • llvm libs - пакет с библиотеками, реализующими генерацию оптимизированного кода для различных процессоров и архитектур.
  • clang - "LLVM native" C/C++/Objective-C компилятор, собирает код в 3 раза быстрее, чем gcc, также имеет развитые средства для диагностики и анализа кода.
  • lld - линковщик кода, который может заменить стандартный ld/gold из binutils, при этом поддерживает все стандартные команды и возможности, работает быстрее и имеет ряд интересных особенностей.

Все компоненты собраны с помощью самих себя с использованием технологии ThinLTO, позволяющей получить значительный выигрыш в оптимизации C++ кода и как следствие работает быстрее, чем предыдущие версии собранные gcc.

Известные проблемы

  • Хаотическая поддержка пакета.
  • Нет стратегии развития экосистемы LLVM в ALTLinux.
  • Опции сборки несовместимы с binutils altbug:34801 и gcc altbug:34685

Планы на будущее