2013-09-05 31 views
6

Tôi muốn biết những điều sau đây về dự án Compiler-RT của LLVM: từ chương trình được gọi ra. Theo hiểu biết của tôi, Compiler-RT là một tập hợp các hàm xử lý các lệnh trong LLVM mà không thực sự có các đối tác phần cứng (có nhiều hơn thế không?). Vì vậy, nếu tôi sử dụng phân chia trong LLVM, nó nên được thay thế bằng một hàm Compiler-RT thích hợp. Đầu tiên, nếu điều này không chính xác, hãy sửa tôi!Đối với những gì và từ đâu là Compiler-RT được gọi?

Thứ hai, tôi rất tò mò về việc ai tạo ra việc sử dụng Compiler-RT. Là nó Clang hoặc là nó LLVM trực tiếp. Tôi có thể viết một front-end khác cho LLVM và LLVM có thể tự động xử lý việc sử dụng Compiler-RT khi thích hợp không?

Trả lời

5

Cả hai xác nhận của bạn đều chính xác. Một backend LLVM phải ánh xạ LLVM IR tới các chỉ dẫn riêng cho từng đích. Nếu một lệnh không được hỗ trợ nguyên bản, nó phải được thay thế (hợp pháp hoá). Bạn có thể thấy điều này diễn ra trong TargetLowering, bản đồ này trực tiếp ánh xạ tới các hàm thời gian chạy trong Compiler RT.

Giao diện người dùng không tham gia.

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