Wann ist es sinnvoll, kritische Kanten zu teilen?

7

Einige Compiler verfügen über Dienstprogrammfunktionen, die kritische Kanten im Kontrollflussdiagramm aufteilen. Ich gehe davon aus, dass dies nicht als Optimierung an sich erfolgt, sondern um andere Analysen und Transformationen zu vereinfachen. In welchen Fällen wäre das Teilen kritischer Kanten sinnvoll?

zr.
quelle

Antworten:

5

Eine einfache Google-Suche finden Sie in Muchnick, Advanced Compiler Design & Implementation , Abschnitt 13.3 Partial-Redundancy Elimination , S. 407-408:

Ein wichtiger Punkt des Algorithmus ist, dass es viel effektiver sein kann, wenn die kritischen Kanten im Flussdiagramm geteilt wurden, bevor die Flussanalyse durchgeführt wird.

Der Begriff ist daher nützlich, um die Effizienz bestimmter Flussanalysen bei der Eliminierung von Redudanzen zu erhöhen. Ziel ist es, Teile des Codes mit gemeinsamen Unterausdrücken zu finden und sie in eine einzige Berechnung umzuwandeln, was ohne kritische Kanten erleichtert wird.

Cody
quelle
Danke für die Antwort. Können Sie bitte genauer angeben, wie der Durchflussanalysealgorithmus infolge der Aufteilung vereinfacht wird?
zr.