ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá
áºááŸá
áºááŒá®ážáá±á¬ááº
GCC 9.1 ááẠC++17 á á¶ááŸá¯ááºážááᯠáááºááŒáááºá¡á±á¬áẠáá¶á·ááá¯ážáá±ážáᬠá¡áá¬ááẠC++20 á á¶ááŸá¯ááºáž (codenamed C++2a) á á áœááºážáá±á¬ááºáááºáá»á¬ážááᯠáááºáááºá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá D language á¡ááœáẠááŸá±á·áááºážááœáẠáá«áááºááŒááºážá OpenMP 5.0 á¡ááœáẠáá áºá áááºáá áºááá¯ááºáž áá¶á·ááá¯ážááŸá¯ OpenACC 2.5 á¡ááœáẠá¡ááŒáá·áºá¡ááá¶á·ááá¯ážááŸá¯áá®ážáá«ážá áá»áááºáááºááŸá¯á¡ááá·áºááœáẠá¡ááŒááºá¡ááŸááºáá¯ááºáá¯á¶ážáá¯ááºáááºážááá¯ááºáᬠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááá¯ážááŒáŸáá·áºááŒááºážá áá±á¬áá«ááŸá¬ááœá±áá±ážáááááá¬áá»á¬ážáá»á²á·ááœááºááŒááºážááŸáá·áº ááááá±ážáá»ááºá¡áá áºáá»á¬ážáááºááá¯ážááŒááºážá OpenRISCá C-SKY V2 ááŸáá·áº AMD GCN GPU á¡ááœáẠáá±á¬ááºááœááºááŸá¡áá¬áá»á¬ážá
á¡ááá
- D áááá¯ááááºážáááºážáá¬áá¬á
áá¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážááá·áºáá¬ážáááºá GCC ááœáẠcompiler áá
áºáá¯ááŸáá·áº ááŸá±á·áááºážáá
áºáᯠáá«áááºáááºá
GDC (Gnu D Compiler) ááŸáá·áº runtime á á¬ááŒáá·áºááá¯ááºáá»á¬áž (libphobos) ááŸáá·áº áááá¯ááááºáá»á¬ážááᯠD áááá¯ááááºážáááºážáá¬áá¬á áá¬ážááŒáá·áº áááºáá±á¬ááºáááºá¡ááœáẠá ᶠGCC ááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºááŒá¯áááºáá áááºáá«ááŒá®á 2011 ááŸá¬ ááŒááºááœá¬ážáá±ááá·áºááœá²áá±á«áºááœá¬ážáááºá áá¯ááºááᯠGCC ááá¯á¡ááºáá»ááºáá»á¬ážááŸáá·áº ááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá á±ááẠááá¯á¡ááºááŒá®áž D programming language ááᯠáááºáá®ážáá±ááá·áº Digital Mars ááá¯á· áá¬ááá°ááá¯ááºááœáá·áºáá»á¬áž ááœáŸá²ááŒá±á¬ááºážááŒááºážááŸáá·áº ááŒá¿áá¬áá»á¬ážá - áá¯ááºáá»ááºááá±áá¬á¡ááœáẠááá¯ážáááºááŸá¯áá»á¬áž ááŒá¯áá¯ááºáá¬ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡ááŒá±á¡áá±áá»á¬ážáá±á«áº áá°áááºá Switch expressions (jump tableá bit testá decision tree) ááᯠáá»á²á·ááœááºáááºá¡ááœáẠááá°áá®áá±á¬ áááºážáá»á°áá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒá®ážáá«ááŒá®á â-ftree-switch-conversionâ ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážááᯠá¡áá¯á¶ážááŒá¯á Switch expression áá«áááºááá·áº áá»ááºážáá¬ážáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡ááœááºááŒá±á¬ááºážááá¯ááºá áœááºážááᯠáá±á«ááºážááá·áºáá²á·ááẠ(á¥ááá¬á âcase 2: how = 205; break; case 3: how = 305; break áá²á·ááá¯á·áá±á¬ á¡ááŒá±á¡áá±á¡á á¯á¶ ;â ááẠ"100 * how + 5" ááá¯á·ááŒá±á¬ááºážáá«áááºá
- áá¯ááºáá¯á¶ážáá¯ááºáááºáž á¡ááŒááºá¡ááŸáẠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠááŒáŸáá·áºáááºáá¬ážáááºá áá±ááºáá® C++ áá¯ááºáá±á·á
áºáá»á¬ážá¡ááœáẠá¡ááœááºážááá¯ááºážááŒáá·áºáá»ááºááŸá¯ áááºáááºáá»á¬ážááᯠmax-inline-insns-smallá max-inline-insns-sizeá uninlined-function-insnsá uninlined-function-timeá uninlined-thunk-insns ááŸáá·áº uninlined -thunk-á¡áá»áááºá á¡á¡á±áž/áá°áá¯áẠááœá²ááŒá¬ážááŒááºážá áááá»ááŸá¯ááŸáá·áº ááŒááºážáááºááŸá¯ááá¯á·ááᯠááá¯ááá¯áá±á¬ááºážááœááºá
á±áááºá á¡ááœááºááŒá®ážáá¬ážáá±á¬ á¡ááá¯ááºážá¡áá¬ááᯠááŒáŸáá·áºáááºáá¬ážáááºá
áá¬áá¬ááŒááºáá°áá áºáá»á¬áž (á¥ááá¬á ááŒá®ážáá¬ážáá±á¬áááá¯ááááºáá»á¬ážááá¯á· áá»áááºáááºááŒááºážá¡ááá·áºááœáẠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážááᯠá¡áá¯á¶ážáá»ááá·áºá¡áá«á - áá¯ááºáááá¯ááá¯ááºááŒá¯áá¯ááºááŒááºáž (PGO - Profile-guided optimization) ááááºáá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶á ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºáž ááá¹ááá¬ážá¡á¬áž ááŒáŸáá·áºáááºáá¬ážááŒá®ážá áá¯ááºáá¯ááºáá±á¬ááºááŸá¯á ááá¹ááá¬áá»á¬ážááᯠááœá²ááŒááºážá
áááºááŒá¬ááŸá¯á¡áá±á«áº á¡ááŒá±áá¶á ááá¯ááá¯ááá·áºáá»á±á¬áºáá±á¬áá¯ááºááᯠáá¯ááºáá±ážáá«áááºá á¡ááŸá
áºáá»á¯ááºááœá±ážáá»ááºááŸá¯ "
-fprofile-á¡áá¯á¶ážááŒá¯ááŒááºážá " ááá¯ááœáẠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážáá¯ááºáá»á¬áž "-fversion-loops-for-strides", "-floop-interchange", "-floop-unroll-and-jam" ááŸáá·áº "-ftree-loop-distribution" ááá¯á· áá«áááºáá«áááºá áááá¯ááá¯ááºáá»á¬ážáá«ááá·áº ááá¯ááºáá»á¬ážá á¡ááœááºá¡á á¬ážááᯠáá»áŸá±á¬á·áá»áá±ážáá±á¬ ááá¯ááºáá»á¬ážááœáẠáá±á¬ááºáá¬áá»á¬ážáá«ááá·áº áá áºá ááá¯ááááºáá»á¬áž áá«áááºááŸá¯ááᯠáááºááŸá¬ážáá²á·ááẠ(ááá·áºááºáá»á¬ážá¡ááœááºáž ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá¯ááºáá±á¬ááºááá·áºá¡áá« ááá¯á¡áá«ááœáẠá¡ááŒááºáá¯ááºáá±ážááá·áº áá áºá ááá¯ááááºáá»á¬áž)á - ááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ áá»áááºáááºááŒááºážá¡áá»áááºááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºáž (LTO)á LTO á¡áá¬ááá¹áá¯ááá¯ááºáá»á¬ážá á¡ááœááºá¡á
á¬ážááᯠáááá¬áááºááŸá¬ážá
áœá¬ áá»áŸá±á¬á·áá»ááá¯ááºá
á±áááºá áá»áááºáááºááŸá¯á¡ááá·áºááœáẠááŸááºáá¬ááºáá¯á¶ážá
áœá²ááŸá¯ááᯠáá»áŸá±á¬á·áá»áááºááŸáá·áº ááŒáá¯ááºáá°áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠááá¯ááá¯áá±á¬ááºážááœááºáá¬á
á±ááẠááááºááá¯ááºáá¯ááºáá® á¡áá»áá¯ážá¡á
á¬ážáá»á¬ážááᯠááá¯ážááŸááºážá¡á±á¬ááºááŒá¯áá¯ááºáá±ážáá¬ážáá«áááºá CPU thread á¡áá»á¬ážá¡ááŒá¬ážááŸááá±á¬ á
áá
áºáá»á¬ážááœáẠá
áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá±ážááá·áº partitions á¡áá±á¡ááœáẠ(-param lto-partitions) ááᯠ32 á០128 á¡áá ááá¯ážááŒáŸáá·áºáá¬ážáá«áááºá ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºáá¯ááºáá±á¬ááºááá·áº áá¯ááºáááºážá
ááºá¡áá±á¡ááœááºááᯠááááºážáá»á¯ááºáááºá¡ááœáẠááá·áºáááºáá»ááºáá
áºáá¯ááᯠááá·áºááœááºážáá¬ážáááºá
"-param lto-max-streaming-parallelism";ááááºá¡áá±ááŒáá·áº GCC 8.3 ááŸáá·áº ááŸáá¯ááºážááŸááºáá«á GCC 9 ááœáẠááááºáááºáá¬ážáá±á¬ á¡áá±á¬ááºážáá¯á¶ážááŒááºáááºááŸá¯áá»á¬áž
ááœáá·áºááŒá¯áááºá Firefox 5 ááŸáá·áº LibreOffice 66 áá á¯á ááºážáá»áááºááᯠ6.2.3% ááá·áºáá»áŸá±á¬á·áá»áá«á á¡áá¬ááá¹áá¯ááá¯ááºáá»á¬ážá á¡ááœááºá¡á á¬ážááẠ7% áá»á±á¬á·áááºážááœá¬ážáááºá 8-core CPU ááœáẠáá»áááºáááºááŸá¯á¡áá»áááºááẠ11% áá»á±á¬á·áááºážááœá¬ážáááºá áá»áááºáááºááŒááºážá¡ááá·áºá áááºááá¯áẠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážá¡ááá·áºááẠááá¯á¡áá« 28% ááá¯ááá¯ááŒááºáááºáá¬ááŒá®áž ááŸááºáá¬ááºááᯠ20% áá»á±á¬á·áááºážá á±áááºá LTO á parallelized á¡ááá·áºááŸá áááá¯áááºáá¬áá áºáá¯á á®á ááŸááºáá¬ááºáá¯á¶ážá áœá²ááŸá¯ 30% áá»á±á¬á·áá»ááœá¬ážáááºá - Parallel Programming Specification á¡áá»á¬ážá
á¯ááᯠCá C++ ááŸáá·áº Fortran áá¬áá¬á
áá¬ážáá»á¬ážá¡ááœáẠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá
OpenACC 2.5 GPU áá»á¬ážááŸáá·áº NVIDIA PTX áá²á·ááá¯á·áá±á¬ á¡áá°ážááŒá¯áááá¯áááºáá¬áá»á¬ážáá±á«áºááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááºááŸá¬ážááŒááºážá¡ááœáẠáááááá¬áá»á¬ážááᯠáááºááŸááºáá±ážáááºá - á
á¶á¡ááœáẠáá
áºá
áááºáá
áºááá¯ááºáž áá¶á·ááá¯ážááŸá¯ááᯠC ááŸáá·áº C++ á¡ááœáẠá¡áá±á¬ááºá¡ááẠáá±á¬áºáá¬ážáááºá
MP 5.0 ááá¯ááœáá·áºáá«á Multi-core ááŸáá·áº hybrid (CPU+GPU/DSP) á áá áºáá»á¬ážááœáẠáá»áŸáá±áá¬ážáá±á¬ memory ááŸáá·áº vectorization áá°áá áºáá»á¬áž (SIMD) áá«ááŸááá±á¬ C, C++ ááŸáá·áº Fortran áá¬áá¬á áá¬ážáá»á¬ážá¡ááœáẠá¡ááŒáá¯ááºáááá¯ááááºážáááºážáááºážáááºážáá»á¬ážááᯠAPI ááŸáá·áº á¡áá¯á¶ážáá»áááºážáá»á¬ážááᯠáááºááŸááºáá±ážááá·áº (Open Multi-Processing)á ; - C áá¬áá¬á
áá¬ážá¡ááœáẠááááá±ážáá»ááºá¡áá
áºáá»á¬áž ááá·áºááœááºážáá¬ážáááº- "
-Waddress-of-packed-á¡ááœá²á·ááẠ" (ááœá²á·á ááºážáá¯á¶ ááá¯á·ááá¯áẠáááá¹ááá áºáá¯á áá¯ááºááá¯ážáá¬ážáá±á¬ á¡ááœá²á·áááºáá áºáŠážááá¯á· áá»áááºááŸáááá¬ážááá·áº á¡ááŸááºá¡áá¬ážáááºááá¯áž) ááŸáá·áº
«-Wabsolute-áááºááá¯áž " (á¡ááŒáœááºážáá²á·áááºááá¯ážááᯠááœááºáá»ááºáááºá¡ááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááºáá±á¬ááºááá·áºá¡áá«á áááºááŸááºáá¬ážáá±á¬ á¡ááŒááºážá¡áá¯á¶á¡ááœáẠááá¯ááá¯ááá·áºáá»á±á¬áºáá±á¬ áá¯ááºáá±á¬ááºáá»ááºááŸááá«áá á¥ááá¬á fabs(3.14) ááᯠabs(3.14) á¡á á¬áž abs(XNUMX) ááᯠá¡áá¯á¶ážááŒá¯ááá·áºáááºá C++ á¡ááœáẠááááá±ážáá»ááºá¡áá áºáá»á¬áž ááá·áºáá¬ážáááº- "-Wdeprecated-copy",
"-Winit-list-lifetime", "-Wredundant-move", "-Wpessimizing-move" ááŸáá·áº "-Wclass-conversion"á ááááºá áááŸáááá¯ááºáá±á¬ ááááá±ážáá»ááºáá»á¬áž á¡áá»á¬ážá¡ááŒá¬ážááᯠááá¯ážáá»á²á·áá²á·áááºá - C2x áá¯á¡áááºáá±ážáá¬ážáá±á¬ á¡áá¬ááẠC áá¬áá¬á áá¬ážá á¶ááŸá¯ááºážá áá áºá áááºáá áºááá¯ááºážá¡ááœáẠá ááºážáááºááŸá¯ááá¯ááºáᬠáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážááá·áºáá¬ážáááºá C2x áá¶á·ááá¯ážááŸá¯ááá¯ááœáá·áºáááºá ááœá±ážáá»ááºá áá¬áá»á¬áž "-std=c2x" ááŸáá·áº "-std=gnu2x" (GNU ááá¯ážáá»á²á·ááŸá¯áá»á¬ážááᯠááœáá·áºáááº)á á á¶ááŸá¯ááºážááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¡á á±á¬ááá¯ááºážá¡ááá·áºááœááºááŸááá±áá²ááŒá áºáá±á¬ááŒá±á¬áá·áº áááºážáá áœááºážáá±á¬ááºááá¯ááºááŸá¯áá»á¬ážá¡áá á¡ááŒááºážá¡áá¯á¶áá áºáá¯ááŒáá·áº _Static_assert ááá¯áᬠáá¶á·ááá¯ážáá¬ážááẠ(_Static_assert á¡ááŒááºážá¡áá¯á¶ááŸá áºáá¯ááŸáá·áº C11 ááœáẠá á¶áááºááŸááºáá¬ážáááº)á
- C++17 á á¶ááŸá¯ááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºááŒáááºááŒá±á¬ááºáž ááŒá±áá¬áá¬ážáááºá ááŸá±á·áááºážááœááºá C++17 á áá¬áá¬á áá¬ážá áœááºážáááºáá»á¬ážááᯠá¡ááŒáá·áºá¡áá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážááŒá®áž libstdc++ ááœááºá á á¶áááºááŸááºáá¬ážáá±á¬ á á¬ááŒáá·áºááá¯ááºáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠá¡ááŒáá·áºá¡áá¡áá±á¬ááºá¡áááºáá±á¬áºááẠáá®ážá ááºáá«áááºá
- áááºáááºá
á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ á¡áá¬ááẠC++2a á á¶áááºááŸááºáá»ááºáá»á¬ážá á¥ááá¬á¡á¬ážááŒáá·áºá áááŠážááá·áºááœááºážá ááºá¡ááœááºáž á¡ááá¯ááºážá¡ááŒá¬ážáá»á¬ážáá«áááºááá¯ááºááŸá¯ááᯠáá±á«ááºážááá·áºáá¬ážááŒá®ážá lambda á áá¬ážá¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážá¡ááœáẠáá±á¬ááºáááºááœá²áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáá«ááŒá®á áá±áá¬ááœá²á·á ááºážáá¯á¶áá»á¬ážá á¡áá»ááºážááŸá®ážáá±á¬á¡ááœá²á·áááºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááŸáá·áº ááŒá áºááá¯ááºááŒá±/ááŒá áºááá¯ááºááŒá±ááŸááá±á¬ attribute áá»á¬ážááᯠáá±á«ááºážááá·áºáá¬ážááŒá®ážá á¡ááŒá±á¡áá±á¡á á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááœáẠvirtual function áá±á«áºááá¯ááá¯ááºááŸá¯ááᯠáá¶á·ááá¯ážáá±ážáá¬ážáá«áááºá á áááºááá¯á·
C++2a áá¶á·ááá¯ážááŸá¯ááᯠááœáá·áºááẠ"-std=c++2a" ááŸáá·áº "-std=gnu++2a" ááœá±ážáá»ááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á C++2a á¡ááœáẠlibstdc++á std::remove_cvrefá std::unwrap_referenceá std::unwrap_decay_refá std::is_nothrow_convertible ááŸáá·áº std::type_identity á ááá¯ááºáá»á¬ážá std::midpointá std::lerps , 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á ááŸá¯ááºááœá±ážáá±á¬áá¶áá«ááºáá»á¬ážá pseudo-random áá¶áá«ááºáá¯ááºáá¯ááºááŒááºáž (rng) ááŸáá·áº memory tagging (memtag) ááŸáá·áº áá¯ááºáá±á¬ááºááŒááºážá¡ááœáẠArmv8.3-A ááœáẠááááºáááºáá¬ážáá±á¬ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážáá¶á·ááá¯ážáá±ážááá·áºá¡ááŒáẠáá¬áááœá²ááá·áºááŸááºážáá»ááºáá°áá áºá ááŸááºážááá¯ááºáá±á¬ááºááŸá¯ááŸáá·áº áááºáááºáá±á¬ááºááœááºááŸá¯ááá¯ááºáᬠááá¯ááºááá¯ááºááŸá¯áá»á¬ážááᯠááááºááá¯á·áááºá¡ááœáẠááœáŸááºááŒá¬ážáá»ááºáá»á¬áž . AArch64 áááá¯áá¬á¡ááœááºá áá¬ááœááºááŸá¯áá¯ááºááᯠááá·áºááœááºážáá¬ážáááºástack ááŸáá·áº heap áááºážáá¯á¶áá»á¬áž (â-fstack-clash-protectionâ)á Armv8.5-A áááá¯áá¬áááºáá¬áá¡ááºá¹áá«áááºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áááºá ááœá±ážáá»ááºá áᬠâ-march=armv8.5-aâ ááᯠááá·áºááœááºážáá¬ážáááºá - áááºážááœáẠGCN ááá¯ááºáááá¯áááá¯áá¬ááá¯á¡ááŒá±áá¶á AMD GPU áá»á¬ážá¡ááœáẠáá¯ááºáá¯ááºáá±ážááẠáá±á¬ááºááœááºááœáẠáá«áááºáááºá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠáááºááŸáááœáẠsingle-threaded applications áá»á¬ážá á¯á ááºážááŸá¯ááœáẠááá·áºáááºáá¬ážáá«ááẠ(OpenMP ááŸáá·áº OpenACC ááŸáá áºááá·áº multi-threaded ááœááºáá»ááºááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž áá±á¬ááºááá¯ááºážááœáẠáááºážááŸááºážáááá·áºáááº) ááŸáá·áº GPU Fiji ááŸáá·áº Vega 10 á¡ááœáẠáá¶á·ááá¯ážááŸá¯á
- áááá¯áááºáá¬áá»á¬ážá¡ááœáẠáá±á¬ááºáá¶á¡áá
áºááᯠááá·áºááœááºážáá¬ážáááºá
OpenRISC ; - áááá¯áááºáá¬áá»á¬ážá¡ááœáẠáá±á¬ááºáá¶ááá¯ááºááᯠááá·áºááœááºážáá¬ážáááºá
C-SKY V2 á¡áá»áá¯ážáá»áá¯ážáá±á¬ áá°áá¯á¶ážáááááá¬áá»á¬ážá¡ááœáẠáá¬áááºáá° ááá¯ááºáá¯áá¹ááá®á០áá¯ááºáá¯ááºáááºá - byte áááºááá¯ážáá»á¬ážáááºáááºááá·áº command line ááœá±ážáá»ááºááŸá¯á¡á¬ážáá¯á¶ážááẠkbá KiBá MBá MiBá GB ááŸáá·áº GiB ááá¯á·á áá±á¬ááºáááºááœá²áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºá
-
ááá¯áᬠâ-flive-patching=[inline-only-static|inline-clone]â option ááẠááá·áºá¡á¬áž á¡ááá·áºáá»á¬ážá áœá¬áá±á¬ á¡ááá·áºááááºážáá»á¯ááºááŸá¯áá»á¬ážááŒá±á¬áá·áº ááá¯ááºááá¯ááº-áá¬áá±ážááŒááºážá áá áºáá»á¬ážá¡ááœáẠáá¯á¶ááŒá¯á¶á áœá¬á á¯á ááºážááŸá¯ááᯠáááŸáá á±ááá¯ááºááẠ(IPA: ) ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážá - bash ááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡áá« ááœá±ážáá»ááºá áá¬ááŒá®ážá á®ážááŸá¯á¡á¬áž áá±á¬ááºážá áœá¬ááááºážáá»á¯ááºáááºá¡ááœáẠ"--completion" option ááᯠáááºááá·áºáá¬ážáááºá
- áá±á¬áá«ááŸá¬ááœá±áá±áž áááááá¬áá»á¬ážááẠááá¯ááºážáá¶áá«ááºááᯠááœáŸááºááŒáá±á¬ á¡áááºážá¡ááŒá
áºá
á¬áá¬áž áá±á¬ááºááŸá¯ááºáá»ááºáá»á¬ážááŸáá·áº operand á¡áá»áá¯ážá¡á
á¬ážáá»á¬ážáá²á·ááá¯á· á¡ááŒááºá¡á¬áá¯á¶ááŒáá·áº áááºá
ááºá¡áá»ááºá¡áááºáá»á¬ážááᯠá¡ááŸááºá¡áá¬ážááŒá¯áá±ážáá«áááºá ááá¯ááºážáá¶áá«ááºáá»á¬ážááŸáá·áº á¡ááœáŸááºážáá»á¬ážááŒáááŒááºážááᯠááááºáááºá¡ááœáẠááœá±ážáá»ááºá
áá¬áá»á¬áž â-fno-diagnostics-show-line-numbersâ ááŸáá·áº â-fno-diagnostics-show-labelsâ ááá¯á·ááᯠáá±ážáá¬ážáá«áááºá
-
áá»á²á·ááœááºáá²á·áááºá C++ áá¯ááºááœáẠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠááŸá¬ááœá±áá±á¬áºáá¯ááºááẠáááááá¬áá»á¬ážá á¡ááŸá¬ážá¡ááœááºážáá»á¬ážá á¡ááŒá±á¬ááºážáááºážáá»á¬ážááŸáá·áº ááŒá¿áá¬ááŸááá±á¬ ááá·áºáááºáá±á¬ááºáá»á¬ážááᯠáá®ážáá±á¬ááºážááá¯ážááŒááŒááºážááá¯ááºáᬠá¡áá»ááºá¡áááºáá»á¬ážááᯠáááºááŸá¯ááá¯ááºááŸá¯ ááá¯ááá¯áá±á¬ááºážááœááºáá¬ááŒááºážá - á ááº-áááºááá¯ááºáá±á¬áá±á¬áºááẠ(JSON) ááœáẠáá±á¬áá«ááŸá¬ááœá±ááŸá¯á¡ááœááºááá¯áá¯ááºáá±ážááẠááœáá·áºááŒá¯ááá·áº â-fdiagnostics-format=jsonâ ááœáẠáááºáá±á¬ááºážááœá±ážáá»ááºá áá¬á
- áááá¯ááá¯ááºáá±ážááŒááºážááá¯ááºáᬠááœá±ážáá»ááºá áá¬á¡áá áºáá»á¬áž â-fprofile-filter-filesâ ááŸáá·áº â-fprofile-exclude-filesâ ááá¯á·ááᯠá á®áá¶áá±á¬ááºááœááºáááá·áº á¡áááºážá¡ááŒá áºááá¯ááºáá»á¬ážááᯠááœá±ážáá»ááºáááºá
- AddressSanitizer ááẠá á áºáá±ážáá¬ážáá±á¬ executable ááá¯ááºá ááŸááºáá¬ááºáá¯á¶ážá áœá²ááŸá¯ááᯠáá»áŸá±á¬á·áá»áá±ážááá·áº á¡ááá¯á¡áá»á±á¬ááºááŒá±á¬ááºážááœá²ááŸá¯áá»á¬ážá¡ááœáẠááá¯ááá¯áá»á áºáá áºáá±á¬ á¡áááºááŒá¯áá¯ááºááᯠáá¯ááºáá±ážáá«áááºá
- "á¡ááœááºááŸá¯ááºáž ááá¯ážáááºáá¬áááºá
-fopt-á¡áá»ááºá¡ááẠ» (áááºááá·áºáá¬ážáá±á¬ ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážááá¯ááºáᬠá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬áž)á ááááºá áááŸáááá¯ááºáá±á¬ ááŸá±á·ááẠ"ááŸááºáá»ááº" á¡ááŒáẠ"ááá¯áá±á¬ááºážá¡á±á¬ááºááŒá¯áá¯ááºáá¬ážáá±á¬" ááŸáá·áº "ááœááºááœá¬ážáááº"á ááŸá±á·áááºá¡áá áºáá»á¬ážááᯠáá±á«ááºážááá·áºáá¬ážáááºá inline-founding ááŸáá·áº vectorization ááá¯ááºáᬠáá¯á¶ážááŒááºáá»ááºáá»ááŒááºážááá¯ááºáᬠááááºážá¡áá»ááºá¡áááºáá»á¬ážá ááááºááᯠáá±á«ááºážááá·áºááŒááºážá - â-fsave-optimization-recordâ ááœá±ážáá»ááºááŸá¯ááᯠááá·áºááœááºážááŒá®áž áááºááŸááºáá±á¬á¡áá«á GCC ááẠá¡áá»áá¯á·áá±á¬ ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡áá¯á¶ážááŒá¯ááŒááºážááá¯ááºáᬠáá¯á¶ážááŒááºáá»ááºáá»á¬ážá¡ááŒá±á¬ááºáž áá±á¬áºááŒáá»ááºááŒáá·áº SRCFILE.opt-record.json.gz ááá¯ááºááᯠááááºážáááºážáá«áááºá ááœá±ážáá»ááºááŸá¯á¡áá áºááẠáááá¯ááá¯ááºááŸáá·áº inline ááœááºážáááºáá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážáá²á·ááá¯á·áá±á¬ á¡ááá¯áááºáá¬áá±áá¬áá»á¬áž á¡áá«á¡ááẠâ-fopt-infoâ áá¯ááºááŸáá·áº ááœá²ááŒá¬ážáááºá
- áááºááá·áºááœá±ážáá»ááºá áá¬áá»á¬áž â-fipa-stack-alignmentâ ááŸáá·áº â-fipa-reference-addressableâ ááẠstack alignment ááŸáá·áº ááááºá á¬áá±ážááá·áºáá¯ááºáá»á¬áž (áá±ážáá¬-áááºááẠááá¯á·ááá¯áẠread-exact) á¡ááœáẠstatic variables áá»á¬áž á¡ááŒááºá¡ááŸááºáá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºáá±á ááºá¡ááœááºážá
- attribute binding ááŸáá·áº áá¬áááœá²ááá·áºááŸááºážááŒááºážááŸáá·áº ááŸááºážááá»ááºááá¯ááºáᬠááœáŸááºááŒá¬ážáá»ááºáá¯ááºáá±á¬ááºááŒááºážááá¯ááºáᬠá¡ááŒá¯á¡áá°ááᯠááááºážáá»á¯ááºáááºá¡ááœáẠbuilt-in áá¯ááºáá±á¬ááºáá»ááºá¡áá
áºáá»á¬ážááᯠááááºáááºáá±ážáááº- "
__builtin_has_attribute «, «__builtin_expect_with_probability "ááŒá®áž"__builtin_speculation_safe_value â . áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá ááááºážááŸááºáá»á¬ážááŸáá·áº á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá¡ááœáẠáááºááœáŸááºážáá»ááºá¡áá áºááᯠááá·áºááœááºážáá¬ážáááºááááá¹áá° ; - á¡ááŒáá¯ááºá¡ááá¯ááºááá·áºááœááºážááŒááºáž/á¡ááœááºá¡ááœáẠá¡ááŒáá·áºá¡ááá¶á·ááá¯ážááŸá¯ááᯠFortran áá¬áá¬á áá¬ážá¡ááœáẠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá
- Solaris 10 (*-*-solaris2.10) ááŸáá·áº Cell/BE (Cell Broadband Engine SPU) ááááºáá±á¬ááºážáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááºááá¯ááºážáá¬ážááŒá®áž áá¬ááá·áº á¡áááááœááºááŸáááŸá¯ááœáẠáááºááŸá¬ážáá«áááºá Armv2á Armv3á Armv5 ááŸáá·áº Armv5E áááá¯áá¬áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááºááá¯ááºážááá¯ááºáá«ááŒá®á Intel MPX (Memory Protection Extensions) á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááºááá¯ááºážááá¯ááºáá«ááŒá®á
source: opennet.ru