Removed dead declaration.
Returned ScheduleHandles from FuncRefVar/FuncRefExpr assignments.
Initial cleanup of different linkage options in runtime
Further categorization of runtime symbols into internal and external
Rename ScheduleHandle to Def. Add test.
Naming cleanup. Def -> Stage. Reduction -> Update.
Corrected up some comments in RDom.
Modified interleave_vectors to support 2, 3, or 4 arguments. Changed deinterleave to detect interleavings of 2, 3, or 4 lanes and call the appropriate interleave_vectors command.
Remove dynamic skip stages ifdef now that bug is fixed. Add a test
case for a relaization larger than the entire cache. Switch to
fprintf(stderr, ...) for messages as the order between test output and
cache debug output was not correct otherwise.
Modified deinterleave to detect if multiple stores to the same buffer with strided ramp indices are actually interleaved. In this case we replace multiple stores with a single interleave store.
Modified ARM codegen to use interleaved vector store instructions for interleaved stores of up to 4 vectors.
Wired up support for vectorizing on the color dimension for the GLSL backend
Merge branch 'master' of https://github.com/halide/Halide into glsl
Minor fix to ARM codegen. Missed an error in the last commit.
Created an interleave_vectors method in the codegen class that implements the interleave_vectors intrinsic call in halide. This was necessary so that I could use a recursive approach to define interleave_vectors for any number of arguments. For calls to interleave_vectors with 1 to 4 args specialized llvm code is generated. When more args are present we recursively interleave the even args as well as the odd args, and then interleave the results of these.
Added a test to check correctness of interleaving 5 vectors. Fixed some bugs exposed by the test.
Added a bailout from the store collect in Deinterleave.cpp in case we find a Load node that references the same buffer we are storing to.
Added a bailout from the store collect in Deinterleave.cpp in case we find a Load node that references the same buffer we are storing to.
Add Func::infer_arguments()
Added halide_opengl_output_client_bound() to allow the app to specify that Halide should not bind output render targets