Aliasanalyse und Datenabhängigkeitsanalyse finden unter anderem Verwendung
in der automatischen Parallelisierung von Programmen, in der Analysephase
von Umstrukturierungssystemen, in der Optimierungsphase herk"ommlicher
übersetzer sowie in vielen Bereichen der Softwaretechnik, zum Beispiel für
Fehlersuche auf Quellcodeebene, automatisierte Datenflu"süberprüfung,
semantisches Browsen oder automatische Integration unabhängig voneinander
geänderter Versionen eines Programms.
Zu Beginn des Vortrags werden einige motivierende Anwendungen von
Aliasanalyse und Datenabhängigkeitsanalyse vorgestellt. Es folgt eine
kurze Einführung in das Instrumentarium der monotonen Datenflu"ssysteme.
Im Zentrum des Vortrags steht die Darstellung mehrerer Ansätze, die in
der Arbeitsgruppe OPC (optimierende/parallelisierende Compiler) an der
FSU Jena entwickelt wurden.
Die vorgestellte Aliasanalyse für C-Programme kombiniert May-Alias- und
Must-Alias-Information mit Variablenschrankeninformation. Die Methode
erm"oglicht eine sichere und effiziente Behandlung von Typenumwandlungen
und Zeigerarithmetik und ist daher für die Anwendung auf beliebige reale
C-Programme geeignet.
Die Datenabhängigkeitsanalyse für Modula-2 kann Programme mit Zeigern
und dynamisch angelegtem Speicher behandeln. Dadurch ist sie in der Lage,
auch Programme über verketteten Datenstrukturen (einschlie"slich rekursiv
definierter Datentypen) zu analysieren. Die Methode wurde im
Analysesystem ParaMod vollständig implementiert.
Die Datenabhängigkeitsanalyse für Assemblercode stellt ein wertebasiertes
Speicherunterscheidungsverfahren dar, das auf einer Erweiterung der
üblichen Konstantenweitergabe beruht. Sie besitzt unter anderem
Anwendungen im Bereich der Registervergabe und kann zur Erh"ohung des
Parallelitätsgrades auf Anweisungsebene, insbesondere durch Software
Pipelining, eingesetzt werden. Die Methode wurde in das vom IRISA
entwickelte System SALTO integriert.