เบ›เปˆเบญเบเบŠเบธเบ”เบ„เบญเบกเบžเบตเบงเป€เบ•เบต LLVM 13.0

เบซเบผเบฑเบ‡เบˆเบฒเบเบซเบปเบเป€เบ”เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ„เบ‡เบเบฒเบ™ LLVM 13.0 เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบต - เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš GCC (compilers, optimizers เปเบฅเบฐ code generator) เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ bitcode เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ virtual เบ„เป‰เบฒเบเบ„เบท RISC (เป€เบ„เบทเปˆเบญเบ‡ virtual เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบ—เบตเปˆเบกเบต a. เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบฅเบฐเบ”เบฑเบš). เบฅเบฐเบซเบฑเบ” pseudocode เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เปˆเบฝเบ™เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบชเบฑเบ‡เบฅเบงเบก JIT เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป‚เบ”เบเบเบปเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™.

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปƒเบ™ Clang 13.0:

  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป‚เบ—เบซเบฒเบ‡เบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™ (เบเบฒเบ™เป‚เบ—เบซเบฒ subroutine เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™, เบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™ recursion เบซเบฒเบ‡เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ subroutine เป‚เบ—เบซเบฒเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡). เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป‚เบ—เบซเบฒเบ‡เบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "[[clang::musttail]]" เปƒเบ™ C++ เปเบฅเบฐ "__attribute__((musttail))" เปƒเบ™ C, เปƒเบŠเป‰เปƒเบ™เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ "เบเบฑเบšเบ„เบทเบ™". เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ iteration เบฎเบฒเบšเบžเบฝเบ‡เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบ stack.
  • "เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹" เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบ clang เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เปเบšเบš C++ 11 เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเบนเบšโ€‹เปเบšเบš "[[]]โ€‹"โ€‹.
  • เป€เบžเบตเปˆเบกเบ—เบธเบ‡ "-Wreserved-identifier" เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰.
  • เป€เบžเบตเปˆเบก "-Wunused-but-set-parameter" เปเบฅเบฐ "-Wunused-but-set-variable" เบ—เบธเบ‡เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบซเบผเบทเบ•เบปเบงเปเบ›เบ–เบทเบเบ•เบฑเป‰เบ‡เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰.
  • เป€เบžเบตเปˆเบกเบ—เบธเบ‡ "-Wnull-pointer-subtraction" เป€เบžเบทเปˆเบญเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบญเบฒเบ”เบˆเบฐเปเบ™เบฐเบ™เปเบฒเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบŠเบตเป‰ null เปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เบฅเบปเบš.
  • เป€เบžเบตเปˆเบกเบ—เบธเบ‡ "-fstack-usage" เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒเบฅเบฐเบซเบฑเบ”เป€เบ›เบฑเบ™เป„เบŸเบฅเปŒ ".su" เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ stack frames เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™.
  • เบ›เบฐเป€เบžเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ” - "sarif-html", เป€เบŠเบดเปˆเบ‡เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบžเป‰เบญเบกเป†เบเบฑเบ™เปƒเบ™เบฎเบนเบšเปเบšเบš HTML เปเบฅเบฐ Sarif. เป€เบžเบตเปˆเบกเบเบฒเบ™เบเบงเบ”เบชเบญเบš allocClassWithName เปƒเปเปˆ. เป€เบกเบทเปˆเบญเบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบ "-analyzer-display-progress", เป€เบงเบฅเบฒเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฐเบชเบฐเปเบ”เบ‡. เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบ•เบปเบงเบŠเบตเป‰เบญเบฑเบ”เบชเบฐเบฅเบดเบเบฐ (alpha.cplusplus.SmartPtr) เป€เบเบทเบญเบšเบžเป‰เบญเบกเปเบฅเป‰เบง.
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ OpenCL เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบ. เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเปƒเบซเบกเปˆ cl_khr_integer_dot_product, cl_khr_extended_bit_ops, __cl_clang_bitfields เปเบฅเบฐ __cl_clang_non_portable_kernel_param_types. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เปเป‰เบเปเบฒเบ™เบปเบ” OpenCL 3.0 เป„เบ”เป‰เบชเบทเบšเบ•เปเปˆ. เบชเบณเบฅเบฑเบš C, เบชเบฐเป€เบžเบฒเบฐ OpenCL 1.2 เปเบกเปˆเบ™เปƒเบŠเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบฅเบธเป‰เบ™เบญเบทเปˆเบ™เบ–เบทเบเป€เบฅเบทเบญเบเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡. เบชเปเบฒเบฅเบฑเบš C++, เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ™เบฒเบกเบชเบฐเบเบธเบ™ โ€œ.clcppโ€ เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก.
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™ loop ("#pragma omp unrol" เปเบฅเบฐ "#pragma omp tile") เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ OpenMP 5.1 เบชเบฐเป€เบžเบฒเบฐเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.
  • เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเบนเบšเปเบšเบš clang: SpacesInLineCommentPrefix เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบŠเปˆเบญเบ‡เบเปˆเบญเบ™เบ„เปเบฒเป€เบซเบฑเบ™, IndentAccessModifiers, LambdaBodyIndentation เปเบฅเบฐ PPIndentWidth เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบ‚เบญเบ‡เบฅเบฒเบเบเบฒเบ™, เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ‚เบญเบ‡ lambda เปเบฅเบฐเบ„เปเบฒเบชเบฑเปˆเบ‡ preprocessor. เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบฅเบฝเบ‡โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒ header (SortIncludesโ€‹) เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹. เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบฎเบนเบšเปเบšเบšเป„เบŸเบฅเปŒ JSON.
  • เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ linter clang-tidy.

เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบซเบผเบฑเบเปƒเบ™ LLVM 13.0:

  • เป„เบ”เป‰เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ โ€œ-ehcontguardโ€ เป€เบžเบทเปˆเบญเปƒเบŠเป‰เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต CET (Windows Control-flow Enforcement Technology) เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰เป€เบ•เบฑเบเบ™เบดเบ Return-Oriented Programming (ROP) เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™.
  • เป‚เบ„เบ‡เบเบฒเบ™ debuginfo-test เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เบŠเบทเปˆเป€เบ›เบฑเบ™ cross-project-tests เปเบฅเบฐเบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบ•เปˆเบฒเบ‡เป†, เบšเปเปˆเบˆเปเบฒเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ.
  • เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ›เบฐเบเบญเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบเบฒเบ™เปเบˆเบเบขเบฒเบเบซเบผเบฒเบ, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปƒเบŠเป‰, เปเบฅเบฐเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ.
  • เปƒเบ™เบ”เป‰เบฒเบ™เบซเบผเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ AArch64, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ Armv9-A RME (Realm Management Extension) เปเบฅเบฐ SME (Scalable Matrix Extension) เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ›เบฐเบเบญเบš.
  • เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš ISA V68/HVX เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆ backend เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Hexagon.
  • x86 backend เป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD Zen 3.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš GFX1013 RDNA2 APU เบเบฑเบš AMDGPU backend.
  • Libc++ เบชเบทเบšเบ•เปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++20 เปเบฅเบฐ C ++2b, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” "เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”". เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš std::filesystem เบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบต Windows เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ MinGW. เปเบเบเป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเปเบฅเป‰เบง , เปเบฅเบฐ . เป€เบžเบตเปˆเบกเบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ LIBCXX_ENABLE_INCOMPLETE_FEATURES เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™.
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ LLD เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบ, เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต Big-endian Aarch64 เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบฅเบฐ backend Mach-O เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเป„เบ›เบชเบนเปˆเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบด. เบฅเบงเบกเบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Glibc เป‚เบ”เบเปƒเบŠเป‰ LLD.
  • เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡ llvm-mca (เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ) เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš (เบ—เปเปˆ superscalar เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡), เป€เบŠเบฑเปˆเบ™ ARM Cortex-A55.
  • LLDB debugger เบชเปเบฒเบฅเบฑเบšเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก AArch64 เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ•เบปเบงเบŠเบตเป‰, MTE (MemTag, Memory Tagging Extension) เปเบฅเบฐ SVE registers. เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบœเบนเบเบกเบฑเบ” tags เบเบฑเบšเปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ•เบปเบงเบŠเบตเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เป€เบŠเบดเปˆเบ‡เบ•เป‰เบญเบ‡เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเปเบ—เบฑเบเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.
  • Debugger LLDB เปเบฅเบฐ frontend เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ Fortran - Flang เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบ›เบฐเบเบญเบš binary เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™