/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package datapath.graph;
import datapath.graph.operations.Absolut;
import datapath.graph.operations.Add;
import datapath.graph.operations.ArcCos;
import datapath.graph.operations.BinaryOperation;
import datapath.graph.operations.BitwidthTransmogrify;
import datapath.graph.operations.ConstantMultiplication;
import datapath.graph.operations.ConstantOperation;
import datapath.graph.operations.ConstantShift;
import datapath.graph.operations.Cos;
import datapath.graph.operations.Divide;
import datapath.graph.operations.FromOuterLoop;
import datapath.graph.operations.HWInput;
import datapath.graph.operations.HWOutput;
import datapath.graph.operations.Less;
import datapath.graph.operations.Loop;
import datapath.graph.operations.LoopEnd;
import datapath.graph.operations.LoopInit;
import datapath.graph.operations.MemWrite;
import datapath.graph.operations.Multiplication;
import datapath.graph.operations.Mux;
import datapath.graph.operations.Negation;
import datapath.graph.operations.Nop;
import datapath.graph.operations.Operation;
import datapath.graph.operations.Predicate;
import datapath.graph.operations.Sin;
import datapath.graph.operations.SquareRoot;
import datapath.graph.operations.Subtraction;
import datapath.graph.operations.ToInnerLoop;
import datapath.graph.operations.ToOuterLoop;
import datapath.graph.operations.TopLevelInput;
import datapath.graph.operations.TypeConversion;
import datapath.graph.operations.VariableShift;
import java.util.HashSet;
/**
*
* @author fs
*/
class DeadTreeEliminationVisitor implements OperationVisitor {
@Override
public void visit(Operation op) {
}
@Override
public void visit(BinaryOperation op) {
}
@Override
public void visit(Mux op) {
}
@Override
public void visit(ConstantOperation op) {
}
@Override
public void visit(Add op) {
}
@Override
public void visit(MemWrite op) {
}
@Override
public void visit(Less op) {
}
@Override
public void visit(FromOuterLoop op) {
}
@Override
public void visit(ToInnerLoop op) {
}
@Override
public void visit(HWInput op) {
}
@Override
public void visit(VariableShift op) {
}
@Override
public void visit(Loop op) {
}
@Override
public void visit(Nop op) {
}
@Override
public void visit(ToOuterLoop op) {
}
@Override
public void visit(Negation op) {
}
@Override
public void visit(LoopEnd op) {
for(Predicate p : op.getPredicates()) {
p.postOrderUpwardVisit(this);
}
}
@Override
public void visit(LoopInit op) {
}
@Override
public void visit(HWOutput op) {
}
@Override
public void visit(TopLevelInput op) {
}
@Override
public void visit(Multiplication op) {
}
@Override
public void visit(Subtraction op) {
}
@Override
public void visit(Divide op) {
}
@Override
public void visit(Absolut op) {
}
@Override
public void visit(Sin op) {
}
@Override
public void visit(Cos op) {
}
@Override
public void visit(ArcCos op) {
}
@Override
public void visit(ConstantShift op) {
}
@Override
public void visit(SquareRoot op) {
}
@Override
public void visit(BitwidthTransmogrify op) {
}
@Override
public void visit(Predicate op) {
}
@Override
public void visit(TypeConversion op) {
}
@Override
public void visit(ConstantMultiplication op) {
visit((Multiplication)op);
}
}