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

เบซเบผเบฑเบ‡เบˆเบฒเบเบซเบ™เบถเปˆเบ‡เบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบเบฒเบ™เบ›เปˆเบญเบเบŠเบธเบ” compiler GCC 13.1 เบŸเบฃเบตเป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปƒเบ™เบชเบฒเบ‚เบฒเปƒเบซเบกเปˆเบ‚เบญเบ‡ GCC 13.x. เบžเบฒเบเปƒเบ•เป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบญเบญเบเป€เบฅเบเปƒเบซเบกเปˆ, เบฎเบธเปˆเบ™ 13.0 เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เปเบฅเบฐเบšเปเปˆเบ”เบปเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบญเบ GCC 13.1, เบชเบฒเบ‚เบฒ GCC 14.0 เป„เบ”เป‰เบ–เบทเบ forked เปเบฅเป‰เบง, เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบญเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ•เปเปˆเป„เบ›เบ‚เบญเบ‡ GCC 14.1 เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เป:

  • GCC เป„เบ”เป‰เบฎเบฑเบšเบฎเบญเบ‡เป€เบญเบปเบฒเบชเปˆเบงเบ™เบซเบ™เป‰เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก Modula-2. เบกเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฅเบฐเบซเบฑเบ”เบญเบฒเบ„เบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบžเบฒเบชเบฒ PIM2, PIM3, เปเบฅเบฐ PIM4, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบ™เบฑเป‰เบ™.
  • เบ”เป‰เบฒเบ™เปœเป‰เบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบฅเบงเบšเบฅเบงเบกเบžเบฒเบชเบฒ Rust เบ—เบตเปˆเบเบฐเบเบฝเบกเป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™ gccrs (GCC Rust) เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบ•เบปเป‰เบ™เป„เบกเป‰เปเบซเบผเปˆเบ‡ GCC. เปƒเบ™เบกเบธเบกเบกเบญเบ‡เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, forntend เบ–เบทเบเปเบฒเบเบงเปˆเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡ เปเบฅเบฐเบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบกเบทเปˆเบญ frontend เบเบฝเบกเบžเป‰เบญเบก (เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบกเบตเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ•เปเปˆเป„เบ›), เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท GCC เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเป‚เบ›เบผเปเบเบผเบก Rust เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡ rustc compiler เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ LLVM.
  • Link-in-Step Optimization (LTO) เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบงเบฝเบ (jobserver) เบ—เบตเปˆเบฎเบฑเบเบชเบฒเป„เบงเป‰เป‚เบ”เบ GNU เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ™เปƒเบ™เบ—เบปเปˆเบงเบซเบผเบฒเบเบซเบปเบงเบ‚เปเป‰. เปƒเบ™ GCC, jobserver เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบ™เบฒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš LTO เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ” (WPA, Whole-program Analysis). เบ—เปเปˆเบ—เบตเปˆเบกเบตเบŠเบทเปˆ (--jobserver-style=fifo) เบ–เบทเบเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบžเบทเปˆเบญเป‚เบ•เป‰เบ•เบญเบšเบเบฑเบš jobserver.
  • เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ” (-fanalyzer) เบชเบฐเป€เบซเบ™เบต 20 เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเปƒเบซเบกเปˆ, เบฅเบงเบกเบ—เบฑเบ‡ "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- infinite -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบญเบญเบเบœเบปเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเปƒเบ™เบฎเบนเบšเปเบšเบš SARIF เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ JSON เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”. เบฎเบนเบšเปเบšเบšเปƒเบซเบกเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบœเบปเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ (GCC -fanalyzer), เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเป€เบ•เบทเบญเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบ "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file", เป€เบŠเบดเปˆเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบต "json" เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบ™เบฎเบนเบšเปเบšเบš JSON เบชเบฐเป€เบžเบฒเบฐ GCC. .
  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบฒเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C23 C, เป€เบŠเบฑเปˆเบ™: nullptr เบ„เบปเบ‡เบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบŠเบตเป‰ null, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ•เบปเบงเปเบ›เบ‚เบญเบ‡ argument (variadic), เบ‚เบฐเบซเบเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ enums, เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ noreturn, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰. constexpr เปเบฅเบฐ auto เป€เบกเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเบฑเบ”เบ–เบธ, เบ›เบฐเป€เบžเบ”เปเบฅเบฐ typeof_unqual, เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™เปƒเบซเบกเปˆ alignas, alignof, bool, false, static_assert, thread_local เปเบฅเบฐ true, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบงเบปเบ‡เป€เบฅเบฑเบšเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.
  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบฒเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C++23, เป€เบŠเบฑเปˆเบ™: เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบงเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเป„เบงเป‰เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ›เบฐเบชเบปเบก, เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบ›เบฐเป€เบžเบ” char8_t, เบ„เบณเบชเบฑเปˆเบ‡ #warning preprocessor, delimited by (\u{}, \o{} , \x{}), เปเบฅเบฐเบ•เบฑเป‰เบ‡เบŠเบทเปˆ ('\N{LATIN CAPITAL LETTER A}') เบฅเปเบฒเบ”เบฑเบš escape, static operator(), static operator[], equality operator in expressions, เบเบปเบเป€เบงเบฑเป‰เบ™เบšเบฒเบ‡เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ constexpr, support เบชเปเบฒเบฅเบฑเบš UTF-8 เปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเปเบซเบผเปˆเบ‡.
  • เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C++20 เปเบฅเบฐ C++23 เปƒเบ™ libstdc++, เป€เบŠเบฑเปˆเบ™: เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเป„เบŸเบฅเปŒ header เปเบฅเบฐ std::format, เบ‚เบฐเบซเบเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เป„เบŸเบฅเปŒ header , เบ›เบฐเป€เบžเบ”เบˆเบธเบ”เบฅเบญเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเป€เบžเบตเปˆเบก, เป„เบŸเบฅเปŒเบซเบปเบงเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ” เปเบฅเบฐ .
  • เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเปเปˆเปƒเบชเปˆเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเป„เบŸเบฅเปŒเบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบ•เบปเบงเปเบ›เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก: "__attribute__((fd_arg(N)))), "__attribute__((fd_arg_read(N)))", เปเบฅเบฐ "__attribute__((fd_arg_write(N)) ))โ€. เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบด (-fanalyzerโ€‹) เป€เบžเบทเปˆเบญโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹.
  • เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆ "__attribute__(( assume(EXPR)))" เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เป€เบŠเบดเปˆเบ‡เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบญเบ compiler เบงเปˆเบฒเบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เปเบฅเบฐ compiler เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เบ™เบตเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ.
  • เป€เบžเบตเปˆเบกเบ—เบธเบ‡ "-fstrict-flex-arrays=[level]" เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเบžเบถเบ”เบ•เบดเบเบณเป€เบกเบทเปˆเบญเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš array เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ (เบชเบฐเบกเบฒเบŠเบดเบเบญเบฒเป€เบฃเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰, เป€เบ›เบฑเบ™เบญเบฒเป€เบฃเบ‚เบญเบ‡เบ‚เบฐเปœเบฒเบ”เบ—เบตเปˆเบšเปเปˆเบเบณเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เบ•เบปเบงเบขเปˆเบฒเบ‡, "int b[] ").
  • เป€เบžเบตเปˆเบกเบ—เบธเบ‡ "-Wenum-int-mismatch" เป€เบžเบทเปˆเบญเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบšเปเปˆเบเบปเบ‡เบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบ™เบฑเบšเปเบฅเบฐเบ›เบฐเป€เบžเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก.
  • Fortran front-end เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบธเบ”เบ—เป‰เบฒเบ.
  • เบฎเบญเบ‡เบฎเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ—เบปเปˆเบงเป„เบ› (generics) เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบชเปˆเบงเบ™เบซเบ™เป‰เบฒเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ Go, เปเบฅเบฐเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเปเบžเบฑเบเป€เบเบ”เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ Go 1.18 เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™.
  • AArch64 backend เบฎเบญเบ‡เบฎเบฑเบš CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3), เปเบฅเบฐ Arm Neoverse V2 (neoverse -v2) . เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ "armv9.1-a", "armv9.2-a", เปเบฅเบฐ "armv9.3-a" arguments เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ "-march=". เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš FEAT_LRCPC, FEAT_CSSC เปเบฅเบฐ FEAT_LSE2 เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป‚เบ›เป€เบŠเบ”เป€เบŠเบต.
  • เบฎเบญเบ‡เบฎเบฑเบš STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c), เปเบฅเบฐ Arm Cortex-M85 (cortex-m85) CPUs เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆ backend เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ ARM.
  • เบฎเบญเบ‡เบฎเบฑเบš Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids, เปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD Zen 86 (znver4) เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ x4 backend. เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡ AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT, เปเบฅเบฐ AMX-COMPLEX เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Intel เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”. เบชเปเบฒเบฅเบฑเบš C เปเบฅเบฐ C++ เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบต SSE2, เบ›เบฐเป€เบžเบ” __bf16 เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰.
  • backend เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš AMD Radeon GPUs (GCN) เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปƒเบŠเป‰ AMD Instinct MI200 accelerators เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš OpenMP/OpenACC. เบ›เบฑเบšเบ›เบธเบ‡ vectorization เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SIMD.
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ” backend เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบต LoongArch.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš CPU T-Head's XuanTie C906 (thead-c906) เปƒเบ™ backend RISC-V. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ vector เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ RISC-V Vector Extension Intrinsic 0.11 specification. เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš 30 RISC-V เบชเบฐเป€เบžเบฒเบฐเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ.
  • เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบ "-shared", เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฐเบšเปเปˆเบ–เบทเบเป€เบžเบตเปˆเบกเบญเบตเบเบ•เปเปˆเป„เบ›เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบžเบตเปˆเบกเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบˆเบธเบ”เบฅเบญเบ เบ–เป‰เบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš "-Ofast", "-ffast-math", เบซเบผเบท "-funsafe-math-optimizations" เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. .
  • เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เบตเบšเบฑเบ DWARF เปเบกเปˆเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบเบทเบญเบšเบ—เบธเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.
  • เป€เบžเบตเปˆเบกเบ•เบปเบงเป€เบฅเบทเบญเบ "-gz=zstd" เป€เบžเบทเปˆเบญเบšเบตเบšเบญเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบšเบปเบš Zstandard. เบ–เบญเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเปŠเบเบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบ "-gz=zlib-gnu".
  • เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš OpenMP 5.2 (Open Multi-Processing) เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ OpenMP 5.0 เปเบฅเบฐ 5.1 เป„เบ”เป‰เบชเบทเบšเบ•เปเปˆ, เบเปเบฒเบ™เบปเบ” APIs เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ™เปƒเบ™เบฅเบฐเบšเบปเบš multi-core เปเบฅเบฐ hybrid (CPU + GPU / DSP) เบเบฑเบš เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปเบฅเบฐ vectorization (SIMD).
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเปเบšเบšเป€เบเบปเปˆเบฒ "STABS" (เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ•เบปเบงเป€เบฅเบทเบญเบ -gstabs เปเบฅเบฐ -gxcoff), เบชเป‰เบฒเบ‡เปƒเบ™เบ›เบต 1980 เปเบฅเบฐเปƒเบŠเป‰เปƒเบ™ dbx debugger, เป„เบ”เป‰เบขเบธเบ”เป€เบŠเบปเบฒ.
  • เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš Solaris 11.3 (เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบงเบ—เบตเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบฅเบถเบšเบญเบญเบเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”).

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

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