αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžˆαž»αžαž…αž„αž€αŸ’αžšαž„ LLVM 15.0

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžšαž™αŸˆαž–αŸαž›αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αžαŸ‚αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž‚αž˜αŸ’αžšαŸ„αž„ LLVM 15.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰ - αž€αž‰αŸ’αž…αž”αŸ‹αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„ GCC (αž’αŸ’αž“αž€αž…αž„αž€αŸ’αžšαž„ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠ) αžŠαŸ‚αž›αž…αž„αž€αŸ’αžšαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αŸ…αž‡αžΆαž”αŸŠαžΈαžαž€αžΌαžŠαž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αž“αŸƒαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž“αž·αž˜αŸ’αž˜αž·αžαžŠαžΌαž… RISC (αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αžŠαŸ‚αž›αž˜αžΆαž“ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž–αž αž»αž€αž˜αŸ’αžšαž·αž) αŸ” αž€αžΌαžŠαž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž”αŸ’αž›αŸ‚αž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ JIT αž‘αŸ…αž‡αžΆαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„ Clang 15.0:

  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ x86 αž‘αž„αŸ‹ "-fzero-call-used-regs" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŠαŸ‚αž›αž’αžΆαž“αžΆαžαžΆαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŸαŸŠαžΈαž—αžΈαž™αžΌαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž˜αž»αžαž„αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αž‘αŸ…αžŸαžΌαž“αŸ’αž™ αž˜αž»αž“αž–αŸαž›αžαŸ’αžšαž‘αž”αŸ‹αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αžΈαž˜αž»αžαž„αžΆαžšαŸ” αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž€αžΆαžšαž›αŸαž…αž’αŸ’αž›αžΆαž™αž–αŸαžαŸŒαž˜αžΆαž“αž–αžΈαž˜αž»αžαž„αžΆαžš αž“αž·αž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αž”αŸ’αž›αž»αž€αžŠαŸ‚αž›αžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αžŸαžΆαž„αž§αž”αž€αžšαžŽαŸ ROP (Return-Oriented Programming) αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸαž„αž”αŸ’αžšαžœαŸαž‰αŸ’αž…αž”αŸ’αžšαž αŸ‚αž› 20% αŸ”
  • αž€αžΆαžšαž…αŸƒαžŠαž“αŸ’αž™αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž“αŸƒαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΌαžŠ C αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž’αŸ„αž™αž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŠαž›αŸ‹αž€αžΆαžšαž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸƒαž€αžΆαžšαž€αŸαž„αž”αŸ’αžšαžœαŸαž‰αŸ’αž…αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αŸ” Randomization αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€ αž“αž·αž„αž”αž·αž‘αžŠαŸ„αž™αž”αŸ’αžšαžΎ randomize_layout αž“αž·αž„ no_randomize_layout attributes αž αžΎαž™αž‘αžΆαž˜αž‘αžΆαžšαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‚αŸ’αžšαžΆαž”αŸ‹αž–αžΌαž‡αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‘αž„αŸ‹ "-frandomize-layout-seed" ឬ "-frandomize-layout-seed-file" αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αž„αŸ‹ "-fstrict-flex-arrays=" αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αŸ’αžšαŸ†αžŠαŸ‚αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαžαž»αž’αžΆαžšαŸαžŠαŸ‚αž›αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ (αžŸαž˜αžΆαž‡αž·αž€αž’αžΆαžšαŸαžŠαŸ‚αž›αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“ αž’αžΆαžšαŸαž“αŸƒαž‘αŸ†αž αŸ†αž˜αž·αž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’)αŸ” αž“αŸ…αž–αŸαž›αž€αŸ†αžŽαžαŸ‹αž‘αŸ… 0 (αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜) αž’αžΆαžαž»αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž˜αžΆαž“αž’αžΆαžšαŸαžαŸ‚αž„αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž’αžΆαžšαŸαžŠαŸ‚αž›αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“ 1 - αž‘αŸ†αž αŸ†αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ [], [0] αž“αž·αž„ [1] αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž’αžΆαžšαŸαžŠαŸ‚αž›αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“ 2 - αž‘αŸ†αž αŸ†αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ [] αž“αž·αž„ [0] αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž’αžΆαžšαŸαžŠαŸ‚αž›αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ C-like HLSL (High-Level Shader Language) αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ DirectX αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžš shaders αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ "-Warray-parameter" αžŠαžΎαž˜αŸ’αž”αžΈαž–αŸ’αžšαž˜αžΆαž“αž’αŸ†αž–αžΈαž€αžΆαžšαž”αžŠαž·αžŸαŸαž’αž˜αž»αžαž„αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž˜αž·αž“αž†αž”αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž’αžΆαžšαŸαž”αŸ’αžšαžœαŸ‚αž„αžαŸαžš αž“αž·αž„αž’αžαŸαžšαŸ”
  • αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž—αžΆαž–αž†αž”αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ MSVC αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ "#pragma function" (αžŽαŸ‚αž“αžΆαŸ†αž’αŸ’αž“αž€αž…αž„αž€αŸ’αžšαž„αž±αŸ’αž™αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž αŸ…αž˜αž»αžαž„αžΆαžšαž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž–αž„αŸ’αžšαžΈαž€αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αžΆαžαŸ‹) αž“αž·αž„ "#pragma alloc_text" (αž€αŸ†αžŽαžαŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž“αŸƒαž•αŸ’αž“αŸ‚αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΌαžŠαž˜αž»αžαž„αžΆαžš) αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžŠαž›αŸ‹αž±αŸ’αž™αž€αŸ’αž“αž»αž„ MSVC αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αž„αŸ‹ / JMC αž“αž·αž„ / JMC αžŠαŸ‚αž›αž†αž”αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ MSVC αŸ”
  • αž€αžΆαžšαž„αžΆαžšαž”αž“αŸ’αžαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C2X αž“αž·αž„ C++23 αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ C αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαŸ– αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ noreturn αž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡αž˜αž·αž“αž–αž·αž αž“αž·αž„αž–αž·αž αž”αŸ’αžšαž—αŸαž‘ _BitInt(N) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ†αž“αž½αž“αž‚αžαŸ‹αž“αŸƒαž‡αž˜αŸ’αžšαŸ…αž”αŸŠαžΈαžαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ *_WIDTH αž˜αŸ‰αžΆαž€αŸ’αžšαžΌ αž”αž»αž–αŸ’αžœαž”αž‘ u8 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαž½αž’αž€αŸ’αžŸαžšαžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž€αžΌαžŠ UTF-8 αŸ”

    αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ C ++ αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαŸ– αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž› αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€ ABI αž“αŸƒαžŸαž˜αžΆαž‡αž·αž€αž˜αž»αžαž„αžΆαžš αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžαžΆαž˜αžœαž“αŸ’αžαž“αŸƒαž’αžαŸαžšαžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΌαžŒαž»αž› αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž›αž·αž”αž·αž€αŸ’αžšαž˜αž–αž αž»αžœαž·αž˜αžΆαžαŸ’αžš αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·(x) αž’αžαŸαžšαž˜αž·αž“αž˜αŸ‚αž“αž–αŸ’αž™αž‰αŸ’αž‡αž“αŸˆ goto αž“αž·αž„αžŸαŸ’αž›αžΆαž€αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαžαžΆ constexpr , αž›αŸ†αžŠαžΆαž”αŸ‹αžšαžαŸ‹αž‚αŸαž…αžŠαŸ‚αž›αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹, αžŠαžΆαž€αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αžαž½αž’αž€αŸ’αžŸαžšαžšαžαŸ‹αž‚αŸαž…αžαŸ’αž›αž½αž“αŸ”

  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš OpenCL αž“αž·αž„ OpenMP αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ OpenCL cl_khr_subgroup_rotate αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ x86 αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ processors αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž˜αž€αž–αžΈαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž›αŸ„αžαž‘αŸ…αž˜αž»αžαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒαŸ” αž”αž‰αŸ’αž αžΆαž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž‡αžΆαž˜αž»αž“αž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŸαžΆαžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžαž· (SLS, Straight Line Speculation)αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš αž‡αž˜αŸ’αžšαžΎαžŸ β€œ-mharden-sls=[none|all|return|indirect-jmp]” αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ SSE2 αž”αŸ’αžšαž—αŸαž‘ _Float16 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαžΆαž”αŸ‹αžαžΆαž˜αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαž—αŸαž‘αž’αžŽαŸ’αžαŸ‚αž αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžαŸ’αžœαŸ‡αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† AVX512-FP16 αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αž„αŸ‹ "-m[no-]rdpru" αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† RDPRU αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš AMD Zen2 αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αž„αŸ‹ "-mfunction-return=thunk-extern" αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡ RETBLEED αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸƒαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŠαŸ‚αž›αž˜αž·αž“αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αŸƒαž™αž“αŸ’αžαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαžΆαžαžΆαžŠαŸ„αž™αž”αŸ’αžšαž™αŸ„αž›αŸ”

αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„ LLVM 15.0αŸ–

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸŠαžΈαž—αžΈαž™αžΌ Cortex-M85, Armv9-A, Armv9.1-A αž“αž·αž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Armv9.2-A, αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ Armv8.1-M PACBTI-M αŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž™αž–αž·αžŸαŸ„αž’αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ DirectX αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αž˜αŸ’αžšαž„αŸ‹ DXIL (DirectX Intermediate Language) αžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ DirectX shaders αŸ” αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŠαŸ„αž™αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš β€œ-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=DirectX” αž€αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αž‘αžΎαž„αŸ”
  • Libc++ αž”αž“αŸ’αžαž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαž“αŸƒαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C ++20 αž“αž·αž„ C ++2b αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ "αž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™" αž“αž·αž„αž€αŸ†αžŽαŸ‚αž–αž·αžŸαŸ„αž’αž“αŸαžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αž“αŸƒαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ "αž‡αž½αžš" αŸ”
  • αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ x86, PowerPC αž“αž·αž„ RISC-V αŸ”
  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹ LLD linker αž“αž·αž„ LLDB Debugger αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΉαž„αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹