LLVM 16.0 ve yayınlandı ve haberleri bunlar

LLVM Logosu

LLVM, derleyiciler geliştirmenin yanı sıra yeni programlama dilleri oluşturmaya ve mevcut dilleri geliştirmeye yardımcı olan bir çerçevedir.

Altı aydan biraz daha uzun bir geliştirme sürecinden sonra, lansmanı projenin yeni versiyonu LLVM 16.0, çok sayıda değişiklik ve iyileştirmenin uygulandığı sürüm.

LLVM'ye aşina olmayanlar için şunu bilmelisiniz ki GCC uyumlu bir derleyicidir (derleyiciler, optimize ediciler ve kod oluşturucular), programları RISC benzeri bir sanal talimat ara bit kodunda (çok seviyeli optimizasyon sistemine sahip düşük seviyeli bir sanal makine) derleyen.

Oluşturulan sözde kod, JIT derleyicisi tarafından tam program yürütülürken makine talimatlarına dönüştürülebilir.

LLVM 16.0'ın temel yeni özellikleri

Sunulan bu yeni sürümde, birkaç önemli iyileştirme bulabiliriz clang 16.0'da, bunlardan varsayılan C++/ObjC++ standardı öne çıkıyor, hangisi gnu++17 olarak ayarlanmıştır (eski adıyla gnu++14), hangi varsayılan olarak GNU uzantılarıyla birlikte C++17 özellikleri için destek anlamına gelir. C++17 standardında tanımlanan öğelerin kullanımına LLVM kodunda izin verilir.

Öne çıkan değişikliklerden bir diğeri de eklenmiş olmasıdır. Cortex-A715, Cortex-X3 ve Neoverse CPU desteği AArch2 arka ucuna V8.3, Armv64 uzantıları ve çoklu sürüm özellikleri.
La platform uyumluluğu Armv2, Armv2A, Armv3 ve Armv3M kullanımdan kaldırıldı doğru kod üretiminin garanti edilmediği ARM mimarisi arka ucunda. Karmaşık sayılarla çalışmak için talimatlar için kod oluşturma yeteneği eklendi ve eklendi mimariler için destek komut setleri (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT - X86 arka ucu.

Bunun yanı sıra, LLVM oluşturmak için gereklilikler artırıldı, Ayrıca yapı artık C++17 standardı ile uyumlu olmalıdır, yani yapı en az GCC 7.1, Clang 5.0, Apple Clang 10.0 veya Visual Studio 2019 16.7 gerektirir.

Öte yandan, aynı zamanda vurgulamaktadır. MIPS, PowerPC ve RISC-V mimarileri için geliştirilmiş arka uçlar, ayrıca LoongArch mimarisi için 64-bit yürütülebilir dosyalarda LLDB hata ayıklayıcısında hata ayıklama desteği ve COFF hata ayıklama sembollerinin iyileştirilmiş kullanımı.

Diğer değişikliklerden göze çarpan:

  • Libc++ kitaplığında ana çalışma, C++20 ve C++23 standartlarının yeni özellikleri için destek uygulamaya odaklandı.
  • Adres yer değiştirme tarama ve bölüm başlatma işlemleri paralelleştirilerek LDD bağlayıcıda bağlantı süresi önemli ölçüde azaltılmıştır. ZSTD algoritmasını kullanarak bölüm sıkıştırma desteği eklendi.
  • C++20 standardı ile uygulanan gelişmiş işlevler de vurgulanmıştır.
  • lambda işlevlerinde yapılandırılmış bağlantıları yakalayın.
  • İfadeler içindeki eşitlik operatörü.
  • Typename anahtar sözcüğünü bazı bağlamlarda belirtememe,
  • Parantezler arasına eklenen başlatmaya izin verilebilirlik ("Aggr(val1, val2)").
  • Gelecekteki C++2b standardında tanımlanan uygulanan işlevler.
  • char8_t türü ile sağlanan destek,
  • "\N{…}" içinde kullanılmasına izin verilen karakter aralığı genişletildi,
  • Constexpr olarak bildirilen işlevlerde "statik constexpr" olarak bildirilen değişkenleri kullanma yeteneği eklendi.
  • Gelecekteki C2x C standardında tanımlanan uygulanan fonksiyonlar:
  • Birden çok yapılandırma dosyasının yüklenmesi için destek eklendi (önce varsayılan yapılandırma dosyaları, ardından artık birden çok kez belirtilebilen “–config=” bayrağı aracılığıyla belirtilenler yüklenir).
  • Varsayılan yapılandırma dosyalarının yükleme sırası değiştirildi: clang önce dosyayı yüklemeye çalışır - .cfg ve bulamazsa iki dosya yüklemeye çalışır .cfg ve .cfg.
  • Rutin çerçeve hizalamalı dağıtım için yeni bir yapı bayrağı "-fcoro-aligned-allocation" eklendi.
  • Standart C++ modüllerinin tek aşamalı yapı modelini etkinleştirmek için "-fmodule-output" bayrağı eklendi.
  • Yığın çerçeve düzeniyle ilgili sorunları teşhis etmek için "-Rpass-analysis=stack-frame-layout" modu eklendi.
  • Yeni bir __attribute__((target_version("cpu_features"))) özniteliği eklendi ve __attribute__((target_clones("cpu_features1″,"cpu_features2",…))) özniteliğinin işlevselliği, CPU AArch64 tarafından sağlanan özelliklerin belirli sürümlerini seçmek için genişletildi .
  • Gelişmiş teşhis araçları:
  • Bir bitlik imzalı bir bit alanına bir tane atarken örtülü kesmeyi yakalamak için "-Wsingle-bit-bitfield-constant-conversion" uyarısı eklendi.
  • Başlatılmamış constexpr değişkenleri için genişletilmiş teşhis.
  • Döküm işlevi türleriyle ilgili olası sorunları yakalamak için "-Wcast-function-type-strict" ve "-Winfriendly-function-pointer-types-strict" uyarıları eklendi.

Nihayet Bununla ilgili daha fazla bilgi edinmek istiyorsanız, ayrıntıları kontrol edebilirsiniz aşağıdaki bağlantı.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.