Added a comment to the Makefile describing the profile_% targets.
Ensure that there is a DataLayout pass on the LLVM pass list for
optimization in LLVM 3.6. This prevents the crash we've been seeing in
optimize_module and mirrors the behavior of LLVM's opt tool.
Ensure that modules always have a data layout.
Parameter::get_min/max_value should be const
Fix issue #561 (bogus "Invalid Param name" error)
Revert "Fix issue #561 (bogus "Invalid Param name" error)"

This reverts commit e3dbd7367c40d72e036dd3b9709d897ed61a9606.
Take 2: Fix issue #561 (bogus "Invalid Param name" error)

First attempt was both broken and ill-conceived.
Add Parameter::operator=
Removed Parameter::unregister_instance() in favor of a actor argument.
Adding Parameter comments.
One less comparison in the first gather of the merge sort
s/Param/Parameter/
Merge pull request #563 from halide/usercontext

Take 3: Fix issue #561 (bogus "Invalid Param name" error)
Merge pull request #564 from white-pony/min-max-optimization

One less comparison in the first gather of the merge sort
Bump minimum required cmake version (fixes #566)
Use the shared library for LLVM, if defined
with 'make USE_LLVM_SHARED_LIB=1'.

Using a shared library avoids a problem with LLVM's command
line parameters when loading an OpenCL implementation (at
least pocl) that also links in LLVM. Otherwise we get
assertion crashes like this:

... /llvm-3.5-svn/include/llvm/Support/CommandLine.h:682:
void llvm::cl::parser<llvm::ScheduleDAGInstrs
*(*)(llvm::MachineSchedContext *)>::addLiteralOption(const char *,
const DT &, const char *) [DataType = llvm::ScheduleDAGInstrs
*(*)(llvm::MachineSchedContext *), DT = llvm::ScheduleDAGInstrs
*(*)(llvm::MachineSchedContext *)]: Assertion findOption(Name) ==
Values.size() && "Option already exists!"' failed.
Aborted (core dumped)
Add Halide::set_custom_error_reporter()
Changed to USE_LLVM_SHARED_LIB to empty vs non-empty in line with other flags
Merge branch 'pocl-llvm-shared2'
CustomErrorReporter changes.