završni rad (sveučilišni)

Razvojna okolina LLVM

Vlado Sruk

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

LLVMLow level virtual machinejezični prevodiockompilatoroptimizacija programaGCCControl Flow Graphanaliza programa