LLVM 12.0 zaten yayınlandı ve bunlar onun haberleri

LLVM

Altı aylık geliştirmeden sonra LLVM 12.0 projesinin yeni versiyonunun lansmanı sunuldu GCC uyumlu (derleyiciler, optimize ediciler ve kod oluşturucular), programları RISC'ye (çok seviyeli optimizasyon sistemine sahip düşük seviyeli bir sanal makine) benzer sanal talimatların ara bit kodunda derler.

Bu yeni versiyonda çeşitli iyileştirmeler ve haberler bulabiliriz, gcc olarak -mtune'u desteklemek için yeni bir işlev özniteliği olan "tune-cpu" yu ve farklı platformlardaki iyileştirmeleri vurgulayabiliriz.

LLVM 12.0'ın temel yeni özellikleri

Bu yeni versiyonda bunu bulabiliriz llvm-build derleme araç seti desteği python ile yazılmış durduruldu, bunun yerine proje tamamen CMake yapı sistemini kullanmaya başladı.

AArch64 mimarisi için arka uç, Windows platformu için geliştirilmiş desteğe sahiptir: Hedef Windows sistemleri için doğru montajcı çıkışı sağlandı, çözme çağrılarında veri üretimi optimize edildi (bu tür verilerin boyutu% 60 azaltıldı), veri oluşturma yeteneği seh yönergeleri kullanılarak çözülme eklendi.

Süre PowerPC mimarisi arka ucu, satır içi ve döngü dağıtımları için yeni optimizasyonlar içerir, Power10 işlemci desteğinde iyileştirmeler, dizileri yönetmek için MMA yönergeleri için ek destek ve AIX işletim sistemi için geliştirilmiş destek.

Daha x86, AMD Zen 3, Intel Alder Lake ve Intel Sapphire Rapids işlemciler için destek eklediHRESET, UINTR ve AVXVNNI işlemciler için talimatların yanı sıra. İşaretçileri bellek alanı sınırlarına göre kontrol etmek için MPX uzantıları (bellek koruma uzantıları) desteği kaldırıldı (bu teknoloji yaygın olarak kullanılmadı ve o zamandan beri GCC ve clang'dan kaldırıldı). Birleştirici, işlenenlerin ve geçişlerin ofsetinin boyutunu kontrol etmek için {disp32} ve {disp8} önekleri ile .d32 ve .d8 sonekleri için destek ekledi. Mikro mimari optimizasyonların etkinleştirilmesini kontrol etmek için yeni bir "tune-cpu" özniteliği eklendi.

Öne çıkan bir diğer değişiklik ise yeni bir mod eklendi "-fsanitize = unsigned-shift-base" sola bir bit kaymasından sonra işaretsiz tamsayı taşmalarını tespit etmek için. Mach-O (macOS) formatı için, arm64, arm ve i386 mimarileri, bağlantı aşaması optimizasyonu (LTO) ve istisnaları işlerken yığın çözme desteği uygulanır.

ayrıca yeni bir özellik özelliği "tune-cpu" vurgulanır o izin verirmikro mimari optimizasyonları "hedef işlemci" özelliğine bakılmaksızın uygulanır veya komut setini seçmek için kullanılacak TargetMachine CPU'dan. Öznitelik mevcut değilse, ayarlanan CPU, hedef CPU'yu takip edecektir.

Libc ++, C ++ 20 standardının yeni özelliklerini uygular ve C ++ 2b spesifikasyonunun özelliklerini geliştirmeye başladı, artı yerelleştirme için devre dışı bırakma desteği ile montaj desteği eklendi ("-DLIBCXX_ENABLE_LOCALIZATION = OFF") ve sözde rasgele sayılar üretmek için cihazlar.

Süre AArch12 mimarisi için Clang 64 iyileştirmelerinden yeni derleyici bayrakları eklendi "__Aarch64_cas8_relax" gibi atomik yardımcı işlevleri etkinleştirmek ve devre dışı bırakmak için "-Moutline-atomics" ve "-mno-anahat-atomics". Bu çalışma zamanı işlevleri, Büyük Sistem Uzantıları (LSE) için destek olup olmadığını belirler ve senkronizasyon için LL / SC (Yük-bağlantısı / depo-koşullu) talimatlarını kullanmak için sağlanan atomik işlemci talimatlarını veya geri almayı kullanır.

'Bu' işaretçisi artık boş olmayan ve referans alınamayan kontrollerle işleniyor (N). "-Fdelete-null-pointer-checks" seçeneği, boş değerler gerekli olduğunda boş olmayan özniteliği kaldırmak için kullanılabilir.

AArch64 ve PowerPC mimarileri için Linux'ta, "-fasynchronous -wind-tabloları" GCC'de olduğu gibi yoklama tabloları oluşturmak için etkinleştirilmiştir.

"#Pragma clang döngü vectorize_width" de vektörleştirme yöntemini seçmek için "sabit" (varsayılan) ve "ölçeklenebilir" seçenekleri belirtme yeteneği eklendi.

Linux'taki clangd önbellekleme sunucusunda (Clang Sunucusu), uzun süreli çalışma sırasında bellek tüketimi önemli ölçüde azaltılır (boş bellek sayfalarını işletim sistemine döndürmek için malloc_trim'e periyodik bir çağrı sağlanır).

Nihayet onun hakkında daha fazla bilgi edinmekle ilgileniyorsan bu yeni sürüm hakkında şunları yapabilirsiniz: Lütfen aşağıdaki ayrıntılara bakın. 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.