Seite 1 von 1

Aufgabe 3

Verfasst: 8. Jun 2010 02:12
von moep
Habe da mal eine Frage zur Rückwandlung des AST aus der SSA-Form

Bei uns gibt es vor und nach 'ast2ssa + ssa2ast" entweder identische, oder äquivalente ASTs.

Trotzdem bekommen wir massenhaft den Fehler das der Objektcode nicht identisch ist.

Wir hängen die AST-Teilbäume komplett neu zusammen, das einzige das wir komplett ausser Acht lassen sind die Zusatzinformationen die wir laut Aufgabe 2 bei 'dumpcfg' ignorieren sollten.

Wir umgehen das im Moment dadurch das wir den geänderten AST mittels 'showast' abspeichern und neu einlesen innerhalb von 'ssa2ast'.


Gibt es für das Verhalten eine Erklärung?
Und ist es in Ordnung das wir diesen Umweg nehmen?

Re: Aufgabe 3

Verfasst: 8. Jun 2010 19:22
von moep
Die Sache hat sich mitlerweile geklärt.

Re: Aufgabe 3

Verfasst: 30. Jun 2010 15:32
von ChNeumann
Koenntest du uns bitte mitteilen inwiefern sich das geklaert hat?

Bisher hatten wir die paar Fehler im Tester diesbezueglich ignoriert, in der Hoffnung, dass sich das irgendwie von selbst loest. Jetzt haben wir aber endlich nochmal genauer nachgeforscht und haben trotz identischem AST einige Fehler. Der ganze AST-Kram ist echt zum Kotzen.

Re: Aufgabe 3

Verfasst: 1. Jul 2010 09:56
von moep
wir haben den jeweiligen procDeclaration Knoten neu angelegt
das hat dann alle querverweise gekillt

haben dann einfach die alten übernommen und lediglich die referenzen umgebogen

ihr müsst da ein wenig aufpassen - es gibt mehr referenzen als ein drawast anzeigt

Re: Aufgabe 3

Verfasst: 13. Jul 2010 07:31
von Tobias
Diese Fehlermeldung (unterschiedliche Objektdateien) kann auf so ziemlich alles mögliche hinweisen. Sie bedeutet, dass euer Compiler anderen Maschinencode erzeugt, wenn man zwischendrin das gerade geladene Programm mit showast/read/check neu einliest. Unter http://www.esa.informatik.tu-darmstadt. ... t/tips#obj habe ich eine etwas ausführlichere Beschreibung hochgeladen.