GCC 11 āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ¸ā§āĻ¯ā§āĻŸā§‡āĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ

āĻŦāĻŋāĻ•āĻžāĻļā§‡āĻ° āĻāĻ• āĻŦāĻ›āĻ° āĻĒāĻ°, āĻĢā§āĻ°āĻŋ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ¸ā§āĻ¯ā§āĻŸ GCC 11.1 āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¨āĻ¤ā§āĻ¨ GCC 11.x āĻļāĻžāĻ–āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĨāĻŽ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĒā§āĻ°āĻ•āĻžāĻļāĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻ¨āĻŽā§āĻŦāĻ°āĻŋāĻ‚ āĻ¸ā§āĻ•āĻŋāĻŽ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡, āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 11.0 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ, āĻāĻŦāĻ‚ GCC 11.1 āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻ•āĻŋāĻ›ā§āĻ•ā§āĻˇāĻŖ āĻ†āĻ—ā§‡, GCC 12.0 āĻļāĻžāĻ–āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§‡ āĻ—āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¯ā§‡āĻ–āĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻŦāĻĄāĻŧ āĻ°āĻŋāĻ˛āĻŋāĻœ, GCC 12.1, āĻ—āĻ āĻŋāĻ¤ āĻšāĻŦā§‡āĨ¤

GCC 11.1 āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ DWARF 5 āĻĄāĻŋāĻŦāĻžāĻ— āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯, C++17 āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§‡āĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤āĻŋ (“-std=gnu++17”), C++20 āĻāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋāĨ¤ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ, C++23-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨, āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡āĻ° C āĻ­āĻžāĻˇāĻžāĻ° āĻŽāĻžāĻ¨ (C2x) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋ, āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨āĨ¤

āĻ…āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž:

  • C++ āĻ­āĻžāĻˇāĻžāĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻŽā§‹āĻĄāĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŦā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž C++17-āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ C++17 āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ (-std=gnu++14) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻ‡āĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° (-fno-new-ttp-matching) āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻ¤ā§āĻ¨ C++17 āĻ†āĻšāĻ°āĻŖāĻ•ā§‡ āĻŦā§‡āĻ›ā§‡ āĻŦā§‡āĻ›ā§‡ āĻ…āĻ•ā§āĻˇāĻŽ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦāĨ¤
  • āĻ…ā§āĻ¯āĻžāĻĄā§āĻ°ā§‡āĻ¸ āĻ¸ā§āĻ¯āĻžāĻ¨āĻŋāĻŸāĻžāĻ‡āĻœāĻžāĻ° āĻŸā§āĻ˛ā§‡āĻ° āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¤ā§āĻŦāĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŽā§‡āĻŽāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŽā§āĻ•ā§āĻ¤ āĻŽā§‡āĻŽāĻ°āĻŋ āĻāĻ˛āĻžāĻ•āĻžāĻ¯āĻŧ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸, āĻŦāĻ°āĻžāĻĻā§āĻĻāĻ•ā§ƒāĻ¤ āĻŦāĻžāĻĢāĻžāĻ°ā§‡āĻ° āĻ¸ā§€āĻŽāĻžāĻ¨āĻžāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻ—āĻŋāĻ¯āĻŧā§‡ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ›ā§ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ§āĻ°āĻŖā§‡āĻ° āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ° āĻ¤āĻĨā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¤ā§āĻŦāĻ°āĻŖ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° AArch64 āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻāĻŦāĻ‚ Linux āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻ‰āĻĒāĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋ āĻ¨āĻŋāĻŦāĻĻā§āĻ§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ AddressSanitizer āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¤ā§āĻŦāĻ°āĻŖ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°āĻ¤ā§‡, āĻĒāĻ¤āĻžāĻ•āĻž "-fsanitize=hwaddress" āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻĒāĻ¤āĻžāĻ•āĻž "-fsanitize=kernel-hwaddress" āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻ¤āĻĨā§āĻ¯ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ DWARF 5 āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻ—ā§āĻ˛āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ 25% āĻŦā§‡āĻļāĻŋ āĻ•āĻŽāĻĒā§āĻ¯āĻžāĻ•ā§āĻŸ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻĄā§‡āĻŸāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧā§ˇ DWARF 5 āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŽāĻĒāĻ•ā§āĻˇā§‡ āĻŦāĻŋāĻ¨ā§āĻŸāĻŋāĻ˛āĻ¸ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 2.35.2 āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ DWARF 5 āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸ GDB 8.0, valgrind 3.17.0, elfutils 0.172 āĻāĻŦāĻ‚ dwz 0.14 āĻĨā§‡āĻ•ā§‡ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤āĨ¤ DWARF-āĻāĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĄāĻŋāĻŦāĻžāĻ— āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ "-gdwarf-2", "-gdwarf-3" āĻāĻŦāĻ‚ "-gdwarf-4" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤
  • GCC āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŽāĻ¨ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°āĻ•ā§‡ āĻāĻ–āĻ¨ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ C++11 āĻŽāĻžāĻ¨āĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ (āĻ†āĻ—ā§‡ C++98 āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻŋāĻ˛), āĻ¯ā§‡āĻŽāĻ¨ āĻ¯āĻĻāĻŋ GCC 10 āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ GCC 3.4 āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻ›āĻŋāĻ˛, āĻ¤āĻžāĻšāĻ˛ā§‡ GCC 11 āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻāĻ–āĻ¨ āĻ…āĻ¨ā§āĻ¤āĻ¤ GCC 4.8 āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤
  • āĻĄāĻžāĻŽā§āĻĒ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ‚ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨, āĻ…āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻĢāĻžāĻ‡āĻ˛ āĻāĻŦāĻ‚ āĻāĻ˛āĻŸāĻŋāĻ“ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ "-āĻĄāĻžāĻŽā§āĻĒāĻŦā§‡āĻ¸", "-āĻĄāĻžāĻŽā§āĻĒāĻĄāĻŋāĻ°" āĻāĻŦāĻ‚ "-āĻ¸ā§‡āĻ­-āĻŸā§‡āĻŽā§āĻĒāĻ¸=*" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻžāĻĨāĻŸāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻ¨āĻž āĻšāĻ˛ā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻāĻ–āĻ¨ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
  • HSAIL (Heterogeneous System Architecture Intermediate Language) āĻ­āĻžāĻˇāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ BRIG-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻļā§€āĻ˜ā§āĻ°āĻ‡ āĻ¸āĻ°āĻžāĻ¨ā§‹ āĻšāĻŦā§‡āĨ¤
  • āĻĨā§āĻ°ā§‡āĻĄāĻ¸ā§āĻ¯āĻžāĻ¨āĻŋāĻŸāĻžāĻ‡āĻœāĻžāĻ° āĻŽā§‹āĻĄ (-fsanitize=thread) āĻāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻĨā§āĻ°ā§‡āĻĄā§‡āĻĄ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĨā§āĻ°ā§‡āĻĄ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻ‡ āĻĄā§‡āĻŸāĻž āĻ­āĻžāĻ— āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ°ā§‡āĻ¸ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ KCSAN (Kernel Concurrency Sanitizer) āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻŸā§āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡, āĻ¯āĻž āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ āĻ°ā§‡āĻ¸ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ "-āĻĒāĻ°āĻŽ āĻ¸āĻžāĻ¨-āĻĄāĻŋāĻ¸ā§āĻŸāĻŋāĻ‚āĻ—ā§āĻ‡āĻļ-āĻ…āĻ¸ā§āĻĨāĻŋāĻ°" āĻāĻŦāĻ‚ "-āĻĒāĻ°āĻŽ āĻ¸āĻžāĻ¨-āĻ‡āĻ¨āĻ¸ā§āĻŸā§āĻ°ā§āĻŽā§‡āĻ¨ā§āĻŸ-āĻĢāĻžāĻ‚āĻļ-āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ-āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨"āĨ¤
  • āĻĄāĻžāĻ¯āĻŧāĻžāĻ—āĻ¨āĻ¸ā§āĻŸāĻŋāĻ• āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•āĻ˛āĻžāĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻāĻ–āĻ¨ āĻ˛āĻžāĻ‡āĻ¨ā§‡āĻ° āĻļā§āĻ°ā§ āĻĨā§‡āĻ•ā§‡ āĻŦāĻžāĻ‡āĻŸ āĻ—āĻŖāĻ¨āĻžāĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡ āĻ•āĻ˛āĻžāĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻŦāĻžāĻ‡āĻŸ āĻ…āĻ•ā§āĻˇāĻ° āĻāĻŦāĻ‚ āĻ…āĻ•ā§āĻˇāĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻĻāĻ–āĻ˛ āĻ•āĻ°ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ…āĻ•ā§āĻˇāĻ° 🙂 āĻĻā§āĻŸāĻŋ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻĻāĻ–āĻ˛ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ 4 āĻŦāĻžāĻ‡āĻŸā§‡ āĻāĻ¨āĻ•ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤ āĻāĻ•āĻ‡āĻ­āĻžāĻŦā§‡, āĻŸā§āĻ¯āĻžāĻŦ āĻ…āĻ•ā§āĻˇāĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ–āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻ¸ā§āĻĒā§‡āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ—āĻŖā§āĻ¯ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (-ftabstop āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ 8)āĨ¤ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻ†āĻšāĻ°āĻŖ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, "-fdiagnostics-column-unit=byte" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ (0 āĻŦāĻž 1 āĻĨā§‡āĻ•ā§‡ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ•āĻ°āĻŖ) - "-fdiagnostics-column-origin=" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋāĨ¤
  • āĻ­ā§‡āĻ•ā§āĻŸāĻ°āĻžāĻ‡āĻœāĻžāĻ°āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛-āĻĢā§āĻ˛ā§‹ āĻ—ā§āĻ°āĻžāĻĢā§‡ (CFG, āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛-āĻĢā§āĻ˛ā§‹ āĻ—ā§āĻ°āĻžāĻĢ) āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻŦā§āĻ˛āĻ•ā§‡āĻ° āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¸ā§‡āĻ•āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤
  • āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœāĻžāĻ° āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§‡āĻ•ā§āĻˇ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ°āĻŋāĻœ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡ āĻ¯āĻž āĻāĻ•āĻ‡ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ‡āĻš āĻāĻ•ā§āĻ¸āĻĒā§āĻ°ā§‡āĻļāĻ¨ā§‡ āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ āĻ¸ā§āĻ‡āĻš āĻāĻ•ā§āĻ¸āĻĒā§āĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĒāĻ°ā§‡ āĻŦāĻŋāĻŸ āĻŸā§‡āĻ¸ā§āĻŸāĻŋāĻ‚ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ¨āĻ•ā§‹āĻĄ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ "-fbit-tests" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡)āĨ¤
  • āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ†āĻ¨ā§āĻ¤āĻƒāĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—āĻ¤ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨āĨ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻžāĻ°ā§āĻļā§āĻŦ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŸā§āĻ°ā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ IPA-modref āĻĒāĻžāĻ¸ (-fipa-modref) āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ IPA-ICF āĻĒāĻžāĻ¸ā§‡āĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ (-fipa-icf), āĻ¯āĻž āĻ¸āĻ‚āĻ•āĻ˛āĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŽā§‡āĻŽāĻ°āĻŋ āĻ–āĻ°āĻš āĻ•āĻŽāĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ‡āĻ‰āĻ¨āĻŋāĻĢāĻžāĻ‡āĻĄ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¯āĻŧ āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻĄā§‡āĻ° āĻ…āĻ­āĻŋāĻ¨ā§āĻ¨ āĻŦā§āĻ˛āĻ•āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ†āĻ‡āĻĒāĻŋāĻ-āĻ¸āĻŋāĻĒāĻŋ (āĻ†āĻ¨ā§āĻ¤āĻƒāĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—āĻ¤ āĻ§ā§āĻ°ā§āĻŦāĻ• āĻĒā§āĻ°āĻšāĻžāĻ°) āĻĒāĻžāĻ¸ā§‡, āĻĒā§‚āĻ°ā§āĻŦāĻžāĻ­āĻžāĻ¸ āĻšāĻŋāĻ‰āĻ°āĻŋāĻ¸ā§āĻŸāĻŋāĻ•āĻ—ā§āĻ˛āĻŋ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻ¸ā§€āĻŽāĻžāĻ¨āĻž āĻāĻŦāĻ‚ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤
  • āĻ˛āĻŋāĻ™ā§āĻ•āĻŋāĻ‚ āĻŸāĻžāĻ‡āĻŽ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ā§‡ (LTO), āĻŦāĻžāĻ‡āĻŸāĻ•ā§‹āĻĄ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸāĻŸāĻŋ āĻ†āĻ•āĻžāĻ° āĻ•āĻŽāĻžāĻ¤ā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ—āĻ¤āĻŋ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻŦāĻžāĻāĻ§āĻžāĻ‡ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻĒāĻŋāĻ• āĻŽā§‡āĻŽāĻ°āĻŋ āĻ–āĻ°āĻš āĻšā§āĻ°āĻžāĻ¸.
  • āĻ•ā§‹āĻĄ āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ āĻŽā§‡āĻ•āĻžāĻ¨āĻŋāĻœāĻŽ (āĻĒāĻŋāĻœāĻŋāĻ“ - āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛-āĻ—āĻžāĻ‡āĻĄā§‡āĻĄ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨), āĻ¯āĻž āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ†āĻ°āĻ“ āĻ¸āĻ°ā§āĻŦā§‹āĻ¤ā§āĻ¤āĻŽ āĻ•ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻœāĻŋāĻ•ā§‹ āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ†āĻ°āĻ“ āĻ•āĻŽāĻĒā§āĻ¯āĻžāĻ•ā§āĻŸ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻœāĻŋāĻ¸āĻŋāĻ“āĻ­āĻŋ āĻĄā§‡āĻŸāĻž āĻ¸āĻš āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ†āĻ•āĻžāĻ° āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ . āĻĒāĻ°ā§‹āĻ•ā§āĻˇ āĻ•āĻ˛ā§‡ āĻ†āĻ°āĻ“ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻŸā§āĻ°ā§āĻ¯āĻžāĻ• āĻ•āĻ°ā§‡ āĻ‰āĻ¨ā§āĻ¨āĻ¤ "-fprofile-values" āĻŽā§‹āĻĄāĨ¤
  • OpenMP 5.0 (āĻ“āĻĒā§‡āĻ¨ āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŋāĻ‚) āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§‡āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨, āĻ¯āĻž āĻļā§‡āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻŽā§‡āĻŽāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ­ā§‡āĻ•ā§āĻŸāĻ°āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ‡āĻ‰āĻ¨āĻŋāĻŸ (SIMD) āĻ¸āĻš āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻ•ā§‹āĻ° āĻāĻŦāĻ‚ āĻšāĻžāĻ‡āĻŦā§āĻ°āĻŋāĻĄ (CPU+GPU/DSP) āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ API āĻāĻŦāĻ‚ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻ…āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž āĻāĻŦāĻ‚ OpenMP āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§‡ āĻ­āĻŋāĻ¨ā§āĻ¨āĻ§āĻ°ā§āĻŽā§€ āĻ˛ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ OMP_TARGET_OFFLOAD āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤
  • C, C++ āĻāĻŦāĻ‚ Fortran āĻ­āĻžāĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ OpenACC 2.6 āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ¸ā§āĻĒā§‡āĻ¸āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž GPU āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§‡āĻˇāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ° āĻ¯ā§‡āĻŽāĻ¨ NVIDIA PTX-āĻ āĻ…āĻĢāĻ˛ā§‹āĻĄāĻŋāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŸā§āĻ˛āĻ•ā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤
  • āĻ¸āĻŋ āĻ˛ā§āĻ¯āĻžāĻ™ā§āĻ—ā§āĻ¯āĻŧā§‡āĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ…ā§āĻ¯āĻžāĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸ "no_stack_protector" āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŽāĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ ("-fstack-protector")ā§ˇ āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻŦāĻ‚ āĻŽā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻœā§‹āĻĄāĻŧāĻž āĻ•āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻ°āĻŖāĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ "āĻŽā§āĻ¯āĻžāĻ˛ā§‹āĻ•" āĻ…ā§āĻ¯āĻžāĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸāĻŸāĻŋ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ…ā§āĻ¯āĻžāĻ˛ā§‹āĻ•ā§‡āĻŸāĻ°/āĻĄāĻŋāĻ…ā§āĻ¯āĻžāĻ˛ā§‹āĻ•ā§‡āĻŸāĻ°), āĻ¯āĻž āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻžāĻ‡āĻœāĻžāĻ°ā§‡ āĻŽā§‡āĻŽāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ (āĻŽā§‡āĻŽāĻ°āĻŋ āĻ˛āĻŋāĻ•, āĻĢā§āĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°, āĻĢā§āĻ°āĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻĄāĻžāĻŦāĻ˛ āĻ•āĻ˛ āĻ•āĻ°āĻž āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ
  • C āĻ­āĻžāĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ¤āĻ°ā§āĻ•āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:
    • "-Wmismatched-dealloc" (āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ) - āĻŽā§‡āĻŽāĻ°āĻŋ āĻĄāĻŋāĻ˛ā§‹āĻ•ā§‡āĻļāĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻ¤āĻ°ā§āĻ• āĻ•āĻ°ā§‡ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¯āĻž āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻāĻ•āĻ°āĻŖ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻ¨āĻ¯āĻŧāĨ¤
    • "-Wsizeof-array-div" (āĻ¯āĻ–āĻ¨ "-āĻ“āĻ¯āĻŧāĻžāĻ˛" āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻ–āĻ¨ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ) - āĻ¯āĻĻāĻŋ āĻ…ā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡āĻ° āĻ†āĻ•āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŦāĻŋāĻ­āĻžāĻœāĻ• āĻŽā§‡āĻ˛ā§‡ āĻ¨āĻž āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĻā§āĻŸāĻŋ āĻ¸āĻžāĻ‡āĻœāĻ…āĻĢ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°āĻ•ā§‡ āĻ­āĻžāĻ— āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ¸āĻ¤āĻ°ā§āĻ• āĻ•āĻ°ā§‡ā§ˇ
    • "-Wstringop-overread" (āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ) - āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ¸āĻ¤āĻ°ā§āĻ• āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ…ā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ¸ā§€āĻŽāĻžāĻ¨āĻžāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻāĻ˛āĻžāĻ•āĻž āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻĒāĻĄāĻŧā§‡āĨ¤
    • "-Wtsan" (āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ) - āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋ (āĻ¯ā§‡āĻŽāĻ¨ std::atomic_thread_fence) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ¸āĻ¤āĻ°ā§āĻ• āĻ•āĻ°ā§‡ āĻ¯āĻž ThreadSanitizer-āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
    • "-Warray-āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°" āĻāĻŦāĻ‚ "-Wvla-āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°" ("-āĻ“āĻ¯āĻŧāĻžāĻ˛" āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ) - āĻ¸ā§āĻĨāĻŋāĻ°- āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛-āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻ°ā§‡āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŦā§‡āĻŽāĻžāĻ¨āĻžāĻ¨ āĻ˜ā§‹āĻˇāĻŖāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻĄāĻŋāĻ‚ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻ¤āĻ°ā§āĻ• āĻ•āĻ°ā§‡ā§ˇ
    • "-āĻ‰āĻ¨āĻŋāĻ¨āĻŋāĻŸāĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœāĻĄ" āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻŸāĻŋ āĻāĻ–āĻ¨ āĻ…āĻĒā§āĻ°āĻšāĻ˛āĻŋāĻ¤ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°āĻž āĻŽā§‡āĻŽāĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻĒāĻĄāĻŧāĻžāĻ° āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻž āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤
    • "-Wfree-nonheap-āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ" āĻ¸āĻ¤āĻ°ā§āĻ•āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻŸāĻŋ āĻ¸ā§‡āĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ•ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻŽā§‡āĻŽāĻ°āĻŋ āĻĄāĻŋāĻ˛ā§‹āĻ•ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ•āĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻĄāĻžāĻ¯āĻŧāĻ¨āĻžāĻŽāĻŋāĻ• āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻāĻ•āĻ°āĻŖ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤
    • "-Wmaybe-uninitialized" āĻ¸āĻ¤āĻ°ā§āĻ•ā§€āĻ•āĻ°āĻŖāĻŸāĻŋ āĻāĻŽāĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĒāĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻ°āĻŖāĻ•ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ¯āĻž āĻ…āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻŽā§‡āĻŽāĻ°āĻŋ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°ā§‡āĨ¤
  • āĻ¸āĻŋ āĻ­āĻžāĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯, C2X āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§‡āĻ° āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ‚āĻļ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (-std=c2x āĻāĻŦāĻ‚ -std=gnu2x āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡): āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹ BOOL_MAX āĻāĻŦāĻ‚ BOOL_WIDTH, āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻ…āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻāĻšā§āĻ›āĻŋāĻ• āĻ‡āĻ™ā§āĻ—āĻŋāĻ¤ āĻ¸āĻ‚āĻœā§āĻžāĻž (āĻ¯ā§‡āĻŽāĻ¨ C++), āĻ…ā§āĻ¯āĻžāĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸ "[ [nodiscard]]", āĻĒā§āĻ°āĻŋāĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ° "__has_c_attribute", macros FLT_IS_IEC_60559, DBL_IS_IEC_60559, LDBL_IS_IEC_60559, __STDC_WANT, F_60559INT_XNUMX, FLT_WANT_XNUMX, FLT_IS_IEC_XNUMX N, DBL_SNAN, LDBL_SNAN, DEC_INFINITY āĻāĻŦāĻ‚ DEC _NAN, NaN= āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹ āĻāĻ° āĻœāĻ¨ā§āĻ¯ FloatN, _FloatNx āĻāĻŦāĻ‚ _DecimalN, āĻ˜ā§‹āĻˇāĻŖāĻžāĻ° āĻ†āĻ—ā§‡ āĻāĻŦāĻ‚ āĻ¯ā§ŒāĻ—āĻŋāĻ• āĻŦāĻŋāĻŦā§ƒāĻ¤āĻŋāĻ° āĻļā§‡āĻˇā§‡ āĻœāĻžāĻŽā§āĻĒ āĻŽāĻžāĻ°ā§āĻ• āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤
  • C++ āĻāĻ° āĻœāĻ¨ā§āĻ¯, C++20 āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§‡ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŦāĻ‚ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ‚āĻļ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻĢāĻžāĻ‚āĻļāĻ¨ "āĻ•āĻ¨āĻ¸ā§āĻŸā§‡āĻ­āĻžāĻ˛ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛", āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻļā§‡āĻˇā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ›āĻĻā§āĻŽ-āĻ§ā§āĻŦāĻ‚āĻ¸āĻ•āĻžāĻ°ā§€, āĻāĻ¨āĻžāĻŽ āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻŦāĻ‚ "āĻ¨āĻ¤ā§āĻ¨" āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤
  • C++ āĻāĻ° āĻœāĻ¨ā§āĻ¯, āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡āĻ° C++23 āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ (-std=c++23, -std=gnu++23, -std=c++2b, -std=gnu) āĻœāĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ ++2b)āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸āĻžāĻ‡āĻ¨āĻĄ āĻ¸āĻžāĻ‡āĻœ_āĻŸāĻŋ āĻŽāĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ–āĻ¨ āĻ†āĻ•ā§āĻˇāĻ°āĻŋāĻ• āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ "zu" āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • libstdc++ C++17 āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻĢā§āĻ˛ā§‹āĻŸāĻŋāĻ‚ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ std::from_chars āĻāĻŦāĻ‚ std::to_chars āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĨ¤ Std::bit_cast, std::source_location, āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ• āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻāĻŦāĻ‚ āĻŦāĻŋāĻœā§āĻžāĻĒā§āĻ¤āĻŋ, , , , , āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻāĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻš C++20 āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡āĻ° C++ āĻŽāĻžāĻ¨ 23 (std::to_underlying, std::is_scoped_enum)āĨ¤ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŋāĻ‚ (SIMD, Data-Parallel Types) āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ std::uniform_int_distribution āĻāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĻ•ā§‡ āĻ¤ā§āĻŦāĻ°āĻžāĻ¨ā§āĻŦāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • libgccjit āĻĨā§‡āĻ•ā§‡ āĻ†āĻ˛āĻĢāĻž āĻŽāĻžāĻ¨ā§‡āĻ° āĻĒāĻ¤āĻžāĻ•āĻž āĻ¸āĻ°āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻ•āĻŸāĻŋ āĻ•ā§‹āĻĄ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸāĻ° āĻāĻŽā§āĻŦā§‡āĻĄ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻļā§‡āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ•ā§‹āĻĄā§‡ āĻŦāĻžāĻ‡āĻŸāĻ•ā§‹āĻĄā§‡āĻ° JIT āĻ¸āĻ‚āĻ•āĻ˛āĻ¨ āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ MinGW āĻāĻ° āĻœāĻ¨ā§āĻ¯ libgccjit āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • AArch64 Armv8-R āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (-march=armv8-r)āĨ¤ AArch64 āĻāĻŦāĻ‚ ARM āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° -mcpu āĻāĻŦāĻ‚ -mtune): Arm Cortex-A78 (cortex-a78), Arm Cortex-A78AE (cortex-a78ae), Arm Cortex-A78C (cortex-a78c) , Arm Cortex- X1 (cortex-x1), Arm Neoverse V1 (neoverse-v1) āĻāĻŦāĻ‚ Arm Neoverse N2 (neoverse-n2)āĨ¤ Fujitsu A64FX (a64fx) āĻāĻŦāĻ‚ Arm Cortex-R82 (cortex-r82) CPUs āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° AArch64 āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°āĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡āĨ¤
  • āĻ¯ā§‹āĻ—, āĻŦāĻŋāĻ¯āĻŧā§‹āĻ—, āĻ—ā§āĻŖ āĻāĻŦāĻ‚ āĻ¯ā§‹āĻ—/āĻŦāĻŋāĻ¯āĻŧā§‹āĻ—ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ Armv8.3-a (AArch64/AArch32), SVE (AArch64), SVE2 (AArch64) āĻāĻŦāĻ‚ MVE (AArch32 M-āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛) SIMD āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž. MVE āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻ¸ā§‡āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ ARM-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻāĻ†āĻ°āĻāĻŽ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°-āĻ‡āĻ¨ā§āĻŸāĻŋāĻ—ā§āĻ°ā§‡āĻŸā§‡āĻĄ āĻ¸āĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ (āĻ‡āĻ¨āĻŸā§āĻ°āĻŋāĻ¨āĻ¸āĻŋāĻ•ā§āĻ¸) āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§‡āĻŸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž ACLE Q3 2020 āĻ¸ā§āĻĒā§‡āĻ¸āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻ¨āĻĨāĻŋāĻ­ā§āĻ•ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ NEON āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ•āĻ­āĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨ā§āĻĄā§‡āĻĄ āĻ­ā§‡āĻ•ā§āĻŸāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ (SIMD) āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
  • GCN āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ AMD GPU-āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ gfx908 GPU-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ¸ā§‡āĻŸ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨:
    • āĻ‡āĻ¨ā§āĻŸā§‡āĻ˛ āĻ¸āĻžāĻĢāĻžāĻ¯āĻŧāĻžāĻ° āĻ°â€Œā§āĻ¯āĻžāĻĒāĻŋāĻĄāĻ¸ (-āĻŽāĻžāĻ°ā§āĻš = āĻ¸āĻžāĻĢāĻŋāĻ°ā§‡āĻ°āĻžāĻĒāĻŋāĻĄāĻ¸, āĻŽā§āĻ­āĻĄāĻŋāĻ°āĻŋ, āĻŽā§āĻ­āĻŋāĻĄāĻŋāĻ° 64 āĻŦāĻŋ, āĻāĻ­āĻŋāĻāĻ•ā§āĻ¸ 512 āĻ­āĻŋāĻĒāĻŋ 2 āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻŸā§‡āĻ•āĻŸ, āĻāĻ¨āĻ•āĻŋāĻ‰āĻ¸āĻŋāĻāĻŽāĻĄāĻŋ, āĻ•ā§āĻ˛āĻĄā§‡āĻŽā§‹āĻŸ, āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœ, āĻĒāĻŋāĻŸāĻŋāĻ“āĻ¯āĻŧāĻžāĻ‡āĻŸ, āĻ“āĻ¯āĻŧā§‡āĻŸāĻĒāĻŋāĻĒāĻŋāĻ•ā§‡āĻœāĻŋ, āĻŸāĻŋāĻāĻ¸āĻāĻ•ā§āĻ¸āĻāĻ˛āĻĄāĻŋāĻŸāĻŋāĻ†āĻ°āĻ•ā§‡, āĻ…ā§āĻ¯āĻžāĻŽāĻŸ-āĻŸāĻžāĻ‡āĻ˛, āĻāĻāĻŽāĻāĻ•ā§āĻ¸-āĻ‡āĻ¨āĻŸāĻŋ 8, āĻāĻāĻŽāĻāĻ•ā§āĻ¸-āĻŦāĻŋāĻāĻĢ 16 āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡āĨ¤
    • Intel Alderlake (-march=alderlake, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, KEYLOCKER, AVX-VNNI āĻāĻŦāĻ‚ HRESET āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡)āĨ¤
    • āĻ‡āĻ¨ā§āĻŸā§‡āĻ˛ āĻ°āĻ•ā§‡āĻŸāĻ˛ā§‡āĻ• (-march=rocketlake, SGX āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ›āĻžāĻĄāĻŧāĻž āĻ°āĻ•ā§‡āĻŸ āĻ˛ā§‡āĻ•ā§‡āĻ° āĻŽāĻ¤ā§‹)āĨ¤
    • AMD Zen 3 (-march=znver3)āĨ¤
  • Intel āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ IA-32/x86-64 āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ TSXLDTRK, SERIALIZE, HRESET, UINTRKEYLOCKER, AMX-TILE, AMX-INT8, AMX-BF16, AVX-VNNI āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • x86-64 āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻ¸ā§āĻ¤āĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻ¤ā§‡ "-march=x234-86-v[64]" āĻĒāĻ¤āĻžāĻ•āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (v2 - SSE4.2, SSSE3, POPCNT āĻāĻŦāĻ‚ CMPXCHG16B āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ•āĻ­āĻžāĻ° āĻ•āĻ°ā§‡; v3 - AVX2 āĻāĻŦāĻ‚ MOVBE; v4 - AVX-512 )
  • āĻŦāĻŋāĻ—-āĻāĻ¨ā§āĻĄāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŦāĻžāĻ‡āĻŸ āĻ…āĻ°ā§āĻĄāĻžāĻ° āĻ¸āĻš RISC-V āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ RISC-V āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻ¸ā§‡āĻŸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻ¸ā§āĻĒā§‡āĻ¸āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻ¤ā§‡ "-misa-spec=*" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻŸā§āĻ¯āĻžāĻ— āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĄā§āĻ°ā§‡āĻ¸ āĻ¸ā§āĻ¯āĻžāĻ¨āĻŋāĻŸāĻžāĻ‡āĻœāĻžāĻ° āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • "-āĻĢā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻžāĻ‡āĻœāĻžāĻ°" āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻžāĻ‡āĻ¸āĻŋāĻ¸ āĻŽā§‹āĻĄā§‡āĻ° āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋ, āĻ¯āĻž āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡ āĻ•ā§‹āĻĄ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻĒāĻžāĻĨ āĻāĻŦāĻ‚ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻŦāĻžāĻšā§‡āĻ° āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸-āĻ¨āĻŋāĻŦāĻŋāĻĄāĻŧ āĻ†āĻ¨ā§āĻ¤āĻƒāĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—āĻ¤ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻŽā§‹āĻĄāĻŸāĻŋ āĻ¸āĻ‚āĻ•āĻ˛āĻ¨ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻļāĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ, āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻŽā§‡āĻŽāĻ°āĻŋ āĻāĻ˛āĻžāĻ•āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĢā§āĻ°āĻŋ() āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻĄāĻžāĻŦāĻ˛ āĻ•āĻ˛, āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ•āĻžāĻ°ā§€ āĻĢāĻžāĻāĻ¸, āĻĄāĻŋāĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸āĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ¨āĻžāĻ˛ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž, āĻĢā§āĻ°āĻŋāĻĄ āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦā§āĻ˛āĻ• āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻž, āĻļā§āĻ°ā§ āĻ¨āĻž āĻ•āĻ°āĻž āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡:
    • āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻŸā§āĻ°ā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻĄ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻĒā§āĻ¨āĻ°ā§āĻ˛āĻŋāĻ–āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡. āĻ–ā§āĻŦ āĻŦāĻĄāĻŧ C āĻĢāĻžāĻ‡āĻ˛ āĻ¸ā§āĻ•ā§āĻ¯āĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
    • āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• C++ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
    • āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ˛ā§‹āĻ•ā§‡āĻļāĻ¨ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ malloc āĻāĻŦāĻ‚ āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ¨āĻ¤ā§āĻ¨/āĻŽā§āĻ›ā§āĻ¨ āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨[]/āĻŽā§āĻ›ā§āĻ¨[] āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡āĨ¤
    • āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: -āĻ“āĻ¯āĻŧāĻžāĻ¨āĻžāĻ˛āĻžāĻ‡āĻœāĻžāĻ°-āĻļāĻŋāĻĢā§āĻŸ-āĻ•āĻžāĻ‰āĻ¨ā§āĻŸ-āĻ¨ā§‡āĻ¤āĻŋāĻŦāĻžāĻšāĻ•, -āĻ“āĻ¯āĻŧāĻžāĻ¨āĻžāĻ˛āĻžāĻ‡āĻœāĻžāĻ°-āĻļāĻŋāĻĢā§āĻŸ-āĻ•āĻžāĻ‰āĻ¨ā§āĻŸ-āĻ“āĻ­āĻžāĻ°āĻĢā§āĻ˛ā§‹, -āĻ“āĻ¯āĻŧāĻžāĻ¨āĻžāĻ˛āĻžāĻ‡āĻœāĻžāĻ°-āĻ°āĻžāĻ‡āĻŸ-āĻŸā§-āĻ•āĻ¨āĻ¸ā§āĻŸ āĻāĻŦāĻ‚ -āĻ“āĻ¯āĻŧāĻžāĻ¨āĻžāĻ˛āĻžāĻ‡āĻœāĻžāĻ°-āĻ°āĻžāĻ‡āĻŸ-āĻŸā§-āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚-āĻ†āĻ•ā§āĻˇāĻ°āĻŋāĻ•āĨ¤
    • āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ -fdump-āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻ•-json āĻāĻŦāĻ‚ -fno-āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻ•-āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯āĻ¤āĻžāĨ¤
    • GCC-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻ•āĻ•ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, CPython āĻ āĻ—ā§āĻ˛ā§‹āĻŦāĻžāĻ˛ āĻ˛āĻ•āĻŋāĻ‚ (GIL) āĻāĻ° āĻ­ā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡)āĨ¤

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

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