www.wikidata.uk-ua.nina.az
Cya stattya mistit perelik posilan ale pohodzhennya tverdzhen u nij zalishayetsya nezrozumilim cherez praktichno povnu vidsutnist vnutrishnotekstovih dzherel vinosok Bud laska dopomozhit polipshiti cyu stattyu peretvorivshi dzherela z pereliku posilan na dzherela vinoski u samomu teksti statti Usunennya spilnih pidviraziv angl common subexpression elimination CSE ce optimizaciya kompilyatora za yakoyi shukayutsya primirniki totozhnih viraziv tobto takih sho mayut odnakove znachennya i prijmayetsya rishennya chi varto zaminiti yih odniyeyu zminnoyu sho mistit obchislene znachennya Zmist 1 Priklad 2 Osnovi 3 Vigodi 4 DzherelaPriklad red Takij kod a b c g d b c d mozhe buti docilno pererobiti tak tmp b c a tmp g d tmp d Docilno oznachaye sho otrimanij novij kod bude vikonuvatis shvidshe Osnovi red Mozhlivist USP bazuyetsya na doslidzhenni dostupnih viraziv tobto takih sho ne potrebuyut pereobchislennya analiz potoku danih Viraz b c dostupnij u tochci p v programi yaksho kozhnij shlyah z pochatkovogo vuzla do p obchislyuye b c do dosyagnennya p i nemaye prisvoyen b abo c pislya obchislennya j do p Doslidzhennya vartist vigoda vikonuvane optimizatorom obchislit chi vartist zberigannya tmp mensha za vartist mnozhennya na praktici inshi chinniki taki yak vmist registriv takozh vazhlivi Rozrobniki kompilyatoriv rozriznyayut dva vidi USP usunennya lokalnih spilnih pidviraziv obroblyaye odin bazovij blok i tomu legko realizuyetsya usunennya globalnih spilnih pidviraziv opracovuye proceduru cilkom pokladayetsya na analiz potoku danih yaki virazi dostupni v cij tochci proceduri Vigodi red Optimizaciya USP shiroko vikoristovuyetsya bo vigodi vid neyi dosit znachni V prostih virazah na zrazok prikladu vishe programist mozhe pid chas napisannya kodu vruchnu usunuti podvijni virazi Najkrashe dzherelo USP ce promizhni kodovi poslidovnosti stvoreni kompilyatorom taki yak rozrahunki indeksaciyi masiviv de rozrobnik ne mozhe vtrutitis vruchnu V deyakih vipadkah cherez osoblivosti movi mozhe utvoryuvatisya bagato povtoryuvanih viraziv Napriklad makrosi C de rozgortannya makrosiv mozhe mati naslidkom bagato spilnih pidviraziv ne vidimih v pochatkovomu kodi Kompilyatori mayut buti rozvazhlivimi shodo kilkosti timchasovih ob yektiv dlya utrimannya znachen Nadmirna kilkist timchasovih znachen sprichinyaye tisk na registri z mozhlivim nastupnim prolivannyam registriv u pam yat sho prizvede do zatrimki bilshoyi nizh potribna dlya prostogo pereobchislennya arifmetichnogo rezultatu Dzherela red Steven S Muchnick Advanced Compiler Design and Implementation Morgan Kaufmann 1997 pp 378 396 John Cocke Global Common Subexpression Elimination Proceedings of a Symposium on Compiler Construction ACM SIGPLAN Notices 5 7 July 1970 pages 850 856 Briggs Preston Cooper Keith D and Simpson L Taylor Value Numbering Software Practice and Experience 27 6 June 1997 pages 701 724 Otrimano z https uk wikipedia org w index php title Usunennya spilnih pidviraziv amp oldid 30993735