Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ===== Introduction ===== Link-Time Optimization (LTO) is a compiler toolchain feature that enables additional program optimizations by deferring optimization passes to link time. ===== Kernel ===== [[https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-building|Build and link a kernel]] with: * WITHOUT_CTF=yes * WITHOUT_DTRACE=yes * sys/conf/kern.mk -flto=thin (for all clang invocations) ===== Ports ===== LTO is enabled on LLVM 3.7, but it needs the Gold binutils ld(1) plugin. To build with LTO, change your make.conf this way: <code> CC=/usr/local/bin/clang37 CXX=/usr/local/bin/clang++37 CPP=/usr/local/bin/clang-cpp37 CFLAGS.clang+=-flto NM=/usr/local/bin/nm NMFLAGS+=--plugin /usr/local/llvm37/lib/LLVMgold.so LD=/usr/local/bin/ld.gold LDFLAGS+=-fuse-ld=gold -Wl,--plugin /usr/local/llvm37/lib/LLVMgold.so </code> ---- {{tag>Stale Performance}} linktimeoptimization.txt Last modified: 2021/10/07 00:25by KubilayKocak