LLVM 11.0 āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ¸ā§‡āĻŸā§‡āĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ

āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ›āĻ¯āĻŧ āĻŽāĻžāĻ¸ āĻĒāĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻāĻ˛āĻāĻ˛āĻ­āĻŋāĻāĻŽ 11.0 — GCC-āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻŸā§āĻ˛ (āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°, āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœāĻžāĻ° āĻāĻŦāĻ‚ āĻ•ā§‹āĻĄ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸāĻ°), RISC-āĻāĻ° āĻŽāĻ¤ā§‹ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ° āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§€ āĻŦāĻŋāĻŸāĻ•ā§‹āĻĄā§‡ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻž (āĻāĻ•āĻŸāĻŋ āĻŦāĻšā§-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸āĻš āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨)āĨ¤ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸ āĻ•āĻ°āĻž āĻ¸āĻŋāĻ‰āĻĄā§‹āĻ•ā§‹āĻĄāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ JIT āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻžāĻ¯āĻŧ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻœā§‡āĻ° āĻŽā§‚āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤āĻŋ āĻ›āĻŋāĻ˛ āĻĢā§āĻ˛ā§āĻ¯āĻžāĻ™ā§āĻ•, Fortran āĻ­āĻžāĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĢā§āĻ°āĻ¨ā§āĻŸāĻāĻ¨ā§āĻĄāĨ¤ Flang Fortran 2018, OpenMP 4.5 āĻāĻŦāĻ‚ OpenACC 3.0 āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻāĻ–āĻ¨āĻ“ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻšāĻ¯āĻŧāĻ¨āĻŋ āĻāĻŦāĻ‚ āĻ¸āĻžāĻŽāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŸāĻŋ āĻ•ā§‹āĻĄ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ¸āĻ āĻŋāĻ•āĻ¤āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĨ¤ LLVM āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧā§‡āĻŸ āĻ•ā§‹āĻĄā§‡āĻ° āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻļāĻ¨ āĻāĻ–āĻ¨āĻ“ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻ•ā§āĻ¯āĻžāĻ¨ā§‹āĻ¨āĻŋāĻ•āĻžāĻ˛ āĻ•ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤ āĻĢā§‹āĻ°ā§āĻŸāĻ°āĻžāĻ¨ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧāĨ¤

āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋ āĻāĻ¨āĻāĻ¨ 11.0 āĻ:

  • āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻŸā§āĻ°āĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻāĻŦāĻ‚ AST) āĻ­āĻžāĻ™āĻž C++ āĻ•ā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ¯āĻž āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻŖāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ•ā§āĻ˛ā§āĻ¯āĻžāĻ‚-āĻŸāĻžāĻ‡āĻĄāĻŋ āĻāĻŦāĻ‚ āĻ•ā§āĻ˛ā§āĻ¯āĻžāĻ‚āĻĄā§‡āĻ° āĻŽāĻ¤ā§‹ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻŸāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ C++ āĻ•ā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ "-Xclang -f[no-]recovery-ast" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
  • āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻžāĻ¯āĻŧāĻ—āĻ¨āĻŋāĻ¸ā§āĻŸāĻŋāĻ• āĻŽā§‹āĻĄ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:
    • "-Wpointer-to-int-cast" āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŸāĻžāĻ‡āĻĒā§‡āĻ° int-āĻ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻĒ āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻŽāĻžāĻ¨āĻ•ā§‡ āĻŽāĻŋāĻŸāĻŽāĻžāĻŸ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤
    • "-Wuninitialized-const-reference" - āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡ āĻ…āĻĒā§āĻ°āĻšāĻ˛āĻŋāĻ¤ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¯āĻž "const" āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§‡āĨ¤
    • "-Wimplicit-const-int-float-conversion" - āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻ§āĻ°āĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ§ā§āĻ°ā§āĻŦāĻ•ā§‡āĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ
  • āĻāĻ†āĻ°āĻāĻŽ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ¸āĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤), āĻĻāĻ•ā§āĻˇ āĻ­ā§‡āĻ•ā§āĻŸāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ†āĻ°ā§āĻŽ v8.1-M MVE āĻāĻŦāĻ‚ CDE āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤āĨ¤ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻĢāĻžāĻ‚āĻļāĻ¨ arm_mve.h āĻāĻŦāĻ‚ arm_cde.h āĻšā§‡āĻĄāĻžāĻ° āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
  • ДобавĐģĐĩĐŊ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ _ExtInt(N), āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻŽāĻ¨ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ āĻ¯āĻž āĻĻā§āĻ‡āĻŸāĻŋāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ—ā§āĻŖāĻŋāĻ¤āĻ• āĻ¨āĻ¯āĻŧ, āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ FPGA/HLS-āĻ āĻĻāĻ•ā§āĻˇāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, _ExtInt(7) 7 āĻŦāĻŋāĻŸ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻ§āĻ°āĻ¨ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤
  • ARM SVE (āĻ¸ā§āĻ•ā§‡āĻ˛āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ­ā§‡āĻ•ā§āĻŸāĻ° āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨) āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ C āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹āĻ—ā§āĻ˛āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:
    __ARM_FEATURE_SVE, __ARM_FEATURE_SVE_BF16,
    __ARM_FEATURE_SVE_MATMUL_FP32, __ARM_FEATURE_SVE_MATMUL_FP64,
    __ARM_FEATURE_SVE_MATMUL_INT8,
    __ARM_FEATURE_SVE2, __ARM_FEATURE_SVE2_AES,
    __ARM_FEATURE_SVE2_BITPERM,
    __ARM_FEATURE_SVE2_SHA3,
    __ARM_FEATURE_SVE2_SM4. āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ "-march=armv64-a+sve" āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ AArch8 āĻ•ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ __ARM_FEATURE_SVE āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

  • "-O" āĻĒāĻ¤āĻžāĻ•āĻžāĻŸāĻŋ āĻāĻ–āĻ¨ "-O1" āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ "-O2" āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻŽā§‹āĻĄ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻĒāĻ¤āĻžāĻ•āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:
    • "-fstack-clash-protection" - āĻāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻāĻŦāĻ‚ āĻ—āĻžāĻĻāĻž āĻ›ā§‡āĻĻ.
    • "-ffp-exception-behavior={ignore,maytrap,strict}" - āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĢā§āĻ˛ā§‹āĻŸāĻŋāĻ‚ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻŽā§‹āĻĄ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤
    • "-ffp-model={precise,strict,fast}" - āĻĢā§āĻ˛ā§‹āĻŸāĻŋāĻ‚ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§‡āĻˇ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ°āĻŋāĻœ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡āĨ¤
    • "-fpch-codegen" āĻāĻŦāĻ‚ "-fpch-debuginfo" āĻ•ā§‹āĻĄ āĻāĻŦāĻ‚ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ¨āĻĢā§‹ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ˛āĻžāĻĻāĻž āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻŋ-āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻĄ āĻšā§‡āĻĄāĻžāĻ° (PCH) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡āĨ¤
    • āĻ¸āĻžāĻĻāĻž āĻāĻŦāĻ‚ āĻ•āĻžāĻ˛ā§‹ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻ•āĻ­āĻžāĻ°ā§‡āĻœ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ “-fsanitize-coverage-allowlist” āĻāĻŦāĻ‚ “-fsanitize-coverage-blocklist”āĨ¤
    • TLS (āĻĨā§āĻ°ā§‡āĻĄ-āĻ˛ā§‹āĻ•āĻžāĻ˛ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ) āĻ¸āĻžāĻ‡āĻœ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻ¤ā§‡ “-mtls-size={12,24,32,48}”āĨ¤
    • āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• RISC-V āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°āĻ¤ā§‡ "-āĻŽā§‡āĻ¨ā§‡āĻŦāĻ˛-āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ•-āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨"āĨ¤
  • C-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻŽā§‹āĻĄ āĻšāĻ˛ "-fno-common", āĻ¯āĻž āĻ•āĻŋāĻ›ā§ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ āĻ—ā§āĻ˛ā§‹āĻŦāĻžāĻ˛ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡ āĻ†āĻ°āĻ“ āĻĻāĻ•ā§āĻˇ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤
  • āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻ•ā§āĻ¯āĻžāĻļā§‡ /tmp āĻĨā§‡āĻ•ā§‡ ~/.cache āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ¸āĻ°āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻĄ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ "-fmodules-cache-path=" āĻĒāĻ¤āĻžāĻ•āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤
  • āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻ¸āĻŋ āĻ˛ā§āĻ¯āĻžāĻ™ā§āĻ—ā§āĻ¯āĻŧā§‡āĻœ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ gnu11 āĻĨā§‡āĻ•ā§‡ gnu17 āĻ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • GNU C āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ "asm āĻ‡āĻ¨āĻ˛āĻžāĻ‡āĻ¨Âģ āĻ…ā§āĻ¯āĻžāĻ¸ā§‡āĻŽā§āĻŦāĻ˛āĻžāĻ° āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§‡āĻļ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡āĨ¤ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨āĻŸāĻŋ āĻāĻ–āĻ¨āĻ“ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•ā§‹āĻ¨ā§‹āĻ­āĻžāĻŦā§‡āĻ‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤
  • OpenCL āĻāĻŦāĻ‚ CUDA āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ OpenCL 2.0 āĻŦā§āĻ˛āĻ• āĻĄāĻžāĻ¯āĻŧāĻžāĻ—āĻ¨āĻ¸ā§āĻŸāĻŋāĻ•āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ OpenMP 5.0 āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• "C" āĻāĻŦāĻ‚ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤ "C++" āĻŦā§āĻ˛āĻ•ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻ•āĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§āĻ˛ā§āĻ¯āĻžāĻ‚-āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ¤ā§‡ IndentExternBlock āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻ• C++-āĻ āĻ‰āĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ°āĻ¸ā§‚āĻ¤ā§āĻ°ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ•āĻ¨āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸāĻ°āĻĻā§‡āĻ° āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ‚ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ āĻ˛āĻ• āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻšā§‡āĻ• alpha.core.C11Lock āĻāĻŦāĻ‚ alpha.fuchsia.Lock, putenv-āĻāĻ° āĻ…āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻļāĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ alpha.security.cert.pos.34c, webkit.NoUncountedMemberChecker āĻāĻŦāĻ‚ webkit.RefCntblBaseVirtualDtor, āĻ†āĻ¨āĻ•ā§‹āĻ¨āĻĢāĻž āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ .cplusplus .SmartPtr āĻ¨āĻžāĻ˛ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĄāĻŋāĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻšā§‡āĻ• āĻ•āĻ°āĻ¤ā§‡āĨ¤
  • āĻ˛āĻŋāĻ¨ā§āĻŸāĻžāĻ°ā§‡ āĻāĻ¨āĻāĻ¨-āĻĒāĻ°āĻŋāĻĒāĻžāĻŸāĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻšā§‡āĻ•ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻĄāĻŧ āĻ…āĻ‚āĻļāĨ¤
  • āĻ•ā§āĻ˛ā§āĻ¯āĻžāĻ‚āĻĄ āĻ•ā§āĻ¯āĻžāĻļāĻŋāĻ‚ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° (āĻ•ā§āĻ˛ā§āĻ¯āĻžāĻ‚ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°) āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻžāĻ¯āĻŧāĻžāĻ—āĻ¨āĻ¸ā§āĻŸāĻŋāĻ• āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤

āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ LLVM 11.0:

  • āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻŸāĻŋ āĻĒāĻžāĻ‡āĻĨāĻ¨ 3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡ āĻ¸ā§āĻ‡āĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻĒāĻžāĻ‡āĻĨāĻ¨ 3 āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĒāĻžāĻ‡āĻĨāĻ¨ 2 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ°ā§‹āĻ˛āĻŦā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦāĨ¤
  • Go āĻ˛ā§āĻ¯āĻžāĻ™ā§āĻ—ā§āĻ¯āĻŧā§‡āĻœ (llgo) āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ¸āĻš āĻ¸āĻžāĻŽāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŸāĻŋ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĨā§‡āĻ•ā§‡ āĻŦāĻžāĻĻ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡ āĻĒā§āĻ¨āĻ°ā§āĻ—āĻ āĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤
  • āĻ­ā§‡āĻ•ā§āĻŸāĻ°-āĻĢāĻžāĻ‚āĻļāĻ¨-āĻāĻŦāĻŋ-āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸāĻŸāĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧā§‡āĻŸ āĻ°āĻŋāĻĒā§āĻ°ā§‡āĻœā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡ (IR) āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻ•āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ­ā§‡āĻ•ā§āĻŸāĻ°āĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻ•ā§‡āĻ˛āĻžāĻ° āĻāĻŦāĻ‚ āĻ­ā§‡āĻ•ā§āĻŸāĻ° āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ‚ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ llvm::VectorType āĻĨā§‡āĻ•ā§‡ āĻĻā§āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ­ā§‡āĻ•ā§āĻŸāĻ° āĻĒā§āĻ°āĻ•āĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ llvm::FixedVectorType āĻāĻŦāĻ‚ llvm::ScalableVectorTypeāĨ¤
  • udef āĻŽāĻžāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻļāĻžāĻ–āĻž āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ undef āĻŽāĻžāĻ¨ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻ…āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ†āĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāĻ¤āĨ¤ āĻ­āĻŋāĻ¤āĻ°ā§‡
    memset/memcpy/memmove undef āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĒāĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻžāĻ‡āĻœ āĻ¸āĻš āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻļā§‚āĻ¨ā§āĻ¯ āĻšāĻ˛ā§‡āĨ¤

  • LLJIT LLJIT::initialize āĻāĻŦāĻ‚ LLJIT::deinitialize āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ StaticLibraryDefinitionGenerator āĻ•ā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ JITDylib-āĻ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ° āĻœāĻ¨ā§āĻ¯ C API āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ ORCv2 (JIT āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ API)āĨ¤
  • AArch64 āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ Cortex-A34, Cortex-A77, Cortex-A78 āĻāĻŦāĻ‚ Cortex-X1 āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ ARMv8.2-BF16 (BFloat16) āĻāĻŦāĻ‚ ARMv8.6-A āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ RMv8.6-ECV (āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨), ARMv8.6-FGT (āĻ¸ā§‚āĻ•ā§āĻˇā§āĻŽ āĻĻāĻžāĻ¨āĻžāĻĻāĻžāĻ° āĻĢāĻžāĻāĻĻ), ARMv8.6-AMU (āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒ āĻŽāĻ¨āĻŋāĻŸāĻ° āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨) āĻ¸āĻš āĻāĻŦāĻ‚ ARMv8.0-DGH (āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ—ā§āĻ°āĻšā§‡āĻ° āĻ‡āĻ™ā§āĻ—āĻŋāĻ¤)āĨ¤ SVE āĻ­ā§‡āĻ•ā§āĻŸāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ¤ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨-āĻŦāĻžāĻ‡āĻ¨ā§āĻĄāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻāĻ†āĻ°āĻāĻŽ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ Cortex-M55, Cortex-A77, Cortex-A78 āĻāĻŦāĻ‚ Cortex-X1 āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤
    Armv8.6-A Matrix Multiply āĻāĻŦāĻ‚ RMv8.2-AA32BF16 BFloat16āĨ¤

  • PowerPC āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ POWER10 āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ˛ā§āĻĒ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻĢā§āĻ˛ā§‹āĻŸāĻŋāĻ‚ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • RISC-V āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄ āĻĒā§āĻ¯āĻžāĻšāĻ—ā§āĻ˛āĻŋāĻ° āĻ—ā§āĻ°āĻšāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¯āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻ¸ā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ āĻāĻ–āĻ¨āĻ“ āĻ†āĻ¨ā§āĻˇā§āĻ āĻžāĻ¨āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤
  • AVR āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• āĻŦāĻŋāĻ­āĻžāĻ— āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻ¤āĻ°āĻŖā§‡āĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤āĨ¤
  • x86 āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄ Intel AMX āĻāĻŦāĻ‚ TSXLDTRK āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻ•ā§āĻ°āĻŽāĻŖā§‡āĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻ˛āĻ­āĻŋāĻ†āĻ‡ (āĻ˛ā§‹āĻĄ āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻ‡āĻ¨āĻœā§‡āĻ•āĻļāĻ¨), āĻāĻŦāĻ‚ CPU-āĻ¤ā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻžāĻ¨āĻŽā§‚āĻ˛āĻ• āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ¸ā§ƒāĻˇā§āĻŸ āĻ†āĻ•ā§āĻ°āĻŽāĻŖāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦā§āĻ˛āĻ• āĻ•āĻ°āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨āĻŽā§‚āĻ˛āĻ• āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻ¸āĻžāĻ‡āĻĄ āĻ‡āĻĢā§‡āĻ•ā§āĻŸ āĻ¸āĻžāĻĒā§āĻ°ā§‡āĻļāĻ¨ āĻŽā§‡āĻ•āĻžāĻ¨āĻŋāĻœāĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤
  • SystemZ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡, āĻŽā§‡āĻŽāĻ°āĻŋ āĻ¸ā§āĻ¯āĻžāĻ¨āĻŋāĻŸāĻžāĻ‡āĻœāĻžāĻ° āĻāĻŦāĻ‚ āĻ˛āĻŋāĻ• āĻ¸ā§āĻ¯āĻžāĻ¨āĻŋāĻŸāĻžāĻ‡āĻœāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • Libc++ āĻ āĻ—āĻžāĻŖāĻŋāĻ¤āĻŋāĻ• āĻ§ā§āĻ°ā§āĻŦāĻ• āĻ¸āĻš āĻšā§‡āĻĄāĻžāĻ° āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ .
  • āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ˛āĻāĻ˛āĻĄāĻŋ āĻ˛āĻŋāĻ™ā§āĻ•āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤ ELF āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨, āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻ¸āĻš "--lto-emit-asm", "--lto-āĻĒā§āĻ°ā§‹-āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ-āĻĻā§ƒāĻļā§āĻ¯āĻŽāĻžāĻ¨āĻ¤āĻž", "-āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ-āĻ†āĻ°ā§āĻ•āĻžāĻ‡āĻ­-āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻ¸", "-āĻļāĻžāĻĢā§‡āĻ˛-āĻ¸ā§‡āĻ•āĻļāĻ¨āĻ¸", " -āĻĨāĻŋāĻ¨āĻ˛ā§āĻŸā§‹- āĻāĻ•āĻ•-āĻŽāĻĄāĻŋāĻ‰āĻ˛", "-āĻ…āĻ¨āĻ¨ā§āĻ¯", "-āĻ°ā§‹āĻœāĻ—āĻŽā§‡āĻ¨ā§āĻŸ", "-āĻĨā§āĻ°ā§‡āĻĄ = āĻāĻ¨"āĨ¤ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻŸā§āĻ°ā§‡āĻ¸ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ "--āĻŸāĻžāĻ‡āĻŽ-āĻŸā§āĻ°ā§‡āĻ¸" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ Chrome-āĻ chrome://tracing āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨