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

LLVM

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

इसे संकलन समय को अनुकूलित करने के लिए डिज़ाइन किया गया है।, लिंक समय, किसी भी प्रोग्रामिंग भाषा में निष्पादन समय जिसे उपयोगकर्ता परिभाषित करना चाहता है. मूल रूप से C और C++ को संकलित करने के लिए लागू किया गया, एलएलवीएम की भाषा-अज्ञेयवादी डिजाइन, और परियोजना की सफलता भाषाओं की एक विस्तृत विविधता पैदा की हैउद्देश्य-सी, फोरट्रान, एडीए, हास्केल, जावा बाइटकोड, पायथन, रूबी, एक्शनस्क्रिप्ट, जीएलएसएल, क्लैंग, जंग, गाम्बस और अन्य शामिल हैं।

उत्पन्न स्यूडोकोड को जेआईटी कंपाइलर का उपयोग करके सीधे प्रोग्राम निष्पादन समय पर मशीन निर्देशों में परिवर्तित किया जा सकता है।

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

LLVM 9.0 की नई विशेषताओं में RISC-V प्लेटफॉर्म से प्रयोगात्मक विकास टैग को हटाने के लिए समर्थन खोजें, OpenCL के लिए C ++ समर्थन।

एक और नवीनता स्टैंड आउट प्रोग्राम को गतिशील रूप से लोड किए गए भागों में विभाजित करने की क्षमता है LLD में और लिनक्स कर्नेल कोड में प्रयुक्त »asm गोटो» का कार्यान्वयन।

इसके अलावा, यह भी प्रकाश डाला गया है कि Libc ++ WASI के समर्थन के साथ आया है (WebAssembly System Interface), और LLD ने WebAssembly डायनामिक बाइंडिंग के लिए प्रारंभिक समर्थन पेश किया। जीसीसी-विशिष्ट अभिव्यक्ति »एएसएम गेटो» के कार्यान्वयन को जोड़ा गया, जो आपको कोड कोड में एक कोड इनलाइन ब्लॉक से एक टैग में स्विच करने की अनुमति देता है।

X86_64 सिस्टम पर Clang का उपयोग करके »CONFIG_JUMP_LABEL = y« मोड में लिनक्स कर्नेल बनाने के लिए यह सुविधा आवश्यक है। पिछले संस्करणों में जोड़े गए परिवर्तनों को ध्यान में रखते हुए, लिनक्स कर्नेल अब x86_64 आर्किटेक्चर के लिए क्लैंग में बनाया जा सकता है (पहले, यह केवल आर्म, अनारकली, पीपीपी 64, पीपीपी 32 ए और एमिप्स आर्किटेक्चर के लिए समर्थित था।

BTI निर्देशों के लिए समर्थन जोड़ा गया है (शाखा लक्ष्य संकेतक) और AAAC64 वास्तुकला के लिए PAC (पॉइंटर ऑथेंटिकेशन कोड)। एमआइपी, आरआईएससी-वी और पावरपीसी प्लेटफार्मों के लिए महत्वपूर्ण रूप से बेहतर समर्थन।

इसके अलावा, एंड्रॉइड और क्रोमओएस प्रोजेक्ट्स पहले से ही कर्नेल के निर्माण के लिए क्लैंग का उपयोग करने के लिए स्विच कर चुके हैं और Google अपने चलने वाले लिनक्स सिस्टम के लिए प्राथमिक बिल्ड प्लेटफ़ॉर्म कर्नेल के रूप में क्लैंग का परीक्षण कर रहा है।

भविष्य में, कर्नेल संकलन प्रक्रिया के दौरान, अन्य घटकों का उपयोग करना संभव होगा एलएलवीएम, एलएलडी सहित, llvm-objcopy, llvm-ar, llvm-nm, और llvm-objdump।

एलएलडी लिंकर में एक प्रयोगात्मक विभाजन फ़ंक्शन जोड़ा गया है, जो एक प्रोग्राम को कई भागों में विभाजित करने की अनुमति देता है, जिनमें से प्रत्येक को एक अलग ईएलएफ फ़ाइल में रखा गया है। यह सुविधा आपको कार्यक्रम के मुख्य भाग को चलाने की अनुमति देती है, जो आवश्यकतानुसार, प्रक्रिया में शेष घटकों को लोड करेगा (उदाहरण के लिए, आप अंतर्निहित पीडीएफ दर्शक को एक अलग फ़ाइल के रूप में चुन सकते हैं, जिसे केवल तभी डाउनलोड किया जाएगा उपयोगकर्ता पीडीएफ खोलता है)।

दूसरी ओर, बैकेंड में कई सुधार भी सामने आते हैं X86, AArch64, ARM, SystemZ, MIPS, AMDGPU और PowerPC आर्किटेक्चर के लिए।

उदाहरण के लिए, AAEch2 आर्किटेक्चर के लिए SVE64 और MTE (मेमोरी टैगिंग एक्सटेंशन्स) निर्देशों के लिए समर्थन को जोड़ा गया है, ARMv8.1-M आर्किटेक्चर के लिए समर्थन और ARM बैकेंड में MVE आर्किटेक्चर को जोड़ा गया है।

AMDGPU के मामले में, GFX10 आर्किटेक्चर के लिए समर्थन जोड़ा गया था (नवी), डिफॉल्ट को एक फ़ंक्शन को लागू करने और सक्रिय संयुक्त DPP (डेटा प्राइमिटिव-समानांतर) को पास करने के लिए सक्षम किया गया है।

LLDB डिबगर ने पीछे की ओर निशान के रंग को उजागर किया; DWARF4 debug_types और DWARF5 debug_info ब्लॉक के लिए अतिरिक्त समर्थन;

Llvm-objcopy और llvm- पट्टी उपयोगिताओं ने COFF प्रारूप निष्पादन योग्य फ़ाइलों और वस्तुओं के लिए समर्थन जोड़ा है।

RISC-V आर्किटेक्चर के लिए बैकएंड स्थिर है, जो अब प्रायोगिक नहीं है और डिफ़ॉल्ट रूप से बनाया गया है। RV32I और RV64I निर्देश सेट के लिए कोड पीढ़ी के लिए पूर्ण समर्थन MAFDC एक्सटेंशन के साथ वेरिएंट।

Fuente: http://releases.llvm.org/


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

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

*

*

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