Một vấn đề trong thực tế là LLVM đã có nhiều mục tiêu di chuyển hơn.
GHC gặp sự cố khi cố gắng hỗ trợ nhiều phiên bản LLVM. Có một hoạt động discussion trên danh sách gửi thư ghc-dev về điều này.
Btw, hiện tại phụ trợ llvm trong ghc là sau khi Haskell được dịch sang ngôn ngữ cmm (mà tôi tin chủ yếu là C-- mở rộng bằng một số thanh ghi nhất định từ ngôn ngữ STG) và do điều kiện trên khó khăn -address, có tối ưu hóa dư thừa đang được thực hiện mà làm chậm quá trình biên dịch.
Ngoài ra, trong lịch sử và hiện tại AFAIK, dự án LLVM không ưu tiên cung cấp nền tảng di động và một số nhà phát triển đã nêu rõ rằng nó là is a compiler IR and not a form of portable assembly language.
LLVM IR bạn viết cho một mục tiêu có ý định có thể không hề hữu ích cho một mục tiêu dự định khác. Để so sánh, trang web C-- thực sự đề cập đến nó như là lắp ráp di động. "Bạn sẽ hạnh phúc hơn nhiều với một ngôn ngữ lắp ráp di động có thể là ..." là một báo giá từ their website. Trang web đó cũng đề cập đến một giao diện thời gian chạy để dễ dàng thực hiện thực hiện của việc thu gom rác thải và xử lý ngoại lệ.
Vì vậy, bạn có thể nghĩ về C-- là nền tảng chung cho tất cả các giao diện người dùng có nhiều điểm chung hơn với mã byte CIL và Java và LLVM IR làm nền tảng chung cho tất cả các chương trình phụ trợ của bạn tạo điều kiện cho việc tối ưu hóa các mức tối ưu hóa cấp thấp phổ biến cho nhiều mục tiêu. LLVM IR cũng cung cấp phần thưởng thêm rằng dự án LLVM sẽ thực hiện rất nhiều tối ưu hóa mức thấp đó. Điều đó đang được nói, trong một số cách LLVM IR thực sự có thể được coi là cấp cao hơn C--, ví dụ LLVM IR có các loại khác nhau, như trong C-- tất cả mọi thứ chỉ là bit vectơ.
bạn cần có blog –
Bạn cần sử dụng tùy chọn báo giá cho các trích dẫn dài như vậy. – Unknown
Bản chỉnh sửa dường như cho thấy rằng * đã được * dán từ một blog. – ShreevatsaR