ΠΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠ° ΡΠ΅ΡΡΠ²Π°Π½Π΅
ΠΠ° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ Π΅ΡΠ°ΠΏ ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄ΡΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΈΡΠ΅ RTL ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π½ΠΈΡΠΊΠΈ, ΠΊΠ°ΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π²Π½Π΅Π΄ΡΠΈΠΌ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΠ°ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ (IPA), ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΡΠΌ ΠΊΠΎΠ΄Π° Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ. ΠΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°ΡΠ°ΡΠ° Π²ΡΡΠ·ΠΊΠ° Π·Π°ΡΠ΅Π³Π° Π΅ ΡΡΠ±ΠΈΡΠ°ΡΡΡ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ, ΠΊΠΎΠΉΡΠΎ Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ (Π² Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΠ±ΠΈΡΠ°ΡΡΡ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ ΡΠ΅ Π±ΡΠ΄Π΅ Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° GCC).
ΠΠ° Π΄Π° ΡΠ΅ ΠΎΡΠ΅Π½ΡΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ ΡΠ΅ΡΡΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ±ΠΈΡΠ° ΡΠ°ΠΉΠ»Π° gimple-match.c, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 100 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅Π΄Π° ΠΊΠΎΠ΄ ΠΈ 1700 ΡΡΠ½ΠΊΡΠΈΠΈ. Π’Π΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Intel Core i5-8250U Ρ 4 ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄ΡΠ° ΠΈ 8 Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ (Hyperthreading) ΠΏΠΎΠΊΠ°Π·Π°Ρ Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Intra Procedural GIMPLE ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ ΠΎΡ 7 Π½Π° 4 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° 2 Π½ΠΈΡΠΊΠΈ ΠΈ Π½Π° 3 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° 4 Π½ΠΈΡΠΊΠΈ, Ρ.Π΅. Π£Π²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½ΠΈΡ Π΅ΡΠ°ΠΏ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π΅ ΠΏΠΎΡΡΠΈΠ³Π½Π°ΡΠΎ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ Ρ 1.72 ΠΈ 2.52 ΠΏΡΡΠΈ. Π’Π΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°Ρ Π°, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΠ΄ΡΠ° Ρ Hyperthreading Π½Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎΠ²ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
ΠΠ±ΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π±Π΅ΡΠ΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 10%, Π½ΠΎ ΡΠΏΠΎΡΠ΅Π΄ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° RTL ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎ-ΠΎΡΠ΅Π·Π°Π΅ΠΌΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ ΠΎΡΠ½Π΅ΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ. ΠΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»Π΅Π΄ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° RTL ΠΎΠ±ΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ Ρ 1.61 ΠΏΡΡΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Ρ ΠΎΡΠ΅ 5-10% ΡΡΠ΅Π· ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° IPA ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru