Predviđanje profila izvršavanja programa tehnikama mašinskog učenja Optimizacije vođene profilima (eng. profiile-guided optimizations) značajno doprinose generisanju efikasnih programa. Profili programa su informacije o izvršavanju programa, na primer broj izvršavanja grana u naredbama grananja, broj poziva funkcija, verovatnoće poziva virtuelnih metoda i slično. Dinamičko profajliranje je standardni način za prikupljanje profila, pokretanjem programa i praćenjem načina na koji se on izvršava. Dinamičkim profjaliranjem prikupljaju se precizni profili, ali je dinamičko prikupljanje profila često vremenski i memorijski zahtevno, kompikuje proces generisanja optimizovanih programa i zahteva odgovarajuće reprezentativne ulaze koje je često veoma izazovno pronaći. Alternativa dinamičkim profajlerima jesu statički profajleri. Statički profajleri predviđaju profile izvršavanja programa bez pokretanja programa, na osnovu statičkih atributa kojima se opisuju delovi progama. Predlog teme doktorske teze obuhvata razvoj stačkog profjalera GraalSP zasnovanog na tehnikama mašinskog učenja. GraalSP koristi grafovsku međureprezentaciju visokog nivoa za definisanje atributa kojima se karakterišu delovi programa. Uz to, GraalSP polu-automatizuje proces definisanja ovih atributa. GraalSP podržava sve programske jezike koji se kompajliraju na Java bajtkod, na primer jezike Java, Scala i Kotlin. Za predviđanje profila, eksperimentisano je sa različitim modleima mašinskog učenja i najbolji rezultati su dobijeni korišćenjem XGBoost modela koji je zasnovan na stablima odlučivanja koji je stoga i integrisan u GraalSP. Pored toga, GraalSP koristi i dodatne heuristike za korekciju predviđenih profila kako bi korigovao neprecizna predviđanja modela koja mogu biti rezultat odudarajućih podataka (eng. outliers) i voditi do degradacije performansi. GraalSP je implementiran i integrisan u kompajler GraalVM Native Image, čime je ostvareno ubrzavanje vremena izvršavanja programa koji se prevode korišćenjem ovog kompajlera za 7.46% u poređenju sa podrazumevanom konfiguracijom kompajlera.