ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ LLVM 11.0 ืงืึทืžืคึผื™ื™ืœืขืจ ืฉื˜ืขืœืŸ

ื ืึธืš ื–ืขืงืก ื—ื“ืฉื™ื ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื“ืขืจืœืื ื’ื˜ ืคึผืจื•ื™ืขืงื˜ ืžืขืœื“ื•ื ื’ LLVM 11.0 - GCC-ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื›ืฉื™ืจื™ื (ืงืึทืžืคึผื™ื™ืœืขืจื–, ืึธืคึผื˜ื™ืžื™ื–ืขืจืก ืื•ืŸ ืงืึธื“ ื’ืขื ืขืจืึทื˜ืึธืจืก), ืงืึทืžืคึผื™ื™ืœื™ื ื’ ืžื’ื™ืœื” ืื™ืŸ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ื‘ื™ื˜ืงืึธื“ืข ืคื•ืŸ โ€‹โ€‹RISC-ื•ื•ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– (ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ืžื™ื˜ ืึท ืžืึทืœื˜ื™-ืžื“ืจื’ื” ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืกื™ืกื˜ืขื). ื“ื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืคึผืกืขื•ื•ื“ืึธืงืึธื“ืข ืงืขื ืขืŸ ื–ื™ื™ืŸ ืงืึธื ื•ื•ืขืจื˜ืขื“ ืžื™ื˜ ืึท JIT ืงืึทืžืคึผื™ื™ืœืขืจ ืื™ืŸ ืžืึทืฉื™ืŸ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ื’ืœื™ื™ึทืš ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื“ื™ ืคึผืจืึธื’ืจืึทื.

ื“ืขืจ ืฉืœื™ืกืœ ืขื ื“ืขืจื•ื ื’ ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ืžืขืœื“ื•ื ื’ ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ ื™ื ืงืœื•ื–ืฉืึทืŸ ืคื•ืŸ ืคืœืึทื ืงืขืŸ, ืคืจืึธื ื˜ืขื ื“ ืคึฟืึทืจ ื“ื™ ืคืึธืจื˜ืจืึทืŸ ืฉืคึผืจืึทืš. ืคืœืึทื ื’ ืฉื˜ื™ืฆื˜ Fortran 2018, OpenMP 4.5 ืื•ืŸ OpenACC 3.0, ืึธื‘ืขืจ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื ืึธืš ื ื™ืฉื˜ ื’ืขืขื ื“ื™ืงื˜ ืื•ืŸ ื“ื™ ืคืจืึธื ื˜ ืกื•ืฃ ืื™ื– ืœื™ืžื™ื˜ืขื“ ืฆื• ืงืึธื“ ืคึผืึทืจืกื™ื ื’ ืื•ืŸ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืคึฟืึทืจ ืงืขืจืขืงื˜ื ืึทืก. ื’ืขื ืขืจืึทื˜ื™ืึธืŸ ืคื•ืŸ LLVM ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืงืึธื“ ืื™ื– ื ืึธืš ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜ ืื•ืŸ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื˜ืขืงืขืก, ืงืึทื ืึธื ื™ืงืึทืœ ืงืึธื“ ืื™ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืื•ืŸ ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ืฆื• ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืคืึธืจื˜ืจืึทืŸ ืงืึทืžืคึผื™ื™ืœืขืจ.

ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืื™ืŸ ืงืœืึทื ื’ 11.0:

  • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื•ืžืงืขืจืŸ ื“ื™ ืึทื‘ืกื˜ืจืึทืงื˜ ืกื™ื ื˜ืึทืงืก ื‘ื•ื™ื (ืึทืกื˜) ืคึฟืึทืจ ืฆืขื‘ืจืื›ืŸ C ++ ืงืึธื“, ื•ื•ืึธืก ืงืขื ืขืŸ ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ืฆื• ื”ืขืœืคืŸ ื“ื™ืึทื’ื ืึธื–ื™ืจืŸ ืขืจืจืึธืจืก ืื•ืŸ ื’ื™ื˜ ื ืึธืš ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืฆื• ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื™ื•ื˜ื™ืœืึทื˜ื™ื– ืึทื–ืึท ื•ื•ื™ ืงืœืึทื ื’-ืฆื™ื›ื˜ื™ืง ืื•ืŸ ืงืœืึทื ื’ื“. ื“ื™ ืฉื˜ืจื™ืš ืื™ื– ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืคึฟืึทืจ C ++ ืงืึธื“ ืื•ืŸ ืื™ื– ืงืึทื ื˜ืจืึธื•ืœื“ ื“ื•ืจืš ื“ื™ "-Xclang -f[no-] recovery-ast" ืึธืคึผืฆื™ืขืก.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึทืข ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืžืึธื“ืขืก:
    • "-Wpointer-to-int-cast" ืื™ื– ืึท ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ื•ื•ืึธืจื ื™ื ื’ื– ื•ื•ืขื’ืŸ ืงืึทืกื˜ื™ื ื’ ืคึผื•ื™ื ื˜ืขืจื– ืฆื• ืึท ื™ื ื˜ืึทื“ื–ืฉืขืจ ื˜ื™ืคึผ ื•ื•ืึธืก ื˜ื•ื˜ ื ื™ืฉื˜ ืึทืงืึทืžืึทื“ื™ื™ื˜ ืึทืœืข ืžืขื’ืœืขืš ื•ื•ืึทืœื•ืขืก.
    • "-Wuninitialized-const-reference" - ื•ื•ืืจืขื ื•ื ื’ ื•ื•ืขื’ืŸ ื“ื•ืจื›ื’ื™ื™ืŸ ืึทื ื™ื ื™ืฉื™ืึทืœื™ื™ื–ื“ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื™ืŸ ืคื•ื ืงืฆื™ืข ืคึผืึทืจืึทืžืขื˜ืขืจืก ื•ื•ืึธืก ืึธื ื ืขืžืขืŸ ืจืขืคึฟืขืจืขื ืฅ ืึทืจื’ื•ืžืขื ื˜ืŸ ืžื™ื˜ ื“ื™ "const" ืึทื˜ืจื™ื‘ื™ื•ื˜.
    • "-Wimplicit-const-int-float-conversion" - ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืืจืขื ื•ื ื’ ื•ื•ืขื’ืŸ ื™ืžืคึผืœื™ืกืึทื˜ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ืคื•ืŸ ืึท ืคืึทืงื˜ื™ืฉ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืฆื• ืึทืŸ ื™ื ื˜ืึทื“ื–ืฉืขืจ ื˜ื™ืคึผ.
  • ืคึฟืึทืจ ื“ื™ ARM ืคึผืœืึทื˜ืคืึธืจืžืข, C ืคืึทื ื’ืงืฉืึทื ื– ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ื“ื™ ืงืึทืžืคึผื™ื™ืœืขืจ ื–ืขื ืขืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ (ื™ื ื˜ืจื™ื ืกื™ืงืก), ืจื™ืคึผืœื™ื™ืกื˜ ื“ื•ืจืš ืขืคืขืงื˜ื™ื•ื• ื•ื•ืขืงื˜ืึธืจ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก Arm v8.1-M MVE ืื•ืŸ CDE. ื“ื™ ื‘ื ื™ืžืฆื ืคืึทื ื’ืงืฉืึทื ื– ื–ืขื ืขืŸ ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ื“ื™ ื›ืขื“ืขืจ ื˜ืขืงืขืก arm_mve.h ืื•ืŸ arm_cde.h.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ืกื›ื•ื ืคื•ืŸ ืขืงืกื˜ืขื ื“ืขื“ ื™ื ื˜ืึทื“ื–ืฉืขืจ ื˜ื™ื™ืคึผืก _ExtInt (N), ืึทืœืึทื•ื™ื ื’ ืื™ืจ ืฆื• ืฉืึทืคึฟืŸ ื˜ื™ื™ืคึผืก ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืžืึทืœื˜ืึทืคึผืึทืœื– ืคื•ืŸ ื›ื•ื—ื•ืช ืคื•ืŸ ืฆื•ื•ื™ื™, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ืคื™ืฉืึทื ื˜ืœื™ ืคึผืจืึทืกืขืกื˜ ืื•ื™ืฃ FPGA / HLS. ืœืขืžืึธืฉืœ, _ExtInt (7) ื“ื™ืคื™ื™ื ื– ืึท ื™ื ื˜ืึทื“ื–ืฉืขืจ ื˜ื™ืคึผ ืงืึทื ืกื™ืกื˜ื™ื ื’ ืคื•ืŸ 7 ื‘ื™ื˜ืŸ.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืžืึทืงืจืึธืก ื•ื•ืึธืก ื“ืขืคื™ื ื™ืจืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ C ืคืึทื ื’ืงืฉืึทื ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ARM SVE (Scalable Vector Extension) ื™ื ืกื˜ืจืึทืงืฉืึทื ื–:
    __ARM_FEATURE_SVE, __ARM_FEATURE_SVE_BF16,
    __ARM_FEATURE_SVE_MATMUL_FP32, __ARM_FEATURE_SVE_MATMUL_FP64,
    __ARM_FEATURE_SVE_MATMUL_INT8,
    __ARM_FEATURE_SVE2, __ARM_FEATURE_SVE2_AES,
    __ARM_FEATURE_SVE2_BITPERM,
    __ARM_FEATURE_SVE2_SHA3,
    __ARM_FEATURE_SVE2_SM4. ืฆื•ื ื‘ื™ื™ืฉืคึผื™ืœ, ื“ืขืจ __ARM_FEATURE_SVE ืžืึทืงืจืึธื• ืื™ื– ื“ื™ืคื™ื™ื ื“ ื•ื•ืขืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืึทืึทืจื˜ืฉ64 ืงืึธื“ ื“ื•ืจืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ืฉื•ืจื” ืึธืคึผืฆื™ืข "-ืžืึทืจืฅ = ืึทืจืžื•ื•8-ืึท + ืกื•ื•ืข".

  • ื“ื™ "-ืึธ" ืคืึธืŸ ืื™ื– ืื™ืฆื˜ ื™ื™ื“ืขื ืึทืคื™ื™ื“ ืžื™ื˜ ื“ื™ "-O1" ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืžืึธื“ืข ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ "-O2".
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื ื™ื™ึท ืงืึทืžืคึผื™ื™ืœืขืจ ืคืœืึทื’ืก:
    • "-fstack-clash-protection" - ื™ื ื™ื™ื‘ืึทืœื– ืฉื•ืฅ ืงืขื’ืŸ ื™ื ื˜ืขืจืกืขืงืฉืึทื ื– ืคื•ืŸ ืึธื ืœื™ื™ื’ืŸ ืื•ืŸ ืงื•ืคึผืข.
    • "-ffp-exception-behavior={ignore, maytrap,strict}" - ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ื•ื™ืกื ืขื ื”ืึทื ื“ืœืขืจ ืžืึธื“ืข ืคึฟืึทืจ ืคืœืึธื•ื˜ื™ื ื’ ืคื•ื ื˜ ื ื•ืžืขืจืŸ.
    • "-ffp-model={precise,strict,fast}" - ืกื™ืžืคึผืœืึทืคื™ื™ื– ืึทืงืกืขืก ืฆื• ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืกืคึผืขืฉืึทืœื™ื™ื–ื“ ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ืคืœืึธื•ื˜ื™ื ื’ ืคื•ื ื˜ ื ื•ืžืขืจืŸ.
    • "-fpch-codegen" ืื•ืŸ "-fpch-debuginfo" ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืึท ืคึผืจื™ืงืึธืžืคึผื™ื™ืœื“ ื›ืขื“ืขืจ (PCH) ืžื™ื˜ ื‘ืึทื–ื•ื ื“ืขืจ ืึทื‘ื“ื–ืฉืขืงืฅ ื˜ืขืงืขืก ืคึฟืึทืจ ืงืึธื“ ืื•ืŸ ื“ืขื‘ื•ื’ื™ื ืคืึธ.
    • "-fsanitize-coverage-allowlist" ืื•ืŸ "-fsanitize-coverage-blocklist" ืคึฟืึทืจ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืงืึทื•ื•ืขืจื™ื“ื–ืฉ ื˜ืขืกื˜ื™ื ื’ ื•ื•ื™ื™ึทืก ืื•ืŸ ืฉื•ื•ืึทืจืฅ ืจืฉื™ืžื•ืช.
    • "-mtls-size={12,24,32,48}" ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ TLS (ืคืึธื“ืขื-ืœืืงืืœืข ืกื˜ืึธืจื™ื“ื–ืฉ) ื’ืจื™ื™ืก.
    • "-menable-experimental-extension" ืฆื• ื’ืขื‘ืŸ ื™ืงืกืคึผืขืจืžืขื ืึทืœ RISC-V ื™ืงืกื˜ืขื ืฉืึทื ื–.
  • ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืžืึธื“ืข ืคึฟืึทืจ C ืื™ื– "-fno-common", ื•ื•ืึธืก ืึทืœืึทื•ื– ืžืขืจ ืขืคืขืงื˜ื™ื•ื• ืึทืงืกืขืก ืฆื• ื’ืœืื‘ืืœืข ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ื™ืฃ ืขื˜ืœืขื›ืข ืคึผืœืึทื˜ืคืึธืจืžืก.
  • ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืžืึธื“ื•ืœืข ืงืึทืฉ ืื™ื– ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืคื•ืŸ /ื˜ืžืคึผ ืฆื• ื“ื™ ~/.ืงืึทื˜ืฉืข ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ืฆื• ืึธื•ื•ื•ืขืจืจื™ื™ื“, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ "-fmodules-cache-path =" ืคืึธืŸ.
  • ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ C ืฉืคึผืจืึทืš ื ืึธืจืžืึทืœ ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืคื•ืŸ gnu11 ืฆื• gnu17.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืคึผืจื™ืœื™ืžืึทื ืขืจื™ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ GNU C ืคืึทืจืœืขื ื’ืขืจื•ื ื’ "ืกืž ืื™ื ืœื™ื ืขยป ืฆื• ืœื™ื™ื’ืŸ ืึทืกืขืžื‘ืึทืœ ื™ื ืกืขืจืฅ. ื“ื™ ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืื™ื– ื ืึธืš ืึทื ืึทืœื™ื™ื–ื“, ืึธื‘ืขืจ ื ื™ืฉื˜ ืคึผืจืึทืกืขืกื˜ ืื™ืŸ ืงื™ื™ืŸ ื•ื•ืขื’.
  • ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ OpenCL ืื•ืŸ CUDA ืฉื˜ื™ืฆืŸ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื™ืงืกืคึผืึทื ื“ื™ื“. ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ OpenCL 2.0 ื‘ืœืึธืง ื“ื™ืึทื’ื ืึธืกื˜ื™ืงืก ืื•ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื ื™ื™ึท OpenMP 5.0 ืคึฟืขื™ึดืงื™ื™ื˜ืŸ.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื™ื ื“ืขื ื˜ืขืงืกื˜ืขืจื ื‘ืœืึทืง ืึธืคึผืฆื™ืข ืฆื• ืงืœืึทื ื’ ืคึฟืึธืจืžืึทื˜ ื ื•ืฆืŸ ืคึฟืึทืจ ืึทืœื™ื™ื ืžืึทื ื˜ ืื™ืŸ ืขืงืกื˜ืขืจืŸ "C" ืื•ืŸ ืขืงืกื˜ืขืจืŸ "C ++" ื‘ืœืึทืงืก.
  • ื“ื™ ืกื˜ืึทื˜ื™ืง ืึทื ืึทืœื™ื–ืขืจ ื”ืื˜ ื™ืžืคึผืจื•ื•ื•ื“ ื”ืึทื ื“ืœื™ื ื’ ืคื•ืŸ ื™ื ื›ืขืจืึทื˜ื™ื“ ืงืึทื ืกื˜ืจืึทืงื˜ืขืจื– ืื™ืŸ C ++. ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึท ื˜ืฉืขืงืก alpha.core.C11Lock ืื•ืŸ alpha.fuchsia.lock ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืคึฟืึทืจ ืœืึทืงืก, alpha.security.cert.pos.34c ืฆื• ื“ืขื˜ืขืงื˜ ืึทื ืกื™ื™ืฃ ื ื•ืฆืŸ ืคื•ืŸ putenv, webkit.NoUncountedMemberChecker ืื•ืŸ webkit.RefCntblBaseVirtualDtor ืฆื• ื“ืขื˜ืขืงื˜ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ืึทื ืงืึทื•ื ื˜ืึทื‘ืึทืœ ื˜ื™ื™ืคึผืก, ืึทืœืคืึท. .ืงืคึผืœื•ืกืคึผืœื•ืก .ืกืžืึทืจื˜ืคึผื˜ืจ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืคึฟืึทืจ ื ืึทืœ ืกืžืึทืจื˜ ื˜ื™ื™ึทื˜ืœ ื“ืขืจืคืขืจืึทื ืก.
  • ืื™ืŸ ืœื™ื ื“ืขืจ ืงืœืึทื ื’-ืฆื™ื›ื˜ื™ืง ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ื’ืจื•ื™ืก ื˜ื™ื™ืœ ืคื•ืŸ ื ื™ื™ึท ื˜ืฉืขืงืก.
  • ื“ื™ Clangd ืงืึทื˜ืฉื™ื ื’ ืกืขืจื•ื•ืขืจ (Clang Server) ื”ืื˜ ื™ืžืคึผืจื•ื•ื•ื“ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื•ืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ื ื™ื™ึท ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–.

ื”ื•ื™ืคึผื˜ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื– LLVM 11.0:

  • ื“ื™ ื‘ื•ื™ืขืŸ ืกื™ืกื˜ืขื ืื™ื– ืกื•ื•ื™ื˜ืฉื˜ ืฆื• ื ื™ืฆืŸ ืคึผื™ื˜ื”ืึธืŸ 3. ืื•ื™ื‘ ืคึผื™ื˜ื”ืึธืŸ 3 ืื™ื– ื ื™ื˜ ื‘ื ื™ืžืฆื, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืฆื•ืจื™ืงืงืจื™ื’ืŸ ืฆื• ื ื™ืฆืŸ ืคึผื™ื˜ื”ืึธืŸ 2.
  • ื“ื™ ืคืจืึธื ื˜ ืกื•ืฃ ืžื™ื˜ ื“ื™ ืงืึทืžืคึผื™ื™ืœืขืจ ืคึฟืึทืจ ื“ื™ Go ืฉืคึผืจืึทืš (llgo) ืื™ื– ื™ืงืกืงืœื•ื“ื™ื“ ืคื•ืŸ ื“ืขืจ ืžืขืœื“ื•ื ื’, ื•ื•ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ืจื™ืกื˜ืจืึทืงื˜ืฉืขืจื“ ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜.
  • ื“ื™ ื•ื•ืขืงื˜ืึธืจ-ืคื•ื ืงืฆื™ืข-ืึทื‘ื™-ื•ื•ืึทืจื™ืึทื ื˜ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’ (IR) ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืžืึทืคึผื™ื ื’ ืฆื•ื•ื™ืฉืŸ ืกืงืึทืœืึทืจ ืื•ืŸ ื•ื•ืขืงื˜ืึธืจ ืคืึทื ื’ืงืฉืึทื ื– ืฆื• ื•ื•ืขืงื˜ืึธืจื™ื–ืข ืงืึทืœืœืก. ืคึฟื•ืŸ llvm :: ื•ื•ืขืงื˜ืึธืจื˜ื™ืคึผืข ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื‘ืึทื–ื•ื ื“ืขืจ ื•ื•ืขืงื˜ืึธืจ ื˜ื™ื™ืคึผืก llvm :: FixedVectorType ืื•ืŸ llvm :: ScalableVectorType.
  • ื‘ืจืึทื ื˜ืฉื™ื ื’ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ udef ื•ื•ืึทืœื•ืขืก ืื•ืŸ ืคืึธืจืŸ ื•ื ื“ืขืฃ ื•ื•ืึทืœื•ืขืก ืฆื• ื ืึธืจืžืึทืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืคืึทื ื’ืงืฉืึทื ื– ืื™ื– ืื ืขืจืงืขื ื˜ ื•ื•ื™ ืึทื ื“ื™ืคื™ื™ื ื“ ื ืึทื˜ื•ืจ. ืื™ืŸ
    memset/memcpy/memmmove ืึทืœืึทื•ื– ื“ื•ืจื›ืคืึธืจ ื•ื ื“ืขืฃ ืคึผื•ื™ื ื˜ืขืจื–, ืึธื‘ืขืจ ืื•ื™ื‘ ื“ืขืจ ืคึผืึทืจืึทืžืขื˜ืขืจ ืžื™ื˜ ื’ืจื™ื™ืก ืื™ื– ื ื•ืœ.

  • LLJIT ื”ืื˜ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคึผืขืจืคืึธืจืžื™ื ื’ ืกื˜ืึทื˜ื™ืง ื™ื ื™ื˜ื™ืึทืœื™ื–ื™ื™ืฉืึทื ื– ื“ื•ืจืš ื“ื™ LLJIT :: ื™ื ื™ื˜ื™ืึทืœื™ื–ืข ืื•ืŸ LLJIT :: ื“ืขื™ื ื™ื˜ื™ืึทืœื™ื–ืข ืžืขื˜ื”ืึธื“ืก. ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืœื™ื™ื’ืŸ ืกื˜ืึทื˜ื™ืง ืœื™ื™ื‘ืจืขืจื™ื– ืฆื• JITDylib ืžื™ื˜ ื“ื™ StaticLibraryDefinitionGenerator ืงืœืึทืก ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“. ืฆื•ื’ืขื’ืขื‘ืŸ C API ืคึฟืึทืจ ORCv2 (ืึทืคึผื™ ืคึฟืึทืจ ื‘ื ื™ืŸ JIT ืงืึธืžืคึผื™ืœืขืจืก).
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Cortex-A64, Cortex-A34, Cortex-A77 ืื•ืŸ Cortex-X78 ืคึผืจืึทืกืขืกืขืจื– ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื™ AArch1 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ. ื™ืžืคึผืœืึทืžืขื ืึทื“ ARMv8.2-BF16 (BFloat16) ืื•ืŸ ARMv8.6-A ื™ืงืกื˜ืขื ืฉืึทื ื–, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ RMv8.6-ECV (ืขื ื›ืึทื ืกื˜ ืงืึธื•ื ื˜ืขืจ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ), ARMv8.6-FGT (ืคื™ื™ืŸ ื’ืจื™ื™ื ื“ ื˜ืจืึทืคึผืก), ARMv8.6-AMU (ืึทืงื˜ื™ื•ื•ื™ื˜ื™ ืžืึธื ื™ื˜ืึธืจืก ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ) ืื•ืŸ ARMv8.0-DGH (ื“ืึทื˜ืึท ื–ืึทืžืœื•ื ื’ ืึธื ืฆื•ื”ืขืจืขื ื™ืฉ). ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืงืึธื“ ืคึฟืึทืจ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืคืึทื ื’ืงืฉืึทื ื–-ื‘ื™ื ื“ื™ื ื’ ืฆื• SVE ื•ื•ืขืงื˜ืึธืจ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜.
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Cortex-M55, Cortex-A77, Cortex-A78 ืื•ืŸ Cortex-X1 ืคึผืจืึทืกืขืกืขืจื– ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื™ ARM ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ. ืขืงืกื˜ืขื ืกื™ืึธื ืก ื™ืžืคึผืœืึทืžืขื ืึทื“
    Armv8.6-A ืžืึทื˜ืจื™ืฅ ืžื•ืœื˜ื™ืคึผืœื™ ืื•ืŸ RMv8.2-AA32BF16 BFloat16.

  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืงืึธื“ ื“ื•ืจ ืคึฟืึทืจ POWER10 ืคึผืจืึทืกืขืกืขืจื– ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื™ PowerPC ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ. ืฉืœื™ื™ืฃ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื™ืงืกืคึผืึทื ื“ื™ื“ ืื•ืŸ ืคืœืึธื•ื˜ื™ื ื’ ืคื•ื ื˜ ืฉื˜ื™ืฆืŸ ืื™ื– ื™ืžืคึผืจื•ื•ื•ื“.
  • ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื™ RISC-V ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืึทืœืึทื•ื– ื“ื™ ืึทืงืกืขืคึผื˜ืึทื ืก ืคื•ืŸ ืคึผืึทื˜ืฉืึทื– ื•ื•ืึธืก ืฉื˜ื™ืฆืŸ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืขืงืกื˜ืขื ื“ืขื“ ืœื™ืžืขื“ ืกืขืฅ ื•ื•ืึธืก ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื ืึธืš ืึทืคื™ืฉืึทืœื™ ื‘ืื•ื•ื™ืœื™ืงื˜.
  • ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื™ ืึทื•ื•ืจ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื™ื– ื˜ืจืึทื ืกืคืขืจื“ ืคื•ืŸ ื“ื™ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืงืึทื˜ืขื’ืึธืจื™ืข ืฆื• ืกื˜ืึทื‘ื™ืœ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ื™ืงืขืจื“ื™ืง ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’.
  • ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ืงืก86 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืฉื˜ื™ืฆื˜ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืคื•ืŸ Intel AMX ืื•ืŸ TSXLDTRK. ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื•ืฅ ืงืขื’ืŸ ืื ืคืืœืŸ ืœื•ื•ื™ (ืœืึธืึทื“ ื•ื•ืขืจื˜ ื™ื ื“ื–ืฉืขืงืฉืึทืŸ), ืื•ืŸ ืื•ื™ืš ื™ืžืคึผืœืึทืžืึทื ืฅ ืึท ื’ืขื ืขืจืึทืœ ืกืคึผืขืงื•ืœืึทื˜ื™ื•ื•ืข ืขืงืกืขืงื•ื˜ื™ืึธืŸ ืกืึทืคึผืจืขืฉืึทืŸ ืžืขืงืึทื ื™ื–ืึทื ืฆื• ืคืึทืจืฉืคึผืึทืจืŸ ืื ืคืืœืŸ ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ืกืคึผืขืงื•ืœืึทื˜ื™ื•ื•ืข ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ื™ืฃ ื“ื™ ืงืคึผื•.
  • ืื™ืŸ ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื™ SystemZ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ MemorySanitizer ืื•ืŸ LeakSanitizer ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ.
  • ืึทื“ื“ืขื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื›ืขื“ืขืจ ื˜ืขืงืข ืžื™ื˜ ืžืึทื˜ืึทืžืึทื˜ื™ืงืึทืœ ืงืึทื ืกื˜ืึทื ืฅ ืฆื• Libc ++ .
  • ื™ืงืกืคึผืึทื ื“ื™ื“ LLD ืœื™ื ืงืขืจ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–. ื™ืžืคึผืจื•ื•ื•ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ELF ืคึฟืึธืจืžืึทื˜, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึธืคึผืฆื™ืขืก "--lto-emit-asm", "--lto-whole-program-visibility", "-print-archive-stats", "-shuffle-sections", " -ื˜ื”ื™ื ืœื˜ืึธ- ืื™ื™ืŸ-ืžืึธื“ื•ืœืข", "-ื™ื™ื ืฆื™ืง", "-ืจืึธืกืขื’ืžืขื ื˜", "-ืคึฟืขื“ืขื=ืขืŸ". ืฆื•ื’ืขื’ืขื‘ืŸ "--ืฆื™ื™ื˜-ืฉืคึผื•ืจ" ืึธืคึผืฆื™ืข ืฆื• ืจืึทื˜ืขื•ื•ืขืŸ ื“ื™ ืฉืคึผื•ืจ ืฆื• ืึท ื˜ืขืงืข, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทื ืึทืœื™ื™ื–ื“ ื“ื•ืจืš ื“ื™ ืงืจืึธื•ื: // ื˜ืจื™ื™ืกื™ื ื’ ืฆื•ื‘ื™ื ื“ ืื™ืŸ ืงืจืึธื•ื.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’