LLVM 12.0 पहले ही जारी किया जा चुका है और ये इसकी खबरें हैं

LLVM

छह महीने के विकास के बाद एलएलवीएम 12.0 परियोजना के नए संस्करण की शुरूआत प्रस्तुत की गई जीसीसी-अनुपालक (कंपाइलर, ऑप्टिमाइज़र और कोड जेनरेटर) जो प्रोग्राम को आरआईएससी (बहु-स्तरीय अनुकूलन प्रणाली के साथ एक निम्न-स्तरीय वर्चुअल मशीन) के समान वर्चुअल इंस्ट्रक्शन इंटरमीडिएट बिटकोड में संकलित करता है।

इस नए संस्करण में हम विभिन्न सुधार और समाचार पा सकते हैंजिसमें से हम एक नए फ़ंक्शन विशेषता "ट्यून-सीपीयू" को gcc के रूप में समर्थन कर सकते हैं, साथ ही साथ विभिन्न प्लेटफार्मों में सुधार भी कर सकते हैं।

एलएलवीएम 12.0 की मुख्य नई विशेषताएं

इस नए संस्करण में, हम यह पा सकते हैं llvm- बिल्ड बिल्ड टूलकिट के लिए समर्थन अजगर में लिखा है बंद कर दिया गया है, जिसके बजाय प्रोजेक्ट सीएमके बिल्ड सिस्टम का उपयोग करने के लिए पूरी तरह से बदल गया है।

AArch64 आर्किटेक्चर के बैकएंड ने विंडोज प्लेटफॉर्म के लिए समर्थन में सुधार किया है: असेम्बलर आउटपुट की सही जनरेशन टार्गेट विंडोज सिस्टम के लिए दी गई है, बर्ड कॉल पर डेटा जेनरेशन को ऑप्टिमाइज़ किया गया है (इस तरह के डेटा का साइज़ 60% तक कम कर दिया गया है), सेह डायरेक्टिव का इस्तेमाल करके डेटा बनाने की क्षमता को कम कर दिया गया है।

जब पावरपीसी आर्किटेक्चर बैकएंड में इनलाइन और लूप तैनाती के लिए नए अनुकूलन शामिल हैं, Power10 प्रोसेसर के लिए बेहतर समर्थन, एमआरए निर्देशों के लिए अतिरिक्त समर्थन जोड़तोड़ के लिए निर्देश, और AIX ऑपरेटिंग सिस्टम के लिए बेहतर समर्थन।

पैरा x86 ने AMD Zen 3, Intel Alder Lake और Intel Sapphire Rapids प्रोसेसर के लिए समर्थन जोड़ा, साथ ही HRESET, UINTR और AVXVNNI प्रोसेसर के लिए निर्देश। मेमोरी क्षेत्र सीमाओं के खिलाफ पॉइंटर्स की जांच करने के लिए एमपीएक्स एक्सटेंशन (मेमोरी प्रोटेक्शन एक्सटेंशन) के लिए हटाए गए समर्थन (इस तकनीक का व्यापक रूप से उपयोग नहीं किया गया है और तब से इसे जीसीसी और क्लैग से हटा दिया गया है)। कोडांतरक ने उपसर्गों {disp32} और {disp8} और प्रत्यय .d32 और .d8 को ऑपरेशंस और संक्रमणों के ऑफसेट के आकार को नियंत्रित करने के लिए समर्थन जोड़ा है। एक नई विशेषता "ट्यून-सीपीयू" को माइक्रोआर्किटेक्चरल ऑप्टिमाइज़ेशन की सक्षमता को नियंत्रित करने के लिए जोड़ा गया था।

एक और बदलाव जो खड़ा है, वह है एक नया मोड जोड़ा गया है "-fsanitize = अहस्ताक्षरित-शिफ्ट-बेस" बाईं ओर एक बिट शिफ्ट के बाद अहस्ताक्षरित पूर्णांक ओवरफ्लो का पता लगाने के लिए। Mach-O (macOS) प्रारूप के लिए, arm64, arm, और i386 आर्किटेक्चर, लिंक स्टेज ऑप्टिमाइज़ेशन (LTO) के लिए समर्थन लागू किया गया है, और अपवादों को संभालने के दौरान स्टैक को खोल दिया गया है।

भी एक नई सुविधा विशेषता "ट्यून-सीपीयू" पर प्रकाश डाला गया है जो ओ की अनुमति देता है"लक्ष्य-सीपीयू" विशेषता की परवाह किए बिना माइक्रोआर्किटेक्चर अनुकूलन को लागू किया जाता है या टारगेटमैचिन सीपीयू से जिसका उपयोग निर्देश सेट का चयन करने के लिए किया जाएगा। यदि विशेषता मौजूद नहीं है, तो ट्यूनिंग सीपीयू लक्ष्य सीपीयू का अनुसरण करेगा।

Libc ++ C ++ 20 मानक की नई विशेषताओं को लागू करता है और C ++ 2b विनिर्देश, प्लस की सुविधाओं को विकसित करना शुरू कर दिया स्थानीयकरण के लिए अक्षम समर्थन के साथ संयोजन के लिए समर्थन जोड़ा गया ("-DLIBCXX_ENABLE_LOCALIZATION = OFF") और छद्म यादृच्छिक संख्या उत्पन्न करने के लिए उपकरण।

जब अहरच12 वास्तुकला के लिए क्लैंग 64 के सुधार में नए संकलक झंडे जोड़े गए हैं "-Moutline-atomics" और "-mno-outline-atomics" परमाणु सहायक कार्यों जैसे "__ARch64_cas8_relax" को सक्षम और अक्षम करने के लिए। ये रनटाइम फ़ंक्शंस निर्धारित करते हैं कि बड़े सिस्टम एक्सटेंशन (LSE) के लिए समर्थन है और सिंक्रनाइज़ेशन के लिए LL / SC (लोड-लिंक / स्टोर-सशर्त) निर्देशों का उपयोग करने के लिए प्रदान किए गए परमाणु प्रोसेसर निर्देश या रोलबैक का उपयोग करें।

'यह' पॉइंटर अब नॉन-नल और डीरेफेरेंसेबल चेक के साथ प्रोसेस किया गया है (एन)। अशक्त मानों की आवश्यकता होने पर गैर-शून्य विशेषता को हटाने के लिए "-fdelete-null-pointer-check" विकल्प का उपयोग किया जा सकता है।

लिनक्स में AArch64 और PowerPC आर्किटेक्चर के लिए, "-fasynchronous -wind-tables" को GCC की तरह, रोल कॉल्स के टेबल जेनरेट करने में सक्षम किया गया है।

"#Pragma क्लैंग लूप वेक्टराइज़_ एक्सपोज़र" में "फिक्स्ड" (डिफ़ॉल्ट) और "स्केलेबल" विकल्पों को निर्दिष्ट करने की क्षमता वेक्टराइज़ेशन विधि को चुनने के लिए जोड़ा गया था।

लिनक्स पर क्लैंग्ड कैशिंग सर्वर (क्लैंग सर्वर) में, लंबी अवधि के ऑपरेशन के दौरान मेमोरी की खपत काफी कम हो जाती है (ऑपरेटिंग सिस्टम पर मुफ्त मेमोरी पेज वापस करने के लिए malloc_trim को एक आवधिक कॉल प्रदान की जाती है)।

अंत में यदि आप इसके बारे में अधिक जानने में रुचि रखते हैं इस नए संस्करण के बारे में, आप कर सकते हैं कृपया निम्नलिखित में विवरण देखें। लिंक।


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।