2013-03-12 10 views
11

C-Compiler können Assemblercode in ein C-Programm einbetten.Wie LLVM Assembly oder intrinsics in C-Programm mit Clang einbetten?

Ich bin ziemlich sicher, dass Clang LLVM Assembly oder intrinsischen Code in C-Programm einbetten sollte. Wie kann ich LLVM-Assembly in C-Code einbetten?

+4

Ja, es sollte * es * erlauben. Nein, tut es noch nicht, Entschuldigung. –

+0

Welche eigenschaften? Wenn Sie zum Beispiel ARM NEON intrinsics verwenden möchten, [können Sie das tun, ohne auf Inline-Assembly zurückgreifen zu müssen] (http://blog.llvm.org/2010/04/arm-advanced-simd-neon-intrinsics-and) .html). –

+0

@robmayoff Das habe ich gemeint: http://llvm.org/docs/LangRef.html#intrinsic-functions – Eonil

Antwort

6

Jetzt können Sie nicht.

Sie können jedoch eine LLVM-Assembly-Funktion separat in eine eigene Datei schreiben, als alwaysinline markieren und sie dann mit dem Rest Ihrer Dateien kompilieren - dies sollte Ihnen das gleiche Ergebnis bringen. Siehe this related question on how to first compile your C files to IR and then link them together.

Sie können sogar die Dateien separat kompilieren und sicherstellen, dass Sie link-time optimization (LTO) ausführen, sollte das gleiche tun.