Fix VS 2012 build (unsupported nearbyinf, truncf)
Remove compiler specific preprocessor directives
Vectorize game_of_life with pnacl

Required converting an int8 -> int32 cast to scalar code
Merge pull request #540 from halide/linear_solver

Added a linear solver mutator.
Added LinearSolve.h/cpp to CMake build.
Add EXPORT qualifiers
Added comments to the new versions of expr_uses_var(s). Added EXPORT macros to expr_uses_var for Windows support.
Merge pull request #545 from halide/scoped_expr_uses_vars

Added an optional scope argument to expr_uses_var(s).
Added BranchUtils.h/.cpp files that contain several visitors and mutators used by the specialize_branched_loops optimization pass. I have pulled this work out into its own file to improve the readability of the specialize_branched_loops stuff, and make it easier to test and review these components.
Fix store collector for upsample pattern

The store collector was bailing out when it found too many stores,
rather than only considering the first few. e.g:

f[ramp(a, 2, 4)] = ...
f[ramp(a+1, 2, 4)] = ...
f[ramp(b, 2, 4)] = ...
f[ramp(b+1, 2, 4)] = ...

can be rewritten into two interleaving stores, but the store collector
was finding four stores and bailing entirely.
Merge pull request #534 from pgec/VS2012_build_fix

Fix VS 2012 build
Fixed compile errors in BranchUtils. Added the beginnings of a correctness test to check the validity of the functions in BranchUtils.
Added some tests to check the correctness of the normalize and prune functions in BranchUtils.
Merge with branch_utils
Add some braces.
Merge branch 'master' of github.com:halide/Halide
Fixed generation of shift operators in OpenCL C for vector types.
Added test for vectorized div/mod in GPU targets.
Modified speciailze_branched_loops to use new viistors in BranchUtils. Deleted corresponding visitors from the specialize_branched_loops code.
Merge master