پس به عنوان جمعبندی: حالا که rust و هسکل به عنوان بکاند از llvm استفاده میکنن چه مزایایی داره براشون؟
+ اگه پردازندهی جدیدی بیاد و بخوان ساپورتش کنن، کافیه صبر کنن تا llvm اون رو ساپورت کنه و بعدش دیگه خیلی کاری ندارن.
+ اگر امکان بهینهسازی جدیدی توی یک پردازنده یا به شکل عمومی ابداع بشه، کافیه که توی llvm پیادهسازی بشه و بعدش دیگه نیاز نیست فرانتاند تغییر خاصی بکنه.
+ اگر میخوان به زبونشون قابلیت جدید اضافه کنن لازم نیست نگران این باشن که چطوری کد اسمبلیش توی پلتفرمهای مختلف چطوری میشه، بلکه فقط کافیه بتونن کد LLVM IR معادلشو بسازن که چون خیلی چیزها رو خودش پشتیبانی میکنه کار خیلی سادهتریه.
شاید بپرسید که کامپایلر هسکل که قدیمیتر از این حرفاس، چطوری خودش بکاند نداشت و منتظر llvm بود. اتفاقا خودش هم بکاند داشت و هنوزم امکان code generation داره ولی امکان تولید کد با llvm هم اضافه شده و برنامهنویس میتونه کدی که براش بهینهتره رو انتخاب کنه.
در کنار اینجا llvm قابلیت پیادهسازی بهینهسازی متنوعی هم میده مثل JIT یا transform passes که من خیلی بلد نیستم!
Post #2661
741
نوشتههای ترمینالی در مورد llvm بیشتر بدانیم. https://www.infoworld.com/article/3247799/what-is-llvm-the-power-behind-swift-rust-clang-and-more.html
- 🔥 7
- 👍 5
- ❤🔥 1