Frage

Ich versuche LLVM Inline-Funktion aus einer Bibliothek zu machen.

Ich habe LLVM Bitcode-Dateien (manuell erzeugt wird), dass ich zusammen mit llvm-link verbunden ist, und ich habe auch eine Bibliothek (in C geschrieben) zusammengestellt in Bitcode von clang und archiviert mit llvm-ar. Ich schaffe es zu Link alles zusammen und auszuführen, aber ich kann nicht verwalten LLVM bekommen eine Funktion aus der Bibliothek Inline. Jeder Hinweis darüber, wie dies zu tun?

War es hilfreich?

Lösung

Nachdem Sie die Bitcode-Dateien zusammen mit der Bibliothek verknüpfen, haben Sie einen Internalize Pass auf dem verknüpften Bitcode laufen? Der internalize Pass macht alle Funktionen (außer main()) statisch und sagt Optimierer / Code-Generator, dass die Funktionen sicher und ohne halten a für einige (nicht vorhanden) externe Referenz zur Verfügung kopieren inlined werden kann.

Ich verbinde manuell meine Bitcode Dateien und Bitcode Bibliotheken zusammen Code von llvm-ld geliehen, und ich tue das internalize Pass, aber ich bin nicht sicher, ob llvm-link funktioniert die internalize Pass oder nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top