LLVM 16.0 وتم إصداره وهذه أخبارها

شعار LLVM

LLVM هو إطار عمل لتطوير المجمعات بالإضافة إلى المساعدة في بناء لغات برمجة جديدة وتحسين اللغات الحالية.

بعد ما يزيد قليلاً عن ستة أشهر من التطوير ، اطلاق ال .. انطلاق ال .. اقلاع ال النسخة الجديدة من المشروع LLVM 16.0، الإصدار الذي يتم فيه تنفيذ عدد كبير من التغييرات والتحسينات.

بالنسبة لأولئك الذين ليسوا على دراية بـ LLVM ، يجب أن تعرف أن هذا هو مترجم متوافق مع دول مجلس التعاون الخليجي (المجمعين ، والمحسّنين ، ومولدي الأكواد) التي تجمع البرامج في رمز البت الوسيط للتعليمات الافتراضية مثل RISC (جهاز افتراضي منخفض المستوى مع نظام تحسين متعدد المستويات).

يمكن تحويل الشفرة الزائفة التي تم إنشاؤها بواسطة مترجم JIT إلى تعليمات الآلة فقط في وقت تنفيذ البرنامج.

الميزات الرئيسية الجديدة لـ LLVM 16.0

في هذا الإصدار الجديد الذي تم تقديمه ، يمكننا العثور على العديد من التحسينات المهمة في رنة 16.0 ، والتي يبرز منها معيار C ++ / ObjC ++ الافتراضي ، والذي تم ضبطه على gnu ++ 17 (المعروف سابقًا باسم gnu ++ 14) ، والذي يعني دعم ميزات C ++ 17 مع امتدادات GNU افتراضيًا. يُسمح باستخدام العناصر المحددة في معيار C ++ 17 في رمز LLVM.

من التغييرات البارزة أنه تمت إضافته دعم وحدات المعالجة المركزية Cortex-A715 و Cortex-X3 و Neoverse ملحقات V2 و Armv8.3 وميزات متعددة الإصدارات للواجهة الخلفية AArch64.
La توافق النظام الأساسي تم إيقاف إنتاج Armv2 و Armv2A و Armv3 و Armv3M في الواجهة الخلفية لبنية ARM ، والتي لم يتم ضمان إنشاء الكود الصحيح لها. تمت إضافة القدرة على إنشاء رمز للتعليمات للعمل مع الأعداد المركبة والمضافة دعم البنى من مجموعات التعليمات (ISA) AMX-FP16 و CMPCXADD و AVX-IFMA و AVX-VNNI-INT8 و AVX-NE-CONVERT إلى الواجهة الخلفية X86.

إلى جانب ذلك ، تمت زيادة متطلبات بناء LLVM ، كما يجب أن يكون الإصدار متوافقًا الآن مع معيار C ++ 17 ، أي أن التصميم يتطلب على الأقل GCC 7.1 أو Clang 5.0 أو Apple Clang 10.0 أو Visual Studio 2019 16.7.

من ناحية أخرى ، فإنه يسلط الضوء أيضًا واجهات خلفية محسنة لبنيات MIPS و PowerPC و RISC-V، بالإضافة إلى دعم تصحيح أخطاء الملفات التنفيذية ذات 64 بت لبنية LoongArch إلى مصحح أخطاء LLDB وتحسين معالجة رموز تصحيح أخطاء COFF.

من التغييرات الأخرى التي تبرز:

  • في مكتبة Libc ++ ، تركز العمل الرئيسي على تنفيذ الدعم للميزات الجديدة لمعايير C ++ 20 و C ++ 23.
  • تم تقليل وقت الارتباط بشكل كبير في رابط LDD من خلال موازاة فحص نقل العنوان وعمليات تهيئة القسم. دعم إضافي لضغط القسم باستخدام خوارزمية ZSTD.
  • يتم أيضًا تمييز الوظائف المتقدمة التي يتم تنفيذها باستخدام معيار C ++ 20.
  • التقاط روابط منظمة في وظائف لامدا.
  • عامل المساواة ضمن التعبيرات.
  • القدرة على عدم تحديد الكلمة الأساسية من نوع في بعض السياقات ،
  • تمت إضافة السماح بالتهيئة بين قوسين ("Aggr (val1، val2)").
  • تم تحديد الوظائف المنفذة في معيار C ++ 2b المستقبلي.
  • الدعم المقدم من النوع char8_t ،
  • تم تمديد نطاق الأحرف المسموح باستخدامها في "\ N {…}" ،
  • تمت إضافة القدرة على استخدام المتغيرات التي تم تعريفها على أنها "constexpr ثابتة" في الدوال المعلنة على أنها constexpr.
  • الوظائف المنفذة المحددة في معيار C2x C المستقبلي:
  • تمت إضافة دعم لتحميل ملفات تكوين متعددة (يتم أولاً تحميل ملفات التكوين الافتراضية ، ثم تلك المحددة عبر علامة “–config =” ، والتي يمكن الآن تحديدها عدة مرات).
  • تم تغيير ترتيب التحميل لملفات التكوين الافتراضية: يحاول clang تحميل الملف أولاً - .cfg وإذا لم يتمكن من العثور عليه ، فإنه يحاول تحميل ملفين .cfg و .cfg.
  • تمت إضافة علامة بناء جديدة "تخصيص محاذاة fcoro" للتوزيع الروتيني المحاذي للإطار.
  • تمت إضافة علامة "-fmodule-output" لتمكين نموذج البناء أحادي الطور لوحدات C ++ المعيارية.
  • الوضع المضاف "-Rpass-analysis = stack-frame-layout" لتشخيص المشكلات المتعلقة بتخطيط إطار المكدس.
  • تمت إضافة سمة __attribute __ ((target_version ("cpu_features"))) السمة وتوسيع وظائف __attribute __ ((target_clones ("cpu_features1 ″،" cpu_features2 "،…))) لتحديد إصدارات معينة من الميزات التي توفرها وحدة المعالجة المركزية AArch64 .
  • أدوات التشخيص المحسنة:
  • تمت إضافة تحذير "-Wsingle-bit-bitfield-Constant-conversion" للقبض على الاقتطاع الضمني عند تعيين واحد إلى حقل بت موقع أحادي البت.
  • تشخيصات موسعة لمتغيرات constexpr غير المهيأة.
  • تمت إضافة تحذيرات "-Wcast-function-type -rict" و "-Wincompatible-function-pointer-types -rict" للوقوف على المشكلات المحتملة عند إرسال أنواع الوظائف.

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها ، يمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.