Pok-13-wyk-Slajd19

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

Optymalizacje – eliminacja wspólnych podwyrażeń

Optymalizacje – eliminacja wspólnych podwyrażeń


Wystąpienie określonego wyrażenia jest nazywane podwyrażeniem wspólnym, jeżeli było ono już wcześniej obliczone a wartości zmiennych na podstawie, których jest obliczane nie zmieniły się po poprzednim obliczeniu.

W przykładzie przedstawiono fragment kodu w języku Pascal służący do zamiany dwóch elementów tablicy. Możliwość odnalezienia i usunięcia wspólnych podwyrażeń pojawi się jednak dopiero na poziomie kodu pośredniego. Załóżmy, że elementy tablicy mają rozmiar 2 komórek pamięci. Za każdym razem gdy uzyskujemy dostęp do elementu tablicy musimy przemnożyć wartość zmiennej indeksowej przez liczbę komórek pojedynczego elementu, aby uzyskać efektywny adres. W wyniku procesu generacji kodu tymczasowego zmienna t17 zawiera tę samą wartość co zmienna t16, a zmienna t20 co t18. Eliminacja wspólnych podwyrażeń pozwala nam uniknąć dwukrotnego obliczania wartości 2*i w pierwszym przypadku i 2*j w drugim oraz usunąć po jednej zmiennej z każdej pary.


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