code: @Override
  	public void accept(Visitor<OptimizerNode> visitor) {
  		if (visitor.preVisit(this)) {
  			if (this.input1 == null || this.input2 == null) {
  				throw new CompilerException();
  			}
  			
  			getFirstPredecessorNode().accept(visitor);
  			getSecondPredecessorNode().accept(visitor);
  			
  			for (DagConnection connection : getBroadcastConnections()) {
  				connection.getSource().accept(visitor);
  			}
  			
  			visitor.postVisit(this);
  		}
  	}
docs: --------------------------------------------------------------------------------------------