Fix crash-on-invalid if decltype(auto) is used as a deduced return type in
C++11 mode. Continue to disallow return type deduction in C++11 for now.
[CodeGenPrepare][AddressingModeMatcher] Give up on type promotion if the
transformation does not bring any immediate benefits and introduce an illegal
operation.
Add extern template instantiations of llvm::Calculate.

This should be a small build time improvement in general and fixes
the build on OS X with -DBUILD_SHARED_LIBS=ON.

The issue is that not all users are including GenericDomTreeConstruction.h,
causing undefined references when ld64 managed to hide the
linkonce_odr symbols.
DwarfUnit: Refactor out DW_AT_stmt_list creation into common function for fission and non-fission cases

This probably also addresses the FIXME in the fission case regarding
multiple compile units, though I haven't tested that.

This code still confuses me (the literal zero offset makes little sense,
the limitations surrounding asm output I'm not sure about either - but
perhaps we should just always emit one line table? Or should we not rely
on .loc/.file even in assembly so we can produce the same output between
asm and object output?) but this maintains the existing functionality.
DwarfUnit: Remove unnecessary (void)t; that was previously used to suppress -Wunused-member-variable
Hopefully fix the build with gcc.
DwarfUnit: Remove unnecessarily explicit/out of line virtual dtors.

These types have an out of line virtual function each (emitHeader at
least) so they won't have weak vtables - no need for more than that.