2013-03-12 27 views
11

Trình biên dịch C cho phép nhúng mã lắp ráp vào chương trình C.Làm thế nào để nhúng LLVM lắp ráp hoặc nội tại trong chương trình C với Clang?

Tôi khá chắc chắn rằng Clang nên cho phép lắp ráp LLVM hoặc mã nội tại trong chương trình C. Làm thế nào tôi có thể nhúng lắp ráp LLVM trong mã C?

+4

Có, nó * nên * cho phép. Không, nó vẫn chưa làm, xin lỗi. –

+0

Nội tại nào? Nếu bạn chỉ muốn sử dụng, nói, ARM NEON nội tại, [bạn có thể làm điều đó mà không cần phải lắp ráp nội tuyến] (http://blog.llvm.org/2010/04/arm-advanced-simd-neon-intrinsics-and .html). –

+0

@robmayoff Đây là những gì tôi muốn nói: http://llvm.org/docs/LangRef.html#intrinsic-functions – Eonil

Trả lời

6

Hiện tại bạn không thể.

Tuy nhiên, bạn có thể viết một hàm lắp ráp LLVM riêng trong tệp riêng, đánh dấu nó là alwaysinline, sau đó biên dịch nó với các tệp còn lại của bạn - điều này sẽ mang lại cho bạn kết quả tương tự. Xem this related question on how to first compile your C files to IR and then link them together.

Bạn thậm chí có thể biên dịch các tệp riêng biệt và đảm bảo bạn thực hiện link-time optimization (LTO), cũng nên thực hiện tương tự.

Các vấn đề liên quan