title: halide total size for allocation func is constant but larger than 2^31-1
body: <p>I'm working on a Halide project processing bursts of images. My initial data set is 9 bursts of images of 4208*3120 pixel, in format <code>uint16_t</code>. I got the <code>constant_allocation_size</code> error during run time: </p>
  
  <p>"Error:</p>
  
  <pre><code>Total size for allocation layer_0 is constant but exceeds 2^31 - 1.
  Aborted (core dumped)".
  </code></pre>
  
  <p>where layer_0 is a down-sample function scheduled with compute_root();</p>
  
  <p>The sample code is like this:</p>
  
  <pre><code>Func my_process(Func input, ...){
    &lt;do something here...&gt; 
    output.compute_root().parallel(y).vectorize(x, 16);
  }
  
  Func raw2gray(Func input, std::string name){
     ...
     compute_root();
  }
  
  Func imgs_mirror = BoundaryConditions::mirror_interior(imgs, 0, imgs.width(), 0, imgs.height());
  Func layer_0 = raw2gray(imgs_mirror, "layer_0");
  Func out_imgs = my_process(layer_0, ...);
  </code></pre>
  
  <p>Does anyone know how to shrink my constant allocation size or how to increase this 2^31-1 upper limit?</p>