LLVM 12.0 เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจธเฉ‚เจŸ เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ

เจ›เฉ‡ เจฎเจนเฉ€เจจเจฟเจ†เจ‚ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, LLVM 12.0 เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเฉ€ เจ—เจˆ - เจ‡เฉฑเจ• GCC- เจ…เจจเฉเจ•เฉ‚เจฒ เจŸเฉ‚เจฒเจ•เจฟเฉฑเจŸ (เจ•เฉฐเจชเจพเจˆเจฒเจฐ, เจ†เจชเจŸเฉ€เจฎเจพเจˆเจœเจผเจฐ เจ…เจคเฉ‡ เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ) เจœเฉ‹ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ RISC-เจตเจฐเจ—เฉ‡ เจตเจฐเจšเฉเจ…เจฒ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐเจฒเฉ‡ เจฌเจฟเจŸเจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจฆเฉ€ เจนเฉˆ (เจ‡เฉฑเจ• เจ˜เฉฑเจŸ-เจชเฉฑเจงเจฐเฉ€ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจฎเจฒเจŸเฉ€-เจฒเฉˆเจตเจฒ เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ เจธเจฟเจธเจŸเจฎ)เฅค เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเฉ‚เจกเฉ‹เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ‡เฉฑเจ• JIT เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเฉ‹เจ—เฉเจฐเจพเจฎ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจธเจฟเฉฑเจงเฉ‡ เจฎเจธเจผเฉ€เจจ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ•เจฒเฉˆเจ‚เจ— 12.0 เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ:

  • C++ 20 เจธเจŸเฉˆเจ‚เจกเจฐเจก เจตเจฟเฉฑเจš เจชเฉเจฐเจธเจคเจพเจตเจฟเจค "เจธเฉฐเจญเจพเจตเจจเจพ" เจ…เจคเฉ‡ "เจ…เจธเฉฐเจญเจต" เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจกเจฟเจซเฉŒเจฒเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจธเจฎเจฐเฉฑเจฅ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจ†เจชเจŸเฉ€เจฎเจพเจˆเจœเจผเจฐ เจจเฉ‚เฉฐ เจ•เฉฐเจกเฉ€เจธเจผเจจเจฒ เจ•เฉฐเจธเจŸเฉเจฐเจ•เจธเจผเจจ เจฆเฉ‡ เจšเจพเจฒเฉ‚ เจนเฉ‹เจฃ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจฌเจพเจฐเฉ‡ เจธเฉ‚เจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, "[[เจธเฉฐเจญเจพเจตเจจเจพ ]] เจœเฉ‡เจ•เจฐ (เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ > 0) {โ€œ)เฅค
  • AMD Zen 3 (-march=znver3), Intel Alder Lake (-march=alderlake) เจ…เจคเฉ‡ Intel Sapphire Rapids (-march=sapphirerapids) เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†เฅค
  • x86-64 เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจชเฉฑเจงเจฐเจพเจ‚ (v234 - เจ•เจตเจฐ SSE86, SSSE64, POPCNT เจ…เจคเฉ‡ CMPXCHG2B เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚; v4.2 - AVX3 เจ…เจคเฉ‡ MOVBE; v16 - AVX-3) เจจเฉ‚เฉฐ เจšเฉเจฃเจจ เจฒเจˆ "-march=x2-4-v[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 CPUs เจฒเจˆ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ "-mcpu=neoverse-v1" เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค
  • AArch64 เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ, เจจเจตเฉ‡เจ‚ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจซเจฒเฉˆเจ— "-เจฎเจพเจŠเจŸเจฒเจพเจˆเจจ-เจเจŸเฉ‹เจฎเจฟเจ•เจธ" เจ…เจคเฉ‡ "-mno-เจ†เจŠเจŸเจฒเจพเจˆเจจ-เจเจŸเฉ‹เจฎเจฟเจ•เจธ" เจจเฉ‚เฉฐ เจเจŸเจฎเจฟเจ• เจ“เจชเจฐเฉ‡เจธเจผเจจ เจนเฉˆเจฒเจชเจฐ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจœเจพเจ‚ เจ…เจฏเฉ‹เจ— เจ•เจฐเจจ เจฒเจˆ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ "__aarch64_cas8_relax"เฅค เจ…เจœเจฟเจนเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจฐเจจเจŸเจพเจˆเจฎ 'เจคเฉ‡ เจชเจคเจพ เจฒเจ—เจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ เจ•เจฟ เจ•เฉ€ LSE (เจตเฉฑเจกเฉ‡ เจธเจฟเจธเจŸเจฎ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ) เจธเจฎเจฐเจฅเจจ เจ‰เจชเจฒเจฌเจง เจนเฉˆ เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ‡ เจชเจฐเจฎเจพเจฃเฉ‚ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเจพเจ‚ เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจฒเจˆ LL/SC (เจฒเฉ‹เจก-เจฒเจฟเฉฐเจ•/เจธเจŸเฉ‹เจฐ-เจ•เฉฐเจกเฉ€เจธเจผเจจเจฒ) เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค
  • เจชเฉเจฐเจพเจฃเฉ‡ เจฒเจฟเฉฐเจ•เจฐ เจ…เจคเฉ‡ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ เจตเจฟเจตเจนเจพเจฐ เจจเจพเจฒ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจฒเจˆ เจฌเจฟเจจเจฟเจŠเจŸเจฟเจฒ เจธเฉ‚เจŸ เจฆเฉ‡ เจŸเจพเจฐเจ—เฉ‡เจŸ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจ เจฒเจˆ "-fbinutils-version" เจตเจฟเจ•เจฒเจช เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • ELF เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒเจพเจ‚ เจฒเจˆ, เจœเจฆเฉ‹เจ‚ "-gz" เจซเจฒเฉˆเจ— เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, zlib เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเจพ เจ•เฉฐเจชเจฐเฉˆเจธเจผเจจ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจฎเจฐเฉฑเจฅ เจนเฉเฉฐเจฆเจพ เจนเฉˆ (gz=zlib)เฅค เจจเจคเฉ€เจœเจพ เจ†เจฌเจœเฉˆเจ•เจŸ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจฟเฉฐเจ• เจ•เจฐเจจ เจฒเจˆ lld เจœเจพเจ‚ GNU binutils 2.26+ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค binutils เจฆเฉ‡ เจชเฉเจฐเจพเจฃเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจจเจพเจฒ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจจเฉ‚เฉฐ เจฌเจนเจพเจฒ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ "-gz=zlib-gnu" เจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค
  • 'เจ‡เจน' เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจนเฉเจฃ เจ—เฉˆเจฐ-เจจเจฒ เจ…เจคเฉ‡ เจกเฉ€เจฐเฉ‡เจซเจฐเฉˆเจ‚เจธเฉ‡เจฌเจฒ(N) เจœเจพเจ‚เจšเจพเจ‚ เจจเจพเจฒ เจธเฉฐเจธเจพเจงเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ NULL เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจคเจพเจ‚ nonnull เจ—เฉเจฃ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ "-fdelete-null-pointer-checks" เจตเจฟเจ•เจฒเจช เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค
  • เจฒเฉ€เจจเจ•เจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ 'เจคเฉ‡, "-fasynchronous-unwind-tables" เจฎเฉ‹เจก AArch64 เจ…เจคเฉ‡ PowerPC เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจ…เจจเจตเจพเจ‡เฉฐเจก เจ•เจพเจฒ เจŸเฉ‡เจฌเจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจธเจฎเจฐเฉฑเจฅ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ GCC เจตเจฟเฉฑเจšเฅค
  • "#pragma clang เจฒเฉ‚เจช vectorize_width" เจตเจฟเฉฑเจš เจตเฉˆเจ•เจŸเจฐเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจตเจฟเจงเฉ€ เจจเฉ‚เฉฐ เจšเฉเจฃเจจ เจฒเจˆ "เจซเจฟเจ•เจธเจก" (เจกเจฟเจซเจพเจฒเจŸ) เจ…เจคเฉ‡ "เจธเจ•เฉ‡เจฒเฉ‡เจฌเจฒ" เจตเจฟเจ•เจฒเจชเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค "เจธเจ•เฉ‡เจฒเฉ‡เจฌเจฒ" เจฎเฉ‹เจก, เจตเฉˆเจ•เจŸเจฐ เจฆเฉ€ เจฒเฉฐเจฌเจพเจˆ เจคเฉ‹เจ‚ เจธเฉเจคเฉฐเจคเจฐ, เจชเฉเจฐเจฏเฉ‹เจ—เจพเจคเจฎเจ• เจนเฉˆ เจ…เจคเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‹ เจธเจ•เฉ‡เจฒเฉ‡เจฌเจฒ เจตเฉˆเจ•เจŸเจฐเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  • เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจฌเจฟเจนเจคเจฐ เจธเจฎเจฐเจฅเจจ: เจ†เจฐเจฎ64 เจธเจฟเจธเจŸเจฎเจพเจ‚ 'เจคเฉ‡ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจฒเจˆ เจ…เจงเจฟเจ•เจพเจฐเจค เจฌเจพเจˆเจจเจฐเฉ€ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€เจ†เจ‚ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ•เจฒเฉˆเจ‚เจ— เจ•เฉฐเจชเจพเจˆเจฒเจฐ, เจเจฒเจเจฒเจกเฉ€ เจฒเจฟเฉฐเจ•เจฐ เจ…เจคเฉ‡ เจ•เฉฐเจชเจพเจˆเจฒเจฐ-เจ†เจฐเจŸเฉ€ เจฐเจจเจŸเจพเจˆเจฎ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจธเจผเจพเจฎเจฒ เจนเจจเฅค MinGW เจŸเจพเจฐเจ—เฉ‡เจŸ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจฒเจˆ เจจเจฟเจฐเจฎเจพเจฃ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, .exe เจชเจฟเจ›เฉ‡เจคเจฐ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจ•เฉเจฐเจพเจธ-เจ•เฉฐเจชเจพเจˆเจฒ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡เฅค
  • OpenCL, OpenMP เจ…เจคเฉ‡ CUDA เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจจเจพเจฒ เจœเฉเฉœเฉ€เจ†เจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค OpenCL 3.0 เจ…เจคเฉ‡ OpenCL 1.0 เจฒเจˆ เจฎเฉˆเจ•เจฐเฉ‹ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจ เจฒเจˆ "-cl-std=CL3.0" เจ…เจคเฉ‡ "-cl-std=CL1.0" เจตเจฟเจ•เจฒเจช เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค เจกเจพเจ‡เจ—เจจเฉŒเจธเจŸเจฟเจ• เจŸเฉ‚เจฒเจธ เจฆเจพ เจตเจฟเจธเจฅเจพเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • เจ•เฉเจ x86-เจ…เจงเจพเจฐเจฟเจค เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ‡ HRESET, UINTR, เจ…เจคเฉ‡ AVXVNNI เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ เจธเจนเจฟเจฏเฉ‹เจ— เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค
  • x86 เจธเจฟเจธเจŸเจฎเจพเจ‚ เจ‰เฉฑเจคเฉ‡, "-mtune=" เจšเฉ‹เจฃ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฏเฉ‹เจ— เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจœเฉ‹ เจ•เจฟ "-march=" เจฎเฉเฉฑเจฒ เจฆเฉ€ เจชเจฐเจตเจพเจน เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจšเฉเจฃเฉ‡ เจนเฉ‹เจ เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐเจฒ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจจเฉ‚เฉฐ เจฏเฉ‹เจ— เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  • เจธเจŸเฉˆเจŸเจฟเจ• เจเจจเจพเจฒเจพเจˆเจœเจผเจฐ เจจเฉ‡ เจ•เฉเจ POSIX เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เฉ€เจคเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉฐเจกเฉ€เจธเจผเจจเจฒ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฆเฉ‡ เจจเจฟเจฐเจงเจพเจฐเจจ เจตเจฟเฉฑเจš เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจธเฉเจงเจพเจฐ เจ•เฉ€เจคเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉเจฒเจจเจพ เจตเจฟเฉฑเจš เจ•เจˆ เจชเฉเจฐเจคเฉ€เจ• เจฎเฉเฉฑเจฒ เจนเจจเฅค เจจเจตเฉ€เจ†เจ‚ เจœเจพเจ‚เจšเจพเจ‚ เจœเฉ‹เฉœเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจ: fuchia.HandleChecker (เจธเฉฐเจฐเจšเจจเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจนเฉˆเจ‚เจกเจฒ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ), webkit.UncountedLambdaCapturesChecker เจตเฉˆเจฌเจ•เจฟเฉฑเจŸ เจ…เจคเฉ‡ alpha.webkit.UncountedLocalVarsChecker (เจตเฉˆเจฌเจ•เจฟเจŸ เจ‡เฉฐเจœเจฃ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ)เฅค
  • เจธเจฅเจฟเจฐเจพเจ‚เจ• เจฆเฉ‡ เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจœเจพเจฃ เจตเจพเจฒเฉ‡ เจธเจฎเฉ€เจ•เจฐเจจเจพเจ‚ เจตเจฟเฉฑเจš, เจฌเจฟเจฒเจŸ-เจ‡เจจ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ __builtin_bitreverse*, __builtin_rotateleft*, __builtin_rotateright*, _mm_popcnt*, _bit_scan_forward, __bsfd, __bsfq, __bit_scan__qrbs, wapd64__wap. XNUMX, __ bswapq เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจนเฉˆ , _castf*, __rol* เจ…เจคเฉ‡ __ror*เฅค
  • เจชเจ›เจพเจฃเจ•เจฐเจคเจพเจตเจพเจ‚, เจ•เจพเจฒเจฎเจพเจ‚ เจ…เจคเฉ‡ เจซเฉ€เจฒเจก เจชเจฐเจฟเจญเจพเจธเจผเจพเจตเจพเจ‚ เจฆเฉ‡ เจ†เจฒเฉ‡ เจฆเฉเจ†เจฒเฉ‡ เจธเจชเฉ‡เจธเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจšเฉเจฃเจจ เจฒเจˆ เจ•เจฒเฉˆเจ‚เจ—-เจซเจพเจฐเจฎเฉˆเจŸ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฌเจฟเฉฑเจŸเจซเฉ€เจฒเจก เจ•เฉ‹เจฒเฉ‹เจจ เจธเจชเฉ‡เจธเจฟเฉฐเจ— เจตเจฟเจ•เจฒเจช เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • เจฒเฉ€เจจเจ•เจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ 'เจคเฉ‡ เจ•เจฒเฉˆเจ‚เจ—เจก เจ•เฉˆเจšเจฟเฉฐเจ— เจธเจฐเจตเจฐ (เจ•เจฒเฉˆเจ‚เจ— เจธเจฐเจตเจฐ) เจจเฉ‡ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเฉ‡ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฆเฉŒเจฐเจพเจจ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจ–เจชเจค เจจเฉ‚เฉฐ เจ•เจพเจซเจผเฉ€ เจ˜เจŸเจพ เจฆเจฟเฉฑเจคเจพ เจนเฉˆ (เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฎเฉเจซเจค เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจชเฉฐเจจเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจ•เจฐเจจ เจฒเจˆ malloc_trim เจจเฉ‚เฉฐ เจธเจฎเฉ‡เจ‚-เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ เจ•เจพเจฒเจพเจ‚ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ)เฅค

LLVM 12.0 เจตเจฟเฉฑเจš เจฎเฉเฉฑเจ– เจ•เจพเจขเจพเจ‚:

  • เจชเจพเจˆเจฅเจจ เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ‡ llvm-build เจฌเจฟเจฒเจก เจŸเฉ‚เจฒ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจฌเจœเจพเจ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ CMake เจฌเจฟเจฒเจก เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจฌเจฆเจฒ เจ—เจฟเจ† เจนเฉˆเฅค
  • AArch64 เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจฌเฉˆเจ•เจเจ‚เจก เจตเจฟเฉฑเจš, เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ: เจŸเจพเจฐเจ—เฉ‡เจŸ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจธเจฟเจธเจŸเจฎเจพเจ‚ เจฒเจˆ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ€ เจธเจนเฉ€ เจชเฉ€เฉœเฉเจนเฉ€ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ, เจ…เจจเจตเจพเจˆเจ‚เจก เจ•เจพเจฒเจพเจ‚ 'เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจชเฉˆเจฆเจพเจตเจพเจฐ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ (เจ…เจœเจฟเจนเฉ‡ เจกเฉ‡เจŸเจพ เจฆเจพ เจ†เจ•เจพเจฐ 60 เจฆเฉเจ†เจฐเจพ เจ˜เจŸเจพ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค %), เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ…เจจเจตเจพเจ‡เฉฐเจก เจกเฉ‡เจŸเจพ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจจเจฟเจฐเจฆเฉ‡เจธเจผ .seh_* เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • เจชเจพเจตเจฐเจชเฉ€เจธเฉ€ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจฌเฉˆเจ•เจเจ‚เจก เจฒเฉ‚เจชเจธ เจ…เจคเฉ‡ เจ‡เจจเจฒเจพเจˆเจจ เจกเจฟเจชเจฒเจพเจ‡เจฎเฉˆเจ‚เจŸ เจฒเจˆ เจจเจตเฉ‡เจ‚ เจ†เจชเจŸเฉ€เจฎเจพเจˆเจœเจผเฉ‡เจธเจผเจจ, เจชเจพเจตเจฐ10 เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจฒเจˆ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจธเจฎเจฐเจฅเจจ, เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจฒเจˆ MMA เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ AIX เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจฌเจฟเจนเจคเจฐ เจธเจฎเจฐเจฅเจจ เจธเจผเจพเจฎเจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  • x86 เจฌเฉˆเจ•เจเจ‚เจก AMD Zen 3, Intel Alder Lake เจ…เจคเฉ‡ Intel Sapphire Rapids เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ HRESET, UINTR เจ…เจคเฉ‡ AVXVNNI เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ MPX (เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจชเฉเจฐเฉ‹เจŸเฉˆเจ•เจธเจผเจจ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ) เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจนเฉเจฃ เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆ (เจ‡เจน เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจตเจฟเจ†เจชเจ• เจจเจนเฉ€เจ‚ เจนเฉˆ เจ…เจคเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ GCC เจ…เจคเฉ‡ เจ•เจฒเฉˆเจ‚เจ— เจคเฉ‹เจ‚ เจนเจŸเจพ เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจนเฉˆ)เฅค เจ“เจชเจฐเฉ‡เจ‚เจก เจ†เจซเจธเฉˆเฉฑเจŸเจพเจ‚ เจ…เจคเฉ‡ เจœเฉฐเจชเจพเจ‚ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐเจจ เจฒเจˆ {disp32} เจ…เจคเฉ‡ {disp8} เจ…เจ—เฉ‡เจคเจฐเจพเจ‚ เจ…เจคเฉ‡ .d32 เจ…เจคเฉ‡ .d8 เจชเจฟเจ›เฉ‡เจคเจฐเจพเจ‚ เจฒเจˆ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†เฅค เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐเจฒ เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเจจ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจ—เฉเจฃ "เจŸเจฟเจŠเจจ-เจธเฉ€เจชเฉ€เจฏเฉ‚" เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†เฅค
  • เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจฎเฉ‹เจก โ€œ-fsanitize=unsigned-shift-baseโ€ เจจเฉ‚เฉฐ เจ–เฉฑเจฌเฉ‡ เจชเจพเจธเฉ‡ เจฅเฉ‹เฉœเฉ€ เจธเจผเจฟเจซเจŸ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ…เจฃ-เจนเจธเจคเจพเจ–เจฐเจฟเจค เจชเฉ‚เจฐเจจ เจ…เฉฐเจ•เจพเจ‚ เจฆเฉ‡ เจ“เจตเจฐเจซเจฒเฉ‹ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฒเจˆ เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจธเจฎเฉฑเจธเจฟเจ† เจ–เฉ‹เจœเจ• (เจ‡เฉฐเจŸเฉ€เจœเจฐ เจธเฉˆเจจเฉ€เจŸเจพเจˆเจœเจผเจฐ, โ€œ-fsanitize=integerโ€) เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค
  • เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฎเฉเจธเจฒ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ‡ เจจเจพเจฒ เจฒเฉ€เจจเจ•เจธ เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจเจพเจ‚ เจฒเจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจกเจฟเจŸเฉˆเจ•เจŸเจฐเจพเจ‚ (เจ†เจธเจจ, เจธเฉ€เจเจซเจ†เจˆ, เจเจฒเจธเจพเจจ, เจเจฎเจธเจพเจจ, เจŸเจธเฉˆเจจ, เจ‰เจฌเจธเจพเจจ เจธเฉˆเจจเฉ€เจŸเจพเจˆเจœเจผเจฐ) เจตเจฟเฉฑเจš เจธเจฎเจฐเจฅเจจ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • เจเจฒเจเจฒเจกเฉ€ เจฒเจฟเฉฐเจ•เจฐ เจฆเฉ€เจ†เจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเจพ เจตเจฟเจธเจฅเจพเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค ELF เจซเจพเจฐเจฎเฉˆเจŸ เจฒเจˆ เจธเฉเจงเจฐเจฟเจ† เจธเจฎเจฐเจฅเจจ, "--เจจเจฟเจฐเจญเจฐเจคเจพ-เจซเจพเจˆเจฒ", "-เจเจฐเจฐ-เจนเฉˆเจ‚เจกเจฒเจฟเฉฐเจ—-เจธเจ•เฉเจฐเจฟเจชเจŸ", "-lto-pseudo-probe-for-profiling", "-no-lto-เจชเฉ‚เจฐเจพ-เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ" เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ‡ เจ—เจ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจธเจฎเฉ‡เจค -เจฆเจฟเฉฑเจ–เจคเจพ"" เจฌเจฟเจนเจคเจฐ MinGW เจธเจฎเจฐเจฅเจจเฅค Mach-O เจซเจพเจฐเจฎเฉˆเจŸ (macOS) เจฒเจˆ, arm64, arm, เจ…เจคเฉ‡ i386 เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจธเจฎเจฐเจฅเจจ, เจฒเจฟเฉฐเจ•-เจŸเจพเจˆเจฎ เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ (LTO), เจ…เจคเฉ‡ เจ…เจชเจตเจพเจฆ เจนเฉˆเจ‚เจกเจฒเจฟเฉฐเจ— เจฒเจˆ เจธเจŸเฉˆเจ• เจ…เจจเจตเจพเจˆเจ‚เจกเจฟเฉฐเจ— เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • Libc++ C++20 เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฆเฉ€เจ†เจ‚ เจจเจตเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ C++2b เจจเจฟเจฐเจงเจพเจฐเจจ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเจพ เจตเจฟเจ•เจพเจธ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจนเฉˆเฅค เจ…เจธเจฎเจฐเฉฑเจฅ เจธเจฅเจพเจจเฉ€เจ•เจฐเจจ เจธเจฎเจฐเจฅเจจ (โ€œ-DLIBCXX_ENABLE_LOCALIZATION=OFFโ€) เจ…เจคเฉ‡ เจธเฉ‚เจกเฉ‹-เจฐเฉˆเจ‚เจกเจฎ เจจเฉฐเจฌเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ (โ€œ-DLIBCXX_ENABLE_RANDOM_DEVICE=OFFโ€) เจฆเฉ‡ เจจเจพเจฒ เจฌเจฟเจฒเจกเจฟเฉฐเจ— เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†เฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹