aboutsummaryrefslogtreecommitdiff
path: root/gcc/c/ChangeLog.gomp
blob: 679964aa3f7d7060527d364bcae7924242b89a82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
2017-07-25  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-parser.c (c_parser_oacc_clause_wait): Add representation of wait
	clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.

2017-05-17  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_oacc_data_clause)
	<PRAGMA_OACC_CLAUSE_DELETE>: Use "GOMP_MAP_RELEASE".

2017-05-16  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name):  Handle 'finalize' clause.
	(c_parser_oacc_simple_clause): Add 'finalize' to comments.
	(c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_FINALIZE.
	(OACC_EXIT_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_FINALIZE.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_FINALIZE.

2017-05-14  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (OACC_KERNELS_CLAUSE_MASK)
	(OACC_KERNELS_CLAUSE_DEVICE_TYPE_MASK): Add
	"PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS",
	"VECTOR_LENGTH".

2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_num_gangs)
	(c_parser_omp_clause_num_workers)
	(c_parser_omp_clause_vector_length): Merge functions into...
	(c_parser_oacc_single_int_clause): ... this new function.  Adjust
	all users.

2017-05-04  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name): Add support for if_present.
	(c_parser_oacc_all_clauses): Likewise.
	(c_finish_oacc_routine): Likewise.
	(OACC_UPDATE_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_IF_PRESENT.
	* c-typeck.c (c_finish_omp_clauses): Add support for if_present.

2017-05-01  Cesar Philippidis  <cesar@codesourcery.com>

	* c-typeck.c (c_finish_omp_clauses): Emit an error on orphan OpenACC
	gang reductions.

2017-04-26  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_omp_variable_list): New c_omp_region_type
	argument.  Use it to specialize handling of OMP_CLAUSE_REDUCTION for
	OpenACC.
	(c_parser_omp_clause_reduction): Update call to
	c_parser_omp_variable_list.  Propage OpenACC errors as necessary.
	(c_parser_oacc_all_clauses): Update call to
	p_parser_omp_clause_reduction.
	(c_parser_omp_all_clauses): Likewise.
	(c_parser_cilk_all_clauses): Likewise.

2017-04-13  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name): Remove occurences of
	PRAGMA_OACC_CLAUSE_PRESENT_OR_COPY/COPYIN/COPYOUT/CREATE, adjust
	them to non-PRESENT_OR values.
	(c_parser_oacc_data_clause): Remove PRAGMA_OACC_CLAUSE_PRESENT_OR_*
	cases, remove FORCE from PRAGMA_OACC_CLAUSE_COPY/COPYIN/COPYOUT/CREATE
	kinds, update comment description.
	(c_parser_oacc_all_clauses): Remove PRAGMA_OACC_CLAUSE_PRESENT_OR_*
	cases.
	(OACC_DATA_CLAUSE_MASK): Remove PRAGMA_OACC_CLAUSE_PRESENT_OR_*.
	(OACC_DECLARE_CLAUSE_MASK): Likewise.
	(c_parser_oacc_declare): Remove GOMP_MAP_FORCE_ALLOC/TO, change to
	COMP_MAP_ALLOC/TO.
	(OACC_ENTER_DATA_CLAUSE_MASK): Remove PRAGMA_OACC_CLAUSE_PRESENT_OR_*.
	(OACC_KERNELS_CLAUSE_MASK): Likewise.
	(OACC_PARALLEL_CLAUSE_MASK): Likewise.

2017-04-07  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_default): Handle
	"OMP_CLAUSE_DEFAULT_PRESENT".

2017-02-27  Chung-Lin Tang  <cltang@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (mark_vars_oacc_gangprivate): New function.
	(c_parser_oacc_kernels_parallel): Call it to mark gang local variables
	with attribute "oacc gangprivate".

2017-01-10  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-typeck.c (handle_omp_array_sections_1): Add 'bool &non_contiguous'
	parameter, adjust recursive call site, add cases for allowing
	pointer based multi-dimensional arrays for OpenACC.
	(handle_omp_array_sections): Adjust handle_omp_array_sections_1 call,
	handle non-contiguous case to create dynamic array map.

2016-09-28  Nathan Sidwell  <nathan@codesourcery.com>

	* c-parser.c (c_parser_omp_for_tiling): Accept tiling constructs.

2016-09-23  Nathan Sidwell  <nathan@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
	(c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
	semantic checking.

2016-08-17  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_finish_oacc_routine): Rework checking if already
	marked as an accelerator routine.

	* c-parser.c (c_parser_oacc_routine): Normalize order of clauses.
	(c_finish_oacc_routine): Call verify_oacc_routine_clauses.

	* c-parser.c (c_parser_oacc_shape_clause)
	(c_parser_oacc_simple_clause): Add loc formal parameter.  Adjust
	all users.

2016-08-04  Thomas Schwinge  <thomas@codesourcery.com>

	Backport trunk r239128:
	* c-parser.c (struct oacc_routine_data): Add error_seen and
	fndecl_seen members.
	(c_finish_oacc_routine): Use these.
	(c_parser_declaration_or_fndef): Adjust.
	(c_parser_oacc_routine): Likewise.  Support more C language
	constructs, and improve diagnostics.  Move pragma context
	checking...
	(c_parser_pragma): ... here.

	Backport trunk r239127:
	* c-parser.c (struct oacc_routine_data): New.
	(c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
	Simplify code.
	(c_finish_oacc_routine): Likewise.

	Backport trunk r236639:
	* c-parser.c (c_parser_oacc_routine): Tighten syntax checks.

2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>

	Backport from trunk:
	* c-parser.c (c_parser_oacc_declare): Don't scan for
	GOMP_MAP_POINTER.
	* c-typeck.c (handle_omp_array_sections): Mark data clauses with
	GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
	zero-length subarrays.

2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>

	PR c/71381
	Backport from trunk r237290:
	* c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
	Loosen checking.

2016-06-08  Chung-Lin Tang  <cltang@codesourcery.com>

	Backport trunk r237070:
	2016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
	arguments as addressable when async clause exists.

2016-05-27  Cesar Philippidis  <cesar@codesourcery.com>

	Backport trunk r236678:
	2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_declare): Add support for
	GOMP_MAP_FIRSTPRIVATE_POINTER.
	* c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
	argument with enum c_omp_region_type ort.
	(handle_omp_array_sections): Likewise.  Update call to
	handle_omp_array_sections_1.
	(c_finish_omp_clauses): Add specific errors and warning messages for
	OpenACC.  Use firsrtprivate pointers for OpenACC subarrays.  Update
	call to handle_omp_array_sections.

2016-05-09  Cesar Philippidis  <cesar@codesourcery.com>

	Backport trunk r235651:
	2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>

	PR middle-end/70626
	* c-parser.c (c_parser_oacc_loop): Don't augment mask with
	OACC_LOOP_CLAUSE_MASK.
	(c_parser_oacc_kernels_parallel): Update call to
	c_oacc_split_loop_clauses.

2016-05-09  Cesar Philippidis  <cesar@codesourcery.com>

	Backport trunk r235780:
	2016-05-02  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_all_clauses): Update call to
	c_finish_omp_clauses.
	(c_parser_omp_all_clauses): Likewise.
	(c_parser_oacc_cache): Likewise.
	(c_parser_oacc_loop): Likewise.
	(omp_split_clauses): Likewise.
	(c_parser_omp_declare_target): Likewise.
	(c_parser_cilk_all_clauses): Likewise.
	(c_parser_cilk_for): Likewise.
	* c-typeck.c (c_finish_omp_clauses): Replace bool arguments
	is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.

2016-05-09  Cesar Philippidis  <cesar@codesourcery.com>

	Backport trunk r235290:
	2016-04-20  Ilya Verbin  <ilya.verbin@intel.com>

	PR c++/69363
	* c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
	instead of c_finish_cilk_clauses.
	* c-tree.h (c_finish_omp_clauses): Add new default argument.
	* c-typeck.c (c_finish_omp_clauses): Add new argument.  Allow
	floating-point variables in the linear clause for Cilk Plus.

2016-03-11  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
	when calling c_finish_omp_clauses.

2016-02-03  James Norris  <jnorris@codesourcery.com>

	* c-typeck.c (build_external_ref): Remove usage check.

2016-01-14  James Norris  <jnorris@codesourcery.com>

	* c-parser.c (c_finish_oacc_routine): Remove attribute.
	* c-typeck.c (build_external_ref): Change usage check.

2016-01-07  James Norris  <jnorris@codesourcery.com>

	* c-parser.c (c_finish_oacc_routine): Add new attribute.
	* c-typeck.c (build_external_ref): Add usage check.

2015-12-08  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_oacc_clause_bind, c_parser_oacc_routine)
	(c_finish_oacc_routine): Update.

2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>

	* c-typeck.c (c_finish_omp_clauses): Adjust omp_mappable_type calls.
	* c-decl.c (c_decl_attributes): Likewise.

2015-11-06  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_default): Replace only_none with
	is_oacc argument.
	(c_parser_oacc_shape_clause): Allow pointers arguments to gang static.
	(c_parser_oacc_clause_tile): Backport cleanups from trunnk.
	(c_parser_oacc_all_clauses): Likewise, update call to
	c_parser_omp_clause_default.
	(c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.

2015-11-04  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_update): Update the error message for
	missing clauses.

2015-10-29  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_omp_positive_int_clause): Delete.
	(c_parser_omp_clause_num_gangs): Restore from trunk.
	(c_parser_omp_clause_num_threads): Likewise.
	(c_parser_omp_clause_is_device_ptr): Likewise.
	(c_parser_omp_clause_num_workers): Likewise.
	(c_parser_omp_clause_untied): Likewise.
	(c_parser_omp_clause_vector_length): Likewise.
	(c_parser_omp_clause_branch): Likewise.
	(c_parser_oacc_all_clauses): Use c_parser_oacc_simple_clauses
	for OMP_CLAUSE_{INDEPENDENT,NOHOST}. Likewise, use
	c_parser_omp_clause_{num_gangs,num_workers,vector_length} for
	OMP_CLAUSE_{NUM_GANGS,NUM_WORKERS,VECTOR_LENGTH}, respectively.
	(c_parser_omp_all_clauses): Use c_parser_omp_clause_num_threads
	for OMP_CLAUSE_NUM_THREADS, c_parser_omp_clause_untied for
	OMP_CLAUSE_UNTIED, and c_parser_omp_clause_branch for
	OMP_CLAUSE_{INBRANCH,NOTINBRANCH} and CICK_CLAUSE_{MASK,NOMASK}.

2015-10-28  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_simple_clause): New function.
	(c_parser_oacc_all_clauses): Use it instead of
	c_parser_omp_simple_clause.

2015-10-27  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_shape_clause): Backport from trunk.
	(c_parser_omp_simple_clause): Likewise.
	(c_parser_oacc_all_clauses): Likewise.

2015-08-18  James Norris  <jnorris@codesourcery.com>

	* c-parser (check_oacc_vars_1, check_oacc_vars, struct oacc_return,
	find_oacc_return, finish_oacc_declare): Remove.
	(c_parser_declaration_or_fndef): Remove call.
	(c_parser_oacc_declare): Rewrite.

2015-08-17  Nathan Sidwell  <nathan@codesourcery.com>

	* c-parser.c (c_finish_oacc_routine): Add named parameter.  Adjust
	all callers.
	(c_parser_declaration_or_fndef): Add missing c_finish_oacc_routine
	call.
	(c_parser_oacc_routine): Adjust error messages to match C++ FE.

2015-08-15  Nathan Sidwell  <nathan@codesourcery.com>

	* c-parser.c (struct c_parser): Remove oacc_routines field.
	(c_parser_declaration_or_fndef): Remove 'named' parameter.  Adjust
	all callers.  Adjust c_finish_oacc_routine calls.
	(c_parser_oacc_routine): Reimplement.
	(c_finish_oacc_routine): Reimplement.

2015-08-15  Nathan Sidwell  <nathan@codesourcery.com>

	* c-parser.c (c_parser_oacc_routine): Don't check loop axes here,
	use build_oacc_routine_dims.

2015-08-14  Cesar Philippidis  <cesar@codesourcery.com>

	* c-typeck.c (c_finish_omp_clauses): Permit variables to appear
	in both OpenACC data and reduction clauses.

2015-08-03  Nathan Sidwell  <nathan@codesourcery.com>

	* c-parser.c (c_parser_oacc_data_clause): Remove firstprivate
	handling.
	(c_parser_oac_all_clauses): Firstpribsste is a firstprivate
	clause.
	* c-typeck.c (c_finish_omp_clauses): Remove GANGLOCAL handling.

2015-07-27  Julian Brown  <julian@codesourcery.com>

	* c-typeck.c (c_finish_omp_clauses): Add scanning for sub-clauses
	of device_type clause.

2015-07-17  Julian Brown  <julian@codesourcery.com>

	* c-parser.c (c_parser_oacc_all_clauses): Don't call
	c_oacc_filter_device_types.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_DEVICE_TYPE.

2015-06-15  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_all_clauses): Call
	c_oacc_filter_device_types instead of oacc_filter_device_types.
	(oacc_split_loop_clauses): Remove.
	(c_parser_oacc_loop): Call c_oacc_split_loop_clauses
	instead of oacc_split_loop_clauses.

2015-06-12  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_clause_device_type): Switch
	OMP_CLAUSE_DEVICE_TYPE_DEVICES to tree instead of an int.

2015-06-10  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (typedef struct c_parser): Remove oacc_parallel_region
	and oacc_kernels_region.
	(c_parser_oacc_shape_clause): Don't check for parallel-specific
	clauses here.
	(c_parser_oacc_loop): Don't check for incompatible clauses.
	(c_parser_oacc_kernels): Don't check for nested parallelism.
	(c_parser_oacc_parallel): Likewise.

2015-06-08  James Norris  <jnorris@codesourcery.com>

	* c-parser.c (tree-iterator.h): Add inclusion.
	(check_oacc_vars1, check_oacc_vars, find_oacc_return,
	finish_oacc_declare): New functions.
	(oacc_return): New structure.
	(oacc_returns): New variable.
	(c_parser_declaration_or_fndef): Add call to finish_oacc_declare.
	(oacc_dcl_idx): New variable.
	(c_parser_oacc_declare): Rewrite.

2015-05-15  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (typedef struct c_parser): Add BOOL_BITFIELDS
	oacc_parallel_region and oacc_kernels_region.
	(c_parser_oacc_shape_clause): Only use op1 for the static argument
	in the gang clause. Check for incompatible clause arguments inside
	parallel regions.
	(c_parser_oacc_loop): Error on conflicting loop clauses.
	(c_parser_oacc_kernels): Error in nested parallel and kernels.
	(c_parser_oacc_parallel): Likewise.

2015-05-13  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_finish_oacc_routine): Add an "oacc function"
	attribute to routines.

	* c-decl.c (c_decl_attributes): Update call to omp_mappable_type.
	* c-typeck.c (c_finish_omp_clauses): Likewise.

2015-05-13  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>

	* c-parser.c (c_parser_oacc_data_clause, oacc_split_loop_clauses)
	(c_parser_oacc_parallel): Handle PRAGMA_OACC_CLAUSE_FIRSTPRIVATE.
	(c_parser_oacc_all_clauses): Update handling of
	PRAGMA_OACC_CLAUSE_FIRSTPRIVATE.
	* c-typeck.c (c_finish_omp_clauses): Add error checking for
	GOMP_MAP_FORCE_TO_GANGLOCAL.

2015-05-11  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>

	* c-parser.c (c_parser): Add oacc_routines member.
	(c_parse_file): Initialize it.
	(c_parser_declaration_or_fndef): Add oacc_routine_clauses, and
	oacc_routine_named formal parameters.  Adjust all users.  Support
	OpenACC routines.
	(c_parser_pragma): Handle PRAGMA_OACC_DECLARE,
	PRAGMA_OACC_ROUTINE, PRAGMA_OACC_WAIT.  Add pragma context
	checking for PRAGMA_OACC_ENTER_DATA, PRAGMA_OACC_EXIT_DATA.
	(c_parser_omp_clause_name): Add consume_token formal parameter.
	Handle "bind", "device_resident", "device_type", "dtype",
	"independent", "link", "nohost", "tile", "use_device".
	(c_parser_oacc_wait_list): Change an error message.
	(c_parser_oacc_data_clause): Handle
	PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT, PRAGMA_OACC_CLAUSE_LINK.
	Don't handle PRAGMA_OACC_CLAUSE_SELF.
	(c_parser_omp_clause_default): Add only_none formal parameter.
	(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads)
	(c_parser_omp_clause_num_workers)
	(c_parser_omp_clause_vector_length): Replace functions by...
	(require_positive_expr, c_parser_omp_positive_int_clause):
	... these new functions.  Adjust all users.
	(c_parser_omp_clause_untied, c_parser_omp_clause_branch): Replace
	functions by...
	(c_parser_omp_simple_clause): ... this new function.  Adjust all
	users.
	(c_parser_oacc_shape_clause, c_parser_oacc_clause_bind)
	(c_parser_oacc_clause_device_type, c_parser_oacc_clause_tile)
	(c_parser_oacc_clause_use_device): New functions.
	(c_parser_oacc_all_clauses): Add dtype_mask, and scan_dtype formal
	parameters.  Adjust all users.  Handle PRAGMA_OACC_CLAUSE_AUTO,
	PRAGMA_OACC_CLAUSE_BIND, PRAGMA_OMP_CLAUSE_DEFAULT,
	PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT,
	PRAGMA_OACC_CLAUSE_DEVICE_TYPE, PRAGMA_OACC_CLAUSE_GANG,
	PRAGMA_OACC_CLAUSE_INDEPENDENT, PRAGMA_OACC_CLAUSE_LINK,
	PRAGMA_OACC_CLAUSE_NOHOST, PRAGMA_OACC_CLAUSE_SEQ,
	PRAGMA_OACC_CLAUSE_TILE, PRAGMA_OACC_CLAUSE_USE_DEVICE,
	PRAGMA_OACC_CLAUSE_VECTOR, PRAGMA_OACC_CLAUSE_WORKER.  Don't
	handle PRAGMA_OACC_CLAUSE_SELF.
	(c_parser_oacc_declare, oacc_split_loop_clauses)
	(c_parser_oacc_host_data, c_parser_oacc_routine)
	(c_finish_oacc_routine): New functions.
	(c_parser_oacc_enter_exit_data): Change error reporting.
	(c_parser_oacc_loop): Add mask, and cclauses formal parameters.
	Handle PRAGMA_OACC_CLAUSE_DEVICE_TYPE, PRAGMA_OACC_CLAUSE_GANG,
	PRAGMA_OACC_CLAUSE_WORKER, PRAGMA_OACC_CLAUSE_VECTOR,
	PRAGMA_OACC_CLAUSE_AUTO, PRAGMA_OACC_CLAUSE_INDEPENDENT,
	PRAGMA_OACC_CLAUSE_SEQ, PRAGMA_OACC_CLAUSE_TILE,
	PRAGMA_OACC_CLAUSE_PRIVATE.
	(c_parser_oacc_kernels): Support combined directives.  Handle
	PRAGMA_OACC_CLAUSE_DEFAULT, PRAGMA_OACC_CLAUSE_DEVICE_TYPE.
	(c_parser_oacc_parallel): Likewise.  Handle
	PRAGMA_OACC_CLAUSE_PRIVATE.
	(c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC,
	PRAGMA_OACC_HOST_DATA.
	(c_parser_oacc_update): Handle PRAGMA_OACC_CLAUSE_DEVICE_TYPE,
	PRAGMA_OACC_CLAUSE_WAIT.  Don't handle PRAGMA_OACC_CLAUSE_SELF.
	* c-tree.h (c_finish_oacc_host_data): New prototype.
	* c-typeck.c (c_finish_oacc_host_data): New function.
	(c_finish_omp_clauses): Add oacc formal parameter.  Adjust all
	users.  Handle OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_USE_DEVICE,
	OMP_CLAUSE_BIND, OMP_CLAUSE_NOHOST, OMP_CLAUSE_TILE.

2015-01-13  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_oacc_data_clause)
	(c_parser_oacc_data_clause_deviceptr, c_parser_omp_clause_map):
	Use OMP_CLAUSE_SET_MAP_KIND.
	* c-typeck.c (handle_omp_array_sections): Likewise.

2014-12-19  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_clause_name): Use PRAGMA_OACC_CLAUSE_*
	for OpenACC only clauses.
	(c_parser_oacc_data_clause, c_parser_oacc_data_clause_deviceptr,
	c_parser_oacc_all_clauses): Use PRAGMA_OACC_CLAUSE_* instead of
	PRAGMA_OMP_CLAUSE_*.
	(OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK,
	OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK,
	OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK,
	OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): Likewise.

2014-12-17  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name): Handle "auto", "gang",
	"seq", "vector", and "worker".
	(c_parser_oacc_all_clauses): Handle
	PRAGMA_OMP_CLAUSE_FIRSTPRIVATE, and PRAGMA_OMP_CLAUSE_PRIVATE.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_AUTO,
	OMP_CLAUSE_GANG, OMP_CLAUSE_SEQ, OMP_CLAUSE_VECTOR, and
	OMP_CLAUSE_WORKER.

2014-12-17  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_oacc_clause_async): Use
	include/gomp-constants.h.

2014-11-05  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name) <"host">: Return
	PRAGMA_OMP_CLAUSE_HOST.

	* c-parser.c (c_parser_oacc_data_clause): Group
	PRAGMA_OMP_CLAUSE_SELF next to PRAGMA_OMP_CLAUSE_HOST.

	* c-parser.c (c_parser_oacc_cache): Generate OACC_CACHE.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_.

	* c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
	Remove explicit mark_exp_read invocations.

2014-11-05  James Norris  <jnorris@codesourcery.com>

	* c-parser.c (c_parser_omp_variable_list): Handle
	OMP_NO_CLAUSE_CACHE.
	(c_parser_oacc_cache): New function.
	(c_parser_omp_construct): Use it for PRAGMA_OACC_CACHE.

2014-11-03  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_enter_exit_data): New function.
	(c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA and
	PRAGMA_OACC_EXIT_DATA.
	(OACC_ENTER_DATA_CLAUSE_MASK): New macro.
	(OACC_EXIT_DATA_CLAUSE_MASK): New macro.
	(c_parser_oacc_update): Don't create a new stmt if the pragma
	is bogus.

2014-10-20  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_update): Don't create a new stmt
	if the pragma is bogus.

2014-07-14  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_all_clauses): Handle
	PRAGMA_OMP_CLAUSE_COLLAPSE.
	(OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
	(c_parser_omp_for_loop): Remove asserts.

2014-07-08  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_all_clauses): Handle
	PRAGMA_OMP_CLAUSE_REDUCTION.
	(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK): Add
	PRAGMA_OMP_CLAUSE_REDUCTION.

2014-06-12  Thomas Schwinge  <thomas@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>

	* c-parser.c (c_parser_oacc_all_clauses): Handle
	PRAGMA_OMP_CLAUSE_IF.
	(OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
	(OACC_PARALLEL_CLAUSE_MASK, OACC_UPDATE_CLAUSE_MASK): Add it.

2014-06-06  Thomas Schwinge  <thomas@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>

	* c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_UPDATE.
	(c_parser_omp_clause_name, c_parser_oacc_data_clause)
	(c_parser_oacc_all_clauses): Handle PRAGMA_OMP_CLAUSE_DEVICE,
	PRAGMA_OMP_CLAUSE_HOST, PRAGMA_OMP_CLAUSE_SELF.
	(c_parser_oacc_update): New function.

2014-06-05  Thomas Schwinge  <thomas@codesourcery.com>

	* c-typeck.c (handle_omp_array_sections, c_finish_omp_clauses):
	Handle OMP_CLAUSE_MAP_FORCE_DEVICEPTR.

2014-03-20  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c: Update comments.
	(c_parser_oacc_loop): Move.
	(c_parser_omp_for_loop): Catch some unsupported cases.
	(c_parser_omp_construct) <case PRAGMA_OACC_LOOP>: Sort
	alphabetically.

2014-03-18  Ilmir Usmanov  <i.usmanov@samsung.com>

	* c-parser.c (c_parser_oacc_loop): New function.
	(c_parser_oacc_kernels): Parse OpenACC combined directive.
	(c_parser_oacc_parallel): Likewise.
	(c_parser_omp_construct): Parse OpenACC loop directive.

2014-04-18  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_num_gangs)
	(c_parser_omp_clause_num_workers)
	(c_parser_omp_clause_vector_length): New functions.
	(c_parser_omp_clause_name, c_parser_oacc_all_clauses): Handle
	PRAGMA_OMP_CLAUSE_NUM_GANGS, PRAGMA_OMP_CLAUSE_NUM_WORKERS,
	PRAGMA_OMP_CLAUSE_VECTOR_LENGTH.
	(OACC_PARALLEL_CLAUSE_MARK): Add these.
	* c-typeck.c (c_finish_omp_clauses): Handle these.

2014-02-28  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (OACC_KERNELS_CLAUSE_MASK): New macro definition.
	(c_parser_oacc_kernels): New function.
	(c_parser_omp_construct): Handle PRAGMA_OACC_KERNELS.
	* c-tree.h (c_finish_oacc_kernels): New prototype.
	* c-typeck.c (c_finish_oacc_kernels): New function.

2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (OACC_DATA_CLAUSE_MASK): New macro definition.
	(c_parser_oacc_data): New function.
	(c_parser_omp_construct): Handle PRAGMA_OACC_DATA.
	* c-tree.h (c_finish_oacc_data): New prototype.
	* c-typeck.c (c_finish_oacc_data): New function.

2014-02-17  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name): Accept pcopy, pcopyin,
	pcopyout, pcreate clauses.
	(c_parser_oacc_data_clause): Update comment.

2014-01-28  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (OACC_PARALLEL_CLAUSE_MASK): Add
	PRAGMA_OMP_CLAUSE_COPY, PRAGMA_OMP_CLAUSE_COPYIN,
	PRAGMA_OMP_CLAUSE_COPYOUT, PRAGMA_OMP_CLAUSE_CREATE,
	PRAGMA_OMP_CLAUSE_DEVICEPTR, PRAGMA_OMP_CLAUSE_PRESENT,
	PRAGMA_OMP_CLAUSE_PRESENT_OR_COPY,
	PRAGMA_OMP_CLAUSE_PRESENT_OR_COPYIN,
	PRAGMA_OMP_CLAUSE_PRESENT_OR_COPYOUT, and
	PRAGMA_OMP_CLAUSE_PRESENT_OR_CREATE.

	* c-parser.c (c_parser_omp_clause_name): Handle these.
	(c_parser_oacc_data_clause, c_parser_oacc_data_clause_deviceptr):
	New functions.
	(c_parser_oacc_all_clauses): Handle PRAGMA_OMP_CLAUSE_COPY,
	PRAGMA_OMP_CLAUSE_COPYIN, PRAGMA_OMP_CLAUSE_COPYOUT,
	PRAGMA_OMP_CLAUSE_CREATE, PRAGMA_OMP_CLAUSE_DELETE,
	PRAGMA_OMP_CLAUSE_DEVICEPTR, PRAGMA_OMP_CLAUSE_PRESENT,
	PRAGMA_OMP_CLAUSE_PRESENT_OR_COPY,
	PRAGMA_OMP_CLAUSE_PRESENT_OR_COPYIN,
	PRAGMA_OMP_CLAUSE_PRESENT_OR_COPYOUT, and
	PRAGMA_OMP_CLAUSE_PRESENT_OR_CREATE.

	* c-parser.c (c_parser_oacc_all_clauses): New function.
	(c_parser_oacc_parallel): Use it.
	* c-typeck.c (c_finish_omp_clauses): Update comment.  Remove
	duplicated variable initialization.

2013-11-21  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (c_builtin_function_ext_scope): Don't bind if
	external_scope is NULL.

2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>

	* c-tree.h (c_finish_oacc_parallel): New declaration.
	* c-typeck.c (c_finish_oacc_parallel): New function.

	* c-parser.c (c_parser_omp_structured_block): Update comment.
	(c_parser_oacc_parallel): New function.
	(c_parser_omp_construct): Handle PRAGMA_OACC_PARALLEL.

	* c-parser.c (c_parser_omp_all_clauses): Make a parser error
	message suitable for OpenACC, too.

2013-10-10  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_binary_expression): Document omp_atomic_lhs
	argument in function comment and drop prec argument description.

	* c-typeck.c (handle_omp_array_sections_1): Change wording
	of errors requesting specification of length.
	(c_finish_omp_clauses): For error about non-integral non-pointer
	linear clause include type in the diagnostic message.
	* c-parser.c (c_finish_omp_declare_simd): If
	c_omp_declare_simd_clauses_to_numbers returned non-NULL, store
	the clauses into TREE_VALUE of an extra TREE_LIST pointed out
	by TREE_VALUE of the attribute.

2013-10-08  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_clauses): Remove name variable, use
	omp_clause_code_name[OMP_CLAUSE_CODE (c) instead.

2013-09-25  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_taskgroup): Return tree.
	Don't call c_begin_omp_taskgroup.
	(c_parser_omp_construct): Adjust caller.
	* c-typeck.c (c_begin_omp_taskgroup, c_finish_omp_taskgroup): Remove.
	* c-tree.h (c_begin_omp_taskgroup, c_finish_omp_taskgroup): Remove.

2013-09-19  Jakub Jelinek  <jakub@redhat.com>

	* c-tree.h (c_omp_reduction_id, c_omp_reduction_decl,
	c_omp_reduction_lookup, c_check_omp_declare_reduction_r): New
	prototypes.
	* c-typeck.c: Include tree-inline.h.
	(c_clone_udr, c_find_omp_placeholder_r): New functions.
	(c_finish_omp_clauses): Handle user defined reductions.
	* Make-lang.in (c-typeck.o): Depend on $(TREE_INLINE_H).
	* c-parser.c (c_parser_omp_clause_reduction): Handle user
	defined reductions.
	(c_parser_omp_declare_reduction): New function.
	(c_parser_omp_declare): Call it.
	* c-decl.c (c_omp_reduction_id, c_omp_reduction_decl,
	c_omp_reduction_lookup, c_check_omp_declare_reduction_r): New
	functions.

2013-09-05  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (handle_omp_array_sections_1): Remove pointer_based_p
	argument.  Do c_save_expr on low bound unconditionally.
	(handle_omp_array_sections): Adjust caller.  Call c_fully_fold when
	needed.  Add OMP_CLAUSE_MAP_POINTER map clause even for array based
	array sections.
	(c_finish_omp_clauses): Don't complain about non-mappable types
	for OMP_CLAUSE_MAP_POINTER.  Check for duplicates even for map
	clauses.  Handle OMP_CLAUSE_NUM_TEAMS.
	* c-parser.c (c_parser_omp_target_data, c_parser_omp_target): Call
	keep_next_level ().

2013-07-20  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_declare_simd): Moved to...
	* c-parser.c (c_finish_omp_declare_simd): ... here.  Add
	first c_parser * argument and change last argument to vec<c_token>.
	Parse clauses here from the saved c_tokens.
	(struct c_parser): Change tokens to c_token *.
	Add tokens_buf field.  Change tokens_avail type to unsigned int.
	(c_parser_consume_token): If parser->tokens isn't
	&parser->tokens_buf[0], increment parser->tokens.
	(c_parser_consume_pragma): Likewise
	(c_parser_declaration_or_fndef): Change last argument to vec<c_token>.
	Pass parser as first argument to c_finish_omp_declare_simd.  For
	prototypes, fix code indentation and call temp_store_parm_decls
	and temp_pop_parm_decls around c_finish_omp_declare_simd.
	(c_parser_omp_variable_list): Remove declare_simd argument, call
	lookup_name unconditionally.
	(c_parser_omp_var_list_parens, c_parser_omp_clause_reduction,
	c_parser_omp_clause_depend, c_parser_omp_clause_map,
	c_parser_omp_clause_uniform): Adjust c_parser_omp_variable_list
	callers.
	(c_parser_omp_clause_aligned, c_parser_omp_clause_linear): Likewise.
	Remove declare_simd argument.
	(c_parser_omp_all_clauses): Remove declare_simd argument.  Adjust
	c_parser_omp_clause_aligned and c_parser_omp_clause_linear callers.
	(c_parser_omp_declare_simd): Don't parse declare simd clauses here,
	instead push the clause c_tokens starting with simd token up to
	CPP_PRAGMA_EOL for each #pragma omp declare simd into a vector.
	(c_parser_omp_declare): Don't consume simd token here.
	(c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
	* c-decl.c (temp_store_parm_decls, temp_pop_parm_decls): New
	functions.
	* c-tree.h (temp_store_parm_decls, temp_pop_parm_decls): New
	prototypes.
	(c_finish_omp_declare_simd): Remove prototype.

2013-07-14  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_declare_simd): Don't remove
	redundant "omp declare simd" clauses here.  Adjust
	c_omp_declare_simd_clauses_to_numbers caller.

2013-07-09  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_cancel): Pass two arguments to GOMP_cancel
	rather than just one, if no OMP_CLAUSE_IF, pass true, otherwise pass
	if clause argument.  Emit the call unconditionally.

2013-07-06  Jakub Jelinek  <jakub@redhat.com>

	* c-lang.h (current_omp_declare_target_attribute): New extern
	decl.
	* Make-lang.in (c/c-parser.o): Depend on c/c-lang.h.
	* c-parser.c: Include c-lang.h.
	(c_parser_pragma): Handle PRAGMA_OMP_TARGET and
	PRAGMA_OMP_END_DECLARE_TARGET.
	(c_parser_omp_clause_name): Handle thread_limit clause.
	(c_parser_omp_variable_list): Parse array sections for
	OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
	(c_parser_omp_clause_reduction): Remove declare_simd argument.
	Pass false instead of declare_simd to c_parser_omp_variable_list.
	(c_parser_omp_clause_cancelkind): Remove diagnostics.
	(c_parser_omp_clause_thread_limit): New function.
	(c_parser_omp_all_clauses): Add finish_p argument.  Don't call
	c_finish_omp_clauses if it is false.  Require that
	OMP_CLAUSE_{PARALLEL,FOR,SECTIONS,TASKGROUP} must be first in
	the list of clauses.  Adjust c_parser_omp_clause_reduction
	caller.
	(c_parser_omp_for_loop): Change last argument to cclauses,
	and adjust uses to grab parallel clauses from the array of all
	the split clauses.
	(omp_split_clauses): New function.
	(c_parser_omp_simd): Add p_name, mask and cclauses arguments.
	Allow the function to be called also when parsing combined constructs.
	(c_parser_omp_sections): Likewise.
	(c_parser_omp_for): Add p_name, mask and cclauses arguments.
	Allow the function to be called also when parsing combined constructs,
	and call cp_parser_omp_simd when parsing for simd.
	(c_parser_omp_parallel): Likewise.
	(c_parser_omp_single, c_parser_omp_task, c_parser_omp_cancel,
	c_parser_omp_cancellation_point, c_parser_omp_declare_simd): Adjust
	c_parser_omp_all_clauses callers.
	(OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
	OMP_TARGET_DATA_CLAUSE_MASK, OMP_TARGET_UPDATE_CLAUSE_MASK,
	OMP_DISTRIBUTE_CLAUSE_MASK): Define.
	(c_parser_omp_teams, c_parser_omp_target, c_parser_omp_target_data,
	c_parser_omp_target_update, c_parser_omp_distribute): New
	functions.
	(c_parser_omp_construct): Handle PRAGMA_OMP_DISTRIBUTE and
	PRAGMA_OMP_TEAMS.  Adjust callers of c_parser_omp_simd,
	c_parser_omp_sections, c_parser_omp_for and c_parser_omp_parallel.
	(OMP_DECLARE_SIMD_CLAUSE_MASK): Remove OMP_CLAUSE_REDUCTION.
	(c_parser_omp_declare_target, c_parser_omp_end_declare_target): New
	functions.
	(c_parser_omp_declare): For target keyword call
	c_parser_omp_declare_target.  Adjust expected keyword diagnostics.
	* c-decl.c (current_omp_declare_target_attribute): New variable.
	(c_decl_attributes): New function.
	(start_decl, start_function): Use it instead of decl_attributes.
	* c-typeck.c (handle_omp_array_sections_1, handle_omp_array_sections):
	New functions.
	(c_finish_omp_clauses): Handle array sections on
	OMP_CLAUSE_{MAP,TO,FROM,DEPEND}.  If not array sections, mark the
	decl addressable.  Complain if OMP_CLAUSE_{MAP,TO,FROM}
	decls or array sections don't have complete type. Handle
	OMP_CLAUSE_THREAD_LIMIT.

2013-07-03  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_atomic): Disallow seq_cst before
	atomic-clause, disallow comma in between atomic-clause and
	seq_cst.
	(c_parser_omp_sections_scope): If section-sequence doesn't
	start with #pragma omp section, require exactly one structured-block
	instead of sequence of statements.
	* c-typeck.c (c_finish_omp_clauses): Diagnose copyprivate clause
	appearing together with nowait clause.

2013-06-14  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_for): Comment out OMP_FOR_SIMD uses.
	(c_parser_omp_parallel): Call c_omp_split_clauses instead of
	c_split_parallel_clauses, adjust the code for different API
	of the new function.

2013-05-13  Jakub Jelinek  <jakub@redhat.com>

	* c-tree.h (c_finish_omp_declare_simd): New prototype.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_LINEAR_STEP
	adjustments for pointer-types here.  Diagnose inbranch notinbranch
	being used together.
	(c_finish_omp_declare_simd): New function.
	* c-parser.c (enum pragma_context): Add pragma_struct and
	pragma_param.
	(c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
	argument.  Call c_finish_omp_declare_simd if needed.
	(c_parser_external_declaration, c_parser_compound_statement_nostart,
	c_parser_label, c_parser_for_statement, c_parser_objc_methodprotolist,
	c_parser_omp_for_loop): Adjust c_parser_declaration_or_fndef callers.
	(c_parser_struct_or_union_specifier): Use pragma_struct instead of
	pragma_external.
	(c_parser_parameter_declaration): Use pragma_param instead of
	pragma_external.
	(c_parser_pragma): Handle PRAGMA_OMP_DECLARE_REDUCTION.
	Replace == pragma_external with != pragma_stmt && != pragma_compound
	test.
	(c_parser_omp_variable_list): Add declare_simd argument.  Don't lookup
	vars if it is true, just store identifiers.
	(c_parser_omp_var_list_parens, c_parser_omp_clause_depend,
	c_parser_omp_clause_map): Adjust callers.
	(c_parser_omp_clause_reduction, c_parser_omp_clause_aligned): Add
	declare_simd argument, pass it through to c_parser_omp_variable_list.
	(c_parser_omp_clause_linear): Likewise.  Don't handle
	OMP_CLAUSE_LINEAR_STEP adjustements for pointer-types here.
	(c_parser_omp_clause_uniform): Call c_parser_omp_variable_list
	instead of c_parser_omp_var_list_parens to pass true as declare_simd.
	(c_parser_omp_all_clauses): Add declare_simd argument, pass it through
	clause parsing routines as needed.  Don't call c_finish_omp_clauses if
	set.
	(c_parser_omp_simd, c_parser_omp_for, c_parser_omp_sections,
	c_parser_omp_parallel, c_parser_omp_single, c_parser_omp_task,
	c_parser_omp_cancel, c_parser_omp_cancellation_point): Adjust callers.
	(OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
	(c_parser_omp_declare_simd, c_parser_omp_declare): New functions.

2013-04-30  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_atomic): Parse seq_cst clause, pass
	true if it is present to c_finish_omp_atomic.

2013-04-24  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_compound_statement,
	c_parser_statement): Adjust comments for OpenMP 3.0+
	additions.
	(c_parser_pragma): Handle PRAGMA_OMP_CANCEL and
	PRAGMA_OMP_CANCELLATION_POINT.
	(c_parser_omp_clause_name): Handle new OpenMP 4.0 clauses.
	(c_parser_omp_clause_collapse): Fully fold collapse
	expression.
	(c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
	c_parser_omp_clause_num_teams, c_parser_omp_clause_aligned,
	c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
	c_parser_omp_clause_simdlen, c_parser_omp_clause_depend,
	c_parser_omp_clause_map, c_parser_omp_clause_device,
	c_parser_omp_clause_dist_schedule, c_parser_omp_clause_proc_bind,
	c_parser_omp_clause_to, c_parser_omp_clause_from,
	c_parser_omp_clause_uniform): New functions.
	(c_parser_omp_all_clauses): Handle new OpenMP 4.0 clauses.
	(c_parser_omp_for_loop): Add CODE argument, pass it through
	to c_finish_omp_for.
	(OMP_SIMD_CLAUSE_MASK): Define.
	(c_parser_omp_simd): New function.
	(c_parser_omp_for): Parse #pragma omp for simd.
	(OMP_PARALLEL_CLAUSE_MASK): Add OMP_CLAUSE_PROC_BIND.
	(c_parser_omp_parallel): Parse #pragma omp parallel for simd.
	(OMP_TASK_CLAUSE_MASK): Add OMP_CLAUSE_DEPEND.
	(c_parser_omp_taskgroup): New function.
	(OMP_CANCEL_CLAUSE_MASK, OMP_CANCELLATION_POINT_CLAUSE_MASK): Define.
	(c_parser_omp_cancel, c_parser_omp_cancellation_point): New functions.
	(c_parser_omp_construct): Handle PRAGMA_OMP_SIMD and
	PRAGMA_OMP_TASKGROUP.
	(c_parser_transaction_cancel): Formatting fix.
	* c-tree.h (c_begin_omp_taskgroup, c_finish_omp_taskgroup,
	c_finish_omp_cancel, c_finish_omp_cancellation_point): New prototypes.
	* c-typeck.c (c_begin_omp_taskgroup, c_finish_omp_taskgroup,
	c_finish_omp_cancel, c_finish_omp_cancellation_point): New functions.
	(c_finish_omp_clauses): Handle new OpenMP 4.0 clauses.

2013-03-27  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_all_clauses): Change mask argument type
	from unsigned to omp_clause_mask.
	(c_parser_omp_for_loop): Adjust c_finish_omp_for caller.
	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
	OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK,
	OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
	(c_parser_omp_parallel): Use omp_clause_mask type instead of unsigned
	for mask, use OMP_CLAUSE_MASK_1 instead of 1 for masks.

2013-03-20  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_expr_no_commas): Add omp_atomic_lhs argument
	with default value, pass it down to c_parser_conditional_expression.
	(c_parser_conditional_expression): Add omp_atomic_lhs argument, pass
	it down to c_parser_binary_expression.  Don't pass PREC_NONE to
	it.  Adjust recursive call.
	(c_parser_binary_expression): Remove prec argument, add omp_atomic_lhs
	argument.  Always start from PREC_NONE, if omp_atomic_lhs is non-NULL
	and one of the arguments of toplevel binop matches it, use build2
	instead of parser_build_binary_op.
	(c_parser_omp_atomic): Handle OpenMP 4.0 atomics.
	(c_parser_omp_for_loop): Adjust c_parser_binary_expression caller.
	* c-tree.h (c_tree_equal): New prototype.
	* c-typeck.c (c_tree_equal): New function.

	* c-parser.c (c_parser_omp_atomic): Adjust comment.
	Add another argument to c_finish_omp_atomic.

Copyright (C) 2013-2016 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Local Variables:
mode: change-log
change-log-default-name: "ChangeLog.gomp"
End: