[OPENMP] Implemented 'copyin' clause


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205164 91177308-0d34-0410-b5e6-96231b3b80d8
ARM64: remove currently trivial switch statement

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205169 91177308-0d34-0410-b5e6-96231b3b80d8
Added _rdtsc intrinsics by Robert Khasanov

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205172 91177308-0d34-0410-b5e6-96231b3b80d8
Slightly improve the readability of MicrosoftVTableContext::computeVTablePaths().  No functionality changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205178 91177308-0d34-0410-b5e6-96231b3b80d8
Reapplying r204952 a second time.

Clean up the __has_attribute implementation without modifying its behavior. 

Replaces the tablegen-driven AttrSpellings.inc, which lived in the lexing layer with AttrHasAttributeImpl.inc, which lives in the basic layer. Updates the preprocessor to call through to this new functionality which can take additional information into account (such as scopes and syntaxes).

Expose the ability for parts of the compiler to ask whether an attribute is supported for a given spelling (including scope), syntax, triple and language options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205181 91177308-0d34-0410-b5e6-96231b3b80d8
clang/tools/driver/Makefile: Quick fix corresponding to r205181.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205189 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Solve issues found and fixed by clang-tidy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205193 91177308-0d34-0410-b5e6-96231b3b80d8
Sema: Check dll attributes on redeclarations

A redeclaration may not add dllimport or dllexport attributes. dllexport is
sticky and can be omitted on redeclarations while dllimport cannot.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205197 91177308-0d34-0410-b5e6-96231b3b80d8
Sema: Require external linkage for dll attributes

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205198 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] clang-formatted include/clang/AST/StmtOpenMP.h

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205199 91177308-0d34-0410-b5e6-96231b3b80d8
Post-commit review coding style change: renaming HasAttribute to hasAttribute. No functional changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205201 91177308-0d34-0410-b5e6-96231b3b80d8
ARM64: enable aarch64-neon-intrinsics.c test

This adds support for the various NEON intrinsics used by
aarch64-neon-intrinsics.c (originally written for AArch64) and enables the
test.

My implementations are designed to be semantically correct, the actual code
quality looks like its a wash between the two backends, and is frequently
different (hence the large number of CHECK changes).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205210 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Use the proper type for inalloca args

Summary:
The definition of a type later in a translation unit may change it's
type from {}* to (%struct.foo*)*.  Earlier function definitions may use
the former while more recent definitions might use the later.  This is
fine until they interact with one another (like one calling the other).
In these cases, a bitcast is needed because the inalloca must match the
function call but the store to the lvalue which initializes the argument
slot has to match the rvalue's type.

This technique is along the same lines with what the other,
non-inalloca, codepaths perform.

This fixes PR19287.

Reviewers: rnk

CC: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205217 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Make test introduced in r205217 more robust

Don't assume any particular IR Value name, pattern match the names from
the GEP instructions instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205218 91177308-0d34-0410-b5e6-96231b3b80d8
Remove unused diagnostic + dead test for it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205220 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Document the '\xc1' to '\xda' manglings

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205223 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: mangleStringLiteral shouldn't rely on the host's endianness

No test case is needed, the one in-tree is sufficient.  The build-bot
never emailed me because something else had upset it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205225 91177308-0d34-0410-b5e6-96231b3b80d8
Introduced an attribute syntax-neutral method for parsing attribute arguments that is currently being used by GNU and C++-style attributes. This allows C++11 attributes with argument lists to be handled properly, fixing the "deprecated", "type_visibility", and capability-related attributes with arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205226 91177308-0d34-0410-b5e6-96231b3b80d8
Unify __declspec attribute argument parsing with the common attribute argument parsing code.

This removes a diagnostic that is no longer required (the semantic engine now properly handles attribute syntax so __declspec and __attribute__ spellings no longer get mismatched). This caused several testcases to need updating for a slightly different wording.

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