GCC 9 рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реВрдЯрдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рдПрдХрд╛ рд╡рд░реНрд╖рд╛рдирдВрддрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕рдЪреНрдпрд╛ рд╡рд┐рдирд╛рдореВрд▓реНрдп рд╕рдВрдЪрд╛рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рдЬреАрд╕реАрд╕реА 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 рд╕рд╛рдареА рдмреЕрдХрдПрдВрдб.

рдореБрдЦреНрдп рдмрджрд▓ рдХрд░рд╛:

  • рдбреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ. GCC рдордзреНрдпреЗ рдХрдВрдкрд╛рдЗрд▓рд░рд╕рд╣ рдлреНрд░рдВрдЯрдПрдВрдб рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ GDC (Gnu D Compiler) рдЖрдгрд┐ рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдпрдмреНрд░рд░реА (libphobos), рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ D рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдорд╛рдирдХ GCC рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. GCC рдордзреНрдпреЗ D рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реБ рдЭрд╛рд▓реЗ рдЖрд╣реЗ рдкрд░рдд 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 рдпрд╛ рдирд╡реАрди рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ. -рдердВрдХ-рдЯрд╛рдЗрдо. рдХреЛрд▓реНрдб/рд╣реЙрдЯ рдХреЛрдб рд╡реЗрдЧрд│реЗрдкрдгрд╛рдЪреА рд╕реБрдзрд╛рд░рд┐рдд рдЕрдЪреВрдХрддрд╛ рдЖрдгрд┐ рдЖрдХреНрд░рдордХрддрд╛. рдЦреВрдк рдореЛрдареНрдпрд╛ рд╕рд╛рдареА рд╕реБрдзрд╛рд░рд┐рдд рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рднрд╛рд╖рд╛рдВрддрд░ рдпреБрдирд┐рдЯ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдореЛрдареНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд▓рд╛ рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕реНрдЯреЗрдЬрд╡рд░ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рддрд╛рдирд╛);
  • рдХреЛрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧрдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдпрдВрддреНрд░рдгрд╛ (рдкреАрдЬреАрдУ - рдкреНрд░реЛрдлрд╛рдЗрд▓-рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди) рд╕реБрдзрд╛рд░рд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЬреА рдХреЛрдб рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрдзрд┐рдХ рдЗрд╖реНрдЯрддрдо рдХреЛрдб рддрдпрд╛рд░ рдХрд░рддреЗ. рд╕рд╛рд░рд╛рдВрд╢ рдкрд░реНрдпрд╛рдп "-рдкреНрд░реЛрдлрд╛рдЗрд▓-рд╡рд╛рдкрд░" рдЖрддрд╛ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдореЛрдб "-fversion-loops-for-strides", "-floop-interchange", "-floop-unroll-and-jam" рдЖрдгрд┐ "-ftree-loop-distribution" рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд. рдлрд╛рдпрд▓реАрдВрдордзреАрд▓ рдХрд╛рдЙрдВрдЯрд░рд╕рд╣ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдордЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓рд╛, рдЬреНрдпрд╛рдореБрд│реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд╕рд╣ рдлрд╛рдпрд▓реАрдВрдЪрд╛ рдЖрдХрд╛рд░ рдХрдореА рдЭрд╛рд▓рд╛ (рд▓рд┐рдВрдХ рдХрд░рддрд╛рдирд╛ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдХрд░рддрд╛рдирд╛ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдЖрддрд╛ рдлреНрд▓рд╛рдпрд╡рд░ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд);
  • рд╡рд░реНрдзрд┐рдд рд▓рд┐рдВрдХрд┐рдВрдЧ рдЯрд╛рдЗрдо рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди (LTO). рдкрд░рд┐рдгрд╛рдо рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреЗ рд╕рд░рд▓реАрдХрд░рдг рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ, рдЬреНрдпрд╛рдореБрд│реЗ LTO рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реНрд╕рдЪрд╛ рдЖрдХрд╛рд░ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдХрд░рдгреЗ, рдмрдВрдзрдирдХрд╛рд░рдХ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдореЗрдорд░реА рд╡рд╛рдкрд░ рдХрдореА рдХрд░рдгреЗ рдЖрдгрд┐ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреЗ рд╕рдорд╛рдВрддрд░реАрдХрд░рдг рд╕реБрдзрд╛рд░рдгреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ. рд╡рд┐рднрд╛рдЬрдирд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ (-param lto-partitions) 32 рд╡рд░реВрди 128 рдкрд░реНрдпрдВрдд рд╡рд╛рдврд╡рд▓реА рдЖрд╣реЗ, рдЬреЗ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ CPU рдереНрд░реЗрдбреНрд╕рд╕рд╣ рдкреНрд░рдгрд╛рд▓реАрд╡рд░реАрд▓ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рддреЗ. рдСрдкреНрдЯрд┐рдорд╛рдпрдЭрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдкреЕрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ
    "-рдкрд░рдо lto-max-рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ-рд╕рдорд╛рдВрддрд░";

    рдкрд░рд┐рдгрд╛рдореА, GCC 8.3 рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд, GCC 9 рдордзреНрдпреЗ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдкрд░рд╡рд╛рдирдЧреА Firefox 5 рдЖрдгрд┐ LibreOffice 66 рдЪрд╛ рд╕рдВрдХрд▓рди рд╡реЗрд│ рд╕реБрдорд╛рд░реЗ 6.2.3% рдХрдореА рдХрд░рд╛. рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реНрд╕рдЪрд╛ рдЖрдХрд╛рд░ 7% рдиреЗ рдХрдореА рдЭрд╛рд▓рд╛. 8-рдХреЛрд░ CPU рд╡рд░ рдмрдВрдзрдирдХрд╛рд░рдХ рд╡реЗрд│ 11% рдиреЗ рдХрдореА рдЭрд╛рд▓рд╛. рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕реНрдЯреЗрдЬрдЪрд╛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд╕реНрдЯреЗрдЬ рдЖрддрд╛ 28% рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗ рдЖрдгрд┐ 20% рдХрдореА рдореЗрдорд░реА рд╡рд╛рдкрд░рддреЛ. рдПрд▓рдЯреАрдУрдЪреНрдпрд╛ рд╕рдорд╛рдВрддрд░ рдЕрд╡рд╕реНрдереЗрдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░рдЪрд╛ рдореЗрдорд░реА рд╡рд╛рдкрд░ 30% рдХрдореА рдЭрд╛рд▓рд╛;

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

  • рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ 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 traits, std::midpoint, function рд╕рд╛рдареА рдмрд┐рдЯ рдЖрдгрд┐ рдЖрд╡реГрддреНрддреА рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд╛рдпрд▓реА рдЬреЛрдбрд▓реНрдпрд╛. , std::bind_front,
    std::visit, std::is_constant_evaluated рдЖрдгрд┐ std::assume_aligned, char8_t рдкреНрд░рдХрд╛рд░рд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ, рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреЗ рдЙрдкрд╕рд░реНрдЧ рдЖрдгрд┐ рдкреНрд░рддреНрдпрдп рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА (starts_with, ends_with);

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

  • рдпрд╛рдордзреНрдпреЗ GCN рдорд╛рдпрдХреНрд░реЛрдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╡рд░ рдЖрдзрд╛рд░рд┐рдд AMD GPU рд╕рд╛рдареА рдХреЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмреЕрдХрдПрдВрдб рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рдзреНрдпрд╛ рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╕рдВрдХрд▓рдирд╛рдкреБрд░рддреА рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ (рдУрдкрдирдПрдордкреА рдЖрдгрд┐ рдУрдкрдирдПрд╕реАрд╕реА рджреНрд╡рд╛рд░реЗ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдЧрдгрдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдирдВрддрд░ рдСрдлрд░ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓) рдЖрдгрд┐ GPU рдлрд┐рдЬреА рдЖрдгрд┐ рд╡реЗрдЧрд╛ 10 рд╕рд╛рдареА рд╕рдорд░реНрдерди;
  • рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╛рдареА рдирд╡реАрди рдмреЕрдХрдПрдВрдб рдЬреЛрдбрд▓реЗ OpenRISC;
  • рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╛рдареА рдмреЕрдХрдПрдВрдб рдЬреЛрдбрд▓реЗ C-SKY V2, рд╡рд┐рд╡рд┐рдз рдЧреНрд░рд╛рд╣рдХ рдЙрдкрдХрд░рдгрд╛рдВрд╕рд╛рдареА рд╕рдорд╛рди рдирд╛рд╡рд╛рдЪреНрдпрд╛ рдЪреАрдиреА рдХрдВрдкрдиреАрджреНрд╡рд╛рд░реЗ рдЙрддреНрдкрд╛рджрд┐рдд;
  • рдмрд╛рдЗрдЯ рдореВрд▓реНрдпреЗ рдСрдкрд░реЗрдЯ рдХрд░рдгрд╛рд░реЗ рд╕рд░реНрд╡ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░реНрдпрд╛рдп kb, KiB, MB, MiB, GB рдЖрдгрд┐ GiB рдпрд╛ рдкреНрд░рддреНрдпрдпрд╛рдВрдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддрд╛рдд;
  • рд░рд╛рдмрд╡рд┐рдгреНрдпрд╛рдд рдЖрд▓реЗ тАЬ-рдлреНрд▓рд╛рдЗрд╡реНрд╣-рдкреЕрдЪрд┐рдВрдЧ=[рдЗрдирд▓рд╛рдЗрди-рдУрдиреНрд▓реА-рд╕реНрдЯреЕрдЯрд┐рдХ|рдЗрдирд▓рд╛рдЗрди-рдХреНрд▓реЛрди]тАЭ рдкрд░реНрдпрд╛рдп рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрдВрдЯрд░рдкреНрд░реЛрд╕реЗрдЬреНрдпреБрд░рд▓рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рд╡рд░реАрд▓ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдирд┐рдпрдВрддреНрд░рдгрд╛рдореБрд│реЗ рдереЗрдЯ-рдкреЕрдЪрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдХрд▓рди рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ (IPA) рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди;
  • рдмреЕрд╢ рд╡рд╛рдкрд░рддрд╛рдирд╛ рдкрд░реНрдпрд╛рдп рдкреВрд░реНрдгрддреЗрдЪреНрдпрд╛ рд╕реВрдХреНрд╖реНрдо рдирд┐рдпрдВрддреНрд░рдгрд╛рд╕рд╛рдареА "--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" рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓реЗ рдЖрдгрд┐ рдЗрдВрдЯрд░рдкреНрд░реЛрд╕реЗрдЬреНрдпреБрд░рд▓ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рджрд░рдореНрдпрд╛рди рд╕реНрдЯреЕрдЯрд┐рдХ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд╕рд╛рдареА рдЕреЕрдбреНрд░реЗрд╕рд┐рдВрдЧ рдореЛрдбреНрд╕ (рдлрдХреНрдд рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдВрд╡рд╛ рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА рдЕрдЪреВрдХ) рд╡рд╛рдкрд░рдгреЗ;
  • рдирд╡реАрди рдмрд┐рд▓реНрдЯ-рдЗрди рдлрдВрдХреНрд╢рдиреНрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрдВрдзрдирдХрд╛рд░рдХ рддрд╕реЗрдЪ рд╢рд╛рдЦрд╛ рдЕрдВрджрд╛рдЬ рдЖрдгрд┐ рд╕рдЯреНрдЯрд╛ рд╕реВрдЪрдирд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрддрди рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд: "__рдмрд┐рд▓реНрдЯрд┐рди_рдЖрд╣реЗ_рд╡рд┐рд╢реЗрд╖рддрд╛┬л,┬л__рдЕрдВрдЧрднреВрдд_рдЕрдкреЗрдХреНрд╖рд╛_рд╡рд┐рде_рд╕рдВрднрд╛рд╡реНрдпрддрд╛"рдЖрдгрд┐"__рдмрд┐рд▓реНрдЯрд┐рди_рд╕рдЯреНрдЯрд╛_рд╕реБрд░рдХреНрд╖рд┐рдд_рдореВрд▓реНрдп" рдлрдВрдХреНрд╢рдиреНрд╕, рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЖрдгрд┐ рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╛рдареА рдПрдХ рдирд╡реАрди рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ рдХреЙрдкреА рдХрд░рд╛;
  • рдлреЛрд░рдЯреНрд░рд╛рди рднрд╛рд╖реЗрд╕рд╛рдареА рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯрд╕рд╛рдареА рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ;
  • Solaris 10 (*-*-solaris2.10) рдЖрдгрд┐ Cell/BE (рд╕реЗрд▓ рдмреНрд░реЙрдбрдмрдБрдб рдЗрдВрдЬрд┐рди SPU) рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рд╕рдорд░реНрдерди рдирд╛рдкрд╕рдВрдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдкреБрдвреАрд▓ рдкреНрд░рдореБрдЦ рдкреНрд░рдХрд╛рд╢рдирд╛рдд рдХрд╛рдврд▓реЗ рдЬрд╛рдИрд▓. Armv2, Armv3, Armv5 рдЖрдгрд┐ Armv5E рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░реНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдмрдВрдж рдХреЗрд▓реЗ рдЖрд╣реЗ. Intel MPX (рдореЗрдорд░реА рдкреНрд░реЛрдЯреЗрдХреНрд╢рди рдПрдХреНрд╕реНрдЯреЗрдВрд╢рдиреНрд╕) рд╕рд╛рдареА рд╕рдкреЛрд░реНрдЯ рдмрдВрдж рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛