Put local function in an anonymous namespace
Unpack elem_size in C backend
Rename vars in compile_to_c for clarify
Various compiler speedups

Moved code from IR.cpp to IR.h so that it inlines.

Added a uniquify variable names pass that simplifies Simplify,
and lets it do dead let elimination early. Also removes the int
parameter from Scope, because Simplify was the only thing using it.
Added a shared pool for small integers.
Merge branch 'master' of github.com:halide/Halide

Conflicts:
	Makefile
Add virtual destructor to class to prevent warning/error for class with
virtual methods and no virtual destructor.
Add initial OpenCL backend to build

Still feature-incomplete and minimally tested, but
I don't want to let the build diverge too quickly.
Merge branch 'master' of github.com:halide/Halide

Conflicts:
	Makefile
Added common-subexpression-elimination in key places

Now you can pass in a combinatorial mess of Exprs without the
compiler choking. A key component was being able to traverse IR
without hitting the same node twice, so an IRGraphVisitor base
class was added for this. Another component was being able to
strongly order all Exprs by value (in order to make a set of them),
so ExprDeepCompare was added for this purpose. The alternative would
have been hashing expressions, but this would have been harder to get
right, and we already had very similar code for deep equality
comparisons.
Images can now handle stride[0] != 1
Adjacent strided loads do a better job of sharing loads.
Made EarlyFree less verbose.
Changed hypothetical syntax for bitwise not (which doesn't exist)
Merge branch 'master' of github.com:halide/Halide
Removed bad include from Lower
Reusing old stack space was buggy :(

Stil tbd what the problem is, but disabling it for now.
Mark extern calls as side-effect free.

This lets llvm hoist them out.

Also had to change the sliding window test, because this let llvm be
clever and call the call_counter fewer times.
Merge branch 'master' of github.com:halide/Halide

Conflicts:
	Makefile
Fix some -Werror complaints in runtime modules