spartan-array/spartan — pull request #136 by fegin (2014-04-21 03:31:56+00:00)
Title: Some updates for optimization.

1. For Map and Reduce, they call fetch_base_tile() instead of fetch() if the
argument is Broacast. This function fetch the corresponding tile in the
base array. It means these tiles are not broadcated immediately.
2. Current optimization sequence eliminates the chance to do parakeet for
those MapExprs which have been fused into ReduceExprs. So we should do
ReduceMapFusion last.
3. We should visit children inside ParakeetGeneration.visit_MapExpr().
Otherwise we lose the chance to do parakeet for some MapExprs.
4. If all deps for a MapExpr are not FnCallExpr, it is not worth to do
parakeet for it. (According to experiments, it usually get worse
results)