Revert back r219295.
To fix issues with test OpenMP/parallel_firstprivate_codegen.cpp


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219296 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] Codegen for 'firstprivate' clause.
This patch generates some helper variables that used as private copies of the corresponding original variables inside an OpenMP 'parallel' directive. These generated variables are initialized by copy using values of the original variables (with the copy constructor, if any). For arrays, initializator is generated for single element and in the codegen procedure this initial value is automatically propagated between all elements of the private copy.
In outlined function, references to original variables are replaced by the references to these private helper variables. At the end of the initialization of the private variables an implicit barier is generated by calling __kmpc_barrier(...) runtime function to be sure that all threads were initialized using original values of the variables.
Differential Revision: http://reviews.llvm.org/D5140


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219297 91177308-0d34-0410-b5e6-96231b3b80d8
Revert commit r219297.
Still troubles with OpenMP/parallel_firstprivate_codegen.cpp (now in ARM buildbots).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219298 91177308-0d34-0410-b5e6-96231b3b80d8
Remove threshold on object size for inserting lifetime begin / end

Boostrapping LLVM+Clang+LLDB without threshold on object size for
lifetime markers insertion has shown there was no significant change
in compile time, so let the stack slot colorizer do its optimization
for all slots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219303 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] Codegen for 'firstprivate' clause.
This patch generates some helper variables that used as private copies of the corresponding original variables inside an OpenMP 'parallel' directive. These generated variables are initialized by copy using values of the original variables (with the copy constructor, if any). For arrays, initializator is generated for single element and in the codegen procedure this initial value is automatically propagated between all elements of the private copy.
In outlined function, references to original variables are replaced by the references to these private helper variables. At the end of the initialization of the private variables an implicit barier is generated by calling __kmpc_barrier(...) runtime function to be sure that all threads were initialized using original values of the variables.
Differential Revision: http://reviews.llvm.org/D5140


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219306 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "Remove threshold on object size for inserting lifetime begin / end"

Revert this patch while I investigate some sanitizer failures off-line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219307 91177308-0d34-0410-b5e6-96231b3b80d8
Fix test OpenMP/parallel_firstprivate_codegen.cpp
Fixed compatibility issues with MSVC mode and ARM target.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219309 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed OpenMP/parallel_firstprivate_codegen.cpp
Fixed compatibility issues on ARM.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219315 91177308-0d34-0410-b5e6-96231b3b80d8
[AVX512] Added VPCMPEQ intrinisics to headers.
Added tests.

Patch by Maxim Blumenthal <maxim.blumenthal@intel.com>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219319 91177308-0d34-0410-b5e6-96231b3b80d8
ms-inline-asm: Correctly mark MS inline ASM labels as used

Summary: This fixes PR21155.

Test Plan: The patch includes a test.

Reviewers: rnk

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D5619

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219322 91177308-0d34-0410-b5e6-96231b3b80d8
Added new headers to CMakeLists.txt.
Fix for rev219319


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219325 91177308-0d34-0410-b5e6-96231b3b80d8
Replace a destructor of EHCleanupScope with a Destroy() method to reflect the current usage.

Summary:
The current code uses memset to re-initialize EHCleanupScope objects
with breaks the assumptions of the upcoming asan's intra-object-overflow checker.
If there is no DTOR, the new checker will refuse to work.

Test Plan: bootstrap with asan

Reviewers: rnk

Reviewed By: rnk

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D5656

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219331 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] 'omp teams' directive basic support.
Includes parsing and semantic analysis for 'omp teams' directive support from OpenMP 4.0. Adds additional analysis to 'omp target' directive with 'omp teams' directive.  


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219385 91177308-0d34-0410-b5e6-96231b3b80d8
Fix for bug http://llvm.org/PR17427.
Assertion failed: "Computed __func__ length differs from type!"
Reworked PredefinedExpr representation with internal StringLiteral field for function declaration.
Differential Revision: http://reviews.llvm.org/D5365


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219393 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Add option to control call argument bin-packing separately

This is desirable for the Chromium style guide:
http://www.chromium.org/developers/coding-style

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219400 91177308-0d34-0410-b5e6-96231b3b80d8
Fix compatibility issues in tests for PredefinedExpr with MSVC.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219405 91177308-0d34-0410-b5e6-96231b3b80d8
Escaping a special character in the documentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219407 91177308-0d34-0410-b5e6-96231b3b80d8
Implement various matchers around template argument handling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219408 91177308-0d34-0410-b5e6-96231b3b80d8
Separated RecursiveASTVisitorTest into multiple files.

Patch by Marek Kurdej.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219410 91177308-0d34-0410-b5e6-96231b3b80d8
Add experimental clang/driver flag -fsanitize-address-field-padding=N

Summary:
This change adds an experimental flag -fsanitize-address-field-padding=N (0, 1, 2)
to clang and driver. With this flag ASAN will be able to detect some cases of
intra-object-overflow bugs,
see https://code.google.com/p/address-sanitizer/wiki/IntraObjectOverflow

There is no actual functionality here yet, just the flag parsing.
The functionality is being reviewed at http://reviews.llvm.org/D5687

Test Plan: Build and run SPEC, LLVM Bootstrap, Chrome with this flag.

Reviewers: samsonov

Reviewed By: samsonov

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D5676

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