ืฉื—ืจื•ืจ ืžืขืจืš ื”ืžื”ื“ืจ LLVM 11.0

ืœืื—ืจ ืฉื™ืฉื” ื—ื•ื“ืฉื™ื ืฉืœ ืคื™ืชื•ื— ื”ืฆื™ื’ ืฉื—ืจื•ืจ ื”ืคืจื•ื™ืงื˜ LLVM 11.0 - ื›ืœื™ื ืชื•ืืžื™ GCC (ืžื”ื“ืจื™ื, ืžื™ื™ืขืœื™ื ื•ืžื—ื•ืœืœื™ ืงื•ื“), ืงื•ืžืคื™ืœืฆื™ื” ืฉืœ ืชื•ื›ื ื™ื•ืช ืœืงื•ื“ ื‘ื™ื ื™ื™ื ืฉืœ ื”ื•ืจืื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื“ืžื•ื™ื•ืช RISC (ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืจืžื” ื ืžื•ื›ื” ืขื ืžืขืจื›ืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืžืจื•ื‘ืช ืจืžื•ืช). ื ื™ืชืŸ ืœื”ืžื™ืจ ืืช ื”ืคืกืื•ื“ื•ืงื•ื“ ืฉื ื•ืฆืจ ื‘ืืžืฆืขื•ืช ืžื”ื“ืจ JIT ืœื”ื•ืจืื•ืช ืžื›ื•ื ื” ื™ืฉื™ืจื•ืช ื‘ื–ืžืŸ ื‘ื™ืฆื•ืข ื”ืชื•ื›ื ื™ืช.

ื”ืฉื™ื ื•ื™ ื”ืžืจื›ื–ื™ ื‘ืžื”ื“ื•ืจื” ื”ื—ื“ืฉื” ื”ื™ื” ื”ื›ืœืœืช ืœึฐืึทื’ึตืฃ, ื—ื–ื™ืช ืœืฉืคืช Fortran. Flang ืชื•ืžืš ื‘-Fortran 2018, OpenMP 4.5 ื•-OpenACC 3.0, ืืš ืคื™ืชื•ื— ื”ืคืจื•ื™ืงื˜ ื˜ืจื ื”ื•ืฉืœื ื•ื”ืคืจื•ื ื˜-ืื ื“ ืžื•ื’ื‘ืœ ืœื ื™ืชื•ื— ืงื•ื“ ื•ื‘ื“ื™ืงืช ื ื›ื•ื ื•ืช. ื™ืฆื™ืจืช ืงื•ื“ ื‘ื™ื ื™ื™ื LLVM ืขื“ื™ื™ืŸ ืœื ื ืชืžื›ืช ื•ื›ื“ื™ ืœื™ืฆื•ืจ ืงื‘ืฆื™ ื”ืคืขืœื”, ื ื•ืฆืจ ืงื•ื“ ืงื ื•ื ื™ ื•ืžื•ืขื‘ืจ ืœืžื”ื“ืจ Fortran ื—ื™ืฆื•ื ื™.

ืฉื™ืคื•ืจื™ื ื‘-Clang 11.0:

  • ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœืฉื—ื–ืจ ืืช ืขืฅ ื”ืชื—ื‘ื™ืจ ื”ืžื•ืคืฉื˜ (AST) ืขื‘ื•ืจ ืงื•ื“ C++ ืฉื‘ื•ืจ, ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœืกื™ื™ืข ื‘ืื‘ื—ื•ืŸ ืฉื’ื™ืื•ืช ื•ืžืกืคืง ืžื™ื“ืข ื ื•ืกืฃ ืœื›ืœื™ ืขื–ืจ ื—ื™ืฆื•ื ื™ื™ื ื›ื’ื•ืŸ clang-tidy ื•-clangd. ื”ืชื›ื•ื ื” ืžื•ืคืขืœืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืขื‘ื•ืจ ืงื•ื“ C++ ื•ื ืฉืœื˜ืช ื‘ืืžืฆืขื•ืช ืืคืฉืจื•ื™ื•ืช "-Xclang -f[no-]recovery-ast".
  • ื ื•ืกืคื• ืžืฆื‘ื™ ืื‘ื—ื•ืŸ ื—ื“ืฉื™ื:
    • "-Wpointer-to-int-cast" ื”ื™ื ืงื‘ื•ืฆื” ืฉืœ ืื–ื”ืจื•ืช ืœื’ื‘ื™ ื”ืขื‘ืจื” ืฉืœ ืžืฆื‘ื™ืขื™ื ืœ-int ืžืกื•ื’ ืžืกืคืจ ืฉืœื ืฉืื™ื ื• ืžืชืื™ื ืœื›ืœ ื”ืขืจื›ื™ื ื”ืืคืฉืจื™ื™ื.
    • "-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 ืžื•ื’ื“ืจ ื‘ืขืช ื™ืฆื™ืจืช ืงื•ื“ AArch64 ืขืœ ื™ื“ื™ ื”ื’ื“ืจืช ืืคืฉืจื•ืช ืฉื•ืจืช ื”ืคืงื•ื“ื” "-march=armv8-a+sve".

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

ื”ืขื™ืงืจื™ ื—ื™ื“ื•ืฉื™ื LLVM 11.0:

  • ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” ื”ื•ืขื‘ืจื” ืœืฉื™ืžื•ืฉ ื‘-Python 3. ืื Python 3 ืื™ื ื• ื–ืžื™ืŸ, ืืคืฉืจ ืœื—ื–ื•ืจ ืœืฉื™ืžื•ืฉ ื‘-Python 2.
  • ื”ืงืฆื” ื”ืงื“ืžื™ ืขื ื”ืžื”ื“ืจ ืœืฉืคืช Go (llgo) ืื™ื ื• ื ื›ืœืœ ื‘ืžื”ื“ื•ืจื”, ืฉืขืฉื•ื™ื” ืœื”ืฉืชื ื•ืช ื‘ืขืชื™ื“.
  • ื”ืชื›ื•ื ื” ื•ืงื˜ื•ืจ-ืคื•ื ืงืฆื™ื”-abi-variant ื ื•ืกืคื” ืœื™ื™ืฆื•ื’ ื”ื‘ื™ื ื™ื™ื (IR) ื›ื“ื™ ืœืชืืจ ืืช ื”ืžื™ืคื•ื™ ื‘ื™ืŸ ืคื•ื ืงืฆื™ื•ืช ืกืงืœืจื™ื•ืช ืœืคื•ื ืงืฆื™ื•ืช ื•ืงื˜ื•ืจื™ื•ืช ืœื™ืฆื™ืจืช ื•ืงื˜ื•ืจ ืฉื™ื—ื•ืช. ืž-llvm::VectorType ื™ืฉื ื ืฉื ื™ ืกื•ื’ื™ ื•ืงื˜ื•ืจ ื ืคืจื“ื™ื llvm::FixedVectorType ื•-llvm::ScalableVectorType.
  • ื”ืกืชืขืคื•ืช ื”ืžื‘ื•ืกืกืช ืขืœ ืขืจื›ื™ udef ื•ื”ืขื‘ืจืช ืขืจื›ื™ undef ืœืคื•ื ืงืฆื™ื•ืช ืกืคืจื™ื™ื” ืกื˜ื ื“ืจื˜ื™ื•ืช ืžื•ื›ืจืช ื›ื”ืชื ื”ื’ื•ืช ืœื ืžื•ื’ื“ืจืช. IN
    memset/memcpy/memmove ืžืืคืฉืจ ื”ืขื‘ืจืช ืžืฆื‘ื™ืขื™ undef, ืื‘ืœ ืื ื”ืคืจืžื˜ืจ ืขื ื’ื•ื“ืœ ื”ื•ื ืืคืก.

  • LLJIT ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ืœื‘ื™ืฆื•ืข ืืชื—ื•ืœื™ื ืกื˜ื˜ื™ื™ื ื‘ืืžืฆืขื•ืช ื”ืฉื™ื˜ื•ืช LLJIT::initialize ื•-LLJIT::deinitialize. ื”ื•ื˜ืžืขื” ื”ื™ื›ื•ืœืช ืœื”ื•ืกื™ืฃ ืกืคืจื™ื•ืช ืกื˜ื˜ื™ื•ืช ืœ-JITDylib ื‘ืืžืฆืขื•ืช ื”ืžื—ืœืงื” StaticLibraryDefinitionGenerator. ื ื•ืกืฃ C API ืขื‘ื•ืจ ORCv2 (API ืœื‘ื ื™ื™ืช ืžื”ื“ืจื™ื ืฉืœ 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 Matrix Multiply ื•-RMv8.2-AA32BF16 BFloat16.

  • ืชืžื™ื›ื” ื‘ื™ืฆื™ืจืช ืงื•ื“ ืขื‘ื•ืจ ืžืขื‘ื“ื™ POWER10 ื ื•ืกืคื” ืœืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช PowerPC. ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืœื•ืœืื•ืช ื”ื•ืจื—ื‘ื• ื•ืชืžื™ื›ื” ื‘ื ืงื•ื“ื” ืฆืคื” ืฉื•ืคืจื”.
  • ื”ืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช RISC-V ืžืืคืฉืจ ืงื‘ืœืช ืชื™ืงื•ื ื™ื ื”ืชื•ืžื›ื™ื ื‘ืขืจื›ื•ืช ื”ื•ืจืื•ืช ืžื•ืจื—ื‘ื•ืช ื ื™ืกื™ื•ื ื™ื•ืช ืฉื˜ืจื ืื•ืฉืจื• ืจืฉืžื™ืช.
  • ื”ืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”-AVR ื”ื•ืขื‘ืจ ืžืงื˜ื’ื•ืจื™ื™ืช ื”ื ื™ืกื•ื™ ืœื™ืฆื™ื‘, ื›ืœื•ืœ ื‘ื”ืคืฆื” ื”ื‘ืกื™ืกื™ืช.
  • ื”ืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช x86 ืชื•ืžืš ื‘ื”ื•ืจืื•ืช Intel AMX ื•-TSXLDTRK. ื ื•ืกืคื” ื”ื’ื ื” ืžืคื ื™ ื”ืชืงืคื•ืช LVI (Load Value Injection), ื•ื›ืŸ ืžื™ื™ืฉืžืช ืžื ื’ื ื•ืŸ ื›ืœืœื™ Speculative Execution Side Effect Suppression ืœื—ืกื™ืžืช ื”ืชืงืคื•ืช ื”ื ื’ืจืžื•ืช ืžื‘ื™ืฆื•ืข ืกืคืงื•ืœื˜ื™ื‘ื™ ืฉืœ ืคืขื•ืœื•ืช ืขืœ ื”-CPU.
  • ื‘ืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช SystemZ, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘-MemorySanitizer ื•-LeakSanitizer.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืงื•ื‘ืฅ ื›ื•ืชืจืช ืขื ืงื‘ื•ืขื™ื ืžืชืžื˜ื™ื™ื ืœ-Libc++ .
  • ืžื•ึผืจื—ึธื‘ ื™ื›ื•ืœื•ืช ืงื™ืฉื•ืจ LLD. ืชืžื™ื›ื” ืžืฉื•ืคืจืช ื‘ืคื•ืจืžื˜ ELF, ื›ื•ืœืœ ื”ืืคืฉืจื•ื™ื•ืช ื”ื ื•ืกืคื•ืช "--lto-emit-asm", "--lto-whole-program-visibility", "-print-archive-stats", "-shuffle-sections", " -thhinlto- single-module", "-unique", "-rosegment", "-threads=N". ื ื•ืกืคื” ืืคืฉืจื•ืช "--time-trace" ืœืฉืžื™ืจืช ื”ืžืขืงื‘ ืœืงื•ื‘ืฅ, ืฉืื•ืชื• ื ื™ืชืŸ ืœืื—ืจ ืžื›ืŸ ืœื ืชื— ื‘ืืžืฆืขื•ืช ืžืžืฉืง chrome://tracing ื‘-Chrome.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”