αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžˆαž»αžαž…αž„αž€αŸ’αžšαž„ LLVM 12.0

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžšαž™αŸˆαž–αŸαž›αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αžαŸ‚αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž‚αž˜αŸ’αžšαŸ„αž„ LLVM 12.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰ - αž€αž‰αŸ’αž…αž”αŸ‹αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„ GCC (αž’αŸ’αž“αž€αž…αž„αž€αŸ’αžšαž„ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠ) αžŠαŸ‚αž›αž…αž„αž€αŸ’αžšαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αŸ…αž‡αžΆαž”αŸŠαžΈαžαž€αžΌαžŠαž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αž“αŸƒαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž“αž·αž˜αŸ’αž˜αž·αžαžŠαžΌαž… RISC (αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αžŠαŸ‚αž›αž˜αžΆαž“ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž–αž αž»αž€αž˜αŸ’αžšαž·αž) αŸ” αž€αžΌαžŠαž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž”αŸ’αž›αŸ‚αž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ JIT αž‘αŸ…αž‡αžΆαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„ Clang 12.0αŸ–

  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ "αž‘αŸ†αž“αž„" αž“αž·αž„ "αž˜αž·αž“αž‘αŸ†αž“αž„" αžŠαŸ‚αž›αžŸαŸ’αž“αžΎαž‘αžΎαž„αž€αŸ’αž“αž»αž„αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C ++ 20 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž αž“αž·αž„αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αž’αŸ†αž–αžΈαž”αŸ’αžšαžΌαž”αžΆαž”αŸŠαžΈαž›αžΈαžαŸαž“αŸƒαž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹αžαžΆαž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸαŸ‡ (αž§αž‘αžΆαž αžšαžŽαŸ "[[αž‘αŸ†αž“αž„ ]] αž”αŸ’αžšαžŸαž·αž“αž”αžΎ (αž…αŸƒαžŠαž“αŸ’αž™ > 0) {β€œ)αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ AMD Zen 3 (-march=znver3), Intel Alder Lake (-march=alderlake) αž“αž·αž„ Intel Sapphire Rapids (-march=sapphirerapids) processors αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αž„αŸ‹ "-march=x86-64-v[234]" αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αž˜αŸ’αžšαž·αžαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ x86-64 (v2 - αž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ SSE4.2, SSSE3, POPCNT αž“αž·αž„ CMPXCHG16B; v3 - AVX2 αž“αž·αž„ MOVBE; v4 - AVX-512 ) αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Arm Cortex-A78C (cortex-a78c), Arm Cortex-R82 (cortex-r82), Arm Neoverse V1 (neoverse-v1), Arm Neoverse N2 (neoverse-n2) αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Fujitsu A64FX (a64fx) αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸŠαžΈαž—αžΈαž™αžΌ Neoverse-V1 αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ β€œ-mcpu=neoverse-v1” αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ AArch64 αž‘αž„αŸ‹αž…αž„αž€αŸ’αžšαž„αžαŸ’αž˜αžΈ "-moutline-atomics" αž“αž·αž„ "-mno-outline-atomics" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€ αž¬αž”αž·αž‘αž˜αž»αžαž„αžΆαžšαž‡αŸ†αž“αž½αž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αžΆαžαžΌαž˜ αžŠαžΌαž…αž‡αžΆ "__aarch64_cas8_relax" αž‡αžΆαžŠαžΎαž˜αŸ” αž˜αž»αžαž„αžΆαžšαž”αŸ‚αž”αž“αŸαŸ‡αžšαž€αžƒαžΎαž‰αž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαžαžΎαž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš LSE (αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸ†) αž αžΎαž™αž”αŸ’αžšαžΎαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αžΆαžαžΌαž˜αž·αž€αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹ αž¬αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž”αŸ’αžšαžΎαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† LL/SC (Load-link/store-conditional) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‡αž˜αŸ’αžšαžΎαžŸ "-fbinutils-version" αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αŸ†αžŽαŸ‚αž‚αŸ„αž›αžŠαŸ…αž“αŸƒαžˆαž»αž binutils αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž†αž”αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž…αžΆαžŸαŸ‹ αž“αž·αž„αž₯αžšαž·αž™αžΆαž”αžαž’αŸ’αž“αž€αžŠαŸ†αž‘αžΎαž„αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“ ELF αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αž„αŸ‹ "-gz" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž€αžΆαžšαž”αž„αŸ’αž αžΆαž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ zlib αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ (gz=zlib) αŸ” αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž―αž€αžŸαžΆαžšαžœαžαŸ’αžαž»αž›αž‘αŸ’αž’αž•αž›αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™ lld ឬ GNU binutils 2.26+ αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžαžΆαžšαž—αžΆαž–αž†αž”αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž€αŸ†αžŽαŸ‚αž…αžΆαžŸαŸ‹αž“αŸƒ binutils αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ "-gz=zlib-gnu" αŸ”
  • αž‘αŸ’αžšαž“αž·αž… 'αž“αŸαŸ‡' αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ nonnull αž“αž·αž„ dereferenceable(N)αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž›αž»αž”αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ nonnnull αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αŸ’αžšαžΎαžαž˜αŸ’αž›αŸƒ NULL αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž‡αž˜αŸ’αžšαžΎαžŸ "-fdelete-null-pointer-checks" αŸ”
  • αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαž›αžΈαž“αž»αž… αžšαž”αŸ€αž” "-fasynchronous-unwind-tables" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ AArch64 αž“αž·αž„ PowerPC αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžαžΆαžšαžΆαž„αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžŠαŸ‚αž›αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αžŠαžΌαž…αž‡αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ GCC αž‡αžΆαžŠαžΎαž˜αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„ "#pragma clang loop vectorize_width" αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‡αž˜αŸ’αžšαžΎαžŸ "ថេរ" (αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜) αž“αž·αž„ "αž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αžΆαž“" αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžœαŸ‰αž·αž…αž‘αŸαžšαŸ” αžšαž”αŸ€αž” "αž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αžΆαž“" αž―αž€αžšαžΆαž‡αŸ’αž™αž“αŸƒαž”αŸ’αžšαžœαŸ‚αž„αžœαŸ‰αž·αž…αž‘αŸαžš αž‚αžΊαž‡αžΆαž€αžΆαžšαž–αž·αžŸαŸ„αž’ αž αžΎαž™αž’αžΆαž…αž”αŸ’αžšαžΎαž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžœαž·αž…αž‘αŸαžšαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αžΆαž“αŸ”
  • αž€αžΆαžšαž–αž„αŸ’αžšαžΉαž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαžœαžΈαž“αžŠαžΌαŸ– αž€αžΆαžšαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž•αŸ’αž›αžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΈαž“αžŠαžΌαž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’ Arm64 αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ† αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ Clang αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹ LLD αž“αž·αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš compiler-rt αŸ” αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαž‚αŸ„αž›αžŠαŸ… MinGW αž”αž…αŸ’αž…αŸαž™ .exe αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž“αŸ…αž–αŸαž›αž…αž„αž€αŸ’αžšαž„αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž€αŸαžŠαŸ„αž™αŸ”
  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ OpenCL, OpenMP αž“αž·αž„ CUDA αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‡αž˜αŸ’αžšαžΎαžŸ "-cl-std=CL3.0" αž“αž·αž„ "-cl-std=CL1.0" αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‡αž˜αŸ’αžšαžΎαžŸαž˜αŸ‰αžΆαž€αŸ’αžšαžΌαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ OpenCL 3.0 αž“αž·αž„ OpenCL 1.0 αŸ” αž§αž”αž€αžšαžŽαŸαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† HRESET, UINTR αž“αž·αž„ AVXVNNI αžŠαŸ‚αž›αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ x86 αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ”
  • αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’ x86 αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αž˜αŸ’αžšαžΎαžŸ "-mtune=" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€ " αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ αžŠαŸ„αž™αž˜αž·αž“αž‚αž·αžαž–αžΈαžαž˜αŸ’αž›αŸƒαž“αŸƒ "-march= "
  • αž§αž”αž€αžšαžŽαŸαžœαž·αž—αžΆαž‚αž‹αž·αžαž·αžœαž“αŸ’αžαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž˜αž»αžαž„αžΆαžš POSIX αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž“αžΌαžœαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαžΆαž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αŸ” αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αŸ– fuchia.HandleChecker (αž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαž»αž…αž‘αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’) webkit.UncountedLambdaCapturesChecker webkit αž“αž·αž„ alpha.webkit.UncountedLocalVarsChecker (αž‚αž·αžαž‚αžΌαžšαž–αžΈαž—αžΆαž–αž”αžΆαžšαž˜αŸ’αž—αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‘αŸ’αžšαž“αž·αž…αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ WebKit)αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž“αŸ’αžŸαŸ„αž˜αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž”αžšαž·αž”αž‘αž“αŸƒαžαŸαžš αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ __builtin_bitreverse*, __builtin_rotateleft*, __builtin_rotateright*, _mm_popcnt*, _bit_scan_forward, __bsfd, __bsfq, _bs_rbit, _bs_b, ap, __bswapd, __bswap64, αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαŸ” __bswapq , _castf*, __rol* αž“αž·αž„ __ror* αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‡αž˜αŸ’αžšαžΎαžŸ BitFieldColonSpacing αž‘αŸ…αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αž˜αŸ’αžšαž„αŸ‹ clang αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‚αž˜αŸ’αž›αžΆαžαž‡αž»αŸ†αžœαž·αž‰αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽ αž‡αž½αžšαžˆαžš αž“αž·αž„αž“αž·αž™αž˜αž“αŸαž™αžœαžΆαž›αŸ”
  • αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž˜αŸ’αžšαžΎαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ clangd (Clang Server) αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαž›αžΈαž“αž»αž…αž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž™αŸˆαž–αŸαž›αžœαŸ‚αž„ (αž€αžΆαžšαž αŸ…αžαžΆαž˜αž€αžΆαž›αž€αŸ†αžŽαžαŸ‹αž‘αŸ… malloc_trim αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αžŠαžΎαž˜αŸ’αž”αžΈαžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ†αž–αŸαžšαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž‘αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš) αŸ”

αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„ LLVM 12.0αŸ–

  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαžŸαžΆαž„αžŸαž„αŸ‹ llvm-build αžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ Python αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹ αž αžΎαž™αž•αŸ’αž‘αž»αž™αž‘αŸ…αžœαž·αž‰ αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž”αžΆαž“αž”αŸ’αžαžΌαžšαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž‘αŸ…αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’ CMake build αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ AArch64 αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Windows αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αž›αž˜αŸ’αž’αŸ– αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‘αž·αž“αŸ’αž“αž•αž›αž§αž”αž€αžšαžŽαŸαžŠαŸ†αž‘αžΎαž„αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžœαžΈαž“αžŠαžΌαž‚αŸ„αž›αžŠαŸ…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžΆ αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž›αžΎαž€αžΆαžšαž αŸ…αž…αŸαž‰αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžš (αž‘αŸ†αž αŸ†αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ‚αž”αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“ 60 %) αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‘αž·αž“αŸ’αž“αž“αŸαž™ unwind αžŠαŸ„αž™αž”αŸ’αžšαžΎ assembler αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† .seh_*αŸ”
  • αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ PowerPC αž˜αžΆαž“αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ† αž“αž·αž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αŸ’αž“αž»αž„αž‡αž½αžš αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ‚αž›αž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Power10 αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† MMA αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž˜αŸ‰αžΆαž‘αŸ’αžšαžΈαžŸ αž“αž·αž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš AIX αŸ”
  • αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™ x86 αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ AMD Zen 3, Intel Alder Lake αž“αž·αž„ Intel Sapphire Rapids processors αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš HRESET, UINTR αž“αž·αž„ AVXVNNI αŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ MPX (αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž–αžΆαžšαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž·αž“αž·αžαŸ’αž™αž‘αŸ’αžšαž“αž·αž…αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαžαžΆαž–αŸ’αžšαŸ†αžŠαŸ‚αž“αž“αŸƒαž€αžΆαžšαž…αž„αž…αžΆαŸ†αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αŸ€αžαž‘αŸ (αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αŸαŸ‡αž˜αž·αž“αžšαžΈαž€αžšαžΆαž›αžŠαžΆαž›αž‘αŸ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αž–αžΈ GCC αž“αž·αž„ clang αžšαž½αž…αž αžΎαž™)αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŠαž›αŸ‹αž§αž”αž€αžšαžŽαŸαžŠαŸ†αž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž»αž–αŸ’αžœαž”αž‘ {disp32} αž“αž·αž„ {disp8} αž“αž·αž„αž”αž…αŸ’αž…αŸαž™ .d32 αž“αž·αž„ .d8 αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αŸ†αž αŸ†αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž»αž αŸ’αžœαžŸαž·αž αž“αž·αž„αž€αžΆαžšαž›αŸ„αžαŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαžαŸ’αž˜αžΈ "tune-cpu" αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžαŸ’αž“αžΆαžαžαžΌαž…αŸ”
  • αžšαž”αŸ€αž”αžαŸ’αž˜αžΈ β€œ-fsanitize=unsigned-shift-base” αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž§αž”αž€αžšαžŽαŸαž…αžΆαž”αŸ‹αž”αž‰αŸ’αž αžΆαž…αŸ†αž“αž½αž“αž‚αžαŸ‹ (integer sanitizer, β€œ-fsanitize=integer”) αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αž˜αžΎαž›αž…αŸ†αž“αž½αž“αž›αžΎαžŸαž“αŸƒαž…αŸ†αž“αž½αž“αž‚αžαŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αž“αŸ’αžαž·αž…αž‘αŸ…αžαžΆαž„αž†αŸ’αžœαŸαž„αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαžšαžΆαžœαžšαž€αž•αŸ’αžŸαŸαž„αŸ— (asan, cfi, lsan, msan, tsan, ubsan sanitizer) αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž›αžΈαž“αž»αž…αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Musl αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αŸ”
  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹ LLD linker αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αŸ” αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αž˜αŸ’αžšαž„αŸ‹ ELF αžšαž½αž˜αž‘αžΆαŸ†αž„αž‡αž˜αŸ’αžšαžΎαžŸαž”αž“αŸ’αžαŸ‚αž˜ "--dependency-file", "-error-handling-script", "-lto-pseudo-probe-for-profiling", "-no-lto-whole-program - αž—αžΆαž–αž˜αžΎαž›αžƒαžΎαž‰ "" αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš MinGW αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™ Mach-O (macOS) αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ arm64, arm, αž“αž·αž„ i386, αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž–αŸαž›αžœαŸαž›αžΆαž—αŸ’αž‡αžΆαž”αŸ‹ (LTO) αž“αž·αž„ stack unwinding αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαŸ”
  • Libc ++ αž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαž“αŸƒαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C ++ 20 αž αžΎαž™αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αž—αž·αžœαžŒαŸ’αžαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ C ++ 2b αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž·αž‘αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžΈαž™αž€αž˜αŸ’αž˜ (β€œ-DLIBCXX_ENABLE_LOCALIZATION=OFF”) αž“αž·αž„αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž›αŸαžαž…αŸƒαžŠαž“αŸ’αž™ (β€œ-DLIBCXX_ENABLE_RANDOM_DEVICE=OFF”) αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹