rework LivenessAnalysis
This commit is contained in:
@ -8,6 +8,11 @@ import java.util.Collection;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Die Liveness-Analyse bestimmt die mindestanzahl an benötigten Registern für ein Programm.
|
||||||
|
* Anhand eines {@link DataFlowGraph} wird ein {@link InterferenceGraph} erstellt.
|
||||||
|
* Dieser wird gefärbt, jede Farbe entspricht einem Register.
|
||||||
|
*/
|
||||||
public final class LivenessAnalysis {
|
public final class LivenessAnalysis {
|
||||||
|
|
||||||
private final InterferenceGraph interferenceGraph;
|
private final InterferenceGraph interferenceGraph;
|
||||||
@ -37,12 +42,12 @@ public final class LivenessAnalysis {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
change = change || updateNodeInOut(node);
|
change = change || calculateLivenessInOutNode(node);
|
||||||
}
|
}
|
||||||
} while (change);
|
} while (change);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean updateNodeInOut(DataFlowNode dataFlowNode) {
|
private static boolean calculateLivenessInOutNode(DataFlowNode dataFlowNode) {
|
||||||
boolean change;
|
boolean change;
|
||||||
|
|
||||||
for (DataFlowNode succ : dataFlowNode.getSuccessorSet()) {
|
for (DataFlowNode succ : dataFlowNode.getSuccessorSet()) {
|
||||||
|
Reference in New Issue
Block a user