Vakioiden konvoluutio

Jatkuva taitto ja  jatkuva eteneminen ( myös jatkuva promootio, jatkuva päällekkäisyys , jatkuva eteneminen ) ovat nykyaikaisissa kääntäjissä usein käytettyjä optimointeja , jotka vähentävät redundantteja laskelmia korvaamalla vakiolausekkeet ja muuttujat niiden arvoilla [1] . Usein käytetään myös laajennettua algoritmia sparse conditional constant propagation , joka suorittaa samanaikaisesti jatkuvan etenemisen ja jonkin kuolleen koodin poistamisen [2] .  

Jatkuva taitto

Jatkuva taitto  on optimointi, joka arvioi vakiolausekkeet käännöshetkellä. Ensinnäkin numeerisia literaaleja sisältävät vakiolausekkeet yksinkertaistetaan . Myös lausekkeita, jotka sisältävät muuttumattomia muuttujia tai vakioiksi ilmoitettuja muuttujia, voidaan yksinkertaistaa . Harkitse esimerkkiä:

i = 320 * 200 * 32 ;

Jatkuvaa taittoa tukeva kääntäjä ei luo kahta kertolaskukäskyä ja tallenna tulosta. Sen sijaan se tunnistaa tämän rakenteen vakiolausekkeeksi ja korvaa sen lasketulla arvolla (tässä tapauksessa 2 048 000).

Jatkuva leviäminen

Vakion eteneminen  on optimointi , joka korvaa lausekkeen, joka palauttaa aina saman vakion, kun se suoritetaan kyseisen vakion kanssa [3] . Se voi olla aiemmin määritetty vakio tai vakioihin funktio Harkitse seuraavaa esimerkkiä:

int x = 14 ; int y = 7 - x / 2 ; paluu y * ( 28 / x + 2 );

Jakelun xpalautukset:

int x = 14 ; int y = 7 - 14/2 ; _ _ paluu y * ( 28 / 14 + 2 );

Lisäksi jatkuva taitto ja levittäminen ypalauttaa seuraavan (määritykset xja yne poistetaan todennäköisesti kuolleen koodin poiston optimoinnilla myöhemmin ):

int x = 14 ; int y = 0 ; paluu 0 ;

Katso myös

Muistiinpanot

  1. Työpaja "Optimizing Compilers" (esimerkiksi GCC). - NGU niitä. Lobatševski. - S. 100.
  2. Muchnick, 1997 , s. 362-370.
  3. Dragon Book, 2008 , s. 760.

Kirjallisuus

  • Steven S. Muchnick. Kehittynyt kääntäjän suunnittelu ja toteutus. – 5. painos. - San Francisco: Morgan Kaufmann Publishers , 1997. - 856 s. - ISBN 1-55860-320-4 .
  • Alfred Aho, Monica Lam, Ravi Seti, Jeffrey Ullman. Kääntäjät : periaatteet, tekniikat ja työkalut = kääntäjät: periaatteet, tekniikat ja työkalut. – 2. painos. - M . : "Williams", 2008. - 1184 s. - 1500 kappaletta.  - ISBN 978-5-8459-1349-4 .

Linkit