Transforms: Don't create bad branch weights when folding a switch

This avoids creating branch weight metadata of length one when we fold
cases into the default of a switch instruction, which was triggering
an assert.
Simplify further.

Thanks to Jim Grosbach for noticing it.
80-col.
We never emit info into the macro info section, stop emitting an
empty one.
Add comments documenting the ARM datalayout string.
Disable emitting DW_AT_GNU_ranges_base until we actually use it.
Sema: Enforce C++11 pointer-to-member template arguments should rules

The standard is pretty clear on what it allows inside of template
arguments for non-type template parameters of pointer-to-member.

They must be of the form &qualified-id and cannot come from sources like
constexpr VarDecls or things of that nature.

This fixes PR18192.
Revert "Remove makeArrayRef() calls."

This reverts commit r196475 because it made the build to fail with
GCC 4.7/4.8/4.9. Reported by Mikael Lyngvig.
Fix via-file-asm test failure on windows

The windows target does not support using an external assembler so
the test case was failing with this error:

error: there is no external assembler that can be used on this platform

The test was updated to always explicitly pass a target that has
both an interal and external assembler.
Take into consideration calling convention when processing specializations.

This fixes pr18141.
llvm-cov: Added -a option for block data.

Similar to gcov, llvm-cov will now print out the block count at the end
of each block. Multiple blocks can end on the same line.

One computational difference is by using -a, llvm-cov will no longer
simply add the block counts together to form a line count. Instead, it
will take the maximum of the block counts on that line. This has a
similar effect to what gcov does, but generates more correct counts in
certain scenarios.

Also updated tests.
Update testcase for previous commit.
Fix PR18162 - Incorrect assertion assumed that the SDValue resno is zero.