Alexey Bataev
e7a5517a58
[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
llvm-svn: 219295
2014-10-08 10:42:55 +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
a5f070aec0
[OPENMP] Loop collapsing and codegen for 'omp simd' directive.
...
This patch implements collapsing of the loops (in particular, in
presense of clause 'collapse'). It calculates number of iterations N
and expressions nesessary to calculate the nested loops counters
values based on new iteration variable (that goes from 0 to N-1)
in Sema. It also adds Codegen for 'omp simd', which uses
(and tests) this feature.
Differential Revision: http://reviews.llvm.org/D5184
llvm-svn: 218743
2014-10-01 06:03:56 +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
Alexander Musman
3aaab669c8
[OPENMP] Extract common superclass from all the loop directives. No functional changes (having common superclass is convenient for future loop directives CodeGen implementation)
...
llvm-svn: 215975
2014-08-19 11:27:13 +00:00
Fariborz Jahanian
413297c53d
Objective-C ARC. First patch toward generating new APIs
...
for Objective-C's array and dictionary literals.
rdar://17554063. This is wip.
llvm-svn: 214983
2014-08-06 18:13:46 +00:00
Richard Smith
a27c26e7d8
[modules] Add abbreviation for ImplicitCastExpr. This is the most common
...
record type in LLVM's IR module.
llvm-svn: 214048
2014-07-27 04:19:32 +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
Richard Smith
f8adcdc436
Track the difference between
...
-- a constructor list initialization that unpacked an initializer list into
constructor arguments and
-- a list initialization that created as std::initializer_list and passed it
as the first argument to a constructor
in the AST. Use this flag while instantiating templates to provide the right
semantics for the resulting initialization.
llvm-svn: 213224
2014-07-17 05:12:35 +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
Nico Weber
9b982078e9
Add an AST node for __leave statements, hook it up.
...
Codegen is still missing (and I won't work on that), but __leave is now
as implemented as __try and friends.
llvm-svn: 212425
2014-07-07 00:12:30 +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
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
f0d76e7dc3
Parsing/Sema for OMPAlignedClause.
...
llvm-svn: 209816
2014-05-29 14:36:25 +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
a13603a247
[C++11] Use 'nullptr'. Serialization edition.
...
llvm-svn: 209392
2014-05-22 05:54:18 +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
David Majnemer
daff37013c
AST: Mangle reference temporaries reliably
...
Summary:
Previously, we would generate a single name for all reference
temporaries and allow LLVM to rename them for us. Instead, number the
reference temporaries as we build them in Sema.
Reviewers: rsmith
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D3554
llvm-svn: 207776
2014-05-01 17:50:17 +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
444120d4bc
[OPENMP][C++11] Renamed loop vars properly.
...
llvm-svn: 205620
2014-04-04 10:02:14 +00:00