2013-03-12 1 views
11

Компиляторы C позволяют вставлять код сборки в программу C.Как встраивать сборку LLVM или встроить в программу C с Clang?

Я уверен, что Clang должен позволить встраивать LLVM-сборку или собственный код в программу C. Как я могу встраивать сборку LLVM в код C?

+4

Да, это * должно * разрешить. Нет, это еще не все, извините. –

+0

Какая внутренность? Если вы просто хотите использовать, скажем, ARM NEON intrinsics, [вы можете сделать это, не прибегая к встроенной сборке] (http://blog.llvm.org/2010/04/arm-advanced-simd-neon-intrinsics-and .html). –

+0

@robmayoff Вот что я имел в виду: http://llvm.org/docs/LangRef.html#intrinsic-functions – Eonil

ответ

6

Прямо сейчас вы не можете.

Вы можете, однако, написать функцию сборки LLVM отдельно в своем собственном файле, пометить ее как alwaysinline, а затем скомпилировать ее с остальными вашими файлами - это даст вам тот же результат. См. this related question on how to first compile your C files to IR and then link them together.

Вы даже можете скомпилировать файлы по отдельности и убедиться, что вы выполняете команду link-time optimization (LTO), нужно сделать то же самое.