2013-03-12 14 views
11

C derleyicileri, bir C programında montaj kodunu gömmeye izin verir.C programında LLVM derlemesi veya intrinsics nasıl eklenir?

Clang'ın C programına LLVM montajını veya asıl kodu yerleştirmesine izin vermesi gerektiğinden eminim. LLVM montajını C koduna nasıl yerleştirebilirim?

+4

Evet, buna izin ver *. Hayır, henüz yapmadı, üzgünüm. –

+0

Hangi içseller? ARM NEON intrinsics'i kullanmak istiyorsanız, bunu [inline assembly'a başvurmadan yapabilirsiniz] (http://blog.llvm.org/2010/04/arm-advanced-simd-neon-intrinsics-and html). –

+0

@robmayoff Bu benim kastettiğim şey: http://llvm.org/docs/LangRef.html#intrinsic-functions – Eonil

cevap

6

Şu an yapamazsınız. Ancak, bir LLVM derleme işlevini kendi dosyasında ayrı olarak yazabilir, alwaysinline olarak işaretleyebilir ve daha sonra dosyalarınızın geri kalanıyla derleyebilirsiniz. Bu, aynı sonucu elde etmenizi sağlar. Bakınız this related question on how to first compile your C files to IR and then link them together.

Dosyaları ayrı olarak derleyebilir ve link-time optimization (LTO) gerçekleştirdiğinizden emin olabilirsiniz, aynı şeyi yapmalısınız.