@Override public void visit(StoreResultNode node) { variables.add(node.getValue()); super.visit(node); }
@Override public void visit(StoreResultNode node) { code.append('?'); code.append(node.getValue()); code.append("\\\\\n"); node.getSuccessor().accept(this); }
@Override public void visit(StoreResultNode node) { variableNames.add(node.getValue().getName()); super.visit(node); }
@Override public void visit(StoreResultNode node) { node.getValue().accept(visitorExp); super.visit(node); } };
@Override public void visit(StoreResultNode node) { String name = node.getValue().getName(); if (outputBlades.containsKey(name)) { // only special blades are outputted for (Integer bladeIndex : outputBlades.get(name)) { variableUsage.addUsage(new VariableComponent(name, bladeIndex, node.getValue())); } } else { // all blades are outputted int bladeCount = usedAlgebra.getBladeCount(); for (int blade = 0; blade < bladeCount; blade++) { variableUsage.addUsage(new VariableComponent(name, blade, node.getValue())); } } }
@Override public void visit(StoreResultNode node) { node.getValue().accept(expressionVisitor); super.visit(node); } }
@Override public void visit(StoreResultNode node) { outputtedMultivectors.add(node.getValue().getName()); node.getSuccessor().accept(this); }
@Override public void visit(StoreResultNode node) { assigned.add(node.getValue().getName() + suffix); node.getSuccessor().accept(this); }
@Override public void visit(StoreResultNode node) { findUndeclaredVariables(node.getValue()); node.getSuccessor().accept(this); }
@Override public void visit(StoreResultNode node) { findUndeclaredVariables(node.getValue()); node.getSuccessor().accept(this); }
@Override public void visit(StoreResultNode node) { node.setValue((Variable) performExpressionReplacements(node.getValue())); super.visit(node); } }
Variable outputVariable = (Variable) node.getValue();
/** * Returns all output blades of a given graph * @param graph The graph * @param usedAlgebra The used algebra * @return The output blades */ public static HashSet<VariableComponent> getAllOutputBlades(ControlFlowGraph graph, UseAlgebra usedAlgebra) { HashSet<VariableComponent> result = new HashSet<VariableComponent>(); // mark output vars as tabu for (String output : graph.getPragmaOutputVariables()) { String[] parts = output.split("\\$"); result.add(new VariableComponent(parts[0], Integer.parseInt(parts[1]), null)); } FindStoreOutputNodes storeResultNodes = new FindStoreOutputNodes(); graph.accept(storeResultNodes); for (StoreResultNode curSRNode : storeResultNodes.getNodes()) { String name = curSRNode.getValue().getName(); int bladeCount = usedAlgebra.getBladeCount(); for (int blade = 0; blade < bladeCount; blade++) { result.add(new VariableComponent(name, blade, null)); } } return result; } }
@Override public void visit(StoreResultNode node) { addNode(node, "Output:\\n" + node.getValue()); addForwardEdge(node, node.getSuccessor()); node.getSuccessor().accept(this); }
protected void createVectorSet (FindStoreOutputNodes findOutput) { for (Variable var : graph.getInputVariables()) { FieldsUsedVisitor fieldVisitor = new FieldsUsedVisitor(var.getName()); graph.accept(fieldVisitor); vectorSet.add(fieldVisitor.getMultiVector()); } for (Variable var : graph.getLocalVariables()) { FieldsUsedVisitor fieldVisitor = new FieldsUsedVisitor(var.getName()); graph.accept(fieldVisitor); vectorSet.add(fieldVisitor.getMultiVector()); } for (StoreResultNode var : findOutput.getNodes()) { FieldsUsedVisitor fieldVisitor = new FieldsUsedVisitor(var.getValue().getName()); graph.accept(fieldVisitor); vectorSet.add(fieldVisitor.getMultiVector()); } }