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) рдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрджреИ, D рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдорд╛ рд╕рдорд╛рд╡реЗрд╢, OpenMP 5.0 рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдердиред , OpenACC 2.5 рдХреЛ рд▓рд╛рдЧрд┐ рд▓рдЧрднрдЧ рдкреВрд░реНрдг рд╕рдорд░реНрдерди, рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЪрд░рдгрдорд╛ рдЕрдиреНрддрд░рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЕрдиреБрдХреВрд▓рди рд░ рдЕрдиреБрдХреВрд▓рдирд╣рд░реВрдХреЛ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рд╡реГрджреНрдзрд┐, рдирд┐рджрд╛рди рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд░ рдирдпрд╛рдБ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рдердк, OpenRISC, C-SKY V2 рд░ AMD GCN GPU рдХреЛ рд▓рд╛рдЧрд┐ рдмреНрдпрд╛рдХрдПрдиреНрдбрд╣рд░реВред

рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН:

  • D рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред GCC рд▓реЗ рдХрдореНрдкрд╛рдЗрд▓рд░рдХреЛ рд╕рд╛рде рдлреНрд░рдиреНрдЯрдПрдиреНрдб рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ GDC (Gnu D рдХрдореНрдкрд╛рдЗрд▓рд░) рд░ рд░рдирдЯрд╛рдЗрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ (libphobos), рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ D рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдорд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдорд╛рдирдХ GCC рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред GCC рдорд╛ D рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рд╕реБрд░реБ рднрдПрдХреЛ рдЫ 2011 рдорд╛ рдлрд┐рд░реНрддрд╛, рддрд░ рддрд╛рдирд┐рдпреЛ рдХреЛрдбрд▓рд╛рдИ GCC рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрдХреЛ рдЕрдиреБрдкрд╛рд▓рдирдорд╛ рд▓реНрдпрд╛рдЙрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдХреЛ рдХрд╛рд░рдг рд░ рдбрд┐рдЬрд┐рдЯрд▓ рдорд╛рд░реНрд╕рдорд╛ рдмреМрджреНрдзрд┐рдХ рд╕рдореНрдкрддреНрддрд┐ рдЕрдзрд┐рдХрд╛рд░ рд╣рд╕реНрддрд╛рдиреНрддрд░рдгрдорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ, рдЬрд╕рд▓реЗ D рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ;
  • рдХреЛрдб рдЬреЗрдирд░реЗрдЯрд░рдорд╛ рд╕реБрдзрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджреИ рд╕реНрд╡рд┐рдЪ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ (рдЬрдореНрдк рдЯреЗрдмрд▓, рдмрд┐рдЯ рдкрд░реАрдХреНрд╖рдг, рдирд┐рд░реНрдгрдп рд░реВрдЦ) рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рд╡рд┐рднрд┐рдиреНрди рд░рдгрдиреАрддрд┐рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред "-ftree-switch-conversion" рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрд╡рд┐рдЪ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рд░реИрдЦрд┐рдХ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "рдХреЗрд╕ 2: рдХрд╕рд░реА = 205; рдмреНрд░реЗрдХ; рдХреЗрд╕ 3: рдХрд╕рд░реА = 305; рдмреНрд░реЗрдХ рдЬрд╕реНрддрд╛ рд╕рд░реНрддрд╣рд░реВрдХреЛ рд╕реЗрдЯред ;тАЭ рд▓рд╛рдИ "100 * how + 5" рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреЗрдЫ;
  • рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдЕрдиреНрддрд░рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЕрдиреБрдХреВрд▓рдиред рдЗрдирд▓рд╛рдЗрди рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ рд╕реЗрдЯрд┐рдЩреНрд╣рд░реВ рдЖрдзреБрдирд┐рдХ C++ рдХреЛрдбрдмреЗрд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдХреВрд▓ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдирдпрд╛рдБ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ max-inline-insns-small, max-inline-insns-size, uninlined-function-insns, uninlined-function-time, uninlined-thunk-insns рд░ uninlined рдХреЛ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред -рдердВрдХ-рдЯрд╛рдЗрдоред рдЪрд┐рд╕реЛ/рддрд╛рддреЛ рдХреЛрдб рдкреГрдердХреАрдХрд░рдгрдХреЛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рд╢реБрджреНрдзрддрд╛ рд░ рдЖрдХреНрд░рд╛рдордХрддрд╛ред рдзреЗрд░реИ рдареВрд▓реЛ рд▓рд╛рдЧрд┐ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдЕрдиреБрд╡рд╛рдж рдПрдХрд╛рдЗрд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдареВрд▓рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдорд╛ рд▓рд┐рдЩреНрдХрд┐рдЩ рдЪрд░рдгрдорд╛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рд▓рд╛рдЧреВ рдЧрд░реНрджрд╛);
  • рдХреЛрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдЩрдХреЛ рдирддрд┐рдЬрд╛рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдореЗрдХрд╛рдирд┐рдЬрдо (PGO - рдкреНрд░реЛрдлрд╛рдЗрд▓-рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди) рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдердк рдЗрд╖реНрдЯрддрдо рдХреЛрдб рдЙрддреНрдкрдиреНрди рдЧрд░реНрдЫред рд╕рд╛рд░рд╛рдВрд╢ рд╡рд┐рдХрд▓реНрдк "-рдкреНрд░реЛрдлрд╛рдЗрд▓-рдкреНрд░рдпреЛрдЧ" рдЕрдм рдЕрдиреБрдХреВрд▓рди рдореЛрдбрд╣рд░реВ "-fversion-loops-for-strides", "-floop-interchange", "-floop-unroll-and-jam" рд░ "-ftree-loop-distribution" рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдХрд╛рдЙрдиреНрдЯрд░рд╣рд░реВрд╕рдБрдЧ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдорд╣рд░реВрдХреЛ рд╕рдорд╛рд╡реЗрд╢ рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд╣рд░реВрд╕рдБрдЧ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕рд╛рдЗрдЬ рдШрдЯрд╛рдПрдХреЛ рдЫ (рд▓рд┐рдЩреНрдХрд┐рдЩ рдЧрд░реНрджрд╛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрд╛ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдорд╣рд░реВ рдЕрдм рдЙрдбрд╛рдирдорд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫрдиреН);
  • рдПрдиреНрд╣рд╛рдиреНрд╕реНрдб рд▓рд┐рдВрдХрд┐рдЩ рдЯрд╛рдЗрдо рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди (LTO)ред рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБ рдЕрдШрд┐ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рд╕рд░рд▓реАрдХрд░рдг рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ LTO рд╡рд╕реНрддреБ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдЖрдХрд╛рд░рд▓рд╛рдИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдШрдЯрд╛рдЙрди, рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЪрд░рдгрдорд╛ рдореЗрдореЛрд░реА рдЦрдкрдд рдХрдо рдЧрд░реНрди рд░ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░рддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдпреЛред рд╡рд┐рднрд╛рдЬрдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ (-param lto-partitions) рд▓рд╛рдИ 32 рдмрд╛рдЯ 128 рдорд╛ рдмрдврд╛рдЗрдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ CPU рдереНрд░реЗрдбрд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛ рднрдПрдХрд╛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░ рдЧрд░реНрджрдЫред рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдердкрд┐рдПрдХреЛ рдЫ
    "-рдкрд░рдо lto-рдЕрдзрд┐рдХрддрдо-рд╕реНрдЯреНрд░рд┐рдорд┐рдЩ-рд╕рдорд╛рдирд╛рдиреНрддрд░";

    рдкрд░рд┐рдгрд╛рдо рд╕реНрд╡рд░реВрдк, GCC 8.3 рдХреЛ рддреБрд▓рдирд╛рдорд╛, GCC 9 рдорд╛ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХрд╛ рдЕрдиреБрдХреВрд▓рдирд╣рд░реВ рдЕрдиреБрдорддрд┐ рдЫ Firefox 5 рд░ LibreOffice 66 рдХреЛ рд╕рдВрдХрд▓рди рд╕рдордп рд▓рдЧрднрдЧ 6.2.3% рд▓реЗ рдШрдЯрд╛рдЙрдиреБрд╣реЛрд╕реНред рд╡рд╕реНрддреБ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдЖрдХрд╛рд░ 7% рд▓реЗ рдШрдЯреНрдпреЛред 8-рдХреЛрд░ CPU рдорд╛ рдмрд╛рдЗрдиреНрдбрд┐рдЩ рд╕рдордп 11% рд▓реЗ рдШрдЯреНрдпреЛред рд▓рд┐рдЩреНрдХрд┐рдЩ рдЪрд░рдгрдХреЛ рдХреНрд░рдорд┐рдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдЪрд░рдг рдЕрдм 28% рдЫрд┐рдЯреЛ рдЫ рд░ 20% рдХрдо рдореЗрдореЛрд░реА рдЦрдкрдд рдЧрд░реНрджрдЫред LTO рдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдЪрд░рдгрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░рдХреЛ рдореЗрдореЛрд░реА рдЦрдкрдд 30% рд▓реЗ рдШрдЯреНрдпреЛ;

  • рдзреЗрд░реИ рдЬрд╕реЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ C, C++ рд░ Fortran рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ OpenACC 2.5, рдЬрд╕рд▓реЗ GPU рд░ NVIDIA PTX рдЬрд╕реНрддрд╛ рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдорд╛ рдЕрдлрд▓реЛрдбрд┐рдЩ рд╕рдЮреНрдЪрд╛рд▓рдирдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫ;
  • C рд░ C++ рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирдХрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ рдУрдкрди рдПрдордкреА 5.0.реж (рдУрдкрди рдорд▓реНрдЯрд┐-рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ), рдЬрд╕рд▓реЗ рдмрд╣реБ-рдХреЛрд░ рд░ рд╣рд╛рдЗрдмреНрд░рд┐рдб (CPU+GPU/DSP) рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ C, C++ рд░ Fortran рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рд░ рднреЗрдХреНрдЯреЛрд░рд╛рдЗрдЬреЗрд╕рди рдПрдХрд╛рдЗрд╣рд░реВ (SIMD) рд╕рдБрдЧ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╡рд┐рдзрд┐рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ API рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред ;
  • C рднрд╛рд╖рд╛рдХрд╛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рдердкрд┐рдПрдХрд╛ рдЫрдиреН: "-рдкреНрдпрд╛рдХреНрдб-рд╕рджрд╕реНрдпрдХреЛ рдареЗрдЧрд╛рдирд╛" (рд╕рдВрд░рдЪрдирд╛ рд╡рд╛ рд╕рдВрдШрдХреЛ рдкреНрдпрд╛рдХ рд╕рджрд╕реНрдпрд▓рд╛рдИ рдЕрд╕рдВрдмрджреНрдз рд╕реВрдЪрдХ рдорд╛рди) рд░
    ┬л-рд╡рд╛рдмрд╕реЛрд▓реНрдпреБрдЯ-рдорд╛рди" (рдирд┐рд░рдкреЗрдХреНрд╖ рдорд╛рди рдЧрдгрдирд╛ рдЧрд░реНрди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрджрд╛, рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рдердк рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдХрд╛рд░реНрдп рдЫ рднрдиреЗ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, abs(3.14) рдХреЛ рд╕рдЯреНрдЯрд╛ fabs(3.14) рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреБрдкрд░реНрдЫред C++ рдХрд╛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдЪреЗрддрд╛рд╡рдиреА рдердкрд┐рдпреЛ: "-Wdeprecated-copy",
    "-Winit-list-lifetime", "-Wredundant-move", "-Wpessimizing-move" рд░ "-Wclass-рд░реВрдкрд╛рдиреНрддрд░рдг"ред рдзреЗрд░реИ рдкрд╣рд┐рд▓реЗ рдЙрдкрд▓рдмреНрдз рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ;

  • рднрд╡рд┐рд╖реНрдпрдХреЛ C рднрд╛рд╖рд╛ рдорд╛рдирдХрдХреЛ рдЕрдВрд╢рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ, рдХреЛрдбрдиреЗрдо C2xред C2x рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдЧрд░реНрди, рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН "-std=c2x" рд░ "-std=gnu2x" (GNU рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реНрди)ред рдорд╛рдирдХ рдЕрдЭреИ рд╡рд┐рдХрд╛рд╕рдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЪрд░рдгрдорд╛ рдЫ, рддреНрдпрд╕реИрд▓реЗ, рдпрд╕рдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВрдХреЛ, рдПрдЙрдЯрд╛ рддрд░реНрдХрдХреЛ рд╕рд╛рде _Static_assert рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд▓рд╛рдИ рдорд╛рддреНрд░ рд╕рдорд░реНрдерди рдЧрд░рд┐рдПрдХреЛ рдЫ (C11 рдорд╛ рджреБрдИ рддрд░реНрдХрд╣рд░реВрдХреЛ рд╕рд╛рде _Static_assert рдорд╛рдирдХреАрдХреГрдд рдЧрд░рд┐рдПрдХреЛ рдЫ);
  • C++17 рдорд╛рдирдХрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдорд╛, C++17 рдХреЛ рднрд╛рд╖рд╛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд░ libstdc++ рдорд╛, рдорд╛рдирдХрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдирдЬрд┐рдХ рдЫрдиреН;
  • рдЬрд╛рд░реА рд░рд╛рдЦреНрдпреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднрд╡рд┐рд╖реНрдпрдХреЛ C++2a рдорд╛рдирдХрдХрд╛ рддрддреНрд╡рд╣рд░реВред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдордпрдорд╛ рджрд╛рдпрд░рд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдПрдХреЛ рдЫ, рд▓рд╛рдореНрдмреНрдбрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдбрд╛рдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрдХреЛ рдЦрд╛рд▓реА рд╕рджрд╕реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд░ рд╕рдореНрднрд╛рд╡рд┐рдд/рдЕрд╕рдореНрднрд╡ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдердкрд┐рдПрдХреЛ рдЫ, рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдорд╛ рднрд░реНрдЪреБрдЕрд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдХрд▓ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред , рдЖрджрд┐
    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:: рдордзреНрдп рдмрд┐рдиреНрджреБ, std::ppoint рдорд╛ рдердкрд┐рдпреЛред , std::bind_front,
    std::visit, std::is_constant_evaluated рд░ std::assume_aligned, char8_t рдкреНрд░рдХрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ, рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рдЙрдкрд╕рд░реНрдЧ рд░ рдкреНрд░рддреНрдпрдп рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛ (start_with, ends_with);

  • рдирдпрд╛рдБ ARM рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ
    Cortex-A76, Cortex-A55, Cortex-A76 DynamIQ big.LITTLE рд░ Neoverse N1ред Armv8.3-A рдорд╛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ, рд╕реНрдпреВрдбреЛ-рд░реЗрдиреНрдбрдо рдирдореНрдмрд░ рдЬреЗрдирд░реЗрд╢рди (rng) рд░ рдореЗрдореЛрд░реА рдЯреНрдпрд╛рдЧрд┐рдЩ (memtag) рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХрд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ, рд╕рд╛рдереИ рд╢рд╛рдЦрд╛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдЗрдХрд╛рдИрдХреЛ рд╕рдЯреНрдЯрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░ рд╕рдЮреНрдЪрд╛рд▓рдирд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЖрдХреНрд░рдордгрд╣рд░реВ рд░реЛрдХреНрди рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВред ред AArch64 рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдХреЛ рд▓рд╛рдЧрд┐, рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдореЛрдб рдердкрд┐рдПрдХреЛ рдЫ рд╕реНрдЯреНрдпрд╛рдХ рд░ рд╣рд┐рдк рдХреЛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди ("-fstack-clash-protection")ред Armv8.5-A рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рд╡рд┐рдХрд▓реНрдк "-march=armv8.5-a" рдердкрд┐рдПрдХреЛ рдЫред

  • рдпрд╕рдорд╛ GCN рдорд╛рдЗрдХреНрд░реЛрдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдорд╛ рдЖрдзрд╛рд░рд┐рдд AMD GPU рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗ рдмреНрдпрд╛рдХрдЗрдиреНрдб рд╕рдорд╛рд╡реЗрд╢ рдЫред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рд╛рд▓ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╕рдВрдХрд▓рдирдорд╛ рд╕реАрдорд┐рдд рдЫ (OpenMP рд░ OpenACC рдорд╛рд░реНрдлрдд рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЧрдгрдирд╛рд╣рд░реВ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкрдЫрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдиреЗрдЫ) рд░ GPU Fiji рд░ Vega 10 рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди;
  • рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдмреНрдпрд╛рдХрдЗрдиреНрдб рдердкрд┐рдпреЛ RISC рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН;
  • рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмреНрдпрд╛рдХрдЗрдиреНрдб рдердкрд┐рдпреЛ C-SKY V2, рд╡рд┐рднрд┐рдиреНрди рдЙрдкрднреЛрдХреНрддрд╛ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрд╣реА рдирд╛рдордХреЛ рдЪрд┐рдирд┐рдпрд╛рдБ рдХрдореНрдкрдиреА рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрд╛рджрд┐рдд;
  • рдмрд╛рдЗрдЯ рдорд╛рдирд╣рд░реВ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдиреЗ рд╕рдмреИ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрд▓реЗ kb, KiB, MB, MiB, GB рд░ GiB рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ;
  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднрдПрдХреЛ рдЫ "-рдлреНрд▓рд╛рдЗрдн-рдкреНрдпрд╛рдЪрд┐рдЩ=[рдЗрдирд▓рд╛рдЗрди-рдорд╛рддреНрд░-рд╕реНрдерд┐рд░рдЖрдЗрдкрд┐рдП) рдЕрдиреБрдХреВрд▓рди;
  • рдмреНрдпрд╛рд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рд╡рд┐рдХрд▓реНрдк рдкреВрд░реНрдгрддрд╛рдХреЛ рдлрд╛рдЗрди-рдЧреНрд░реЗрдиреНрдб рдирд┐рдпрдиреНрддреНрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ "--completion" рд╡рд┐рдХрд▓реНрдк рдердкрд┐рдпреЛ;
  • рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдЙрдкрдХрд░рдгрд╣рд░реВрд▓реЗ рд▓рд╛рдЗрди рдирдореНрдмрд░ рд░ рджреГрд╢реНрдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдЪрд┐рдиреНрд╣рд┐рдд рд╕рдореНрдмрдиреНрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА, рдЬрд╕реНрддреИ рдЕрдкрд░реЗрдиреНрдб рдкреНрд░рдХрд╛рд░рд╣рд░реВ рд╕рдВрдХреЗрдд рдЧрд░реНрдиреЗ рд╕реНрд░реЛрдд рдкрд╛рда рдЕрдВрд╢рд╣рд░реВрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рд▓рд╛рдЗрди рдирдореНрдмрд░рд╣рд░реВ рд░ рд▓реЗрдмрд▓рд╣рд░реВрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди, рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ "-fno-diagnostics-show-line-numbers" рд░ "-fno-diagnostics-show-labels" рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН;

    GCC 9 рдХрдореНрдкрд╛рдЗрд▓рд░ рд╕реБрдЗрдЯ рдХреЛ рд░рд┐рд▓реАрдЬ

  • рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдпреЛ C++ рдХреЛрдбрдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдирд┐рджрд╛рди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдгрд╣рд░реВ, рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдкрдардиреАрдпрддрд╛ рд░ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░реНрдиреЗ;

    GCC 9 рдХрдореНрдкрд╛рдЗрд▓рд░ рд╕реБрдЗрдЯ рдХреЛ рд░рд┐рд▓реАрдЬ

  • "-fdiagnostics-format=json" рд╡рд┐рдХрд▓реНрдк рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рдореЗрд╕рд┐рди-рдкрдвреНрдиреЗ рдврд╛рдБрдЪрд╛ (JSON) рдорд╛ рдирд┐рджрд╛рди рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ;
  • рдирдпрд╛рдБ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдЩ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдердкрд┐рдпреЛ "-fprofile-filter-files" рд░ "-fprofile-exclude-files" рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓рд╣рд░реВ рдЪрдпрди рдЧрд░реНрди;
  • рдареЗрдЧрд╛рдирд╛ рд╕реЗрдирд┐рдЯрд╛рдЗрдЬрд░рд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЪрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдердк рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рдкреНрд░рдорд╛рдгрд┐рдХрд░рдг рдХреЛрдбрдХреЛ рдЙрддреНрдкрд╛рджрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рдЬрд╛рдБрдЪ рднрдЗрд░рд╣реЗрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рдХреЛ рдореЗрдореЛрд░реА рдЦрдкрдд рдХрдо рдЧрд░реНрджрдЫ;
  • рдорд╛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдЖрдЙрдЯрдкреБрдЯ "-fopt-рдЬрд╛рдирдХрд╛рд░реА┬╗ (рдердкрд┐рдПрдХреЛ рдЕрдиреБрдХреВрд▓рди рдмрд╛рд░реЗ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА)ред рдкрд╣рд┐рд▓реЗ рдЙрдкрд▓рдмреНрдз рдЙрдкрд╕рд░реНрдЧ "рдиреЛрдЯ" рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдирдпрд╛рдБ рдЙрдкрд╕рд░реНрдЧрд╣рд░реВ "рдЕрдиреБрдХреВрд▓рд┐рдд" рд░ "рдЫреБрдЯреЗрдХреЛ" рдердкрд┐рдпреЛред рдЗрдирд▓рд╛рдЗрди рдЕрдирдлреЛрд▓реНрдбрд┐рдЩ рд░ рдЪрдХреНрд░рдХреЛ рднреЗрдХреНрдЯрд░рд╛рдЗрдЬреЗрд╢рдирдорд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдиреЗ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдердкрд┐рдпреЛ;
  • "-fsave-optimization-record" рд╡рд┐рдХрд▓реНрдк рдердкрд┐рдпреЛ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрд╛, GCC рд▓реЗ SRCFILE.opt-record.json.gz рдлрд╛рдЗрд▓рд▓рд╛рдИ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрдорд╛ рднрдПрдХрд╛ рдирд┐рд░реНрдгрдпрд╣рд░реВрдХреЛ рд╡рд┐рд╡рд░рдгрд╕рд╣рд┐рдд рдмрдЪрдд рдЧрд░реНрдЫред рдкреНрд░реЛрдлрд╛рдЗрд▓ рд░ рдЗрдирд▓рд╛рдЗрди рдЪреЗрдирд╣рд░реВ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рдЬрд╕реНрддрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реЗрд░ рдирдпрд╛рдБ рд╡рд┐рдХрд▓реНрдк "-fopt-info" рдореЛрдбрдмрд╛рдЯ рднрд┐рдиреНрди рд╣реБрдиреНрдЫ;
  • рдердкрд┐рдПрдХреЛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ "-fipa-stack-alignment" рд░ "-fipa-reference-addressable" рд╕реНрдЯреНрдпрд╛рдХ рдкрдЩреНрдХреНрддрд┐рдмрджреНрдзрддрд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рд░ рдЕрдиреНрддрд░рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВрдорд╛ рд╕реНрдерд┐рд░ рдЪрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдареЗрдЧрд╛рдирд╛ рдореЛрдбрд╣рд░реВ (рд▓реЗрдЦреНрди-рдорд╛рддреНрд░ рд╡рд╛ рдкрдвреНрдиреЗ-рд╕рд╣реА) рдХреЛ рдкреНрд░рдпреЛрдЧ;
  • рдирдпрд╛рдБ рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрд╛рдЗрдиреНрдбрд┐рдЩ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рд╕рд╛рдереИ рд╢рд╛рдЦрд╛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд░ рд╕рдЯреНрдЯрд╛ рдирд┐рд░реНрджреЗрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрди рдкреЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдЫ: "__builtin_has_attribute┬л,┬л__builtin_expect_with_probability"рд░"__builtin_speculation_safe_value"ред рдкреНрд░рдХрд╛рд░реНрдп, рдЪрд░ рд░ рдкреНрд░рдХрд╛рд░рдХрд╛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рд╡рд┐рд╢реЗрд╖рддрд╛ рдердкрд┐рдПрдХреЛ рдЫ рдХрд╛рдкреА;
  • рдлреЛрд░рдЯреНрд░рд╛рди рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ;
  • Solaris 10 (*-*-solaris2.10) рд░ Cell/BE (рд╕реЗрд▓ рдмреНрд░реЛрдбрдмреНрдпрд╛рдиреНрдб рдЗрдиреНрдЬрд┐рди SPU) рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫ рд░ рдЕрд░реНрдХреЛ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрдорд╛ рд╣рдЯрд╛рдЗрдиреЗрдЫред Armv2, Armv3, Armv5 рд░ Armv5E рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдмрдиреНрдж рдЧрд░рд┐рдПрдХреЛ рдЫред Intel MPX (рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╕реНрддрд╛рд░) рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдмрдиреНрдж рдЧрд░рд┐рдПрдХреЛ рдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди