LLVM 13.0 گڏ ڪرڻ وارو سوٽ ڇڏڻ

ڇهن مهينن جي ترقيءَ کان پوءِ، LLVM 13.0 پروجيڪٽ جو رليز پيش ڪيو ويو - هڪ GCC-مطابقت رکندڙ ٽول ڪٽ (ڪمپائلر، آپٽمائيزر ۽ ڪوڊ جنريٽر) جيڪو پروگرامن کي RISC-جهڙي ورچوئل هدايتن جي وچ واري بٽ ڪوڊ ۾ گڏ ڪري ٿو (هڪ گهٽ-سطح واري ورچوئل مشين سان. گھڻ-سطح اصلاحي نظام). ٺاهيل pseudocode کي JIT ڪمپيلر استعمال ڪندي مشين جي هدايتن ۾ سڌو سنئون پروگرام جي عمل جي وقت ۾ تبديل ڪري سگھجي ٿو.

Clang 13.0 ۾ بهتري:

  • گارنٽيڊ ٽيل ڪالز (هڪ فنڪشن جي بلڪل آخر ۾ سب روٽين کي ڪال، جيڪڏهن سب روٽين پاڻ کي ڪال ڪري ٿي ته ٽيل ريڪرشن ٺاهيندي) هاڻي سپورٽ ٿيل آهن. گارنٽيڊ ٽيل ڪالز کي C++ ۾ "[[clang::musttail]]" وصف ۽ C ۾ "__attribute__((musttail))" استعمال ڪندي سپورٽ ڪيو ويندو آهي، جيڪو "return" بيان ۾ استعمال ٿيندو آهي. هي خاصيت اسٽيڪ اسپيس بچائڻ لاءِ ڪوڊ کي فليٽ آئٽريشن ۾ فليٽ ڪندي اصلاح کي فعال بڻائي ٿي.
  • C++ 11-اسٽائل جي خاصيت جي وصفن کي هاڻي "[[]]" فارميٽ استعمال ڪندي، ڪلانگ "استعمال ڪندي" اعلانن ۽ ايڪسٽينشن ۾ سپورٽ ڪيو ويندو آهي.
  • يوزر ڪوڊ ۾ محفوظ سڃاڻپ ڪندڙن جي وضاحت ڪرڻ وقت ڊيڄاريندڙ ڏيکارڻ لاءِ "-Wreserved-identifier" جھنڊو شامل ڪيو ويو.
  • جيڪڏهن ڪو پيرا ميٽر يا متغير سيٽ ڪيو ويو آهي پر استعمال نه ڪيو ويو آهي ته خبرداري پرنٽ ڪرڻ لاءِ "-Wunused-but-set-parameter" ۽ "-Wunused-but-set-variable" جھنڊا شامل ڪيا ويا.
  • "-Wnull-pointer-subtraction" جھنڊو شامل ڪيو ويو آهي ته جيئن خبردار ڪيو وڃي ته جيڪڏهن ڪوڊ غير وضاحتي رويي جو سبب بڻجي سگهي ٿو ڇاڪاڻ ته گھٽائڻ جي عملن ۾ null pointer جي استعمال جي ڪري.
  • هر ڪوڊ فائل لاءِ هڪ اضافي ".su" فائل پيدا ڪرڻ لاءِ "-fstack-usage" جھنڊو شامل ڪيو ويو آهي جنهن ۾ پروسيس ٿيل فائل ۾ بيان ڪيل هر فنڪشن لاءِ اسٽيڪ فريم جي سائيز بابت معلومات شامل آهي.
  • جامد تجزيه نگار ۾ هڪ نئون آئوٽ پُٽ قسم آهي، "sarif-html"، جيڪو HTML ۽ Sarif ٻنهي فارميٽ ۾ رپورٽون ٺاهي ٿو. هڪ نئون چيڪ، allocClassWithName، شامل ڪيو ويو آهي. "-analyzer-display-progress" آپشن هاڻي هر فنڪشن لاءِ تجزيو جو وقت ڏيکاري ٿو. سمارٽ پوائنٽر تجزيه نگار (alpha.cplusplus.SmartPtr) تقريبن مڪمل آهي.
  • اوپن سي ايل سپورٽ کي وڌايو ويو آهي. نئين cl_khr_integer_dot_product، cl_khr_extended_bit_ops، __cl_clang_bitfields، ۽ __cl_clang_non_portable_kernel_param_types ايڪسٽينشن لاءِ سپورٽ شامل ڪئي وئي آهي. اوپن سي ايل 3.0 وضاحتن تي عمل درآمد جاري رکيو ويو آهي. سي لاءِ، اوپن سي ايل 1.2 ڊفالٽ طور استعمال ڪيو ويندو آهي جيستائين ڪو مختلف نسخو واضح طور تي چونڊيو نه وڃي. سي++ لاءِ ".clcpp" ايڪسٽينشن سان فائلن لاءِ سپورٽ شامل ڪئي وئي آهي.
  • اوپن ايم پي 5.1 وضاحت ۾ بيان ڪيل لوپ ٽرانسفارميشن هدايتن ("#pragma omp unrol" ۽ "#pragma omp tile") لاءِ سپورٽ لاڳو ڪئي وئي آهي.
  • ڪلنگ فارميٽ يوٽيليٽي کي هيٺ ڏنل اختيارن سان اپڊيٽ ڪيو ويو آهي: تبصرن کان اڳ اسپيس جي تعداد کي بيان ڪرڻ لاءِ SpacesInLineCommentPrefix، IndentAccessModifiers، LambdaBodyIndentation، ۽ PPIndentWidth رڪارڊ جي ترتيب کي ڪنٽرول ڪرڻ لاءِ، lambda ايڪسپريشن، ۽ پري پروسيسر هدايتون. هيڊر فائل لسٽ ترتيب ڏيڻ جي صلاحيتن (SortIncludes) کي وڌايو ويو آهي. JSON فائل فارميٽنگ لاءِ سپورٽ شامل ڪئي وئي آهي.
  • ڪلينگ-ٽيڊي لنٽر ۾ وڏي تعداد ۾ نوان چيڪ شامل ڪيا ويا آهن.

LLVM 13.0 ۾ اهم جدت:

  • CET ٽيڪنالاجي استعمال ڪرڻ لاءِ "-ehcontguard" آپشن شامل ڪيو ويو (Windows ڪنٽرول-فلو انفورسمينٽ ٽيڪنالاجي) ريٽرن-اورينٽيڊ پروگرامنگ (ROP) ٽيڪنڪ استعمال ڪندي ٺاهيل استحصال جي عمل کان استثنا هينڊلنگ جي مرحلي تي تحفظ لاءِ.
  • ڊيبگ انفو-ٽيسٽ پروجيڪٽ جو نالو بدلائي ڪراس-پروجيڪٽ-ٽيسٽ رکيو ويو آهي ۽ اهو مختلف منصوبن جي حصن جي جانچ لاءِ ٺاهيو ويو آهي، صرف ڊيبگ معلومات تائين محدود نه آهي.
  • بلڊ سسٽم ڪيترن ئي ورڇن جي تعمير جي حمايت ڪري ٿو، مثال طور، هڪ يوٽيلٽيز سان ۽ ٻيو ڊولپرز لاءِ لائبريرين سان.
  • AArch64 آرڪيٽيڪچر لاءِ بيڪ اينڊ اسمبلر ۾ Armv9-A RME (ريئلم مئنيجمينٽ ايڪسٽينشن) ۽ SME (اسڪيليبل ميٽرڪس ايڪسٽينشن) ايڪسٽينشن لاءِ سپورٽ لاڳو ڪري ٿو.
  • هيڪساگون آرڪيٽيڪچر جي پس منظر ۾ ISA V68/HVX لاءِ سپورٽ شامل ڪئي وئي آهي.
  • x86 بيڪ اينڊ ۾ AMD Zen 3 پروسيسرز لاءِ بهتر سپورٽ آهي.
  • AMDGPU بيڪ اينڊ ۾ GFX1013 RDNA2 APU لاءِ سپورٽ شامل ڪئي وئي آهي.
  • Libc++ C++20 ۽ C++2b معيارن جي نئين خاصيتن کي لاڳو ڪرڻ جاري رکي ٿو، جنهن ۾ "تصور" لائبريري جي مڪمل ٿيڻ شامل آهي. پليٽ فارم لاءِ Windows MinGW تي ٻڌل std::filesystem لاءِ سپورٽ شامل ڪئي وئي آهي. هيڊر فائلن کي الڳ ڪيو ويو آهي. ، ۽ نامڪمل ڪارڪردگي سان هيڊر فائلن کي غير فعال ڪرڻ لاءِ LIBCXX_ENABLE_INCOMPLETE_FEATURES بلڊ آپشن شامل ڪيو ويو.
  • ايل ايل ڊي لنڪر کي بگ-اينڊيئن آرچ 64 پروسيسرز کي سپورٽ ڪرڻ لاءِ وڌايو ويو آهي، ۽ معياري پروگرامن کي ڳنڍڻ جي اجازت ڏيڻ لاءِ مچ-او بيڪ اينڊ کي بهتر بڻايو ويو آهي. ايل ايل ڊي استعمال ڪندي گليبڪ کي ڳنڍڻ لاءِ ضروري بهتري شامل ڪئي وئي آهي.
  • llvm-mca (مشين ڪوڊ اينالائيزر) يوٽيليٽي کي پروسيسرز جي مدد لاءِ اپڊيٽ ڪيو ويو آهي جيڪي هدايتون ان آرڊر (ان آرڊر سپر اسڪيلر پائپ لائن) تي عمل ڪن ٿا، جهڙوڪ ARM Cortex-A55.
  • AArch64 پليٽ فارم لاءِ LLDB ڊيبگر هاڻي پوائنٽر جي تصديق، ميموري ٽيگنگ ايڪسٽينشن (MemTag) ميڪانيزم، ۽ SVE رجسٽرن کي مڪمل طور تي سپورٽ ڪري ٿو. هر ميموري مختص آپريشن سان ٽيگ کي لاڳاپيل ڪرڻ ۽ انهي کي يقيني بڻائڻ لاءِ ته پوائنٽر ميموري رسائي دوران صحيح ٽيگ سان لاڳاپيل آهي، ڪمانڊ شامل ڪيا ويا آهن.
  • LLDB ڊيبگر ۽ فورٽران فرنٽ اينڊ، فلانگ، کي پروجيڪٽ پاران ٺاهيل بائنري اسيمبلين ۾ شامل ڪيو ويو آهي.

جو ذريعو: opennet.ru

DDoS تحفظ سان سائيٽن لاءِ قابل اعتماد هوسٽنگ خريد ڪريو، VPS VDS سرور 🔥 DDoS تحفظ سان قابل اعتماد ويب سائيٽ هوسٽنگ خريد ڪريو، VPS VDS سرورز | ProHoster