Merge common pointers for redeclarations of the same template across modules.
Windows: Don't bother with pinning Kernel32.dll

We don't delay load it so it shouldn't be going anywhere.
Don't use 64-bit versions of MOVMSKPD in CodeGen. The instructions only produce a 1-bit result so we can just use SUBREG_TO_REG to extend the 32-bit versions.
Keep track of indentation levels in static initializers for correct indentation with tabs.

Summary:
Store IndentationLevel in ParentState and use it instead of the
Line::Level when indening.
Also fixed incorrect indentation level calculation in formatFirstToken.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek

Differential Revision: http://llvm-reviews.chandlerc.com/D1797
Windows: Fix a typo in an assert
Mark MOVMSKPS/MOVMSKPD/VPINSRWrr64i as AsmParserOnly to remove them from the disassembler tables. Add PINSRWrr64i to complement the AVX version.
Add disassembler support for SSE4.1 register/register form of PEXTRW. There is a shorter encoding that was part of SSE2, but a memory form was added in SSE4.1. This is the register form of that encoding.
Allow pinsrw/pinsrb/pextrb/pextrw/movmskps/movmskpd/pmovmskb/extractps instructions to parse either GR32 or GR64 without resorting to duplicating instructions.
Create classes to reduce the size of the tablegen entries for the CRC32 instructions.
tsan: allow to override OnFinalize() in front-ends that does not support weak functions (Go)
Fixed "ArgSize may be used uninitialised" error when compiling with gcc.
Set the architecture from the remote executable when it's not set so the register info can be loaded properly (and thus the callstacks work)
Fix use-after-free in PPCallbacksTest detected by ASan bootstrap bot
Fixed a bug in dynamic allocation memory on stack.
The alignment of allocated space was wrong, see Bugzila 17345.

Done by Zvi Rackover <zvi.rackover@intel.com>.