Alexey Bataev
182227bd5b
[OPENMP 4.1] Initial support for modifiers in 'linear' clause.
...
OpenMP 4.1 adds 3 optional modifiers to 'linear' clause.
Format of 'linear' clause has changed to:
```
linear(linear-list[ : linear-step])
```
where linear-list is one of the following
```
list
modifier(list)
```
where modifier is one of the following:
```
ref (C++)
val (C/C++)
uval (C++)
```
Patch adds parsing and sema analysis for these modifiers.
llvm-svn: 245550
2015-08-20 10:54:39 +00:00
Michael Wong
e710d5459e
This patch commits OpenMP 4 target device clauses
...
This is committed on behalf of Kelvin Li
http://reviews.llvm.org/D11469?id=31227
llvm-svn: 244325
2015-08-07 16:16:36 +00:00
Alexey Bataev
10e775f4a8
[OPENMP 4.1] Initial support for extended 'ordered' clause.
...
OpenMP 4.1 introduces optional argument '(n)' for 'ordered' clause, where 'n' is a number of loops that immediately follow the directive.
'n' must be constant positive integer expressions and it must be less or equal than the number of the loops in the resulting loop nest.
Patch adds parsing and semantic analysis for this optional argument.
llvm-svn: 243635
2015-07-30 11:36:16 +00:00
Samuel Antao
5b0688edfd
[OpenMP] Make target data directive generate unexpected directive diagnostic.
...
llvm-svn: 242906
2015-07-22 16:02:46 +00:00
Daniel Jasper
9aea860ca2
Add missing parentheses to appease -Wlogical-op-parentheses.
...
Add missing case to appease -Wswitch.
llvm-svn: 242797
2015-07-21 16:18:51 +00:00
Michael Wong
65f367fcbb
Commit for http://reviews.llvm.org/D10765
...
for OpenMP 4 target data directive parsing and sema.
This commit is on behalf of Kelvin Li.
llvm-svn: 242785
2015-07-21 13:44:28 +00:00
Alexey Bataev
80909878ad
[OPENMP 4.0] Initial support for 'omp cancel' construct.
...
Implemented parsing/sema analysis + (de)serialization.
llvm-svn: 241253
2015-07-02 11:25:17 +00:00
Alexey Bataev
6d4ed05830
[OPENMP 4.0] Initial support for 'omp cancellation point' construct.
...
Add parsing and sema analysis for 'omp cancellation point' directive.
llvm-svn: 241145
2015-07-01 06:57:41 +00:00
Alexey Bataev
1c2cfbc3ea
[OPENMP] Initial support for 'depend' clause (4.0).
...
Parsing and sema analysis (without support for array sections in arguments) for 'depend' clause (used in 'task' directive, OpenMP 4.0).
llvm-svn: 240409
2015-06-23 14:25:19 +00:00
Alexey Bataev
aac108a324
[OPENMP] Do not emit references to original variables in 'private' clause.
...
Currently if the variable is captured in captured region, capture record for this region stores reference to this variable for future use. But we don't need to provide the reference to the original variable if it was explicitly marked as private in the 'private' clause of the OpenMP construct, this variable is replaced by private copy.
Differential Revision: http://reviews.llvm.org/D9550
llvm-svn: 240377
2015-06-23 04:51:00 +00:00
Alexey Bataev
c30dd2daf9
[OPENMP] Support for '#pragma omp taskgroup' directive.
...
Added parsing, sema analysis and codegen for '#pragma omp taskgroup' directive (OpenMP 4.0).
The code for directive is generated the following way:
#pragma omp taskgroup
<body>
void __kmpc_taskgroup(<loc>, thread_id);
<body>
void __kmpc_end_taskgroup(<loc>, thread_id);
llvm-svn: 240011
2015-06-18 12:14:09 +00:00
Alexey Bataev
39f915b8f4
[OPENMP] Code cleanup for capturing of variables in OpenMP regions.
...
llvm-svn: 236821
2015-05-08 10:41:21 +00:00
Alexey Bataev
a8d4a54346
[OPENMP] Fix crash on private variables not used in OpenMP region.
...
llvm-svn: 233902
2015-04-02 07:48:16 +00:00
Kaelyn Takata
1586782767
Enable ActOnIdExpression to use delayed typo correction for non-C++ code
...
when calling DiagnoseEmptyLookup.
llvm-svn: 222551
2014-11-21 18:48:04 +00:00
Kaelyn Takata
b16e632c64
Wire up delayed typo correction to DiagnoseEmptyLookup and set up
...
Sema::ActOnIdExpression to use the new functionality.
Among other things, this allows recovery in several cases where it
wasn't possible before (e.g. correcting a mistyped static_cast<>).
llvm-svn: 222464
2014-11-20 22:06:40 +00:00
Alexey Bataev
13314bf526
[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.
llvm-svn: 219385
2014-10-09 04:18:56 +00:00
Renato Golin
9804fa5d48
Revert "[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."
...
This reverts commit r219197 because it broke ARM self-hosting buildbots with
segmentation fault errors in many tests.
llvm-svn: 219289
2014-10-08 09:06:45 +00:00
Alexey Bataev
941bbec6f4
[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.
llvm-svn: 219197
2014-10-07 10:13:33 +00:00
Alexander Musman
e4e893bb36
[OPENMP] Parsing/Sema of directive omp parallel for simd
...
llvm-svn: 218299
2014-09-23 09:33:00 +00:00
Alexey Bataev
0bd520b767
[OPENMP] Initial parsing/sema analysis of 'target' directive.
...
llvm-svn: 218110
2014-09-19 08:19:49 +00:00
Alexander Musman
f82886e502
Parsing/Sema of directive omp for simd
...
llvm-svn: 218029
2014-09-18 05:12:34 +00:00
Alexey Bataev
82bad8b026
[OPENMP] Initial parsing and sema analysis for clause 'seq_cst' of 'atomic' directive.
...
llvm-svn: 213846
2014-07-24 08:55:34 +00:00
Alexey Bataev
459dec0ca2
[OPENMP] Initial parsing and sema analysis for clause 'capture' in 'atomic' directive.
...
llvm-svn: 213842
2014-07-24 06:46:57 +00:00
Alexey Bataev
67a4f22f12
[OPENMP] Initial parsing and sema analysis for 'update' clause of 'atomic' directive.
...
llvm-svn: 213735
2014-07-23 10:25:33 +00:00
Alexey Bataev
dea4761c06
[OPENMP] Initial parsing an sema analysis for 'write' clause of 'atomic' directive.
...
llvm-svn: 213728
2014-07-23 07:46:59 +00:00
Alexey Bataev
f98b00c33e
[OPENMP] Initial parsing and sema analysis for 'read' clause in 'atomic' directive.
...
llvm-svn: 213717
2014-07-23 02:27:21 +00:00
Alexey Bataev
0162e459ef
[OPENMP] Initial parsing and sema analysis for 'atomic' directive.
...
llvm-svn: 213639
2014-07-22 10:10:35 +00:00
Alexey Bataev
9fb6e647e7
[OPENMP] Initial parsing and sema analysis for 'ordered' directive.
...
llvm-svn: 213616
2014-07-22 06:45:04 +00:00
Alexey Bataev
6125da9258
[OPENMP] Initial parsing and sema analysis for 'flush' directive.
...
llvm-svn: 213512
2014-07-21 11:26:11 +00:00
Alexander Musman
d9ed09f7a5
[OPENMP] Parsing/Sema of the OpenMP directive 'critical'.
...
llvm-svn: 213510
2014-07-21 09:42:05 +00:00
Alexey Bataev
2df347ad96
[OPENMP] Initial parsing and sema analysis for 'taskwait' directive.
...
llvm-svn: 213363
2014-07-18 10:17:07 +00:00
Alexey Bataev
4d1dfeabc9
[OPENMP] Initial parsing and sema analysis for 'barrier' directive.
...
llvm-svn: 213360
2014-07-18 09:11:51 +00:00
Alexey Bataev
68446b7253
[OPENMP] Initial parsing and sema analysis of 'taskyield' directive.
...
llvm-svn: 213355
2014-07-18 07:47:19 +00:00
Alexey Bataev
74ba3a5880
[OPENMP] Initial parsing and sema analysis of 'mergeable' clause.
...
llvm-svn: 213262
2014-07-17 12:47:03 +00:00
Alexey Bataev
7aea99a310
[OPENMP] Initial support for parsing and sema analysis of 'untied' clause.
...
llvm-svn: 213257
2014-07-17 12:19:31 +00:00
Alexander Musman
80c2289a03
[OPENMP] Parsing/Sema analysis of directive 'master'
...
llvm-svn: 213237
2014-07-17 08:54:58 +00:00
Alexey Bataev
3778b60176
[OPENMP] Initial parsing and sema analysis for 'final' clause.
...
llvm-svn: 213232
2014-07-17 07:32:53 +00:00
Alexey Bataev
9c2e8ee72f
[OPENMP] Parsing and sema analysis for 'omp task' directive.
...
llvm-svn: 212804
2014-07-11 11:25:16 +00:00
Alexey Bataev
84d0b3efee
[OPENMP] Parsing and sema analysis for 'omp parallel sections' directive.
...
llvm-svn: 212516
2014-07-08 08:12:03 +00:00
Alexey Bataev
4acb859fbd
[OPENMP] Added initial support for 'omp parallel for'.
...
llvm-svn: 212453
2014-07-07 13:01:15 +00:00
Alexey Bataev
bae9a793fd
[OPENMP] Parsing and sema analysis for 'copyprivate' clause.
...
llvm-svn: 211886
2014-06-27 10:37:06 +00:00
Alexey Bataev
d1e40fbfe1
[OPENMP] Initial parsing and sema analysis for 'single' directive.
...
llvm-svn: 211774
2014-06-26 12:05:45 +00:00
Alexey Bataev
1e0498a92d
[OPENMP] Initial parsing and sema analysis for 'section' directive.
...
llvm-svn: 211767
2014-06-26 08:21:58 +00:00
Alexey Bataev
d3f8dd2d15
[OPENMP] Initial support for 'sections' directive.
...
llvm-svn: 211685
2014-06-25 11:44:49 +00:00
Alexey Bataev
236070f20d
[OPENMP] Initial support for 'nowait' clause.
...
llvm-svn: 211352
2014-06-20 11:19:47 +00:00
Alexey Bataev
142e1fc9ea
[OPENMP] Initial support for 'ordered' clause.
...
llvm-svn: 211347
2014-06-20 09:44:06 +00:00
Alexey Bataev
56dafe87c2
[OPENMP] Initial support for 'schedule' clause.
...
llvm-svn: 211342
2014-06-20 07:16:17 +00:00
Alexey Bataev
23b6942634
[OPENMP] Reformatting and code improvement.
...
llvm-svn: 211147
2014-06-18 07:08:49 +00:00
Alexey Bataev
f29276edb7
[OPENMP] Initial support for '#pragma omp for' (fixed incompatibility with MSVC).
...
llvm-svn: 211140
2014-06-18 04:14:57 +00:00
Rafael Espindola
a566efbec9
Revert "[OPENMP] Initial support for '#pragma omp for'."
...
This reverts commit r211096. Looks like it broke the msvc build:
SemaOpenMP.cpp(140) : error C4519: default template arguments are only allowed on a class template
llvm-svn: 211113
2014-06-17 17:20:53 +00:00
Alexey Bataev
c77dd5257a
[OPENMP] Initial support for '#pragma omp for'.
...
llvm-svn: 211096
2014-06-17 11:49:22 +00:00
Alexey Bataev
c5e025831b
[OPENMP] Initial support of 'reduction' clause
...
llvm-svn: 211007
2014-06-16 07:08:35 +00:00
Alexander Musman
1bb328cca5
[OPENMP] Parsing/Sema for OMPLasprivateClause.
...
Parsing this clause, allowing it on directive ‘omp simd’ and semantic checks.
llvm-svn: 210184
2014-06-04 13:06:39 +00:00
Alexander Musman
a8e9d2eccc
[OPENMP] Loop canonical form analysis (Sema)
...
This patch implements semantic analysis to make sure that the loop is in OpenMP canonical form.
This is the form required for 'omp simd', 'omp for' and other loop pragmas.
Differential revision: http://reviews.llvm.org/D3778
llvm-svn: 210095
2014-06-03 10:16:47 +00:00
Alexander Musman
f0d76e7dc3
Parsing/Sema for OMPAlignedClause.
...
llvm-svn: 209816
2014-05-29 14:36:25 +00:00
Nikola Smiljanic
01a7598561
Refactoring. Remove release and take methods from ActionResult. Rename takeAs to getAs.
...
llvm-svn: 209800
2014-05-29 10:55:11 +00:00
Alexey Bataev
a55ed26abf
[OPENMP] Reformatting of parsing code for OpenMP constructs.
...
llvm-svn: 209714
2014-05-28 06:15:33 +00:00
Alexander Musman
8bd31e69a4
Parsing/Sema for OMPCollapseClause.
...
Actual usage in Sema for collapsing loops will in some future patch.
llvm-svn: 209660
2014-05-27 15:12:19 +00:00
Craig Topper
161e4db52f
[C++11] Use 'nullptr'. Parser edition.
...
llvm-svn: 209275
2014-05-21 06:02:52 +00:00
Alexey Bataev
4ca40eda36
[OPENMP] Removed unnecessary enums from OpenMP constructs
...
llvm-svn: 208516
2014-05-12 04:23:46 +00:00
Alexey Bataev
9959db5fa9
[OPENMP] Initial codegen for '#pragma omp parallel'
...
llvm-svn: 208077
2014-05-06 10:08:46 +00:00
Alexey Bataev
bcbadb65ab
[OPENMP] 'proc_bind' clause support - Parsing and sema analysis for OpenMP clause 'proc_bind'
...
llvm-svn: 208060
2014-05-06 06:04:14 +00:00
Alexander Musman
8dba66412b
[OPENMP] parsing 'linear' clause (for directive 'omp simd')
...
Differential Revision: http://reviews.llvm.org/D3272
llvm-svn: 206891
2014-04-22 13:09:42 +00:00
Alexey Bataev
d48bcd8a46
[OPENMP] Implemented 'copyin' clause
...
llvm-svn: 205164
2014-03-31 03:36:38 +00:00
Alexey Bataev
62c87d2509
[OPENMP] parsing of clause 'safelen' (for directive 'omp simd')
...
llvm-svn: 204428
2014-03-21 04:51:18 +00:00
Alexey Bataev
568a833f68
[OPENMP] Clause 'num_threads'
...
llvm-svn: 203087
2014-03-06 06:15:19 +00:00
Alexey Bataev
18a3764b4f
[OPENMP] emit error message for clause 'if(1 0)'
...
llvm-svn: 202942
2014-03-05 06:53:13 +00:00
Alexey Bataev
1b59ab5683
[OPENMP] First changes for Parsing and Sema for 'omp simd' directive support
...
llvm-svn: 202360
2014-02-27 08:29:12 +00:00
Alexey Bataev
aadd52e5cc
[OPENMP] 'if' clause support (no CodeGen support)
...
llvm-svn: 201297
2014-02-13 05:29:23 +00:00
David Majnemer
8896981056
Basic: Clean up malformed pragma diagnostics
...
Create a new diagnostic, -Wignored-pragmas and use it to handle any
case where a pragma would have a side effect but is ignored.
llvm-svn: 201102
2014-02-10 19:06:37 +00:00
Chandler Carruth
5553d0d4ca
Sort all the #include lines with LLVM's utils/sort_includes.py which
...
encodes the canonical rules for LLVM's style. I noticed this had drifted
quite a bit when cleaning up LLVM, so wanted to clean up Clang as well.
llvm-svn: 198686
2014-01-07 11:51:46 +00:00
Alp Toker
ec543279db
Support and use token kinds as diagnostic arguments
...
Introduce proper facilities to render token spellings using the diagnostic
formatter.
Replaces most of the hard-coded diagnostic messages related to expected tokens,
which all shared the same semantics but had to be multiply defined due to
variations in token order or quote marks.
The associated parser changes are largely mechanical but they expose
commonality in whole chunks of the parser that can now be factored away.
This commit uses C++11 typed enums along with a speculative legacy fallback
until the transition is complete.
Requires corresponding changes in LLVM r197895.
llvm-svn: 197972
2013-12-24 09:48:30 +00:00
Alp Toker
d751fa7868
Revert "[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and parens"
...
These parser changes were redundant. The same or better recovery can be
achieved with a one-line fix to SkipUntil() due to land in the next commit.
This reverts commit r197553.
llvm-svn: 197597
2013-12-18 19:10:49 +00:00
Alexey Bataev
cb164ab273
[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and parens
...
llvm-svn: 197553
2013-12-18 08:46:25 +00:00
Alexey Bataev
ee6507dfdc
Replaced bool parameters in SkipUntil function with single bit-based parameter.
...
llvm-svn: 194994
2013-11-18 08:17:37 +00:00
Alexey Bataev
d5af8e472d
[OpenMP] Added parsing and semantic analysis for firstprivate clause
...
llvm-svn: 191730
2013-10-01 05:32:34 +00:00
Alexey Bataev
758e55ee58
OpenMP: Data-sharing attributes analysis and clause 'shared' (fixed test threadprivate_messages.cpp)
...
llvm-svn: 190183
2013-09-06 18:03:48 +00:00
Rafael Espindola
e892ccec0d
Revert "OpenMP: Data-sharing attributes analysis and clause 'shared'"
...
This reverts commit r189795.
threadprivate_messages.cpp is faling on windows.
llvm-svn: 189811
2013-09-03 14:33:09 +00:00
Alexey Bataev
d4183dabd7
OpenMP: Data-sharing attributes analysis and clause 'shared'
...
llvm-svn: 189795
2013-09-03 12:55:52 +00:00
Benjamin Kramer
a3d5304ec0
Silence GCC warning for using both enum and unsigned in a ternary expr.
...
llvm-svn: 186762
2013-07-20 12:06:17 +00:00
Alexey Bataev
5ec3eb11fc
OpenMP: basic support for #pragma omp parallel
...
llvm-svn: 186647
2013-07-19 03:13:43 +00:00
Alexey Bataev
6f6f3b4baf
OpenMP threadprivate with qualified names.
...
llvm-svn: 181683
2013-05-13 04:18:18 +00:00
Alexey Bataev
a769e07232
OpenMP threadprivate directive parsing and semantic analysis
...
llvm-svn: 177705
2013-03-22 06:34:35 +00:00