Aaron Ballman [Wed, 1 Jun 2016 15:17:54 +0000 (15:17 +0000)]
It seems we need to add SemaExpr.cpp to the /bigobj list; I am getting consistent failures of hitting the section count limit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271399
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Wed, 1 Jun 2016 14:41:41 +0000 (14:41 +0000)]
[Clang][Intrinsics][avx512] Continue Adding round cvt to clang
And remove trailing spaces in intrinsic f test
Differential Revision: http://reviews.llvm.org/D20810
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271398
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaron Keren [Wed, 1 Jun 2016 13:47:26 +0000 (13:47 +0000)]
Fix the CLANG_ENABLE_STATIC_ANALYZER=OFF build.
tools/clang/tools/CMakeLists.txt does not create the
clang-check target when CLANG_ENABLE_STATIC_ANALYZER=OFF.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271392
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Wed, 1 Jun 2016 12:21:00 +0000 (12:21 +0000)]
Adding front-end support to several intrinsics (bit scanning, conversion and state reading intrinsics)
Adding LLVM front-end support to two intrinsics dealing with bit scan: _bit_scan_forward and _bit_scan_reverse.
Their functionality is as described in Intel intrinsics guide:
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_bit_scan_forward&expand=371,370
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_bit_scan_reverse&expand=371,370
Furthermore, adding clang front-end support to these conversion intrinsics: _mm256_cvtsd_f64, _mm256_cvtsi256_si32 and _mm256_cvtss_f32.
Finally, adding tests to all of the above, as well as to the state reading intrinsics _rdpmc and _rdtsc.
Their functionality is also specified in the Intel intrinsics guide.
Commit on behalf of Omer Paparo Bivas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271387
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Wed, 1 Jun 2016 08:34:03 +0000 (08:34 +0000)]
[Clang][Intrinsics][avx512] Adding round intrinsics fot max/min/sqrt instruction set to clang
Differential Revision: http://reviews.llvm.org/D20812
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271373
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Wed, 1 Jun 2016 07:35:44 +0000 (07:35 +0000)]
[Clang][Intrinsics][avx512] Adding round roundscale to clang
Differential Revision: http://reviews.llvm.org/D20815
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271368
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Wed, 1 Jun 2016 04:22:24 +0000 (04:22 +0000)]
CodeGen: tweak CFString emission for COFF targets
The `isa' member was previously not given the correct DLL Storage. Ensure that
we give the `isa' constant `__CFConstantStringClassReference' the correct DLL
storage. Default to dllimport unless an explicit specification gives it a
dllexport storage.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271361
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 31 May 2016 23:22:04 +0000 (23:22 +0000)]
Indexer: add CXObjCPropertyAttr_class for class properties.
rdar://
25963227
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271351
91177308-0d34-0410-b5e6-
96231b3b80d8
Konstantin Zhuravlyov [Tue, 31 May 2016 22:47:11 +0000 (22:47 +0000)]
[AMDGPU] Set default dwarf version to 2
Differential Revision: http://reviews.llvm.org/D20640
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271347
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Tue, 31 May 2016 21:27:13 +0000 (21:27 +0000)]
[CUDA] Conservatively mark inline asm as convergent.
Summary:
This is particularly important because a some convergent CUDA intrinsics
(e.g. __shfl_down) are implemented in terms of inline asm.
Reviewers: tra
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D20836
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271336
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Tue, 31 May 2016 20:35:12 +0000 (20:35 +0000)]
[Coverage] Remove redundant handleFileExit() call (NFC)
I added this call in r271308. It's redundant because it's dominated by a
call to extendRegion().
Thanks to Justin Bogner for pointing this out!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271331
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Tue, 31 May 2016 20:21:38 +0000 (20:21 +0000)]
[CMake] Update to requiring CMake 3.4.3
Summary:
This is as per the discussions on developer lists:
http://lists.llvm.org/pipermail/llvm-dev/2016-April/098780.html
http://lists.llvm.org/pipermail/llvm-dev/2016-May/100058.html
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D20823
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271326
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 31 May 2016 18:46:31 +0000 (18:46 +0000)]
[Parser] Fix look ahead after EOF while parsing objc message and lambdas
If a closing ')' isn't found for a macro instantiation inside a '[',
the next token is EOF, this leads to crashes if we try to look ahead of
that. This could be triggered whenever trying to parse lambdas or objs
message expressions.
Differential Revision: http://reviews.llvm.org/D20451
rdar://problem/
25662647
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271314
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 31 May 2016 18:19:32 +0000 (18:19 +0000)]
PCH + module: make sure we write out macros associated with builtin identifiers.
When we import a module that defines a builtin identifier from prefix header and
precompile the prefix header, the macro information related to the identifier
is lost.
If we don't precompile the prefix header, the source file can still see the
macro information. The reason is that we write out the identifier in the pch
but not the macro information since the macro is not defined locally.
This is related to r251565. In that commit, if we read a builtin identifier from
a module that wasn't "interesting" to that module, we will still write it out to
a PCH that imports that module.
The fix is to write exported module macros for PCH as well.
rdar://
24666630
Differential Revision: http://reviews.llvm.org/D20383
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271310
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Tue, 31 May 2016 18:06:19 +0000 (18:06 +0000)]
[Coverage] Fix crash on a switch partially covered by a macro (PR27948)
We have to handle file exits before and after visiting regions in the
switch body. Fixes PR27948.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271308
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 31 May 2016 17:42:56 +0000 (17:42 +0000)]
Work around MinGW's macro definition of 'interface' to 'struct'
Previous attempts to rename the IBOutletCollection argument to something
other than "Interface" were undone (r127127 and r139620). Instead of
renaming it, work around this in tablegen, so the public facing getter
can have the usual name of 'getInterface'.
Fixes PR26682
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271305
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 31 May 2016 16:58:18 +0000 (16:58 +0000)]
AMDGPU: Update datalayout string
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271297
91177308-0d34-0410-b5e6-
96231b3b80d8
Piotr Padlewski [Tue, 31 May 2016 15:56:26 +0000 (15:56 +0000)]
Fixed bug
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271293
91177308-0d34-0410-b5e6-
96231b3b80d8
Ehsan Akhgari [Tue, 31 May 2016 15:55:51 +0000 (15:55 +0000)]
clang-c: Add the clang_getCursorVisibility() API
This patch adds an API for querying the visibility of the entity
referred to by a cursor.
Patch by Michael Wu <mwu@mozilla.com>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271292
91177308-0d34-0410-b5e6-
96231b3b80d8
Ehsan Akhgari [Tue, 31 May 2016 15:39:10 +0000 (15:39 +0000)]
Revert r253909 because it was committed with an incorrect message
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271291
91177308-0d34-0410-b5e6-
96231b3b80d8
Piotr Padlewski [Tue, 31 May 2016 15:25:05 +0000 (15:25 +0000)]
[ASTMatchers] Breaking change of `has` matcher
has matcher can now match to implicit and paren casts
http://reviews.llvm.org/D20801
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271288
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 31 May 2016 14:14:42 +0000 (14:14 +0000)]
Avoid unused variable warning in release builds.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271280
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Liu [Tue, 31 May 2016 13:34:20 +0000 (13:34 +0000)]
[clang-format] insert new #includes into correct blocks when cleaning up Replacement with cleanupAroundReplacements().
Summary:
When a replacement's offset is set to UINT_MAX or -1U, it is treated as
a header insertion replacement by cleanupAroundReplacements(). The new #include
directive is then inserted into the correct block.
Reviewers: klimek, djasper
Subscribers: klimek, cfe-commits, bkramer
Differential Revision: http://reviews.llvm.org/D20734
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271276
91177308-0d34-0410-b5e6-
96231b3b80d8
Ranjeet Singh [Tue, 31 May 2016 13:31:25 +0000 (13:31 +0000)]
[ARM] Add load/store co-processor intrinsics.
Differential Revision: http://reviews.llvm.org/D20563
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271275
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Tue, 31 May 2016 11:27:34 +0000 (11:27 +0000)]
[Clang][Intrinsics][avx512] Adding round cvt to clang
Differential Revision: http://reviews.llvm.org/D20790
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271265
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Tue, 31 May 2016 11:17:08 +0000 (11:17 +0000)]
[OPENMP] Update in ReleaseNotes for OpenMP support.
Added notes about full support of all non-offloading features of OpenMP
4.5 + info about option -fopenmp-version=[31|40|45] that allows to
control supported OpenMP version.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271263
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 31 May 2016 10:17:46 +0000 (10:17 +0000)]
[CommonOptionsParser] Return source paths as const ref.
This saves a superfluous copy and makes managing the lifetime of the
returned strings a bit easier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271262
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 31 May 2016 06:58:07 +0000 (06:58 +0000)]
[AVX512] Convert masked load builtins to generic masked load intrinsics instead of the x86 specific ones.
This will allow the x86 intrinsics to be removed from the backend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271253
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Tue, 31 May 2016 06:21:27 +0000 (06:21 +0000)]
[MSVC] Fix stack overflow in unqualified type lookup logic, by Will
Wilson.
An unqualified lookup for in base classes may cause stack overflow if
the base class is a specialization of current class.
Patch by Will Wilson.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271251
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 31 May 2016 05:49:13 +0000 (05:49 +0000)]
[X86] Use unaligned load intrinsics to implement other intrinsics instead of manually creating the unaligned load.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271250
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 31 May 2016 01:50:10 +0000 (01:50 +0000)]
[AVX512] Emit generic masked store instrinsics instead of using x86 specific intrinsics.
This will allow us to remove the x86 instrinics from the backend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271246
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 30 May 2016 19:20:55 +0000 (19:20 +0000)]
[X86] Ensure load/store tests unaligned pointers really are align 1
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271227
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Mon, 30 May 2016 18:26:06 +0000 (18:26 +0000)]
CodeGen: address post-commit review comments
David Majnemer pointed out that isOSBinFormatMachO is more compact. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271221
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 30 May 2016 17:58:38 +0000 (17:58 +0000)]
[X86][SSE] Added missing tests (merge failure)
Differential Revision: http://reviews.llvm.org/D20617
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271219
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 30 May 2016 17:55:25 +0000 (17:55 +0000)]
[X86][SSE] _mm_store1_ps/_mm_store1_pd should require an aligned pointer
According to the gcc headers, intel intrinsics docs and msdn codegen the _mm_store1_pd (and its _mm_store_pd1 equivalent) should use an aligned pointer - the clang headers are the only implementation I can find that assume non-aligned stores (by storing with _mm_storeu_pd).
Additionally, according to the intel intrinsics docs and msdn codegen the _mm_store1_ps (_mm_store_ps1) requires a similarly aligned pointer.
This patch raises the alignment requirements to match the other implementations by calling _mm_store_ps/_mm_store_pd instead.
I've also added the missing _mm_store_pd1 intrinsic (which maps to _mm_store1_pd like _mm_store_ps1 does to _mm_store1_ps).
As a followup I'll update the llvm fast-isel tests to match this codegen.
Differential Revision: http://reviews.llvm.org/D20617
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271218
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Mon, 30 May 2016 17:12:55 +0000 (17:12 +0000)]
[CUDA] Fix order of vectorized ldg intrinsics' elements.
Summary: The order is [x, y, z, w], not [w, x, y, z].
Subscribers: cfe-commits, tra
Differential Revision: http://reviews.llvm.org/D20794
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271215
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 30 May 2016 17:10:30 +0000 (17:10 +0000)]
[X86] Replace unaligned store builtins in SSE/AVX intrinsic files with code that will compile to a native unaligned store. Remove the builtins since they are no longer used.
Intrinsics will be removed from llvm in a future commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271214
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Mon, 30 May 2016 16:36:48 +0000 (16:36 +0000)]
test: add explicit targets for some tests
These tests currently expect MachO section names and do not provide a target.
Explicitly provide one.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271212
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Mon, 30 May 2016 16:23:07 +0000 (16:23 +0000)]
CodeGen: tweak CFConstantStrings for COFF and ELF
Adjust the constant CFString emission to emit into more appropriate sections on
ELF and COFF targets. It would previously try to use MachO section names
irrespective of the file format.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271211
91177308-0d34-0410-b5e6-
96231b3b80d8
Etienne Bergeron [Mon, 30 May 2016 15:25:25 +0000 (15:25 +0000)]
[ASTMatchers] Add support of hasCondition for SwitchStmt.
Summary:
The switch statement could be added to the hasCondition matcher.
Example:
```
clang-query> match switchStmt(hasCondition(ignoringImpCasts(declRefExpr())))
```
Output:
```
Match #1:
Binding for "root":
SwitchStmt 0x2f9b528 </usr/local/google/home/etienneb/examples/enum.cc:35:3, line:38:3>
|-<<<NULL>>>
|-ImplicitCastExpr 0x2f9b510 <line:35:11> 'int' <IntegralCast>
| `-ImplicitCastExpr 0x2f9b4f8 <col:11> 'enum Color' <LValueToRValue>
| `-DeclRefExpr 0x2f9b4d0 <col:11> 'enum Color' lvalue Var 0x2f9a118 'C' 'enum Color'
`-CompoundStmt 0x2f9b610 <col:14, line:38:3>
|-CaseStmt 0x2f9b578 <line:36:3, col:22>
| |-ImplicitCastExpr 0x2f9b638 <col:8> 'int' <IntegralCast>
| | `-DeclRefExpr 0x2f9b550 <col:8> 'enum Size' EnumConstant 0x2f99e40 'Small' 'enum Size'
| |-<<<NULL>>>
| `-ReturnStmt 0x2f9b5d0 <col:15, col:22>
| `-IntegerLiteral 0x2f9b5b0 <col:22> 'int' 1
`-DefaultStmt 0x2f9b5f0 <line:37:3, col:12>
`-BreakStmt 0x2f9b5e8 <col:12>
1 match.
```
Reviewers: aaron.ballman, sbenza, klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D20767
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271208
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Mon, 30 May 2016 13:22:12 +0000 (13:22 +0000)]
[Clang][avx512][builtin] Adding missing intrinsics for cvt
Differential Revision: http://reviews.llvm.org/D20618
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271205
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Mon, 30 May 2016 13:05:14 +0000 (13:05 +0000)]
[OPENMP 4.5] Additional codegen for statically scheduled loops with
'simd' modifier.
Runtime library defines new schedule constant kmp_sch_static_balanced_chunked = 45 for static loop-based directives static with chunk adjustment (e.g., simd). Added codegen for this kind of schedule.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271204
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Mon, 30 May 2016 09:06:50 +0000 (09:06 +0000)]
[OPENMP 4.5] Fixed codegen for 'priority' and destructors in task-based
directives.
'kmp_task_t' record type added a new field for 'priority' clause and
changed the representation of pointer to destructors for privates used
within loop-based directives.
Old representation:
typedef struct kmp_task { /* GEH: Shouldn't this be
aligned somehow? */
void *shareds; /**< pointer to block of
pointers to shared vars */
kmp_routine_entry_t routine; /**< pointer to routine
to call for executing task */
kmp_int32 part_id; /**< part id for the
task */
kmp_routine_entry_t destructors; /* pointer to function to
invoke deconstructors of firstprivate C++ objects */
/* private vars */
} kmp_task_t;
New representation:
typedef struct kmp_task { /* GEH: Shouldn't this be
aligned somehow? */
void *shareds; /**< pointer to block of
pointers to shared vars */
kmp_routine_entry_t routine; /**< pointer to routine
to call for executing task */
kmp_int32 part_id; /**< part id for the
task */
kmp_cmplrdata_t data1; /* Two known
optional additions: destructors and priority */
kmp_cmplrdata_t data2; /* Process
destructors first, priority second */
/* future data */
/* private vars */
} kmp_task_t;
Also excessive initialization of 'destructors' fields to 'null' was
removed from codegen if it is known that no destructors shal be used.
Currently a special bit is used in 'kmp_tasking_flags_t' bitfields
('destructors_thunk' bitfield).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271201
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Mon, 30 May 2016 06:42:48 +0000 (06:42 +0000)]
[OpenCL] Remove tests without triple from test/Headers/opencl-c-header.cl.
This test requires triples with Itanium C++ ABI whereas triples with MSVC environment uses Microsoft C++ ABI.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271198
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Mon, 30 May 2016 02:22:28 +0000 (02:22 +0000)]
[OpenCL] Add the default header file opencl-c.h for OpenCL C language
OpenCL has large number of "builtin" functions ("builtin" in the sense of OpenCL spec) which are defined in header files. To compile OpenCL kernels using these builtin functions, a header file is needed.
This header file is based on the Khronos implementation (https://github.com/KhronosGroup/SPIR/blob/spirv-1.0/lib/Headers/opencl.h) with heavy refactoring.
Re-commit after fixing failures on ppc64/systemz etc.
Differential Revision: http://reviews.llvm.org/D18369
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271197
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 29 May 2016 22:07:22 +0000 (22:07 +0000)]
clang-format: Fix segfault introduced by allowing wraps after comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271191
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 29 May 2016 19:50:23 +0000 (19:50 +0000)]
Enable some accidentally dead tests and fix up the bitrot
Problem found by Nico, originally committed by me in r213213. The .test
prefix wasn't actually being run. Once that was fixed the test cases had
outdated command line syntax and IR debug info format, so updated for
those issues to get them back up and running.
Thanks Nico!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271188
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 29 May 2016 18:49:08 +0000 (18:49 +0000)]
[X86][SSE] Make unsigned integer vector types generally available
As discussed on http://reviews.llvm.org/D20684, move the unsigned integer vector types used for zero extension to make them available for general use.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271187
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Probst [Sun, 29 May 2016 14:41:36 +0000 (14:41 +0000)]
clang-format: [JS] Support shebang lines on the very first line.
Summary:
Shebang lines (`#!/bin/blah`) can be used in JavaScript scripts to indicate
they should be run using e.g. node. This change treats # lines on the first line
as line comments.
Reviewers: djasper
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D20632
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271185
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Probst [Sun, 29 May 2016 14:41:07 +0000 (14:41 +0000)]
clang-format: [JS] fix async parsing.
Summary:
Only treat the sequence `async function` as the start of a function expression,
as opposed to every occurrence of the token `async` (whoops).
Reviewers: djasper
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D20737
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271184
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Probst [Sun, 29 May 2016 14:41:02 +0000 (14:41 +0000)]
clang-format: [JS] FormatToken.startsSequence/endsSequence.
Refactors AnnotatedLine.startsWith/endsWith by extracting the core functionality
into FormatToken.startsSequence/endsSequence. This allows checking tokens within
the pointered linked list structure with a lookahead, automatically ignoring
comments, which is useful in many places (e.g. see subsequent commit).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271183
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 29 May 2016 11:04:56 +0000 (11:04 +0000)]
Avoid unnecessary std::string copies. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271182
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 29 May 2016 07:06:02 +0000 (07:06 +0000)]
[X86] Simplify alignr builtin support by recognizing that NumLaneElts is always 16. NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271176
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 29 May 2016 03:03:22 +0000 (03:03 +0000)]
Fix typo.
Thanks to David Majnemer for noticing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271166
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 29 May 2016 02:39:30 +0000 (02:39 +0000)]
[CodeGen] Use the ArrayRef form CreateShuffleVector instead of building ConstantVectors or ConstantDataVectors and calling the other form.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271165
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 29 May 2016 02:36:16 +0000 (02:36 +0000)]
Mark test as requiring x86-registered-target.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271163
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 29 May 2016 02:01:14 +0000 (02:01 +0000)]
Handle -Wa,--mrelax-relocations=[no|yes].
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271162
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Sat, 28 May 2016 19:50:40 +0000 (19:50 +0000)]
Revert r271136 [OpenCL] Add the default header file opencl-c.h for OpenCL C language due to build failure on ppc64/hexagon/systemz.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271144
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sat, 28 May 2016 19:41:35 +0000 (19:41 +0000)]
CodeGen: support blocks on COFF targets in DLLs
This extends the blocks support to support blocks with a dynamically linked
blocks runtime. The previous code generation would work only for static builds
of the blocks runtime. Mark the block "isa" pointers and functions as dllimport
if no explicit declaration marked with __declspec(dllexport) is found. This
additional check allows for the use of the functionality in the runtime library
if desired.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271138
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Sat, 28 May 2016 19:09:01 +0000 (19:09 +0000)]
[OpenCL] Add the default header file opencl-c.h for OpenCL C language
OpenCL has large number of "builtin" functions ("builtin" in the sense of OpenCL spec) which are defined in header files. To compile OpenCL kernels using these builtin functions, a header file is needed.
This header file is based on the Khronos implementation (https://github.com/KhronosGroup/SPIR/blob/spirv-1.0/lib/Headers/opencl.h) with heavy refactoring.
Differential Revision: http://reviews.llvm.org/D18369
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271136
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 28 May 2016 18:59:06 +0000 (18:59 +0000)]
[AVX512] Add masked v16i32 and v8i64 unaligned store tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271134
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Sat, 28 May 2016 09:44:15 +0000 (09:44 +0000)]
[driver][mips] Fix local variable naming. NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271110
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Sat, 28 May 2016 09:44:04 +0000 (09:44 +0000)]
[driver][mips] Revert support for CodeSourcery MIPS toolchain
This is revert of r270366. The support for CS toolchain were dropped too early.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271109
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 28 May 2016 08:12:45 +0000 (08:12 +0000)]
[X86][SSE] Replace VPMOVSX and (V)PMOVZX integer extension intrinsics with generic IR (clang)
The VPMOVSX and (V)PMOVZX sign/zero extension intrinsics can be safely represented as generic __builtin_convertvector calls instead of x86 intrinsics.
This patch removes the clang builtins and their use in the sse2/avx headers - a companion patch will remove/auto-upgrade the llvm intrinsics.
Note: We already did this for SSE41 PMOVSX sometime ago.
Differential Revision: http://reviews.llvm.org/D20684
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271106
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 28 May 2016 00:43:27 +0000 (00:43 +0000)]
AMDGPU: Add fract builtin
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271080
91177308-0d34-0410-b5e6-
96231b3b80d8
Ekaterina Romanova [Sat, 28 May 2016 00:18:59 +0000 (00:18 +0000)]
Clean up: remove trailing spaces in x86 intrinsic headers.
Differential Revision: http://reviews.llvm.org/D20614
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271077
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 27 May 2016 22:31:30 +0000 (22:31 +0000)]
docs: Clarify that LTO visibility is based on source-level symbol visibility.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271063
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Fri, 27 May 2016 20:43:00 +0000 (20:43 +0000)]
[Driver] Fix driver support for color diagnostics
Diagnostics that happen during driver time do not have color output support
unless -fcolor-diagonostic is explicitly passed into the driver. This is not a
problem for cc1 since dianostic arguments are properly handled and color is
enabled by default if the terminal supports it.
Make the driver behave like CC1. There are tests that already check for these
flags, but for the color itself there's no sensible way to test it.
Differential Revision: http://reviews.llvm.org/D20404
rdar://problem/
26290980
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271042
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 27 May 2016 17:57:23 +0000 (17:57 +0000)]
[Headers] Remove redundant typedef. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271022
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Fri, 27 May 2016 16:14:35 +0000 (16:14 +0000)]
Add instcombine pass if sampleprofile pass is enabled.
Summary: Sample profile pass need to have instcombine pass. A related change is http://reviews.llvm.org/D17742. But we should not explicitly add dependency between to non-analysis passes. So we add the dependency here.
Reviewers: davidxl, dnovillo
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20502
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271010
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 27 May 2016 15:49:32 +0000 (15:49 +0000)]
[msan] add a sentence about inline assembly
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271005
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Antao [Fri, 27 May 2016 15:21:27 +0000 (15:21 +0000)]
[OpenMP] Fix SEMA bug in the capture of global variables in template functions.
Summary:
Target regions require globals to be captured. This patch fixes a bug exposed when that happens in a template function.
Reviewers: hfinkel, arpith-jacob, kkwli0, carlo.bertolli, ABataev
Subscribers: guansong, ABataev, cfe-commits, caomhin, fraggamuffin
Differential Revision: http://reviews.llvm.org/D18110
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271001
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Fri, 27 May 2016 15:13:31 +0000 (15:13 +0000)]
[mips] Compact branch policy setting.
This patch adds the commandline option -mcompact-branches={never,optimal,always),
which controls how LLVM generates compact branches for MIPSR6 targets. By default,
the compact branch policy is 'optimal' where LLVM will generate the most
appropriate branch for any situation. The 'never' and 'always' policy will disable
or always generate compact branches wherever possible respectfully.
Reviewers: dsanders, vkalintiris, atanasyan
Differential Revision: http://reviews.llvm.org/D20729
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271000
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 27 May 2016 14:30:23 +0000 (14:30 +0000)]
[mips] Kill 'support' for untested EABI.
Summary:
There are no llvm backend tests* for EABI and no EABI buildbots. There were only
three clang tests, all of which checked that -mabi=eabi was passed to the
assembler.
*There is a single backend test that specifies EABI but it actually tests MIPS16.
Reviewers: atanasyan
Subscribers: emaste, sdardis, atanasyan, cfe-commits
Differential Revision: http://reviews.llvm.org/D20679
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270998
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 14:27:13 +0000 (14:27 +0000)]
Apply clang-tidy's misc-move-constructor-init throughout Clang.
No functionality change intended, maybe a tiny performance improvement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270996
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 13:36:58 +0000 (13:36 +0000)]
Turn copies into references as suggested by clang-tidy's performance-unnecessary-copy-initialization.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270994
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 12:52:19 +0000 (12:52 +0000)]
[Frontend] StringRefize and fix bad indentation.
NFC intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270991
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 27 May 2016 12:15:25 +0000 (12:15 +0000)]
Update for following LLVM commit.
It will be:
Recommit 270977 - [llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270985
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 27 May 2016 11:51:02 +0000 (11:51 +0000)]
[mips] Fold MipsTargetInfoBase subclasses into MipsTargetInfoBase and rename to MipsTargetInfo. NFC
Summary:
This unifies mips/mipsel and mips64/mips64el into a single class so that we can
later support O32 on mips64/mips64el and N32/N64 on mips/mipsel (when an
appropriate CPU selected).
Reviewers: atanasyan
Subscribers: atanasyan, jfb, cfe-commits, dschuff
Differential Revision: http://reviews.llvm.org/D20678
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270984
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 11:48:53 +0000 (11:48 +0000)]
Convert assert to static_assert. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270983
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 27 May 2016 08:59:34 +0000 (08:59 +0000)]
clang-format: Allow splitting the line after /**/-comments.
While it might change the meaning of the comment in rare circumstances,
it is better than violating the column limit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270975
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitry Polukhin [Fri, 27 May 2016 08:52:34 +0000 (08:52 +0000)]
[MSVC2015] Fix mangling for static variables initialization guards
It seems that suffix '@4HA' was omitted for unknown reason. It is
non-cont non-volatile 'int' type of normal variable TSS.
Differential revision: http://reviews.llvm.org/D20683
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270974
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Liu [Fri, 27 May 2016 08:20:02 +0000 (08:20 +0000)]
[clang-format] moved unit tests related to replacements cleaner from FormatTest.cpp to CleanUpTest.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270971
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 27 May 2016 06:59:39 +0000 (06:59 +0000)]
[AVX512][Builtin] Fix palignr intrinsic for avx512vlbw. The immediate should not be multiplied by 8.
The 512-bit version was fixed recently but this was missed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270970
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Fri, 27 May 2016 04:13:39 +0000 (04:13 +0000)]
[OPENMP] Fixed processing of '-fopenmp-version=' option and test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270962
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 02:06:19 +0000 (02:06 +0000)]
[CodeGen] Don't crash when sizeof(long) != 4 for some intrins
_InterlockedIncrement and _InterlockedDecrement have 'long' in their
prototypes. We assumed 'long' was the same size as an i32 which is
incorrect for other targets.
This fixes PR27892.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270953
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 02:06:14 +0000 (02:06 +0000)]
[Intrin.h] Sort the __read[fg]s intrinsics
No functional change is intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270952
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 27 May 2016 00:15:11 +0000 (00:15 +0000)]
OpenMPClause.h: Fix r270882. [-Wdocumentation]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270940
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 26 May 2016 20:23:13 +0000 (20:23 +0000)]
Produce better pretty stack traces from crashes in template instantiation: add
pretty stack trace entries for all cases where we instantiate the definition of
something, and include the fully-qualified name with template arguments in the
name of the instantiated entity.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270904
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 26 May 2016 19:42:56 +0000 (19:42 +0000)]
Re-commit r270748 "clang-cl: Treat dllimport explicit template instantiation definitions as declarations (PR27810, PR27811)"
Also make explicit instantiation decls not apply to nested classes when
targeting MSVC. That dll attributes are not inherited by inner classes
might be the explanation for MSVC's behaviour here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270897
91177308-0d34-0410-b5e6-
96231b3b80d8
Konstantin Zhuravlyov [Thu, 26 May 2016 19:36:39 +0000 (19:36 +0000)]
[AMDGPU] Remove individual debugger options + update features
Differential Revision: http://reviews.llvm.org/D20336
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270895
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Antao [Thu, 26 May 2016 18:30:22 +0000 (18:30 +0000)]
[OpenMP] Codegen for target update directive.
Summary: This patch implements the code generation for the `target update` directive. The implemntation relies on the logic already in place for target data standalone directives, i.e. target enter/exit data.
Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev
Subscribers: caomhin, cfe-commits
Differential Revision: http://reviews.llvm.org/D20650
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270886
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Antao [Thu, 26 May 2016 17:49:04 +0000 (17:49 +0000)]
[OpenMP] Parsing and sema support for the from clause
Summary:
The patch contains the parsing and sema support for the `from` clause.
Patch based on the original post by Kelvin Li.
Reviewers: hfinkel, carlo.bertolli, kkwli0, arpith-jacob, ABataev
Subscribers: caomhin, cfe-commits
Differential Revision: http://reviews.llvm.org/D18488
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270882
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Antao [Thu, 26 May 2016 17:39:58 +0000 (17:39 +0000)]
[OpenMP] Parsing and sema support for the to clause
Summary:
The patch contains the parsing and sema support for the `to` clause.
Patch based on the original post by Kelvin Li.
Reviewers: carlo.bertolli, hfinkel, kkwli0, arpith-jacob, ABataev
Subscribers: caomhin, cfe-commits
Differential Revision: http://reviews.llvm.org/D18597
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270880
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Antao [Thu, 26 May 2016 17:30:50 +0000 (17:30 +0000)]
[OpenMP] Parsing and sema support for target update directive
Summary:
This patch is to add parsing and sema support for `target update` directive. Support for the `to` and `from` clauses will be added by a different patch. This patch also adds support for other clauses that are already implemented upstream and apply to `target update`, e.g. `device` and `if`.
This patch is based on the original post by Kelvin Li.
Reviewers: hfinkel, carlo.bertolli, kkwli0, arpith-jacob, ABataev
Subscribers: caomhin, cfe-commits
Differential Revision: http://reviews.llvm.org/D15944
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270878
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Antao [Thu, 26 May 2016 16:53:38 +0000 (16:53 +0000)]
[OpenMP] Add support for the 'private pointer' flag to signal variables captured in target regions and used in first-private clauses.
Summary: If a variable is implicitly mapped (doesn't show in a map clause), the runtime library has to be informed if the corresponding capture shows up in first-private clause, so that the storage previously allocated in the device is used. This patch adds the support for that.
Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev
Subscribers: caomhin, cfe-commits
Differential Revision: http://reviews.llvm.org/D20112
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270870
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Antao [Thu, 26 May 2016 16:48:10 +0000 (16:48 +0000)]
[OpenMP] Adjust map type bits according to latest spec and use zero size array sections for pointers.
Summary: This patch changes the bits used to specify the map types according to the latest version of the libomptarget document and add the support for zero size array section when pointers are being implicitly mapped. This completes the missing new 4.5 map semantics.
Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev
Subscribers: caomhin, cfe-commits
Differential Revision: http://reviews.llvm.org/D20111
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270868
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Thu, 26 May 2016 14:32:11 +0000 (14:32 +0000)]
Adding missing _mm512_castsi512_si256 intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270851
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Eveson [Thu, 26 May 2016 14:02:17 +0000 (14:02 +0000)]
[Analyzer] Correct stack address escape diagnostic
Summary:
Leaking a stack address via a static variable refers to it in the diagnostic as a 'global'. This patch corrects the diagnostic for static variables.
Patch by Phil Camp, SN Systems
Reviewers: dcoughlin, zaks.anna
Subscribers: xazax.hun, cfe-commits
Differential Revision: http://reviews.llvm.org/D19866
Patch by Phil Camp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270849
91177308-0d34-0410-b5e6-
96231b3b80d8
Olivier Goffart [Thu, 26 May 2016 12:55:34 +0000 (12:55 +0000)]
Fix crash while parsing variable template with variadic template arguments
It is only a crash if the compiler optimize for this!=nullptr because
LocalInstantiationScope::getPartiallySubstitutedPack checks if 'this' is null
(This is crashing when clang is compiled with GCC6)
Differential Revision: http://reviews.llvm.org/D20511
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270845
91177308-0d34-0410-b5e6-
96231b3b80d8