LLVM 9.0'ın yeni sürümü çoktan yayınlandı ve bunlar onun haberleri

LLVM

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

Derleme süresini optimize etmek için tasarlanmıştır, bağlama süresi, kullanıcının tanımlamak istediği herhangi bir programlama dilinde yürütme süresi. Başlangıçta C ve C ++ 'yı derlemek için uygulanmıştır, LLVM'nin dilden bağımsız tasarımı ve proje başarısı çok çeşitli diller ortaya çıkardıObjective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas ve diğerleri dahil.

Oluşturulan sözde kod, JIT derleyicisi kullanılarak, programın yürütülmesi sırasında doğrudan makine talimatlarına dönüştürülebilir.

LLVM 9.0'ın temel yeni özellikleri

LLVM 9.0'ın yeni özellikleri arasında RISC-V platformundan deneysel geliştirme etiketini kaldırmak için destek bulunOpenCL için C ++ desteği.

Başka bir yenilik programı dinamik olarak yüklenen parçalara bölme yeteneği öne çıkmaktadır. LLD'de ve Linux çekirdek kodunda kullanılan »asm goto» yapısının gerçeklenmesi.

Ek olarak, Libc ++ 'nın WASI desteği ile geldiği de vurgulanmaktadır. (WebAssembly Sistem Arabirimi) ve LLD, dinamik WebAssembly bağlama için ilk desteği sundu. Birleştirilmiş bir satır içi bloktan bir C etiketine geçiş yapmanıza olanak tanıyan GCC'ye özgü ifade »asm goto» uygulaması eklendi.

Bu özellik, x86_64 sistemlerinde Clang kullanarak Linux çekirdeğini »CONFIG_JUMP_LABEL = y« modunda oluşturmak için gereklidir. Önceki sürümlerde eklenen değişiklikler göz önüne alındığında, Linux çekirdeği artık x86_64 mimarisi için Clang'da oluşturulabilir (daha önce yalnızca arm, aarch64, ppc32, ppc64le ve mips mimarileri için destekleniyordu.

BTI talimatları için destek eklendi AArch64 mimarisi için (Şube Hedef Göstergesi) ve PAC (İşaretçi Kimlik Doğrulama Kodu). MIPS, RISC-V ve PowerPC platformları için önemli ölçüde geliştirilmiş destek.

Buna ek olarak, Android ve ChromeOS projeleri, çekirdeği oluşturmak için Clang kullanmaya çoktan geçti ve Google, çalışan Linux sistemleri için birincil derleme platformu çekirdekleri olarak Clang'ı test ediyor.

Gelecekte çekirdek derleme işlemi sırasında diğer bileşenleri kullanmak mümkün olacaktır. LLVM, LLD, llvm-objcopy, llvm-ar, llvm-nm ve llvm-objdump dahil.

LLD bağlayıcısına, bir programın her biri ayrı bir ELF dosyasına yerleştirilmiş birden çok parçaya bölünmesine izin veren deneysel bir bölüm işlevi eklenmiştir. Bu özellik, programın, gerektiğinde işlemdeki kalan bileşenleri yükleyecek olan ana bölümünü çalıştırmanıza olanak tanır (örneğin, yerleşik PDF görüntüleyiciyi ayrı bir dosya olarak seçebilirsiniz; kullanıcı PDF dosyasını açar).

Öte yandan, arka uçlardaki sayısız iyileştirme de göze çarpıyor X86, AArch64, ARM, SystemZ, MIPS, AMDGPU ve PowerPC mimarileri için.

Örneğin, AArch2 mimarisi için SVE64 ve MTE (Bellek Etiketleme Uzantıları) talimatları için destek eklendi, Armv8.1-M mimarisi desteği ve ARM arka ucuna MVE mimarisi eklendi.

AMDGPU durumunda, GFX10 mimarisi desteği eklendi (Navi), varsayılan, bir işlevi çağırmak ve etkinleştirilen birleşik DPP'yi (Veri İlkelleri-Paralel) geçmek için etkinleştirilir.

LLDB hata ayıklayıcı, izlerin geriye doğru renk vurgulanmasını sağladı; DWARF4 debug_types ve DWARF5 debug_info blokları için destek eklendi;

Llvm-objcopy ve llvm-strip yardımcı programları, COFF formatındaki yürütülebilir dosyalar ve nesneler için destek eklediler.

RISC-V mimarisi için arka uç stabilize edildi, artık deneysel olarak konumlandırılmayan ve varsayılan olarak oluşturulmuştur. MAFDC uzantılarına sahip RV32I ve RV64I komut seti varyantları için kod üretimi için tam destek.

kaynak: http://releases.llvm.org/


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.