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

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

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™ Clang 15.0:

  • เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ x86, เบ—เบธเบ‡ "-fzero-call-used-regs" เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เป€เบŠเบดเปˆเบ‡เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ CPU เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เบทเบ™เปƒเบซเบกเปˆเป€เบ›เบฑเบ™เบชเบนเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบเบฑเบšเบ„เบทเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบˆเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบฅเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบšเบฅเบฑเบญเบเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ ROP (Return-Oriented Programming) gadgets เปƒเบ™เบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบ›เบฐเบกเบฒเบ™ 20%.
  • เบเบฒเบ™ Randomization เบ‚เบญเบ‡เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” C เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเบฐเบเบฑเบ”เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡. เบเบฒเบ™เบชเบธเปˆเบกเปเบกเปˆเบ™เป€เบ›เบตเบ”เปเบฅเบฐเบ›เบดเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ randomize_layout เปเบฅเบฐ no_randomize_layout, เปเบฅเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบเปˆเบ™เป‚เบ”เบเปƒเบŠเป‰เบ—เบธเบ‡ "-frandomize-layout-seed" เบซเบผเบท "-frandomize-layout-seed-file".
  • เป€เบžเบตเปˆเบก "-fstrict-flex-arrays=" เบ—เบธเบ‡ ", เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบ‚เบญเบšเป€เบ‚เบ”เบชเปเบฒเบฅเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบš array เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ (เบชเบฐเบกเบฒเบŠเบดเบ Array เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™, array เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡). เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ 0 (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™), เบญเบปเบ‡เบ›เบฐเบเบญเบšเบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบต array เบˆเบฐเบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบ›เบฑเบ™ array เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เบชเบฐเป€เปเบต, 1 - เบ‚เบฐเปœเบฒเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ [], [0] เปเบฅเบฐ [1] เบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบ›เบฑเบ™ array เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰, 2 - เบ‚เบฐเปœเบฒเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. [] เปเบฅเบฐ [0] เบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ„เบทเบเบฑเบšเบญเบฒเป€เบฃเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ C-like HLSL (High-Level Shader Language), เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ DirectX เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™ shaders.
  • เป€เบžเบตเปˆเบก "-Warray-parameter" เป€เบžเบทเปˆเบญเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™ overriding functions เบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ” argument เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš arrays fixed- เปเบฅเบฐ variable-length.
  • เบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš MSVC. เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš "#pragma function" (เปเบ™เบฐเบ™เปเบฒ compiler เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฐเบซเบเบฒเบ inline) เปเบฅเบฐ "#pragma alloc_text" (เบเปเบฒเบ™เบปเบ”เบŠเบทเปˆเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เบŸเบฑเบ‡เบŠเบฑเบ™) เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เปƒเบ™ MSVC. เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบ‡ / JMC เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš MSVC เปเบฅเบฐ / JMC.
  • เบงเบฝเบเบ‡เบฒเบ™เบชเบทเบšเบ•เปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C2X เปเบฅเบฐ C++23 เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”. เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ C, เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ noreturn, เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบˆเบดเบ‡, เบ›เบฐเป€เบžเบ” _BitInt(N) เบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ‚เบญเบ‡เบ„เบงเบฒเบกเป€เบฅเบดเบเบ‚เบญเบ‡เบšเบดเบ”, *_WIDTH macros, เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ u8 เบชเปเบฒเบฅเบฑเบš UTF-8 เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”.

    เบชเปเบฒเบฅเบฑเบš C ++, เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™, เบเบฒเบ™เปเบเบ ABI เบ‚เบญเบ‡เบชเบฐเบกเบฒเบŠเบดเบเบŸเบฑเบ‡เบŠเบฑเบ™, เบชเบฑเปˆเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™เป‚เบกเบ”เบนเบ™, เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เบฑเบ”เบชเบฐเบ™เบตเบซเบผเบฒเบเบกเบดเบ•เบด, เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” (x), เบ•เบปเบงเปเบ›เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเปเบ›, goto เปเบฅเบฐเบ›เป‰เบฒเบเบŠเบทเปˆเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบฐเบเบฒเบ”เป€เบ›เบฑเบ™ constexpr. , delimited เบฅเปเบฒเบ”เบฑเบš escape, เบกเบตเบŠเบทเปˆเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ escape.

  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ OpenCL เปเบฅเบฐ OpenMP เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบ. เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš OpenCL extension cl_khr_subgroup_rotate.
  • เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ x86, เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเบ•เปเปˆเบเบฑเบšเบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เป‰เบฒเบกเป„เบ›เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบšเบฑเบ™เบซเบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ—เบฒเบ‡เบชเปˆเบงเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบฑเบ™เบ—เบตเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒเปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ (SLS, Straight Line Speculation). เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ โ€œ-mharden-sls=[none|all|return|indirect-jmp]โ€ เบ–เบทเบเบชเบฐเป€เปœเบตเปƒเบซเป‰.
  • เบชเปเบฒเบฅเบฑเบšเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ SSE2, เบ›เบฐเป€เบžเบ” _Float16 เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบˆเปเบฒเบฅเบญเบ‡เป‚เบ”เบเปƒเบŠเป‰เบ›เบฐเป€เบžเบ” float เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ‚เบฒเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ AVX512-FP16.
  • เป€เบžเบตเปˆเบกเบ—เบธเบ‡ "-m[no-]rdpru" เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ RDPRU, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD Zen2.
  • เป€เบžเบตเปˆเบกเบ—เบธเบ‡ "-mfunction-return=thunk-extern" เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ‚เบญเบ‡ RETBLEED, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบšเปเปˆเบฅเบงเบกเป€เบญเบปเบฒเบเบฒเบ™เบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบกเบ‚เบญเบ‡เบเบปเบ™เป„เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบชเปเบฒเบฅเบฑเบšเบชเบฒเบ‚เบฒเบ—เบฒเบ‡เบญเป‰เบญเบก.

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

  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš CPU Cortex-M85, Armv9-A, Armv9.1-A เปเบฅเบฐ Armv9.2-A, เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ Armv8.1-M PACBTI-M.
  • Backend เบ—เบปเบ”เบฅเบญเบ‡เบชเปเบฒเบฅเบฑเบš DirectX เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบนเบšเปเบšเบš DXIL (DirectX Intermediate Language) เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš DirectX shaders. backend เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต โ€œ-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=DirectXโ€ เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบเบญเบš.
  • Libc++ เบชเบทเบšเบ•เปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++20 เปเบฅเบฐ C ++2b, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” "เบฎเบนเบšเปเบšเบš" เปเบฅเบฐเบชเบฐเบšเบฑเบšเบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” "เบ‚เบญเบšเป€เบ‚เบ”".
  • เบ›เบฑเบšเบ›เบธเบ‡ backends เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ x86, PowerPC เปเบฅเบฐ RISC-V.
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ LLD เปเบฅเบฐ LLDB debugger เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡.

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

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