LLVM 13.0 рдХрдВрдкрд╛рдпрд▓рд░ рд╕реВрдЯрдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рд╕рд╣рд╛ рдорд╣рд┐рдиреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдирдВрддрд░, LLVM 13.0 рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ - рдПрдХ GCC-рд╕реБрд╕рдВрдЧрдд рдЯреВрд▓рдХрд┐рдЯ (рдХрдВрдкрд╛рдпрд▓рд░, рдСрдкреНрдЯрд┐рдорд╛рдпрдЭрд░реНрд╕ рдЖрдгрд┐ рдХреЛрдб рдЬрдирд░реЗрдЯрд░) рдЬреЗ RISC-рд╕рд╛рд░рдЦреНрдпрд╛ рдЖрднрд╛рд╕реА рд╕реВрдЪрдирд╛рдВрдЪреНрдпрд╛ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдмрд┐рдЯрдХреЛрдбрдордзреНрдпреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ (рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЖрднрд╛рд╕реА рдорд╢реАрди рдмрд╣реБ-рд╕реНрддрд░реАрдп рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо). рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓рд╛ рд╕реНрдпреВрдбреЛрдХреЛрдб JIT рдХрдВрдкрд╛рдпрд▓рд░ рд╡рд╛рдкрд░реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рд╡реЗрд│реА рдереЗрдЯ рдорд╢реАрди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

рдХреНрд▓реЕрдВрдЧ 13.0 рдордзреНрдпреЗ рд╕реБрдзрд╛рд░рдгрд╛:

  • рдЧреЕрд░рдВрдЯреАрдб рдЯреЗрд▓ рдХреЙрд▓рд╕рд╛рдареА рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓реЗ рд╕рдорд░реНрдерди (рдлрдВрдХреНрд╢рдирдЪреНрдпрд╛ рдЕрдЧрджреА рд╢реЗрд╡рдЯреА рд╕рдмрд░реВрдЯреАрди рдХреЙрд▓ рдХрд░рдгреЗ, рд╕рдмрд░реВрдЯреАрди рд╕реНрд╡рддрдГ рдХреЙрд▓ рдХреЗрд▓реНрдпрд╛рд╕ рдЯреЗрд▓ рд░рд┐рдХрд░реНрд╢рди рддрдпрд╛рд░ рдХрд░рдгреЗ). рдЧреЕрд░рдВрдЯреАрдб рдЯреЗрд▓ рдХреЙрд▓рд╕рд╛рдареА рд╕рдорд░реНрдерди C++ рдордзреАрд▓ "[[clang::musttail]]" рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрдгрд┐ C рдордзреАрд▓ "__attribute__((musttail))" рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ "рд░рд┐рдЯрд░реНрди" рд╕реНрдЯреЗрдЯрдореЗрдВрдЯрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рд╣реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдЯреЕрдХрдЪрд╛ рд╡рд╛рдкрд░ рд╡рд╛рдЪрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдлреНрд▓реЕрдЯ рдкреБрдирд░рд╛рд╡реГрддреНрддреАрдордзреНрдпреЗ рдХреЛрдб рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░реВрди рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
  • "рд╡рд╛рдкрд░реВрди" рдШреЛрд╖рдгрд╛ рдЖрдгрд┐ рдХреНрд▓реЕрдВрдЧ рд╡рд┐рд╕реНрддрд╛рд░ "[[]]" рд╕реНрд╡рд░реВрдк рд╡рд╛рдкрд░реВрди C++11-рд╢реИрд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд.
  • рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдХреЛрдбрдордзреНрдпреЗ рдЖрд░рдХреНрд╖рд┐рдд рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рддреЗрд╡реНрд╣рд╛ рдЪреЗрддрд╛рд╡рдгреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "-Wreserved-identifier" рдзреНрд╡рдЬ рдЬреЛрдбрд▓рд╛.
  • рдкреЕрд░рд╛рдореАрдЯрд░ рдХрд┐рдВрд╡рд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЕрд╕рд▓реЗ рддрд░реА рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдирд╕рд▓реНрдпрд╛рд╕ рдЪреЗрддрд╛рд╡рдгреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "-Wunused-but-set-parameter" рдЖрдгрд┐ "-Wunused-but-set-variable" рдлреНрд▓реЕрдЧ рдЬреЛрдбрд▓реЗ.
  • рд╡рдЬрд╛рдмрд╛рдХреА рдСрдкрд░реЗрд╢рдиреНрд╕рдордзреНрдпреЗ рд╢реВрдиреНрдп рдкреЙрдЗрдВрдЯрд░рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдореБрд│реЗ рдХреЛрдб рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд░реНрддрди рдЖрдгреВ рд╢рдХрдд рдЕрд╕рд▓реНрдпрд╛рд╕ рдЪреЗрддрд╛рд╡рдгреА рдЬрд╛рд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "-Wnull-pointer-subtraction" рдзреНрд╡рдЬ рдЬреЛрдбрд▓рд╛.
  • рдкреНрд░рддреНрдпреЗрдХ рдХреЛрдб рдлрд╛рдЗрд▓рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд ".su" рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "-fstack-usage" рдзреНрд╡рдЬ рдЬреЛрдбрд▓рд╛ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдлрдВрдХреНрд╢рдирд╕рд╛рдареА рд╕реНрдЯреЕрдХ рдлреНрд░реЗрдордЪреНрдпрд╛ рдЖрдХрд╛рд░рд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ.
  • рд╕реНрдЯреЕрдЯрд┐рдХ рдЕреЕрдирд╛рд▓рд╛рдпрдЭрд░рдордзреНрдпреЗ рдПрдХ рдирд╡реАрди рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ - тАЬsarif-htmlтАЭ, рдЬреНрдпрд╛рдореБрд│реЗ HTML рдЖрдгрд┐ Sarif рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд░рд┐рдкреЛрд░реНрдЯ рддрдпрд╛рд░ рд╣реЛрддрд╛рдд. рдирд╡реАрди allocClassWithName рдЪреЗрдХ рдЬреЛрдбрд▓рд╛. "-рд╡рд┐рд╢реНрд▓реЗрд╖рдХ-рдбрд┐рд╕реНрдкреНрд▓реЗ-рдкреНрд░рдЧрддреА" рдкрд░реНрдпрд╛рдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛рдирд╛, рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрд╛рдЪрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╡реЗрд│ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ (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тАЭ рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╕рд╣ рдлрд╛рдЗрд▓реНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • OpenMP 5.1 рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд▓реВрдк рдЯреНрд░рд╛рдиреНрд╕рдлреЙрд░реНрдореЗрд╢рди рдбрд╛рдпрд░реЗрдХреНрдЯрд┐рд╡реНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди ("#pragma omp unrol" рдЖрдгрд┐ "#pragma omp рдЯрд╛рдЗрд▓") рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • рдХреНрд▓реЕрдВрдЧ-рдлреЙрд░реНрдореЗрдЯ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдордзреНрдпреЗ рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓реЗ: рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдкреВрд░реНрд╡реА рд╕реНрдкреЗрд╕рдЪреА рд╕рдВрдЦреНрдпрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА SpacesInLineCommentPrefix, IndentAccessModifiers, LambdaBodyIndentation рдЖрдгрд┐ PPIndentWidth рдПрдВрдЯреНрд░реА, рд▓реЕрдореНрдмрдбрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдЪреЗ рд╕рдВрд░реЗрдЦрди рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд╛рдпрд▓реА (SortIncludes) рдЪреНрдпрд╛ рдЧрдгрдиреЗрдЪреА рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рд╡рд╛рдврд╡рд┐рд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ. JSON рдлрд╛рдЗрд▓реНрд╕ рдлреЙрд░рдореЕрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.
  • рдирд╡реАрди рдЪреЗрдХрдЪрд╛ рдореЛрдард╛ рднрд╛рдЧ рд▓рд┐рдВрдЯрд░ рдХреНрд▓реЕрдВрдЧ-рдЯреАрдбреАрдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ.

LLVM 13.0 рдордзреАрд▓ рдкреНрд░рдореБрдЦ рдирд╡рдХрд▓реНрдкрдирд╛:

  • рдЕрдкрд╡рд╛рдж рд╣рд╛рддрд╛рд│рдгреА рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рд░рд┐рдЯрд░реНрди-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (ROP) рддрдВрддреНрд░рд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╢реЛрд╖рдгрд╛рдВрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА CET (Windows Control-flow Enforcement Technology) рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА тАЬ-ehcontguardтАЭ рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓рд╛.
  • рдбреАрдмрдЧрд┐рдирдлреЛ-рдЪрд╛рдЪрдгреА рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдирд╛рд╡ рдХреНрд░реЙрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рдЪрд╛рдЪрдгреА рдЕрд╕реЗ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рдбреАрдмрдЧрд┐рдВрдЧ рдорд╛рд╣рд┐рддреАрдкреБрд░рддреЗ рдорд░реНрдпрд╛рджрд┐рдд рди рд░рд╛рд╣рддрд╛, рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреАрд▓ рдШрдЯрдХ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗ рдЖрд╣реЗ.
  • рдЕрд╕реЗрдВрдмреНрд▓реА рд╕рд┐рд╕реНрдЯреАрдо рдЕрдиреЗрдХ рд╡рд┐рддрд░рдгреЗ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдкреБрд░рд╡рддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдХ рдпреБрдЯрд┐рд▓рд┐рдЯреАрд╕рд╣, рдЖрдгрд┐ рджреБрд╕рд░реА рдбреЗрд╡реНрд╣рд▓рдкрд░рд╕рд╛рдареА рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╣.
  • AArch64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдмреЕрдХрдПрдВрдбрдордзреНрдпреЗ, Armv9-A RME (Realm Management Extension) рдЖрдгрд┐ SME (Scalable Matrix Extension) рдПрдХреНрд╕реНрдЯреЗрдВрд╢рдирд╕рд╛рдареА рд╕рдорд░реНрдерди рдЕрд╕реЗрдВрдмрд▓рд░рдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрд╣реЗ.
  • ISA V68/HVX рд╕рд╛рдареА рд╕рдорд░реНрдерди рд╣реЗрдХреНрд╕реЕрдЧреЙрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдмреЕрдХрдПрдВрдбрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • x86 рдмреЕрдХрдПрдВрдбрдиреЗ AMD Zen 3 рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рд╕реБрдзрд╛рд░рд▓реЗ рдЖрд╣реЗ.
  • AMDGPU рдмреЕрдХрдПрдВрдбрдордзреНрдпреЗ GFX1013 RDNA2 APU рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.
  • Libc++ рдиреЗ C++20 рдЖрдгрд┐ C++2b рдорд╛рдирдХрд╛рдВрдЪреА рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд▓рд╛рдЧреВ рдХрд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡рд▓реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдд тАЬрд╕рдВрдХрд▓реНрдкрдирд╛тАЭ рд▓рд╛рдпрдмреНрд░рд░реА рдкреВрд░реНрдг рдХрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. MinGW-рдЖрдзрд╛рд░рд┐рдд Windows рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА std::filesystem рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ. рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд╛рдпрд▓реА рд╡рд┐рднрдХреНрдд рдХреЗрд▓реНрдпрд╛ , рдЖрдгрд┐ . рдкреВрд░реНрдгрдкрдгреЗ рд▓рд╛рдЧреВ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╣ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд╛рдпрд▓реА рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА LIBCXX_ENABLE_INCOMPLETE_FEATURES рдмрд┐рд▓реНрдб рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓рд╛.
  • рдПрд▓рдПрд▓рдбреА рд▓рд┐рдВрдХрд░рдЪреНрдпрд╛ рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдмрд┐рдЧ-рдПрдВрдбрд┐рдпрди Aarch64 рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЖрдгрд┐ рдореЕрдЪ-рдУ рдмреЕрдХрдПрдВрдб рдЕрд╢рд╛ рд╕реНрдерд┐рддреАрдд рдЖрдгрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЬреЗ рдирд┐рдпрдорд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд▓рд╛ рд▓рд┐рдВрдХ рдХрд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. LLD рд╡рд╛рдкрд░реВрди Glibc рд▓рд╛ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рд╕реБрдзрд╛рд░рдгрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд.
  • llvm-mca (рдорд╢реАрди рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ) рдпреБрдЯрд┐рд▓рд┐рдЯреАрдиреЗ рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ рдЬреЗ рдХреНрд░рдорд╛рдиреЗ (рдЗрди-рдСрд░реНрдбрд░ рд╕реБрдкрд░рд╕реНрдХреЗрд▓рд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди), рдЬрд╕реЗ рдХреА ARM Cortex-A55.
  • AArch64 рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА LLDB рдбреАрдмрдЧрд░ рдкреЙрдЗрдВрдЯрд░ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди, MTE (MemTag, рдореЗрдорд░реА рдЯреЕрдЧрд┐рдВрдЧ рдПрдХреНрд╕реНрдЯреЗрдВрд╢рди) рдЖрдгрд┐ SVE рд░рдЬрд┐рд╕реНрдЯрд░реНрд╕рд╕рд╛рдареА рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдкреБрд░рд╡рддреЛ. рдЬреЛрдбрд▓реЗрд▓реЗ рдЖрджреЗрд╢ рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдорд░реА рд╡рд╛рдЯрдк рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ рдЯреЕрдЧ рдмрд╛рдВрдзрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд рдЖрдгрд┐ рдореЗрдорд░реАрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛рдирд╛ рдкреЙрдЗрдВрдЯрд░рдЪреА рддрдкрд╛рд╕рдгреА рдЖрдпреЛрдЬрд┐рдд рдХрд░рддрд╛рдд, рдЬреЗ рдпреЛрдЧреНрдп рдЯреЕрдЧрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • LLDB рдбреАрдмрдЧрд░ рдЖрдгрд┐ рдлреЛрд░рдЯреНрд░рд╛рди рднрд╛рд╖реЗрд╕рд╛рдареА рдлреНрд░рдВрдЯрдПрдВрдб - рдлреНрд▓реЕрдВрдЧ рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдпрдирд░реА рдЕрд╕реЗрдВрдмреНрд▓реАрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛