V okviru raziskovalnega projekta
Za testiranje
Na naslednji stopnji je predvidena tudi selitev medproceduralnih optimizacij RTL v ločene niti, pri čemer se upoštevajo značilnosti strojne platforme. Po tem načrtujemo implementacijo paralelizacije intraproceduralnih optimizacij (IPA), ki se uporabljajo za kodo znotraj funkcije, ne glede na specifiko klica. Omejitveni člen je zaenkrat zbiralnik smeti, ki je dodal globalno ključavnico, ki onemogoča operacije zbiranja smeti, ko tečejo v večnitnem načinu (v prihodnosti bo zbiralnik smeti prilagojen za večnitno izvajanje GCC).
Za ovrednotenje sprememb v zmogljivosti je bil pripravljen testni paket, ki sestavlja datoteko gimple-match.c, ki vključuje več kot 100 tisoč vrstic kode in 1700 funkcij. Preizkusi na sistemu s procesorjem Intel Core i5–8250U s 4 fizičnimi jedri in 8 navideznimi (Hyperthreading) so pokazali zmanjšanje časa izvajanja optimizacij Intra Procedural GIMPLE s 7 na 4 sekunde pri izvajanju 2 niti in na 3 sekunde pri izvajanju 4 niti. niti, tj. Povečanje hitrosti obravnavane faze montaže je bilo doseženo za 1.72 oziroma 2.52-krat. Preizkusi so tudi pokazali, da uporaba virtualnih jeder s Hyperthreadingom ne vodi do povečane zmogljivosti.
Skupni čas gradnje se je zmanjšal za približno 10 %, vendar bo po napovedih vzporedna optimizacija RTL omogočila doseganje oprijemljivejših rezultatov, saj ta stopnja med kompilacijo vzame bistveno več časa. Približno po paralelizaciji RTL se bo skupni čas sestavljanja zmanjšal za 1.61-krat. Po tem bo možno skrajšati čas gradnje za nadaljnjih 5–10 % z vzporednim izvajanjem optimizacij IPA.
Vir: opennet.ru