Rewriter: Output RewriteRope contents efficiently

This avoids allocation of temporary std::strings for file contents, instead
writing chunks directly to the output stream.

The old character-based B-tree iterator remains intact for the time being.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196119 91177308-0d34-0410-b5e6-96231b3b80d8
Re-enabled support for the Subjects for the weak attribute. This changes the diagnostic involved to be more accurate -- for C++ code, it will now report that weak applies to variables, functions or classes. Added additional test case for this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196120 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format vs plugin: bake clang-format.exe into the vsix

This makes the clang-format plugin self-contained. Instead of
requiring clang-format.exe to be available on the PATH, this
includes it in the plugin's installer (.vsix file) and runs it
from the install directory.

Differential Revision: http://llvm-reviews.chandlerc.com/D2281

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196122 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a typo in a comment: expasion -> expansion

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196123 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format vs plugin: use Alp's suggestion for getting the path

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196124 91177308-0d34-0410-b5e6-96231b3b80d8
Factored attribute mutual exclusion code into a helper function; split the cf_audited_transfer and cf_unknown_transfer attributes into separate helper methods for simplicity. No functional changes intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196126 91177308-0d34-0410-b5e6-96231b3b80d8
ClangFormatPackage.cs: fix inconsistent line endings

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196131 91177308-0d34-0410-b5e6-96231b3b80d8
Automate attribute language option checking by specifying the list of options to test in tablegen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196138 91177308-0d34-0410-b5e6-96231b3b80d8
Rectifying style issues with generated code. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196142 91177308-0d34-0410-b5e6-96231b3b80d8
Expand comments for Debug Info Version.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196143 91177308-0d34-0410-b5e6-96231b3b80d8
Debug Info: Move the constant for Debug Info Version from Dwarf.h to Metadata.h.

Suggested by Eric.
Paired commit with r196144.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196145 91177308-0d34-0410-b5e6-96231b3b80d8
[AArch64] Add missing NEON scalar floating-point to integer convert ACLEs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196152 91177308-0d34-0410-b5e6-96231b3b80d8
[AArch64] Implemented vcopy_lane patterns using scalar DUP instruction.
Patch by Ana Pazos!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196153 91177308-0d34-0410-b5e6-96231b3b80d8
The CUDA device attribute doesn't need custom logic to check the number of attribute arguments (the common attribute handler already does this). Switching to use the simple attribute handler. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196155 91177308-0d34-0410-b5e6-96231b3b80d8
Simplifying a test for duplicate vec_type_hint attributes. The assert and attribute kind test were superfluous. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196162 91177308-0d34-0410-b5e6-96231b3b80d8
Refactored the work group-related attributes to use a template, which reduces the amount of duplicate code in the handler. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196165 91177308-0d34-0410-b5e6-96231b3b80d8
MS inline asm: When LLVM called back to Clang to parse a name and do name
lookup, if parsing failed, we did not restore the lexer state properly, and
eventually crashed.  This change ensures that we always consume all the tokens
from the new token stream we started to parse the name from inline asm.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196182 91177308-0d34-0410-b5e6-96231b3b80d8
Add some missing AArch64 Neon intrinsics like vmull_high_n_s16 and friends.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196189 91177308-0d34-0410-b5e6-96231b3b80d8
Add some missing AArch64 Neon intrinsics like vuqadd_s64 and friends.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196191 91177308-0d34-0410-b5e6-96231b3b80d8
AArch64: Add missing scalar pair intrinsics.
E.g. "float32_t vaddv_f32(float32x2_t a)" to be matched into "faddp s0, v1.2s".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196199 91177308-0d34-0410-b5e6-96231b3b80d8