završni rad (sveučilišni)
Razvojna okolina LLVM
Sažetak
LLVM je kompilatorski sustav koji uz implementaciju suvremenih kompilatorskih strategija pridodaje posebnu pažnju optimizaciji i analizi programa. Sustav je izgrađen kao skup međusobno odvojenih komponenata i omogućuje različite primjene. LLVM pruža svoju jezično neovisnu reprezentaciju jezika sa svojim skupom instrukcija. Na taj način sustav ima međuoblik koda koji je čitljiv i razumljiv ljudima kao pomoć vizualizaciji transformacija, uz prikladan oblik za analizu i transformaciju. Optimizacija, kao i analiza je implementirana u sustav kao prolazi kod koji mijenjaju dijelove koda ili skupljaju neke informacije o kodu. Pisanje vlastitih prolaza je relativno jednostavno, te je zato moguće prilagoditi LLVM optimalno za svaku primjenu. Programska podrška za prikaz grafova toka programa napravljena je u programskom jeziku Java i omogućuje vizualizaciju transformacija nad LLVM kodom.
Ključne riječi
LLVM; Low level virtual machine; jezični prevodioc; kompilator; optimizacija programa; GCC; Control Flow Graph; analiza programa