package de.gaalop.tba.cfgImport.optimization; import de.gaalop.cfg.ControlFlowGraph; import de.gaalop.cfg.SequentialNode; import de.gaalop.tba.UseAlgebra; /** * Facade class for the one expression removal optimization * @author Christian Steinmetz */ public class OptOneExpressionsRemoval implements OptimizationStrategyWithModifyFlag { @Override public boolean transform(ControlFlowGraph graph, UseAlgebra usedAlgebra) { OneExpressionRemoval oneExpressionRemoval = new OneExpressionRemoval(usedAlgebra); graph.accept(oneExpressionRemoval); // remove all nodes that are marked for removal for (SequentialNode node : oneExpressionRemoval.getNodeRemovals()) { graph.removeNode(node); } UpdateLocalVariableSet.updateVariableSets(graph); return oneExpressionRemoval.isGraphModified(); } }