llvm-ld
ist ein Ersatz für den System-Linker, der sowohl LLVM-Bitcode als auch nativen Code unterstützt. Er erzeugt standardmäßig ausführbare Bitcode-Dateien (dh die resultierende ausführbare Datei ruft den Bitcode-Interpreter auf), kann aber auch verwendet werden, um native ausführbare Dateien zu erzeugen.
Ich verwende llvm-ld
nicht direkt, da es bequemer ist, die Frontends llvmc
und clang
zu verwenden, die bei Bedarf die entsprechenden Programme der LLVM-Toolchain aufrufen ( note: llvmc
wurde als experimentell markiert und scheint in der Version 3.0 entfernt worden zu sein.
llvm-link
ist ein Tool auf niedrigerer Ebene, das mehrere Bitcodedateien zu einem einzigen vereinigt. Die Dokumentation erwähnt nicht, ob es Optimierungen gibt, aber es scheint dies nicht zu tun . Die nächsten Optimierungsdurchläufe werden bei der nativen Codegenerierung ausgelöst.