Jika Anda memiliki banyak file sumber, Anda mungkin sebenarnya ingin menggunakan optimasi waktu-tautan untuk menghasilkan satu file bitcode untuk seluruh program. Jawaban lain yang diberikan akan menyebabkan Anda berakhir dengan file bitcode untuk setiap file sumber.
Sebagai gantinya, Anda ingin mengompilasi dengan optimasi tautan-waktu
clang -flto -c program1.c -o program1.o
clang -flto -c program2.c -o program2.o
dan untuk langkah penghubung terakhir, tambahkan argumen -Wl, -plugin-opt = also-emit-llvm
clang -flto -Wl,-plugin-opt=also-emit-llvm program1.o program2.o -o program
Ini akan memberikan Anda berdua program dikompilasi dan bitcode sesuai dengan itu (program.bc). Anda kemudian dapat memodifikasi program.bc dengan cara apa pun yang Anda suka, dan mengkompilasi ulang program yang dimodifikasi kapan saja dengan melakukan
clang program.bc -o program
meskipun perlu diketahui bahwa Anda perlu menyertakan flag linker yang diperlukan (untuk perpustakaan eksternal, dll) pada langkah ini lagi.
Perhatikan bahwa Anda harus menggunakan penghubung emas agar ini berfungsi. Jika Anda ingin memaksa dentang menggunakan tautan tertentu, buat symlink ke tautan yang bernama "ld" di direktori khusus yang disebut "fakebin" di suatu tempat di komputer Anda, dan tambahkan opsi
-B/home/jeremy/fakebin
untuk setiap langkah yang menghubungkan di atas.