- Tytuł:
-
A conversion of "while" and "do-while" loops to allow dependency analysis by existing tools
Konwersja pętli "while" i "do-while" w celu analizy zależności przez istniejące narzędzia - Autorzy:
-
Poliwoda, M.
Błaszyński, P. - Powiązania:
- https://bibliotekanauki.pl/articles/153582.pdf
- Data publikacji:
- 2010
- Wydawca:
- Stowarzyszenie Inżynierów i Techników Mechaników Polskich
- Tematy:
-
kompilator
konwersja pętli
analiza zależności
compiler
loop conversion
dependency analysis - Opis:
-
In this paper there are presented methods for conversion of "while" and "do-while" loops to the form of "for" loops. The aim of this conversion is to allow dependence analysis by many existing tools. The dependence analysis allows determining which parts of the analyzed program code must be executed sequentially, and which can be executed independently. Such an analysis is used to reduce the use of resources in embedded systems. Automating the analysis also allows specifying types of classes of algorithms and their implementation which can be the subject of optimization. The nature of optimization can also be determined.
Większość narzędzi analizujących zależności "LooPo", "Clan" i "Petit" posiada możliwość analizy pętli typu for, w których wykonuje się operacje na tablicach za pomocą operatorów indeksowania. W chwili obecnej pętle while są analizowane przez analizator "LooPo". Analizatory zależności "clan" i "petit" analizują jedynie pętle for. Zasadną więc jest koncepcja konwersji konstrukcji typu "while", "do-while" do postaci pętli "for", gdyż po wykonaniu konwersji możliwe staje się użycie dowolnego narzędzia do analizy zależności. Użycie różnych narzędzi do analizy zależności daje możliwość uzyskania wyników analizy w postaci odpowiedniej dla zaimplementowanych algorytmów zrównoleglających, co pozwala na uzyskanie większego zbioru propozycji zrównoleglenia kodu pętli. Wykonanie konwersji umożliwi również zastosowanie szeroko implementowanego popularnego standardu OpenMP w celu podziału przestrzeni iteracji między niezależne wątki. Docelowa postać pętli spełnia wymagania dotyczące pętli for przedstawione w specyfikacji OpenMP v3.0. Zastosowanie zgodności z tym standardem umożliwia analizę zależności w pętli przez większość analizatorów pętli w języku C i zapisanie zrównoleglonej postaci pętli zgodnie ze standardem. Algorytm opisany w tym artykule jest zrealizowany kompilatorze "Stepson", który jest aktualnie rozwijany. Informacje o skompilowanym programie są przechowywane w postaci drzewa. Opisany algorytm pozwala zwiększyć liczbę pętli, które można automatycznie analizować. - Źródło:
-
Pomiary Automatyka Kontrola; 2010, R. 56, nr 12, 12; 1501-1503
0032-4140 - Pojawia się w:
- Pomiary Automatyka Kontrola
- Dostawca treści:
- Biblioteka Nauki