Pok-1-wyk-Slajd22
Generacja kodu wynikowego(1)
Kluczowymi strukturami danych, na których operujemy w trakcie optymalizacji i generacji kodu są bloki podstawowe i grafy przepływu. Bloki podstawowe to liniowe fragmenty kodu, do których sterowanie wchodzi na początku i wychodzi na końcu. Rozpoczynają się one od tzw. liderów – pierwszych instrukcji, które zostają wykonane po przejściu sterowania do danego bloku podstawowego. W powyższym przykładzie liderów bloków podstawowych wyróżniono czerwoną czcionką.
Z podzielonego na bloki podstawowe kodu trójadresowego można już skonstruować graf przepływu.
Graf przepływu jest grafem dwudzielnym, w którym wierzchołkami są bloki bazowe, a krawędziami przepływy sterowania między blokami. Jeden z bloków podstawowych jest wyróżniony jako blok początkowy – od niego rozpoczyna się wykonywanie programu.