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

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

ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ืฉืœ LLVM 9.0 ื›ื•ืœืœื•ืช ื”ืกืจืช ืชื’ ื”ืขื™ืฆื•ื‘ ื”ื ื™ืกื™ื•ื ื™ ืžืคืœื˜ืคื•ืจืžืช ื”ื™ืขื“ RISC-V, ืชืžื™ื›ื” ื‘-C++ ืขื‘ื•ืจ OpenCL, ื”ื™ื›ื•ืœืช ืœืคืฆืœ ืชื•ื›ื ื™ืช ืœื—ืœืงื™ื ื˜ืขื•ื ื™ื ื“ื™ื ืžื™ืช ื‘-LLD, ื•ื”ื˜ืžืขื” ืฉืœ "asm goto", ื‘ืฉื™ืžื•ืฉ ื‘ืงื•ื“ ืœื™ื‘ืช ืœื™ื ื•ืงืก. libc++ ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ื‘-WASI (ืžืžืฉืง ืžืขืจื›ืช WebAssembly), ื•-LLD ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ืจืืฉื•ื ื™ืช ืœืงื™ืฉื•ืจ ื“ื™ื ืžื™ ืฉืœ WebAssembly.

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

  • ื ื•ืกืฃ ื™ื™ืฉื•ื ื”ื‘ื™ื˜ื•ื™ ื”ืกืคืฆื™ืคื™ ืœ-GCC "asm goto", ื”ืžืืคืฉืจ ืœืš ืœืขื‘ื•ืจ ืžื‘ืœื•ืง ืืกืžื‘ืœืจ ืžื•ื˜ื‘ืข ืœืชื•ื•ื™ืช ื‘ืงื•ื“ C. ืชื›ื•ื ื” ื–ื• ื ื“ืจืฉืช ื›ื“ื™ ืœื‘ื ื•ืช ืืช ืœื™ื‘ืช ืœื™ื ื•ืงืก ื‘ืžืฆื‘ "CONFIG_JUMP_LABEL=y" ื‘ืืžืฆืขื•ืช Clang ื‘ืžืขืจื›ื•ืช ืขื ืืจื›ื™ื˜ืงื˜ื•ืจืช x86_64. ื‘ื”ืชื—ืฉื‘ ื‘ืฉื™ื ื•ื™ื™ื ืฉื ื•ืกืคื• ื‘ืžื”ื“ื•ืจื•ืช ืงื•ื“ืžื•ืช, ื ื™ืชืŸ ืœื‘ื ื•ืช ื›ืขืช ืืช ืœื™ื‘ืช ืœื™ื ื•ืงืก ื‘-Clang ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจืช x86_64 (ื‘ืขื‘ืจ ื ืชืžื›ื” ืจืง ื‘ื ื™ื™ืŸ ืขื‘ื•ืจ ื”ื–ืจื•ืข, aarch64, ppc32, ppc64le ื•-mips). ื™ืชืจื” ืžื›ืš, ืคืจื•ื™ืงื˜ื™ื ืฉืœ ืื ื“ืจื•ืื™ื“ ื•-ChromeOS ื›ื‘ืจ ื”ื•ืžืจื• ืœืฉื™ืžื•ืฉ ื‘-Clang ืœื‘ื ื™ื™ืช ืœื™ื‘ื”, ื•ื’ื•ื’ืœ ื‘ื•ื—ื ืช ืืช Clang ื›ืคืœื˜ืคื•ืจืžื” ื”ืขื™ืงืจื™ืช ืœื‘ื ื™ื™ืช ื’ืจืขื™ื ื™ื ืขื‘ื•ืจ ืžืขืจื›ื•ืช ื”ื™ื™ืฆื•ืจ ืฉืœ ืœื™ื ื•ืงืก. ื‘ืขืชื™ื“, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืจื›ื™ื‘ื™ LLVM ืื—ืจื™ื ื‘ืชื”ืœื™ืš ื‘ื ื™ื™ืช ื”ืงืจื ืœ, ื›ื•ืœืœ LLD, llvm-objcopy, llvm-ar, llvm-nm ื•-llvm-objdump;
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื ื™ืกื™ื•ื ื™ืช ืœืฉื™ืžื•ืฉ ื‘-C++17 ื‘-OpenCL. ืชื›ื•ื ื•ืช ืกืคืฆื™ืคื™ื•ืช ื›ื•ืœืœื•ืช ืชืžื™ื›ื” ื‘ืชื›ื•ื ื•ืช ืžืจื—ื‘ ื›ืชื•ื‘ื•ืช, ื—ืกื™ืžืช ื”ืžืจืช ืžืจื—ื‘ ื›ืชื•ื‘ื•ืช ืขืœ ื™ื“ื™ ืžืคืขื™ืœื™ ืœื™ื”ื•ืง ืกื•ื’ื™ื, ืžืชืŸ ืกื•ื’ื™ ื•ืงื˜ื•ืจื™ื ื›ืžื• ื‘-OpenCL ืขื‘ื•ืจ C, ื ื•ื›ื—ื•ืช ืฉืœ ืกื•ื’ื™ OpenCL ืกืคืฆื™ืคื™ื™ื ืœืชืžื•ื ื•ืช, ืื™ืจื•ืขื™ื, ืขืจื•ืฆื™ื ื•ื›ื•'.
  • ื ื•ืกืคื• ื“ื’ืœื™ ืžื”ื“ืจ ื—ื“ืฉื™ื "-ftime-trace" ื•- "-ftime-trace-granularity=N" ื›ื“ื™ ืœื”ืคื™ืง ื“ื•ื— ืขืœ ื–ืžืŸ ื”ื‘ื™ืฆื•ืข ืฉืœ ืฉืœื‘ื™ื ืฉื•ื ื™ื ืฉืœ ื”-frontend (ื ื™ืชื•ื—, ืืชื—ื•ืœ) ื•-backend (ืฉืœื‘ื™ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”). ื”ื“ื•ื— ื ืฉืžืจ ื‘ืคื•ืจืžื˜ json, ืชื•ืื ืœ-chrome://tracing ื•-speedscope.app;
  • ื ื•ืกืฃ ืขื™ื‘ื•ื“ ืฉืœ ืžืคืจื˜ "__declspec(allocator)" ื•ื™ืฆื™ืจืช ืžื™ื“ืข ื ื™ืคื•ื™ ื‘ืื’ื™ื ื ืœื•ื•ื” ื”ืžืืคืฉืจ ืœืš ืœื ื˜ืจ ืืช ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ื‘ืกื‘ื™ื‘ืช Visual Studio;
  • ืขื‘ื•ืจ ืฉืคืช C, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืžืืงืจื• "__FILE_NAME__", ื”ื“ื•ืžื” ืœืžืืงืจื• "__FILE__", ืืš ื›ื•ืœืœ ืจืง ืืช ืฉื ื”ืงื•ื‘ืฅ ืœืœื ื”ื ืชื™ื‘ ื”ืžืœื;
  • C++ ื”ืจื—ื™ื‘ื” ืืช ื”ืชืžื™ื›ื” ื‘ืชื›ื•ื ื•ืช ืžืจื—ื‘ ื”ื›ืชื•ื‘ื•ืช ื›ื“ื™ ืœื›ืกื•ืช ืชื›ื•ื ื•ืช C++ ืฉื•ื ื•ืช, ื›ื•ืœืœ ื“ืคื•ืกื™ ืคืจืžื˜ืจื™ื ื•ืืจื’ื•ืžื ื˜ื™ื, ืกื•ื’ื™ ื”ืคื ื™ื•ืช, ืžืกืงื ื•ืช ืžืกื•ื’ ื”ื—ื–ืจื”, ืื•ื‘ื™ื™ืงื˜ื™ื, ืคื•ื ืงืฆื™ื•ืช ืฉื ื•ืฆืจื• ืื•ื˜ื•ืžื˜ื™ืช, ืื•ืคืจื˜ื•ืจื™ื ืžื•ื‘ื ื™ื ื•ืขื•ื“.
  • ื”ื™ื›ื•ืœื•ืช ื”ืงืฉื•ืจื•ืช ืœืชืžื™ื›ื” ื‘-OpenCL, OpenMP ื•-CUDA ื”ื•ืจื—ื‘ื•. ื–ื” ื›ื•ืœืœ ืชืžื™ื›ื” ืจืืฉื•ื ื™ืช ื‘ื”ื›ืœืœื” ืžืจื•ืžื–ืช ืฉืœ ืคื•ื ืงืฆื™ื•ืช OpenCL ืžื•ื‘ื ื•ืช (ื”ื“ื’ืœ "-fdeclare-opencl-builtins" ื ื•ืกืฃ), ื”ื”ืจื—ื‘ื” cl_arm_integer_dot_product ื™ื•ืฉืžื”, ื•ื›ืœื™ ืื‘ื—ื•ืŸ ื”ื•ืจื—ื‘ื•;
  • ืขื‘ื•ื“ืชื• ืฉืœ ื”ืžื ืชื— ื”ืกื˜ื˜ื™ ืฉื•ืคืจื” ื•ื ื•ืกืฃ ืชื™ืขื•ื“ ืขืœ ื‘ื™ืฆื•ืข ื ื™ืชื•ื— ืกื˜ื˜ื™. ื ื•ืกืคื• ื“ื’ืœื™ื ืœื”ืฆื’ืช ืžื•ื“ื•ืœื™ ื‘ื•ื“ืง ื–ืžื™ื ื™ื ื•ืืคืฉืจื•ื™ื•ืช ื ืชืžื›ื•ืช ("-analyzer-checker[-option]-help", "-analyzer-checker[-option]-help-alpha" ื•-"-analyzer-checker[-option]-help "-ืžืคืชื—"). ื ื•ืกืฃ ื“ื’ืœ "-analyzer-error" ื›ื“ื™ ืœื”ืชื™ื™ื—ืก ืœืื–ื”ืจื•ืช ื›ืฉื’ื™ืื•ืช.
    ื ื•ืกืคื• ืžืฆื‘ื™ ืื™ืžื•ืช ื—ื“ืฉื™ื:

    • security.insecureAPI.DeprecatedOrUnsafeBufferHandling ืœื–ื™ื”ื•ื™ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืœื ื‘ื˜ื•ื—ื•ืช ืœืขื‘ื•ื“ื” ืขื ืžืื’ืจื™ื;
    • osx.MIGChecker ื›ื“ื™ ืœื—ืคืฉ ื”ืคืจื•ืช ืฉืœ ื›ืœืœื™ ืฉื™ื—ื•ืช MIG (Mach Interface Generator);
    • optin.osx.OSObjectCStyleCast ื›ื“ื™ ืœืžืฆื•ื ื”ืžืจื•ืช ืฉื’ื•ื™ื•ืช ืฉืœ ืื•ื‘ื™ื™ืงื˜ XNU libkern;
    • apiModeling.llvm ืขื ืงื‘ื•ืฆื” ืฉืœ ืคื•ื ืงืฆื™ื•ืช ื‘ื“ื™ืงืช ืžื•ื“ืœื™ื ืœื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ื‘ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ LLVM;
    • ืงื•ื“ ืžื™ื•ืฆื‘ ืœื‘ื“ื™ืงืช ืื•ื‘ื™ื™ืงื˜ื™ C++ ืœื ืžืื•ืชื—ืœื™ื (UninitializedObject ื‘ื—ื‘ื™ืœืช optin.cplusplus);
  • ืชื•ื›ื ื™ืช ื”ืฉื™ืจื•ืช clang-format ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ื‘ืขื™ืฆื•ื‘ ืงื•ื“ ื‘ืฉืคืช C# ื•ืžืกืคืงืช ืชืžื™ื›ื” ื‘ืกื’ื ื•ืŸ ืขื™ืฆื•ื‘ ื”ืงื•ื“ ื”ืžืฉืžืฉ ืืช Microsoft;
  • clang-cl, ืžืžืฉืง ืฉื•ืจืช ืคืงื•ื“ื” ื—ืœื•ืคื™ ื”ืžืกืคืง ืชืื™ืžื•ืช ื‘ืจืžืช ื”ืืคืฉืจื•ื™ื•ืช ืขื ื”ืžื”ื“ืจ cl.exe ื”ื›ืœื•ืœ ื‘-Visual Studio, ื”ื•ืกื™ืฃ ื”ื™ื•ืจื™ืกื˜ื™ืงื•ืช ื›ื“ื™ ืœื”ืชื™ื™ื—ืก ืœืงื‘ืฆื™ื ืฉืื™ื ื ืงื™ื™ืžื™ื ื›ืืคืฉืจื•ื™ื•ืช ืฉื•ืจืช ืคืงื•ื“ื” ื•ืœื”ืฆื™ื’ ืื–ื”ืจื” ืžืชืื™ืžื” (ืœื“ื•ื’ืžื”, ื‘ืขืช ื”ืคืขืœืช "clang-cl /diagnostic :caret /c test.cc");
  • ื—ืœืง ื’ื“ื•ืœ ืฉืœ ืฆ'ืงื™ื ื—ื“ืฉื™ื ื ื•ืกืคื• ืœ-linter clang-tidy, ื›ื•ืœืœ ืฆ'ืงื™ื ื ื•ืกืคื™ื ืกืคืฆื™ืคื™ื™ื ืœ-OpenMP API;
  • ืžื•ึผืจื—ึธื‘ ื™ื›ื•ืœื•ืช ืฉืจืช clangd (Clang Server), ืฉื‘ื• ืžืฆื‘ ื‘ื ื™ื™ืช ืื™ื ื“ืงืก ื”ืจืงืข ืžื•ืคืขืœ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืคืขื•ืœื•ืช ื”ืงืฉืจื™ื•ืช ืขื ืงื•ื“ (ืฉืœื™ืคื” ืฉืœ ืžืฉืชื ื™ื, ื”ืจื—ื‘ืช ื”ื’ื“ืจื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื•ืžืงืจื•, ื”ืžืจื” ืฉืœ ืžื—ืจื•ื–ื•ืช ื‘ืจื™ื—ื” ืœืžื—ืจื•ื–ื•ืช ืฉืœื ื ืžืœื˜ื•), ื™ื›ื•ืœืช ืชืฆื•ื’ื” ืื–ื”ืจื•ืช ืž-Clang-tidy, ืื‘ื—ื•ืŸ ืžื•ืจื—ื‘ ืฉืœ ืฉื’ื™ืื•ืช ื‘ืงื‘ืฆื™ ื›ื•ืชืจื•ืช ื•ื”ื•ืกื™ืคื• ืืช ื”ื™ื›ื•ืœืช ืœื”ืฆื™ื’ ืžื™ื“ืข ืขืœ ื”ื™ืจืจื›ื™ื™ืช ื”ืกื•ื’ื™ื;

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

  • ืœืžืงืฉืจ LLD ื ื•ืกืคื” ืชื›ื•ื ืช ื—ืœื•ืงื” ื ื™ืกื™ื•ื ื™ืช, ื”ืžืืคืฉืจืช ืœืคืฆืœ ืชื•ื›ื ื™ืช ืื—ืช ืœืžืกืคืจ ื—ืœืงื™ื, ืฉื›ืœ ืื—ื“ ืžื”ื ืžืžื•ืงื ื‘ืงื•ื‘ืฅ ELF ื ืคืจื“. ืชื›ื•ื ื” ื–ื• ืžืืคืฉืจืช ืœื”ืคืขื™ืœ ืืช ื”ื—ืœืง ื”ืขื™ืงืจื™ ืฉืœ ื”ืชื•ื›ื ื™ืช, ืืฉืจ ื™ื˜ืขืŸ ืจื›ื™ื‘ื™ื ื ื•ืกืคื™ื ืœืคื™ ื”ืฆื•ืจืš ื‘ืžื”ืœืš ื”ืคืขื•ืœื” (ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ืคืจื™ื“ ืืช ืžืฆื™ื’ ื”-PDF ื”ืžื•ื‘ื ื” ืœืงื•ื‘ืฅ ื ืคืจื“, ืฉื™ื™ื˜ืขืŸ ืจืง ื›ืืฉืจ ื”ืžืฉืชืžืฉ ื™ืคืชื— ืืช ื”-PDF ืงื•ึนื‘ึถืฅ).

    ืงื™ืฉื•ืจ LLD ื”ื‘ื™ื ืœืžืฆื‘ ื”ืžืชืื™ื ืœืงื™ืฉื•ืจ ืœื™ื‘ืช ืœื™ื ื•ืงืก ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช arm32_7, arm64, ppc64le ื•-x86_64.
    ืืคืฉืจื•ื™ื•ืช ื—ื“ืฉื•ืช "-" (ืคืœื˜ ืœ-stdout), "-[no-]allow-shlib-undefined", "-undefined-glob", "-nmagic", "-omagic", "-dependent-library", "- z ifunc-noplt" ื•-"-z common-page-size". ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจืช AArch64, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื”ื•ืจืื•ืช BTI (Branch Target Indicator) ื•-PAC (Pointer Authentication Code). ื”ืชืžื™ื›ื” ื‘ืคืœื˜ืคื•ืจืžื•ืช MIPS, RISC-V ื•-PowerPC ืฉื•ืคืจื” ืžืฉืžืขื•ืชื™ืช. ื ื•ืกืคื” ืชืžื™ื›ื” ืจืืฉื•ื ื™ืช ืœืงื™ืฉื•ืจ ื“ื™ื ืžื™ ืขื‘ื•ืจ WebAssembly;

  • ื‘-libc++ ืžื•ื˜ืžืข ืคื•ื ืงืฆื™ื•ืช ssize, std::is_constant_evaluated, std::midpoint ื•-std::lerp, ืฉื™ื˜ื•ืช "front" ื•-"back" ื ื•ืกืคื• ืœ-std::span, ื ื•ืกืคื• ืชื›ื•ื ื•ืช ืžืกื•ื’ std::is_unbounded_array ื•-std::is_bounded_array , ื™ื›ื•ืœื•ืช std ื”ื•ืจื—ื‘ื•: :atomic. ื”ืชืžื™ื›ื” ื‘-GCC 4.9 ื”ื•ืคืกืงื” (ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ืขื GCC 5.1 ื•ื’ืจืกืื•ืช ื—ื“ืฉื•ืช ื™ื•ืชืจ). ื ื•ืกืคื” ืชืžื™ื›ื” WASI (WebAssembly System Interface, ืžืžืฉืง ืœืฉื™ืžื•ืฉ ื‘-WebAssembly ืžื—ื•ืฅ ืœื“ืคื“ืคืŸ);
  • ื ื•ืกืคื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื—ื“ืฉื•ืช. ืืคืฉืจื” ื”ืžืจื” ืฉืœ ืงืจื™ืื•ืช memcmp ืœ-bcmp ื‘ืžืฆื‘ื™ื ืžืกื•ื™ืžื™ื. ื”ืฉืžื˜ื” ืžื™ื•ืฉืžืช ืฉืœ ื‘ื“ื™ืงืช ื˜ื•ื•ื— ืขื‘ื•ืจ ื˜ื‘ืœืื•ืช ืงืคื™ืฆื” ืฉื‘ื”ืŸ ื‘ืœื•ืงื™ื ืžืชื’ื™ื ืชื—ืชื•ื ื™ื ืื™ื ื ื ื™ืชื ื™ื ืœื”ืฉื’ื” ืื• ื›ืืฉืจ ืœื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื”ื•ืจืื•ืช, ืœืžืฉืœ, ื‘ืขืช ืงืจื™ืื” ืœืคื•ื ืงืฆื™ื•ืช ืขื ืกื•ื’ void;
  • ื”ืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช RISC-V ื™ื•ืฆื‘, ืฉืื™ื ื• ืžืžื•ืงื ืขื•ื“ ื›ื ื™ืกื•ื™ ื•ื‘ื ื•ื™ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ืžืกืคืง ืชืžื™ื›ื” ืžืœืื” ื‘ื™ืฆื™ืจืช ืงื•ื“ ืขื‘ื•ืจ ื’ืจืกืื•ืช ืฉืœ ืขืจื›ื•ืช ื”ื•ืจืื•ืช RV32I ื•-RV64I ืขื ื”ืจื—ื‘ื•ืช MAFDC;
  • ืฉื™ืคื•ืจื™ื ืจื‘ื™ื ื‘ื•ืฆืขื• ื‘ืงืฆื” ื”ืื—ื•ืจื™ ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช X86, AArch64, ARM, SystemZ, MIPS, AMDGPU ื•- PowerPC. ืœืžืฉืœ, ืœืื“ืจื™ื›ืœื•ืช
    AArch64 ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ื‘ื”ื•ืจืื•ืช SVE2 (Scalable Vector Extension 2) ื•-MTE (Memory Tagging Extensions); ื‘ืงืฆื” ื”ืขื•ืจืคื™ ืฉืœ ARM, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช Armv8.1-M ื•ื”ืจื—ื‘ื” MVE (M-Profile Vector Extension). ืชืžื™ื›ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช GFX10 (Navi) ื ื•ืกืคื” ืœืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ AMDGPU, ื™ื›ื•ืœื•ืช ืงืจื™ืืช ืคื•ื ืงืฆื™ื•ืช ืžื•ืคืขืœื•ืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื•ืžืขื‘ืจ ืžืฉื•ืœื‘ ืžื•ืคืขืœ DPP (ืคืจื™ืžื™ื˜ื™ื‘ื™ื ืžืงื‘ื™ืœื™ื ืœื ืชื•ื ื™ื).

  • ืœ-LLDB ืžืืชืจ ื”ื‘ืื’ื™ื ื™ืฉ ื›ืขืช ื”ื“ื’ืฉืช ืฆื‘ืข ืขื‘ื•ืจ ืžืขืงื‘ื™ื ืœืื—ื•ืจ ื•ืชืžื™ื›ื” ื ื•ืกืคืช ืขื‘ื•ืจ ื‘ืœื•ืงื™ื DWARF4 debug_types ื•-DWARF5 debug_info;
  • ืชืžื™ื›ื” ื‘ืงื•ื‘ืฆื™ ืื•ื‘ื™ื™ืงื˜ ื•ื‘ืงื‘ืฆื™ ื”ืคืขืœื” ื‘ืคื•ืจืžื˜ COFF ื ื•ืกืคื” ืœื›ืœื™ ื”ืฉื™ืจื•ืช llvm-objcopy ื•-llvm-strip.

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

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