Как использовать Gold для оптимизации времени ссылки в LLVM 3.2 и Clang 3.3?

На llvm.org есть инструкции о том, как добавить плагин Gold в LLVM-gcc; однако, начиная с версии 3.2, они больше не используют LLVM-gcc, вместо этого используют Clang, и неясно, как его использовать.

  1. Кто-нибудь знает, как добавить плагин Gold в LLVM 3.2?
  2. Нужно ли вообще устанавливать этот плагин или он встроен в Clang?

Я читал, что если у вас нет плагина Gold в качестве компоновщика, если вы попробуете -O4 для LTO, он будет рассматривать его как -O3, но я полагаю, что это происходит, когда вы используете системный компоновщик gcc, а не при использовании Clang, верно?


person khalil Saedi    schedule 19.02.2013    source источник


Ответы (1)


1-Если вы не хотите ничего менять в каталоге home/bin, то вы можете скомпилировать и установить binutils и LLVM в том же месте, он автоматически сгенерирует ld, ar и (не ld_new) в каталоге llvm/bin и, поскольку llvm сначала ищет в своем собственном каталоге инструменты (clang -print-search-dirs), поэтому вы можете быть уверены, что clang сначала вызовет ld gold во время компоновки. Это не упоминается в LLVMgold.html, но необходимо создать каталог bfd-plugins в lib и установить туда LLVMgold.so и linLTO.so.

2- для поддержки LTO в LLVM нам нужен золотой плагин, и его нужно пересобрать для его поддержки. -O4 похож на -O3 -flto

person khalil Saedi    schedule 14.03.2013