LLVM 12.0 telah dikeluarkan dan ini adalah berita-berita

LLVM

Selepas enam bulan pembangunan pelancaran versi baru projek LLVM 12.0 telah dibentangkan Sesuai dengan GCC (penyusun, pengoptimum, dan penjana kod) yang menyusun program menjadi kod bit perantaraan arahan maya yang serupa dengan RISC (mesin maya tahap rendah dengan sistem pengoptimuman pelbagai peringkat).

Dalam versi baru ini kita dapat mencari pelbagai penambahbaikan dan berita, di mana kita dapat menyoroti atribut fungsi baru "tune-cpu" untuk menyokong -mune sebagai gcc, serta peningkatan pada platform yang berbeza.

Ciri baru utama LLVM 12.0

Dalam versi baru ini, kita dapat menjumpainya sokongan untuk toolkit build llvm-build ditulis dalam python telah dihentikan, dan bukannya projek ini telah beralih sepenuhnya menggunakan sistem pembuatan CMake.

Latar belakang untuk seni bina AArch64 telah meningkatkan sokongan untuk platform Windows: penjanaan output assembler yang betul disediakan untuk sistem Windows sasaran, penjanaan data pada panggilan santai telah dioptimumkan (ukuran data tersebut telah dikurangkan sebanyak 60%), kemampuan untuk membuat data telah ditambahkan bersantai menggunakan arahan seh.

manakala Latar belakang seni bina PowerPC merangkumi pengoptimuman baru untuk penggunaan sebaris dan gelung, peningkatan sokongan untuk pemproses Power10, sokongan tambahan untuk arahan MMA untuk memanipulasi tatasusunan, dan peningkatan sokongan untuk sistem operasi AIX.

kepada x86 menambahkan sokongan untuk pemproses AMD Zen 3, Intel Alder Lake dan Intel Sapphire Rapids, serta arahan untuk pemproses HRESET, UINTR, dan AVXVNNI. Dukungan yang dikeluarkan untuk sambungan MPX (sambungan perlindungan memori) dikeluarkan untuk memeriksa petunjuk terhadap had kawasan memori (teknologi ini belum banyak digunakan dan telah dikeluarkan dari GCC dan clang). Penyusun telah menambahkan sokongan untuk awalan {disp32} dan {disp8} dan akhiran .d32 dan .d8 untuk mengawal ukuran ofset operasi dan peralihan. Atribut baru "tune-cpu" telah ditambahkan untuk mengendalikan pengoptimuman mikroarkibina.

Perubahan lain yang menonjol ialah mod baru telah ditambahkan "-fsanitize = unsigned-shift-base" untuk mengesan limpahan bilangan bulat yang tidak ditandatangani setelah sedikit beralih ke kiri. Untuk format Mach-O (macOS), sokongan dilaksanakan untuk arsitektur arm64, arm, dan i386, pengoptimuman tahap pautan (LTO), dan tumpukan berehat ketika menangani pengecualian.

juga atribut ciri baru "tune-cpu" diserlahkan yang membenarkan opengoptimuman seni bina mikro diterapkan tanpa mengira atribut "target-cpu" atau CPU TargetMachine yang akan digunakan untuk memilih set arahan. Sekiranya atribut tidak ada, CPU penyetelan akan mengikuti CPU sasaran.

Libc ++ menerapkan ciri baru standard C ++ 20 dan mula mengembangkan ciri spesifikasi C ++ 2b, ditambah menambah sokongan untuk memasang dengan melumpuhkan sokongan untuk penyetempatan ("-DLIBCXX_ENABLE_LOCALIZATION = OFF") dan peranti untuk menghasilkan nombor pseudo-random.

manakala dari penambahbaikan untuk Clang 12, untuk seni bina AArch64, bendera penyusun baru telah ditambah "-Moutline-atomics" dan "-mno-outline-atomics" untuk mengaktifkan dan melumpuhkan fungsi pembantu atom seperti "__aarch64_cas8_relax". Fungsi runtime ini menentukan sama ada terdapat sokongan untuk Extension Sistem Besar (LSE) dan menggunakan arahan pemprosesan atom atau rollback untuk menggunakan arahan LL / SC (Load-link / store-conditional) untuk penyegerakan.

Penunjuk 'ini' kini diproses dengan pemeriksaan yang tidak sia-sia dan tidak dapat dihormati (N). Pilihan "-fdelete-null-pointer -ecks" dapat digunakan untuk menghapus atribut non-null ketika nilai null diperlukan.

Di Linux untuk seni bina AArch64 dan PowerPC, "-fasynchronous -wind-tables" diaktifkan untuk menghasilkan jadual panggilan gulung, seperti di GCC.

Dalam "#pragma clang loop vectorize_width" kemampuan untuk menentukan pilihan "tetap" (lalai) dan "terukur" untuk memilih kaedah vektorisasi telah ditambahkan.

Dalam pelayan cache clangd (Clang Server) di Linux, penggunaan memori semasa operasi jangka panjang dikurangkan dengan ketara (panggilan berkala ke malloc_trim disediakan untuk mengembalikan halaman memori percuma ke sistem operasi).

Akhirnya sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya mengenai versi baru ini, anda boleh Sila rujuk butiran berikut. pautan


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.