Thu May 9 12:15:08 EDT 2013

Automatic lifting

Trouble: can't just put this in the unification algo because it will
"spread".  I.e. this needs specialization.

The trouble is the following:

  - we're in a loop context i,j,k
  - the type of some parameter is not Ni,Nj,Nk but say Nx,Ny
    how to specify which constants to drop?

How to integrate?

  1. Type inference works correctly across the "const"
  2. Some info is lost here: i.e. which index to ignore.

What we need is something like this:

   p_const_ref(param->c, i, j, k, 1-0-1)

where 1-0-1 is the "ignore mask"

So every time we go into a loop, all nodes need to have their indexing
info updated.  Basically, ai-array needs to keep track of the reduce
stack.  That's really it.