LLVM 16.0 અને તે રિલીઝ થયું અને આ તેના સમાચાર છે

LLVM લોગો

LLVM એ કમ્પાઈલર્સ વિકસાવવા તેમજ નવી પ્રોગ્રામિંગ ભાષાઓ બનાવવા અને હાલની ભાષાઓને સુધારવામાં મદદ કરવા માટેનું માળખું છે.

માત્ર છ મહિનાના વિકાસ પછી, ની શરૂઆત પ્રોજેક્ટનું નવું સંસ્કરણ એલએલવીએમ 16.0, સંસ્કરણ જેમાં મોટી સંખ્યામાં ફેરફારો અને સુધારાઓ લાગુ કરવામાં આવ્યા છે.

જેઓ LLVM થી અજાણ છે, તમારે જાણવું જોઈએ કે આ GCC સુસંગત કમ્પાઇલર છે (કમ્પાઇલર્સ, ઑપ્ટિમાઇઝર્સ અને કોડ જનરેટર) જે પ્રોગ્રામ્સને RISC-જેવા વર્ચ્યુઅલ ઇન્સ્ટ્રક્શન ઇન્ટરમીડિયેટ બીટકોડ (મલ્ટી-લેવલ ઑપ્ટિમાઇઝેશન સિસ્ટમ સાથેનું લો-લેવલ વર્ચ્યુઅલ મશીન)માં કમ્પાઇલ કરે છે.

જનરેટ કરેલ સ્યુડોકોડને JIT કમ્પાઈલર દ્વારા ફક્ત પ્રોગ્રામ એક્ઝિક્યુશન સમયે મશીન સૂચનાઓમાં રૂપાંતરિત કરી શકાય છે.

એલએલવીએમ 16.0 ની મુખ્ય નવી સુવિધાઓ

પ્રસ્તુત કરાયેલા આ નવા સંસ્કરણમાં, અમે ઘણા મહત્વપૂર્ણ સુધારાઓ શોધી શકીએ છીએ રણકાર 16.0 માં, જેમાંથી ડિફોલ્ટ C++/ObjC++ સ્ટાન્ડર્ડ અલગ છે, જે gnu++17 પર સેટ કરેલ છે (અગાઉ gnu++14), જે મૂળભૂત રીતે GNU એક્સ્ટેંશન સાથે C++17 સુવિધાઓ માટે આધાર સૂચવે છે. LLVM કોડમાં C++17 સ્ટાન્ડર્ડમાં વ્યાખ્યાયિત તત્વોના ઉપયોગની મંજૂરી છે.

અન્ય ફેરફારો જે બહાર આવે છે તે એ છે કે તે ઉમેરવામાં આવ્યું છે Cortex-A715, Cortex-X3 અને Neoverse CPU માટે સપોર્ટ V2, Armv8.3 એક્સ્ટેન્શન્સ અને AArch64 બેકએન્ડમાં મલ્ટી-વર્ઝન સુવિધાઓ.
La પ્લેટફોર્મ સુસંગતતા Armv2, Armv2A, Armv3 અને Armv3M બંધ કરવામાં આવ્યા છે ARM આર્કિટેક્ચર બેકએન્ડમાં, જેના માટે સાચા કોડ જનરેશનની ખાતરી આપવામાં આવી ન હતી. જટિલ સંખ્યાઓ સાથે કામ કરવા માટેની સૂચનાઓ માટે કોડ જનરેટ કરવાની ક્ષમતા ઉમેરી અને ઉમેર્યું આર્કિટેક્ચર માટે આધાર સૂચના સમૂહો (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT થી X86 બેકએન્ડ.

આ ઉપરાંત, એલએલવીએમ બનાવવા માટેની જરૂરિયાતોમાં વધારો કરવામાં આવ્યો છે, તેમજ બિલ્ડ હવે C++17 સ્ટાન્ડર્ડ સાથે સુસંગત હોવું જોઈએ, એટલે કે બિલ્ડ માટે ઓછામાં ઓછું GCC 7.1, Clang 5.0, Apple Clang 10.0 અથવા Visual Studio 2019 16.7 જરૂરી છે.

બીજી બાજુ, તે પણ પ્રકાશિત કરે છે MIPS, PowerPC અને RISC-V આર્કિટેક્ચર માટે સુધારેલ બેકએન્ડ, તેમજ LLDB ડિબગર માટે LoongArch આર્કિટેક્ચર માટે 64-બીટ એક્ઝિક્યુટેબલને ડિબગ કરવા અને COFF ડિબગીંગ સિમ્બોલના સુધારેલા હેન્ડલિંગ માટે સપોર્ટ.

અન્ય ફેરફારોમાંથી કે standભા:

  • Libc++ લાઇબ્રેરીમાં, મુખ્ય કાર્ય C++20 અને C++23 ધોરણોની નવી સુવિધાઓ માટે આધારને અમલમાં મૂકવા પર કેન્દ્રિત હતું.
  • એડ્રેસ રિલોકેશન સ્કેન અને સેક્શન ઇનિશિયલાઇઝેશન ઑપરેશનને સમાંતર કરીને LDD લિંકરમાં લિંક ટાઈમ નોંધપાત્ર રીતે ઘટાડી દેવામાં આવ્યો છે. ZSTD અલ્ગોરિધમનો ઉપયોગ કરીને સેક્શન કમ્પ્રેશન માટે સમર્થન ઉમેર્યું.
  • C++20 સ્ટાન્ડર્ડ સાથે અમલમાં મુકવામાં આવેલા અદ્યતન કાર્યોને પણ હાઇલાઇટ કરવામાં આવ્યા છે.
  • લેમ્બડા ફંક્શન્સમાં સ્ટ્રક્ચર્ડ લિંક્સ કેપ્ચર કરો.
  • સમીકરણોમાં સમાનતા ઓપરેટર.
  • કેટલાક સંદર્ભોમાં ટાઇપનામ કીવર્ડનો ઉલ્લેખ ન કરવાની ક્ષમતા,
  • કૌંસ ("Aggr(val1, val2)") વચ્ચે ઉમેરવામાં આવેલી શરૂઆતની અનુમતિ.
  • ભાવિ C++2b સ્ટાન્ડર્ડમાં વ્યાખ્યાયિત અમલી કાર્યો.
  • char8_t પ્રકાર સાથે આપવામાં આવેલ સપોર્ટ,
  • "\N{…}" માં ઉપયોગ માટે માન્ય અક્ષરોની શ્રેણીને વિસ્તૃત કરી,
  • કોન્સ્ટેક્સપ્ર તરીકે જાહેર કરાયેલા ફંક્શન્સમાં "સ્ટેટિક કોન્સ્ટેક્સપ્ર" તરીકે ઘોષિત ચલોનો ઉપયોગ કરવાની ક્ષમતા ઉમેરાઈ.
  • ભાવિ C2x C ધોરણમાં વ્યાખ્યાયિત અમલી કાર્યો:
  • બહુવિધ રૂપરેખાંકન ફાઈલો લોડ કરવા માટે ઉમેરાયેલ આધાર (મૂળભૂત રૂપરેખાંકન ફાઈલો પહેલા લોડ કરવામાં આવે છે, પછી તે “–config=” ફ્લેગ દ્વારા નિર્દિષ્ટ કરવામાં આવે છે, જે હવે ઘણી વખત સ્પષ્ટ કરી શકાય છે).
  • ડિફૉલ્ટ રૂપરેખા ફાઈલોનો લોડ ઓર્ડર બદલાયો: ક્લેંગ પહેલા ફાઈલ લોડ કરવાનો પ્રયાસ કરે છે - .cfg અને જો તે તેને શોધી શકતું નથી, તો તે બે ફાઇલો લોડ કરવાનો પ્રયાસ કરે છે .cfg અને .cfg.
  • નિયમિત ફ્રેમ સંરેખિત વિતરણ માટે નવો બિલ્ડ ફ્લેગ "-fcoro-aligned-alocation" ઉમેર્યો.
  • પ્રમાણભૂત C++ મોડ્યુલોના સિંગલ-ફેઝ બિલ્ડ મોડલને સક્ષમ કરવા માટે "-fmodule-output" ફ્લેગ ઉમેર્યો.
  • સ્ટેક ફ્રેમ લેઆઉટ સાથે સમસ્યાઓનું નિદાન કરવા માટે "-Rpass-analysis=stack-frame-layout" મોડ ઉમેર્યો.
  • CPU AArch1 દ્વારા પૂરી પાડવામાં આવેલ વિશેષતાઓના વિશિષ્ટ સંસ્કરણોને પસંદ કરવા માટે એક નવી __attribute__((target_version("cpu_features"))) વિશેષતા ઉમેરી અને __attribute__((target_clones("cpu_features2″,"cpu_features64",…))) વિશેષતાની કાર્યક્ષમતાને વિસ્તૃત કરી .
  • ઉન્નત ડાયગ્નોસ્ટિક સાધનો:
  • એક-બીટ હસ્તાક્ષરિત બીટફિલ્ડને સોંપતી વખતે ગર્ભિત કાપને પકડવા માટે "-Wsingle-bit-bitfield-constant-conversion" ચેતવણી ઉમેરવામાં આવી.
  • બિન-પ્રારંભિક કોન્સ્ટેક્સપ્ર વેરિયેબલ્સ માટે વિસ્તૃત ડાયગ્નોસ્ટિક્સ.
  • ફંક્શન પ્રકારો કાસ્ટ કરતી વખતે સંભવિત સમસ્યાઓને પકડવા માટે "-Wcast-function-type-strict" અને "-Wincompatible-function-pointer-types-strict" ચેતવણીઓ ઉમેરવામાં આવી છે.

છેલ્લે જો તમને તેના વિશે વધુ જાણવામાં રસ છે, તમે વિગતો ચકાસી શકો છો નીચેની કડી


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: AB ઈન્ટરનેટ નેટવર્ક્સ 2008 SL
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.