ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ GCC 9 ืงืึทืžืคึผื™ื™ืœืขืจ ืกื•ื•ื™ื˜

ื ืึธืš ืึท ื™ืึธืจ ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืืจื•ื™ืก ืžืขืœื“ื•ื ื’ ืคื•ืŸ ืึท ืคืจื™ื™ ื’ืึทื ื’ ืคื•ืŸ ืงืึธืžืคึผื™ืœืขืจืก GCC 9.1, ื“ืขืจ ืขืจืฉื˜ืขืจ ื”ื•ื™ืคึผื˜ ืžืขืœื“ื•ื ื’ ืื™ืŸ ื“ื™ ื ื™ื™ึทืข GCC 9.x ืฆื•ื•ื™ื™ึทื’. ืœื•ื™ื˜ ื ื™ื™ึท ืกื›ืขืžืข ืžืขืœื“ื•ื ื’ ื ื•ืžืขืจืŸ, ื•ื•ืขืจืกื™ืข 9.0 ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึผืจืึธืฆืขืก, ืื•ืŸ ื‘ืึทืœื“ ืื™ื™ื“ืขืจ ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ GCC 9.1, ื“ื™ GCC 10.0 ืฆื•ื•ื™ื™ึทื’ ื”ืื˜ ืฉื•ื™ืŸ ื‘ืจืึทื ื˜ืฉื˜ ืึทื•ื•ืขืง, ืื•ื™ืฃ ื“ืขืจ ื‘ืื–ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื•ื•ืึธืก ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืžืขืœื“ื•ื ื’, GCC 10.1, ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื’ืขืฉืืคืŸ.

GCC 9.1 ืื™ื– ื ืึธื•ื˜ืึทื‘ืึทืœ ืคึฟืึทืจ ืกื˜ื™ื™ื‘ืึทืœื™ื™ื–ื™ื ื’ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ C ++ 17 ื ืึธืจืžืึทืœ, ืงืึทื ื˜ื™ื ื™ื•ื™ื ื’ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ื“ื™ ืฆื•ืงื•ื ืคึฟื˜ C ++ 20 ื ืึธืจืžืึทืœ (ืงืึธื“ืขื ืึทืžืขื“ C ++2a), ื™ื ืงืœื•ื–ืฉืึทืŸ ืื™ืŸ ื“ื™ ืคืจืึธื ื˜ืขื ื“ ืคึฟืึทืจ ื“ื™ ื“ื™ ืฉืคึผืจืึทืš, ืคึผืึทืจื˜ื™ื™ื™ืฉ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ OpenMP 5.0 , ื›ึผืžืขื˜ ื’ืึทื ืฅ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ OpenACC 2.5, ืคืึทืจื’ืจืขืกืขืจืŸ ืกืงืึทืœืึทื‘ื™ืœื™ื˜ื™ ืคื•ืŸ ื™ื ื˜ืขืจืคึผืจืึทืกื™ื“ื–ืฉืขืจืึทืœ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทื ื– ืื•ืŸ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทื ื– ืื™ืŸ ื“ื™ ื‘ื™ื™ื ื“ื™ื ื’ ื‘ื™ื ืข, ื™ืงืกืคึผืึทื ืฉืึทืŸ ืคื•ืŸ ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืžื›ืฉื™ืจื™ื ืื•ืŸ ืึทื“ื™ืฉืึทืŸ ืคื•ืŸ ื ื™ื™ึทืข ื•ื•ืึธืจื ื™ื ื’ื–, ื‘ืึทืงืขื ื“ื– ืคึฟืึทืจ OpenRISC, C-SKY V2 ืื•ืŸ AMD GCN GPU.

ื”ื•ื™ืคึผื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ:

  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš D. GCC ื›ื•ืœืœ ืึท ืคืจืึธื ื˜ืขื ื“ ืžื™ื˜ ืึท ืงืึทืžืคึผื™ื™ืœืขืจ ื’ื“ืง (Gnu D Compiler) ืื•ืŸ ืจื•ื ื˜ื™ืžืข ืœื™ื‘ืจืึทืจื™ืขืก (libphobos), ื•ื•ืึธืก ืœืึธื–ืŸ ืื™ืจ ืฆื• ื ื•ืฆืŸ ื ืึธืจืžืึทืœ GCC ืฆื• ื‘ื•ื™ืขืŸ ืžื’ื™ืœื” ืื™ืŸ ื“ื™ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš D. ื“ืขืจ ืคึผืจืึธืฆืขืก ืคื•ืŸ ื’ืขื‘ืŸ ื“ื™ ืฉืคึผืจืึทืš ืฉื˜ื™ืฆืŸ ืื™ืŸ GCC ื”ืื˜ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื•ืจื™ืง ืื™ืŸ 2011, ืึธื‘ืขืจ ื’ืขืฉืœืขืคื˜ ืจืขื›ื˜ ืฆื• ื“ืขืจ ื ื•ื™ื˜ ืฆื• ื‘ืจืขื ื’ืขืŸ ื“ื™ ืงืึธื“ ืื™ืŸ ื”ืขืกืงืขื ืžื™ื˜ GCC ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืื•ืŸ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ื“ื™ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืคื•ืŸ ืื™ื ื˜ืขืœืขืงื˜ื•ืึทืœ ืคืึทืจืžืึธื’ ืจืขื›ื˜ ืฆื• ื“ื™ื’ื™ื˜ืึทืœ ืžืึทืจืก, ื•ื•ืึธืก ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ื“ื™ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ื“;
  • ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ืฆื• ื“ื™ ืงืึธื“ ื’ืขื ืขืจืึทื˜ืึธืจ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืกื˜ืจืึทื˜ืขื’ื™ืขืก ืคึฟืึทืจ ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืกื•ื•ื™ื˜ืฉ ืื•ื™ืกื“ืจื•ืงืŸ (ืฉืคึผืจื™ื ื’ืขืŸ ื˜ื™ืฉ, ื‘ื™ืกืœ ืคึผืจื•ื‘ื™ืจืŸ, ื‘ืึทืฉืœื•ืก ื‘ื•ื™ื) ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“. ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื™ื‘ืขืจืžืึทื›ืŸ ืœื™ื ืขืึทืจ ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ืึธืก ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืึท ืกื•ื•ื™ื˜ืฉ ืื•ื™ืกื“ืจื•ืง ื ื™ืฆืŸ ื“ื™ "-ftree-switch-conversion" ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ (ืœืžืฉืœ, ืึท ืกื›ื•ื ืคื•ืŸ ื‘ืื“ื™ื ื’ื•ื ื’ืขืŸ ื•ื•ื™ "ืคืึทืœ 2: ื•ื•ื™ = 205; ื‘ืจืขื›ืŸ; ืคืึทืœ 3: ื•ื•ื™ = 305; ื‘ืจืขื›ืŸ ;" ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงืึธื ื•ื•ืขืจื˜ืขื“ ืฆื• "100 * ื•ื•ื™ + 5";
  • ื™ืžืคึผืจื•ื•ื•ื“ ื™ื ื˜ืขืจืคึผืจืึทืกื™ื“ื–ืฉืขืจืึทืœ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก. ื™ื ืœื™ื ืข ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืกืขื˜ื˜ื™ื ื’ืก ื–ืขื ืขืŸ ืฆื•ื’ืขืคืืกื˜ ืคึฟืึทืจ ืžืึธื“ืขืจืŸ C ++ ืงืึธื“ืขื‘ืึทืกืขืก ืื•ืŸ ื™ืงืกืคึผืึทื ื“ื™ื“ ืžื™ื˜ ื ื™ื™ึทืข ืคึผืึทืจืึทืžืขื˜ืขืจืก max-inline-insns-small, max-inline-insns-size, uninlined-function-insns, uninlined-function-time, uninlined-thunk-insns ืื•ืŸ uninlined. -ื“ืื ืง-ืฆื™ื™ื˜. ื™ืžืคึผืจื•ื•ื•ื“ ืึทืงื™ืขืจืึทืกื™ ืื•ืŸ ืึทื’ืจืขืกื™ื•ื•ื ืึทืก ืคื•ืŸ ืงืึทืœื˜ / ื”ื™ื™ืก ืงืึธื“ ืฆืขืฉื™ื™ื“ื•ื ื’. ื™ืžืคึผืจื•ื•ื•ื“ ืกืงืึทืœืึทื‘ื™ืœื™ื˜ื™ ืคึฟืึทืจ ื–ื™ื™ืขืจ ื’ืจื•ื™ืก ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ื•ื ื™ืฅ (ืœืžืฉืœ, ื•ื•ืขืŸ ืึทืคึผืœื™ื™ื™ื ื’ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืื™ืŸ ื“ื™ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ื‘ื™ื ืข ืฆื• ื’ืจื•ื™ืก ืžื’ื™ืœื”);
  • ื“ื™ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืžืขืงืึทื ื™ื–ืึทื ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ืงืึธื“ ืคึผืจืึธืคื™ืœื™ื ื’ (PGO - ืคึผืจืึธืคื™ืœ-ื’ื™ื™ื“ื™ื“ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ) ืื™ื– ื™ืžืคึผืจื•ื•ื•ื“, ื•ื•ืึธืก ื“ื–ืฉืขื ืขืจื™ื™ืฅ ืžืขืจ ืึธืคึผื˜ื™ืžืึทืœ ืงืึธื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึทืŸ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื“ื™ ืงืขืจืึทืงื˜ืขืจื™ืกื˜ื™ืงืก ืคื•ืŸ ืงืึธื“ ื“ื•ืจื›ืคื™ืจื•ื ื’. ืงื™ืฆืขืจ ืึธืคึผืฆื™ืข "-ืคืคึผืจืึธืคื™ืœ-ื ื•ืฆืŸ" ืื™ืฆื˜ ื™ื ืงืœื•ื“ื– ื“ื™ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืžืึธื“ืขืก "-ืคื•ื•ืขืจืกื™ืึธืŸ-ืœื•ื™ืคึผืก-ืคึฟืึทืจ-ืกื˜ืจื™ื™ื“ื–", "-ืคืœืึธืึธืคึผ-ื•ื™ืกื‘ื™ื™ึทื˜", "-ืคืœืึธืคึผ-ืึทื ืจืึธื•ืœ-ืื•ืŸ-ืงืœืขื" ืื•ืŸ "-ืคื˜ืจื™ืข-ืฉืœื™ื™ืฃ-ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’". ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ื“ื™ ื™ื ืงืœื•ื–ืฉืึทืŸ ืคื•ืŸ ื›ื™ืกื˜ืึทื’ืจืึทืžื– ืžื™ื˜ ืงืึธื•ื ื˜ืขืจืก ืื™ืŸ ื˜ืขืงืขืก, ื•ื•ืึธืก ืจื™ื“ื•ืกื˜ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื˜ืขืงืขืก ืžื™ื˜ ืคึผืจืึธื•ืคื™ื™ืœื– (ื›ื™ืกื˜ืึทื’ืจืึทืžื– ื–ืขื ืขืŸ ืื™ืฆื˜ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืื•ื™ืฃ ื“ื™ ืคืœื™ืขืŸ ื•ื•ืขืŸ ืคึผืขืจืคืึธืจืžื™ื ื’ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ื‘ืขืฉืึทืก ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’);
  • ืขื ื›ืึทื ืกื˜ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืฆื™ื™ื˜ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก (ืœื˜ืึธ). ืกื™ืžืคึผืœื™ืคื™ืงืึทื˜ื™ืึธืŸ ืคื•ืŸ ื˜ื™ื™ืคึผืก ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ืื™ื™ื“ืขืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜, ื•ื•ืึธืก ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื‘ืื˜ื™ื™ื˜ื™ืง ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ LTO ืึทื‘ื“ื–ืฉืขืงืฅ, ืจืขื“ื•ืฆื™ืจืŸ ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ืื™ืŸ ื“ื™ ื‘ื™ื™ื ื“ื™ื ื’ ื‘ื™ื ืข ืื•ืŸ ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ื™ ืคึผืึทืจืึทืœืขืœื™ื–ืึทื˜ื™ืึธืŸ ืคื•ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–. ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคึผืึทืจื˜ื™ืฉืึทื ื– (-param lto-partitions) ืื™ื– ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 32 ืฆื• 128, ื•ื•ืึธืก ื™ืžืคึผืจื•ื•ื•ื– ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื•ื™ืฃ ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืงืคึผื• ืคึฟืขื“ืขื. ื ืคึผืึทืจืึทืžืขื˜ืขืจ ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืึธืคึผื˜ื™ืžื™ื–ืขืจ ืคึผืจืึทืกืขืกืึทื–
    "-param lto-max-streaming-parallelism";

    ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืงืึทืžืคึผืขืจื“ ืžื™ื˜ GCC 8.3, ื“ื™ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทื ื– ื‘ืึทืงืขื ืขื  ืื™ืŸ GCC 9 ืขืจืœื•ื™ื‘ื˜ ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ื–ืึทืžืœื•ื ื’ ืฆื™ื™ื˜ ืคื•ืŸ Firefox 5 ืื•ืŸ LibreOffice 66 ืžื™ื˜ ื•ื•ืขื’ืŸ 6.2.3%. ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ื“ื™ืงืจื™ืกื˜ ื“ื•ืจืš 7%. ื‘ื™ื ื“ื™ื ื’ ืฆื™ื™ื˜ ืื•ื™ืฃ ืึท 8-ื”ืึทืจืฅ ืงืคึผื• ื“ื™ืงืจื™ืกื˜ ืžื™ื˜ 11%. ื“ื™ ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ื‘ื™ื ืข ืื™ื– ืื™ืฆื˜ 28% ืคืึทืกื˜ืขืจ ืื•ืŸ ืงืึทื ืกื•ืžื– 20% ื•ื•ื™ื™ื ื™ืงืขืจ ื–ื›ึผืจื•ืŸ. ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ืคื•ืŸ ื™ืขื“ืขืจ ืคึผืจืึทืกืขืกืขืจ ืคื•ืŸ ื“ื™ ืคึผืึทืจืึทืœืขืœื™ื–ืขื“ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ืœื˜ืึธ ื“ื™ืงืจื™ืกื˜ ื“ื•ืจืš 30%;

  • ืจื•ื‘ึฟ ืคื•ืŸ ื“ื™ ืคึผืึทืจืึทืœืขืœ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคึฟืึทืจ C, C ++ ืื•ืŸ ืคืึธืจื˜ืจืึทืŸ ืฉืคึผืจืึทื›ืŸ OpenACC 2.5, ื•ื•ืึธืก ื“ื™ืคื™ื™ื ื– ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืึธืคืœืึธื•ื“ื™ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ื™ืฃ ื’ืคึผื•ืก ืื•ืŸ ืกืคึผืขืฉืึทืœื™ื™ื–ื“ ืคึผืจืึทืกืขืกืขืจื– ืึทื–ืึท ื•ื•ื™ NVIDIA PTX;
  • ื˜ื™ื™ืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ืกื˜ืึทื ื“ืึทืจื˜ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคึฟืึทืจ C ืื•ืŸ C ++ ืขืคึฟืขื ืขืŸ MP 5.0 (Open Multi-Processing), ื•ื•ืึธืก ื“ื™ืคื™ื™ื ื– ื“ื™ ืึทืคึผื™ ืื•ืŸ ืžืขื˜ื”ืึธื“ืก ืคื•ืŸ ืึทืคึผืœื™ื™ื™ื ื’ ืคึผืึทืจืึทืœืขืœ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืžืขื˜ื”ืึธื“ืก ืคึฟืึทืจ C, C ++ ืื•ืŸ ืคืึธืจื˜ืจืึทืŸ ืฉืคึผืจืึทื›ืŸ ืื•ื™ืฃ ืžื•ืœื˜ื™-ื”ืึทืจืฅ ืื•ืŸ ื›ื™ื™ื‘ืจื™ื“ (CPU + GPU / DSP) ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ืฉืขืจื“ ื–ื›ึผืจื•ืŸ ืื•ืŸ ื•ื•ืขืงื˜ืึธืจื™ื–ืึทื˜ื™ืึธืŸ ื•ื ื™ืฅ (SIMD) ;
  • ื ื™ื™ึท ื•ื•ืึธืจื ื™ื ื’ื– ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ ื“ื™ C ืฉืคึผืจืึทืš: "-ื•ื•ืื“ืจืขืกืก-ืคื•ืŸ-ืคืืงื˜-ืžื™ื˜ื’ืœื™ื“ืขืจ"(ืึทื ืึทืœื™ื™ื ื“ ื˜ื™ื™ึทื˜ืœ ื•ื•ืขืจื˜ ืฆื• ืึท ืคึผืึทืงื˜ ืžื™ื˜ื’ืœื™ื“ ืคื•ืŸ ืึท ืกื˜ืจื•ืงื˜ื•ืจ ืึธื“ืขืจ ืคืึทืจื‘ืึทื ื“) ืื•ืŸ
    ยซ-ื•ื•ืึทื‘ืกืึธืœื•ื˜ืข-ื•ื•ืขืจื˜"(ื•ื•ืขืŸ ืึทืงืกืขืกื™ื ื’ ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ ืึทืŸ ืึทื‘ืกืึธืœื•ื˜ ื•ื•ืขืจื˜, ืื•ื™ื‘ ืขืก ืื™ื– ืึท ืžืขืจ ืคึผืึทืกื™ืง ืคื•ื ืงืฆื™ืข ืคึฟืึทืจ ื“ื™ ืกืคึผืขืกื™ืคื™ืขื“ ืึทืจื’ื•ืžืขื ื˜, ืœืžืฉืœ, ืคืึทื‘ืก (3.14) ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืึทื‘ืก (3.14). ื ื™ื™ึท ื•ื•ืึธืจื ื™ื ื’ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ C ++: "-Wdeprecated-copy",
    "-ื•ื•ื™ื ื™ื˜-ืœื™ืกื˜-ืœืขื‘ืŸ", "-Wredundant-move", "-Wpessimizing-move" ืื•ืŸ "-Wclass-Conversion". ืคื™ืœืข ืคืจื™ืขืจ ื‘ื ื™ืžืฆื ื•ื•ืึธืจื ื™ื ื’ื– ื–ืขื ืขืŸ ื™ืงืกืคึผืึทื ื“ื™ื“;

  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ C ืฉืคึผืจืึทืš ื ืึธืจืžืึทืœ, ืงืึธื“ืขื ืึทืžืขื“ C2x. ืฆื• ื’ืขื‘ืŸ C2x ืฉื˜ื™ืฆืŸ, ื ื•ืฆืŸ ื“ื™ ืึธืคึผืฆื™ืขืก "-std=c2x" ืื•ืŸ "-std=gnu2x" (ืฆื• ื’ืขื‘ืŸ GNU ื™ืงืกื˜ืขื ืฉืึทื ื–). ื“ืขืจ ืกื˜ืึทื ื“ืึทืจื˜ ืื™ื– ื ืึธืš ืื™ืŸ ืึท ืคืจื™ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ื“ืขืจื™ื‘ืขืจ, ืคื•ืŸ ื–ื™ื™ึทืŸ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–, ื‘ืœื•ื™ื– ื“ืขืจ ืื•ื™ืกื“ืจื•ืง _Static_assert ืžื™ื˜ ืื™ื™ืŸ ืึทืจื’ื•ืžืขื ื˜ ืื™ื– ื’ืขืฉื˜ื™ืฆื˜ (_Static_assert ืžื™ื˜ ืฆื•ื•ื™ื™ ืึทืจื’ื•ืžืขื ื˜ืŸ ืื™ื– ืกื˜ืึทื ื“ืขืจื“ื™ื™ื–ื“ ืื™ืŸ C11);
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ C ++17 ื ืึธืจืžืึทืœ ืื™ื– ื“ืขืจืงืœืขืจื˜ ืกื˜ืึทื‘ื™ืœ. ืื™ืŸ ื“ื™ ืคืจืึธื ื˜ืขื ื“, ื“ื™ ืฉืคึผืจืึทืš ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ C ++ 17 ื–ืขื ืขืŸ ื’ืึธืจ ื™ืžืคึผืœืึทืžืขื ืึทื“, ืื•ืŸ ืื™ืŸ libstdc ++, ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืคืึทื ื’ืงืฉืึทื ื– ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ื“ื™ ื ืึธืจืžืึทืœ ื–ืขื ืขืŸ ื ืึธืขื ื˜ ืฆื• ืคื•ืœ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ;
  • ืคืึธืจื–ืขืฆืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ื™ืกื•ื“ื•ืช ืคื•ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ C++2ืึท ื ืึธืจืžืึทืœ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืจื™ื™ื ื“ื–ืฉืึทื– ื‘ืขืฉืึทืก ื™ื ื™ื˜ื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ, ื™ืงืกื˜ืขื ืฉืึทื ื– ืคึฟืึทืจ ืœืึทืžื‘ื“ืึท ืื•ื™ืกื“ืจื•ืงืŸ ื–ืขื ืขืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืœื™ื™ื“ื™ืง ืžื™ื˜ื’ืœื™ื“ืขืจ ืคื•ืŸ ื“ืึทื˜ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื– ืื•ืŸ ืžืกืชึผืžื / ืึทื ืœื™ื™ืงืœื™ ืึทื˜ืจื™ื‘ื™ื•ืฅ ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜, ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืจื•ืคืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ืคืึทื ื’ืงืฉืึทื ื– ืื™ืŸ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ืื•ื™ืกื“ืจื•ืงืŸ ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜. ืืื–"ื• ื•
    ืฆื• ื’ืขื‘ืŸ C++2a ืฉื˜ื™ืฆืŸ, ื ื•ืฆืŸ ื“ื™ "-std=c++2a" ืื•ืŸ "-std=gnu++2a" ืึธืคึผืฆื™ืขืก. ืฆื•ื’ืขืœื™ื™ื’ื˜ ื‘ื™ืกืœ ืื•ืŸ ื•ื•ืขืจืกื™ืข ื›ืขื“ืขืจ ื˜ืขืงืขืก ืฆื• libstdc++ ืคึฟืึทืจ C++2a, std::remove_cvref, std::unwrap_reference, std::unwrap_decay_ref, std::is_nothrow_convertible ืื•ืŸ std::type_identity ื˜ืจื™ื™ืฅ, std::midpoint, std::lerp. , std::bind_front,
    std:: visit, std::is_constant_evaluated ืื•ืŸ std::assume_aligned, ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ char8_t ื˜ื™ืคึผ, ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืคึผืจืขืคื™ืงืก ืื•ืŸ ืกืึทืคื™ืงืก ืคื•ืŸ ืกื˜ืจื™ื ื’ืก (ืกื˜ืึทืจืฅ_ืžื™ื˜, ืขื ื“ืก_ืžื™ื˜);

  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื ื™ื™ึทืข ARM ืคึผืจืึทืกืขืกืขืจื–
    Cortex-A76, Cortex-A55, Cortex-A76 DynamIQ big.LITTLE ืื•ืŸ Neoverse N1. ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ื‘ืึทืงืขื ืขื  ืื™ืŸ Armv8.3-A ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืงืึธืžืคึผืœืขืงืก ื ื•ืžืขืจืŸ, ืคึผืกืขื•ื•ื“ืึธ-ืจืึทื ื“ืึธื ื ื•ืžืขืจ ื“ื•ืจ (ืจื ื’) ืื•ืŸ ื–ื›ึผืจื•ืŸ ื˜ืึทื’ื™ื ื’ (ืžืขืžื˜ืื’), ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืคึฟืึทืจ ื‘ืœืึทืงื™ื ื’ ืื ืคืืœืŸ ืฉื™ื™ึทื›ื•ืช ืฆื• ืกืคึผืขืงื•ืœืึทื˜ื™ื•ื•ืข ื“ื•ืจื›ืคื™ืจื•ื ื’ ืื•ืŸ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืฆื•ื•ื™ื™ึทื’ ืคึผืจืึธื’ื ืึธื– ืึทืคึผืึทืจืึทื˜ . ืคึฟืึทืจ ื“ื™ AArch64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ืึท ืฉื•ืฅ ืžืึธื“ืข ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ื™ื ื˜ืขืจืกืขืงืฉืึทื ื– ืคื•ืŸ ืึธื ืœื™ื™ื’ืŸ ืื•ืŸ ืงื•ืคึผืข ("-ืคืกื˜ืึทืง-ืงืœืึทืฉ-ืฉื•ืฅ"). ืฆื• ื ื•ืฆืŸ ื“ื™ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื“ื™ Armv8.5-A ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ื“ื™ ืึธืคึผืฆื™ืข "-ืžืึทืจืฉ=armv8.5-a" ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ

  • ืขืก ื›ื•ืœืœ ืึท ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืงืึธื“ ืคึฟืึทืจ ืึทืžื“ ื’ืคึผื•ืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ GCN ืžื™ืงืจืึธืึทืจื˜ืฉื™ื˜ืขืงื˜ื•ืจืข. ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ื– ื“ืขืจื•ื•ื™ื™ึทืœ ืœื™ืžื™ื˜ืขื“ ืฆื• ื“ื™ ื–ืึทืžืœื•ื ื’ ืคื•ืŸ ืื™ื™ืŸ-ื˜ืจืขื“ื™ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– (ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืžืึทืœื˜ื™-ื˜ืจืขื“ื™ื“ ื—ืฉื‘ื•ื ื•ืช ื“ื•ืจืš OpenMP ืื•ืŸ OpenACC ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืคึฟื™ื ื˜ ืฉืคึผืขื˜ืขืจ) ืื•ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื’ืคึผื• ืคื™ื“ื–ืฉื™ ืื•ืŸ ื•ื•ืขื’ืึท 10;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึท ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ืคึผืจืึทืกืขืกืขืจื– OpenRISC;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ืคึผืจืึทืกืขืกืขืจื– C-SKY V2, ื’ืขืฉืืคืŸ ื“ื•ืจืš ื“ื™ ื›ื™ื ืขื–ื™ืฉ ืคื™ืจืžืข ืžื™ื˜ ื“ื™ ื–ืขืœื‘ืข ื ืึธืžืขืŸ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืŸ ืงืึทื ืกื•ืžืขืจ ื“ืขื•ื•ื™ืกืขืก;
  • ืึทืœืข ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืึธืคึผืฆื™ืขืก ื•ื•ืึธืก ืึทืจื‘ืขื˜ืŸ ื‘ื™ื™ื˜ ื•ื•ืึทืœื•ืขืก ืฉื˜ื™ืฆืŸ ื“ื™ ืกืึทืคื™ืงืก ืงื‘, ืงื™ื‘, ืžื‘, ืžื™ื‘, ื’ื™ื’ืื‘ื™ื™ื˜ ืื•ืŸ ื’ื™ื‘;
  • ื™ืžืคึผืœืขืžืขื ื˜ืขื“ ื“ื™ "-ืคืœื™ื•ื•ืข-ืคึผืึทื˜ื˜ืฉื™ื ื’ = [ื™ื ืœื™ื ืข-ื‘ืœื•ื™ื–-ืกื˜ืึทื˜ื™ืง | ื™ื ืœื™ื ืข-ืงืœืึธื ืข]" ืึธืคึผืฆื™ืข ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื–ื™ื›ืขืจ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืœืขื‘ืŸ-ืคึผืึทื˜ืฉื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ ืจืขื›ื˜ ืฆื• ืžืึทืœื˜ื™-ืžื“ืจื’ื” ืงืึธื ื˜ืจืึธืœ ืื™ื‘ืขืจ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื™ื ื˜ืขืจืคึผืจืึทืกื™ื“ื–ืฉืขืจืึทืœ (ื™ืคึผืึท) ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก;
  • ืฆื•ื’ืขื’ืขื‘ืŸ "--ืงืึธืžืคึผืœืขืฉืึทืŸ" ืึธืคึผืฆื™ืข ืคึฟืึทืจ ืคื™ื™ึทืŸ-ื’ืจื™ื™ื ื“ ืงืึธื ื˜ืจืึธืœ ืคื•ืŸ ืึธืคึผืฆื™ืข ืงืึทืžืคึผืœื™ืฉืึทืŸ ื•ื•ืขืŸ ื ื™ืฆืŸ ื‘ืึทืฉ;
  • ื“ื™ ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืžื›ืฉื™ืจื™ื ืฆื•ืฉื˜ืขืœืŸ ื“ื™ืกืคึผืœื™ื™ื– ืคื•ืŸ ืžืงื•ืจ ื˜ืขืงืกื˜ ืขืงืกืขืจืคึผืฅ ื™ื ื“ืึทืงื™ื™ื˜ื™ื ื’ ื“ื™ ืฉื•ืจื” ื ื•ืžืขืจ ืื•ืŸ ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ ืžืึทืจืงื™ื ื’ ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ืึทื–ืึท ื•ื•ื™ ืึธืคึผืขืจืึทื ื“ ื˜ื™ื™ืคึผืก. ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ื“ื™ ืึทืจื•ื™ืกื•ื•ื™ื™ึทื–ืŸ ืคื•ืŸ ืฉื•ืจื” ื ื•ืžืขืจืŸ ืื•ืŸ ืœืึทื‘ืขืœืก, ื“ื™ ืึธืคึผืฆื™ืขืก "-fno-diagnostics-show-line-numbers" ืื•ืŸ "-fno-diagnostics-show-labels" ื–ืขื ืขืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜;

    ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ GCC 9 ืงืึทืžืคึผื™ื™ืœืขืจ ืกื•ื•ื™ื˜

  • ื™ืงืกืคึผืึทื ื“ื™ื“ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ื“ื™ืึทื’ื ืึธืกื™ื ื’ ืขืจืจืึธืจืก ืื™ืŸ C ++ ืงืึธื“, ื™ืžืคึผืจื•ื•ื•ื“ ืจื™ื“ืึทื‘ื™ืœื™ื˜ื™ ืคื•ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืกื™ื‘ื•ืช ืคื•ืŸ ืขืจืจืึธืจืก ืื•ืŸ ื›ื™ื™ืœื™ื™ื˜ื™ื ื’ ืคึผืจืึธื‘ืœืขืžืึทื˜ื™ืง ืคึผืึทืจืึทืžืขื˜ืขืจืก;

    ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ GCC 9 ืงืึทืžืคึผื™ื™ืœืขืจ ืกื•ื•ื™ื˜

  • ืฆื•ื’ืขื’ืขื‘ืŸ ืึธืคึผืฆื™ืข "-fdiagnostics-format = json", ื•ื•ืึธืก ืึทืœืึทื•ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืจืขื–ื•ืœื˜ืึทื˜ ืื™ืŸ ืžืึทืฉื™ืŸ ืœื™ื™ื ืขื•ื•ื“ื™ืง ืคึฟืึธืจืžืึทื˜ (JSON);
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึทืข ืคึผืจืึธืคื™ืœื™ื ื’ ืึธืคึผืฆื™ืขืก "-fprofile-filter-files" ืื•ืŸ "-fprofile-exclude-files" ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ืžืงื•ืจ ื˜ืขืงืขืก ืฆื• ื–ื™ื™ืŸ ืคึผืจืึทืกืขืกื˜;
  • AddressSanitizer ื’ื™ื˜ ื“ื•ืจ ืคื•ืŸ ืžืขืจ ืกืึธืœื™ื“ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืงืึธื“ ืคึฟืึทืจ ืึธื˜ืึทืžืึทื˜ื™ืง ื•ื•ืขืจื™ืึทื‘ืึทืœื–, ื•ื•ืึธืก ืจืึทื“ื•ืกืึทื– ื“ื™ ื–ื™ืงืึธืจืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ืคื•ืŸ ื“ื™ ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื˜ืขืงืข ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜;
  • ื™ืžืคึผืจื•ื•ื•ื“ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ืŸ "-ืคืึธืคื˜-ืื™ื ืคึฟืึธืจืžืึทืฆื™ืขยป (ื“ื™ื˜ื™ื™ืœื“ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก). ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึท ืคึผืจืขืคื™ืงืก "ืึธืคึผื˜ื™ืžื™ื–ืขื“" ืื•ืŸ "ืžื™ืกื˜", ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ืคืจื™ืขืจ ื‘ื ื™ืžืฆื ืคึผืจืขืคื™ืงืก "ื˜ืึธืŸ". ืฆื•ื’ืขื’ืขื‘ืŸ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื‘ืึทืฉืœื•ืก-ืžืื›ืŸ ืื•ื™ืฃ ื™ื ืœื™ื ืข-ืึทื ืคืึธืœื“ื™ื ื’ ืื•ืŸ ื•ื•ืขืงื˜ืึธืจื™ื–ืึทื˜ื™ืึธืŸ ืคื•ืŸ ืกื™ื™ืงืึทืœื–;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ "-fsave-optimization-record" ืึธืคึผืฆื™ืข, ื•ื•ืขืŸ ืกืคึผืขืกื™ืคื™ืขื“, GCC ืกืึทื•ื•ืขืก ื“ื™ SRCFILE.opt-record.json.gz ื˜ืขืงืข ืžื™ื˜ ืึท ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ืกื™ื–ืฉืึทื ื– ื•ื•ืขื’ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื–ื™ื›ืขืจ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก. ื“ื™ ื ื™ื™ึทืข ืึธืคึผืฆื™ืข ืื™ื– ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ื™ "-ืคืึธืคื˜-ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข" ืžืึธื“ืข ื“ื•ืจืš ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื ืึธืš ืžืขื˜ืึทื“ืึทื˜ืึท, ืึทื–ืึท ื•ื•ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ืขื ืคึผืจืึธืคื™ืœ ืื•ืŸ ื™ื ืœื™ื ืข ืงื™ื™ื˜ืŸ;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึธืคึผืฆื™ืขืก "-fipa-stack-alignment" ืื•ืŸ "-fipa-reference-addressable" ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืกื˜ืึทืง ืึทืœื™ื™ื ืžืึทื ื˜ ืื•ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืึทื“ืจืขืกื™ื ื’ ืžืึธื“ืขืก (ืฉืจื™ื™ึทื‘ืŸ-ื‘ืœื•ื™ื– ืึธื“ืขืจ ืœื™ื™ืขื ืขืŸ-ืคึผื™ื ื˜ืœืขืš) ืคึฟืึทืจ ืกื˜ืึทื˜ื™ืง ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื‘ืขืฉืึทืก ื™ื ื˜ืขืจืคึผืจืึทืกื™ื“ื–ืฉืขืจืึทืœ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก;
  • ื ื™ื™ึท ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืคืึทื ื’ืงืฉืึทื ื– ื–ืขื ืขืŸ ื‘ืึทืงืขื ืขื  ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทื˜ืจื™ื‘ื™ื•ื˜ ื‘ื™ื™ื ื“ื™ื ื’ ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื ืึทื˜ื•ืจ ืฉื™ื™ึทื›ื•ืช ืฆื• ืฆื•ื•ื™ื™ึทื’ ืคึผืจืึธื’ื ืึธื– ืื•ืŸ ืกืคึผืขืงื•ืœืึทื˜ื™ื•ื•ืข ืœื™ืžืขื“ ื“ื•ืจื›ืคื™ืจื•ื ื’: "__ื‘ื•ื™ืœื˜ื™ืŸ_ื”ืื˜_ืึทื˜ื˜ืจื™ื‘ื™ื•ื˜ยซ,ยซ__builtin_expect_with_probability"ืื•ืŸ"__builtin_speculation_safe_value". ื ื ื™ื™ึทืข ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ ืคืึทื ื’ืงืฉืึทื ื–, ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ืŸ ื˜ื™ื™ืคึผืก ืงืึธืคึผื™ืข;
  • ืคื•ืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ / ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคึฟืึทืจ ื“ื™ ืคืึธืจื˜ืจืึทืŸ ืฉืคึผืจืึทืš;
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Solaris 10 (*-*-solaris2.10) ืื•ืŸ Cell/BE (Cell Broadband Engine SPU) ืคึผืœืึทื˜ืคืึธืจืžืก ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ืื•ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ื”ื•ื™ืคึผื˜ ืžืขืœื“ื•ื ื’. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Armv2, Armv3, Armv5 ืื•ืŸ Armv5E ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื– ืื™ื– ื“ื™ืกืงืึทื ื˜ื™ื ื™ื•ื“. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Intel MPX (Memory Protection Extensions) ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’