Pok-13-wyk-Slajd15

Z Studia Informatyczne
Wersja z dnia 19:14, 30 sie 2006 autorstwa Complak (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Generacja kodu – przydział rejestrów

Generacja kodu – przydział rejestrów


Jak już wspomniano wcześniej – dobry algorytm przydzielania rejestrów ma fundamentalne znaczenie dla efektywności wygenerowanego kodu wynikowego. Operacje na rejestrach są efektywniejsze niż wykonywane na pamięci operacyjnej – mają krótsze kody i zazwyczaj są szybsze.

Problem optymalnego przydziału rejestrów ma złożoność wykładniczą, zmuszeni więc jesteśmy – ze względu na czas działania generatora kodu – poszukiwać efektywnych algorytmów heurystycznych.

Problem polega na tym, że rejestrów jest relatywnie mało – do 32 w nowoczesnych procesorach. Liczba ta nie wystarcza, aby przechowywać wszystkie często używane wartości, zwłaszcza jeżeli konieczne jest obliczanie skomplikowanych wyrażeń. Dodatkowe utrudnienia wynikają z tego, że niektóre operacje można wykonać tylko w określonych rejestrach, a także koszt wykonania tych samych operacji z użyciem różnych rejestrów może być różny.


<< Poprzedni slajd | Spis treści | Następny slajd >>