Merge trunk version 208447 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blob2f673826ff7f7f0bfca6e893c102076688a5bbd7
1 2014-03-10 Gary Funck  <gary@intrepid.com>
3         Merge trunk version 208447 into gupc branch.
5 2014-03-03 Gary Funck  <gary@intrepid.com>
7         Merge trunk version 208270 into gupc branch.
9 2014-02-24 Gary Funck  <gary@intrepid.com>
11         Merge trunk version 208066 into gupc branch.
13 2014-02-17 Gary Funck  <gary@intrepid.com>
15         Merge trunk version 207818 into gupc branch.
17 2014-02-10 Gary Funck  <gary@intrepid.com>
19         Merge trunk version 207649 into gupc branch.
21 2014-02-03 Gary Funck  <gary@intrepid.com>
23         Merge trunk version 207415 into gupc branch.
25 2014-01-30 Gary Funck  <gary@intrepid.com>
27         Merge trunk version 207297 into gupc branch.
29 2014-01-28 Gary Funck  <gary@intrepid.com>
31         * c/gupcspec.c (match_suffix): Remove use of PARAMS.
33 2014-01-20 Gary Funck  <gary@intrepid.com>
35         Merge trunk version 206847 into gupc branch.
37 2014-01-20 Gary Funck  <gary@intrepid.com>
39         Merge trunk version 206792 into gupc branch.
41 2014-01-17 Nenad Vukicevic  <nenad@intrepid.com>
43         * c-family/c-cppbuiltin.c (upc_cpp_builtins): Remove pre-defines
44         for __UPC_CASTABLE__, __UPC_COLLECTIVE__, __UPC_TICK__ and
45         __UPC_PUPC__ as they are library and not compiler features.
47 2014-01-13 Gary Funck  <gary@intrepid.com>
49         Merge trunk version 206575 into gupc branch.
51 2014-01-10 Gary Funck  <gary@intrepid.com>
53         Update copyright notices.
55 2014-01-06 Gary Funck  <gary@intrepid.com>
57         Merge trunk version 206354 into gupc branch.
59 2014-01-04  Gary Funck  <gary@intrepid.com>
61         Integrate GUPC into cc1.
62         * upc/: Remove directory.  Re-distribute files.
63         * c/c-upc-lang.c: Move upc/upc-lang.c here.
64         * c/c-upc-lang.h: New.
65         * c-family/c-upc.c: Move upc/upc-act.c here.
66         * c-family/c-upc-gasp.c: Move upc/upc-gasp.c here.
67         * c-family/c-upc-gasp.h: Move upc/upc-gasp.h here.
68         * c-family/c-upc.h: Move upc/upc-act.h here.
69         * c-family/c-upc-low.c: Move upc/upc-genericize.c here.
70         * c-family/c-upc-low.h: Move upc/upc-genericize.h here.
71         * c-family/c-upc-pts.h: Split upc/upc-pts.h here.
72         * c-family/c-upc-pts-ops.c: Split upc/upc-pts.c here.
73         * c-family/c-upc-pts-ops.h: Split upc/upc-pts.h here.
74         * c-family/c-upc-pts-packed.c: Move upc/upc-pts-packed.c here.
75         * c-family/c-upc-pts-struct.c: Move upc/upc-pts-struct.c here.
76         * c-family/c-upc-rts-names.h: Move upc/upc-rts-names.h here.
77         * c-family/stub-upc.c: Remove.
78         * c/gupcspec.c: Move upc/gupcspec.c here.
79         * doc/gupc.texi: Move upc/gupc.texi here.
80         * c/c-objc-common.h: Revert to trunk.
81         * cp/lex.c: Revert to trunk.
82         * cp/Make-lang.in: Revert to trunk.
83         * expr.h: Revert to trunk.
84         * flags.h: Revert to trunk.
85         * fortran/Make-lang.in: Revert to trunk.
86         * java/Make-lang.in: Revert to trunk.
87         * lto/Make-lang.in: Revert to trunk.
88         * objc/Make-lang.in: Revert to trunk.
89         * stor-layout.c: Delete custom hook routines, use
90         newly defined declaration layout language hooks.
91         * stor-layout.h: Revert to trunk.
92         * ../configure.ac: Remove check for UPC language dialect.
93         * ../configure: Re-generate.
94         * Makefile.in (C_COMMON_OBJS): Add UPC-related object files.
95         * c/Make-lang.in: Compile UPC-related files.  Build gupc driver.
96         * c/c-decl.c: Call c_genericize() directly rather than
97         lang_hooks.genericize().  Adjust for flag_upc and name changes.
98         * c/c-lang.c (LANG_HOOKS_UPC_TOGGLE_KEYWORDS,
99         LANG_HOOKS_UPC_PTS_STRUCT_INIT_TYPE, LANG_HOOKS_UPC_BUILD_INIT_FUNC,
100         LANG_HOOKS_LAYOUT_DECL_P, LANG_HOOKS_LAYOUT_DECL):
101         Define UPC-specific hooks.
102         * c/c-objc-common.c (upc_types_compatible_p): Move to here.
103         (c_types_compatible_p): Call upc_types_compatible_p().
104         * c/c-parser.c (upc_affinity_test): Move to here. 
105         (upc_build_sync_stmt): Move to here.
106         * c/c-typeck.c: #include c-family/c-upc-low.h.
107         * c/config-lang.in (gtfiles): Add UPC gt files.
108         * c-family/c-common.c: Add #include c-upc.h.
109         (c_common_get_alias_set): Move UPC-related alias check to here.
110         (upc_num_threads): Move to here.
111         (c_common_init_ts): Mark UPC-specific statement tree definitions.
112         * c-family/c-common.def (UPC_FORALL_STMT, UPC_SYNC_STMT):
113         Define UPC-specific statements.
114         * c-family/c-common.h (RID_FIRST_UPC_QUAL, RID_LAST_UPC_QUAL,
115         RID_FIRST_UPC_KW, RID_LAST_UPC_KW, UPC_IS_KEYWORD): New.
116         (clk_upc, clk_upcxx, c_dialect_upc, compiling_upc): Delete.
117         (use_upc_dwarf2_extensions, flag_upc): Move to c-family/c.opts.
118         (upc_num_threads): Declare prototype.
119         (UPC_SYNC_OP, UPC_SYNC_ID, UPC_SYNC_NOTIFY_OP, UPC_SYNC_WAIT_OP,
120         UPC_SYNC_BARRIER_OP): Move definitions here.
121         * c-family/c-cppbuiltin.c: Remove #include c-upc.h and
122         add #include c-upc-pts.h.
123         (upc_cpp_builtins): Move to here.  Define as static.
124         (c_cpp_builtin): Change call to c_dialect_upc () into
125         test of flag_upc.
126         * c-family/c-gimplify.c: #include c-upc-low.h.
127         (c_common_genericize): Rename c_genericize() to this and make static.
128         (c_genericize): Call upc_genericize() if flag_upc is set and
129         then call c_common_genericize().
130         * c-family/c-opts.c: #include c-upc-low.h and c-upc-pts.h.
131         (c_family_lang_mask): Remove CL_UPC.
132         (c_common_option_lang_mask): Remove CL_UPC from lang_flags.
133         (upc_init_options): Move to here, make it static.
134         (c_common_init_options): Add early check for flag_upc, if found
135         call upc_init_options().
136         (upc_handle_option): Move to here and make static.
137         (c_common_handle_option): Check for UPC-related options
138         and call upc_handle_option().  Remove references to
139         OPT_lang_upc and clk_upc.  Check flag_upc instead of
140         calling c_dialect_upc().
141         * c-family/c-pragma.c: #include langhooks.h.
142         (handle_pragma_upc): Remove warning if flag_upc not set;
143         flag_upc now serves the function of compiling_upc().
144         Add call to lang_hooks.upc.toggle_keywords() to
145         implement enable/disable of UPC keywords.
146         (init_pragma): Check flag_upc instead of compiling_upc.
147         * c-family/c-pragma.h (deny_pragma_upc, get_upc_consistency_mode,
148         permit_pragma_upc, pop_upc_consistency_mode,
149         pragma_upc_permitted_p, push_upc_consistency_mode,
150         set_upc_consistency_mode): Move prototypes to here.
151         * c-family/c.opt: Remove all references to "UPC" language dialect.
152         Add -fupc option. Delete -fupc-link option.
153         Add -fupc-threads= option and deprecate -fupc-threads-.
154         * configure.ac: Remove check for UPC language dialect.
155         * configure: Re-generate.
156         * explow.c (tree_expr_size): Move to tree.c.
157         * gcc.c: Change specs to refer to -fupc instead of -lang-upc
158         and -fupc-link.
159         * hooks.c (hook_bool_tree_tree_false): Declare prototype.
160         * langhooks.c (lhd_do_nothing_b, lhd_do_nothing_t_t): New.
161         * langhooks.h (lang_hooks_for_upc): Define hooks for UPC.
162         (layout_decl_p, layout_decl): Define language-specific
163         declaration  layout hooks.
164         (genericize): Remove this language hook.
165         * langhooks-def.h: Define UPC default language hooks.
166         Define language-specific declaration layout default hooks.
167         * langhooks.c (lhd_do_nothing_b): New.
168         * tree-core.h (shared_flag): Rename from upc_shared_flag.
169         (strict_flag): Rename from upc_strict_flag.
170         (relaxed_flag): Rename from upc_relaxed_flag.
171         (threads_factor_flag): New. Was a lang. flag.
172         (block_factor_0): New. Was a lang. flag.
173         (block_factor_x): New. Was a lang. flag.
174         (spare1): Decrement spare bits from 8 down to 5.
175         * tree.c (block_factor_for_type): Move to here.
176         (tree_expr_size): Move to here from explow.c.
177         (block_factor_lookup): Move to here.
178         (block_factor_insert): Move to here.
179         (upc_get_block_factor): Move to here.
180         * tree.h: refer to block_factor_* instead of upc_block_factor_*.
181         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
182         TYPE_HAS_THREADS_FACTOR): Refer to tree base flag bits instead
183         of lang. flag bits.
184         (tree_expr_size): Move prototype from explow.h.
186 2013-12-30 Gary Funck  <gary@intrepid.com>
188         Merge trunk version 206243 into gupc branch.
190 2013-12-23 Gary Funck  <gary@intrepid.com>
192         Merge trunk version 206179 into gupc branch.
194 2013-12-22 Gary Funck  <gary@intrepid.com>
196         * upc/upc-act.c (upc_cpp_builtins): Bump UPC_VERSION
197         to reflect UPC specification version 1.3 compliance.
199 2013-12-16 Gary Funck  <gary@intrepid.com>
201         Merge trunk version 206010 into gupc branch.
203 2013-12-09 Gary Funck  <gary@intrepid.com>
205         Merge trunk version 205801 into gupc branch.
207 2013-12-03 Meador Inge  <meadori@codesourcery.com>
209         * tree-core.h (tree_type_common): Change tree_type_common to use
210         user-provided GC marking.
211         (gt_ggc_mx, gt_pch_nx): New prototypes.
212         * tree.c (gt_ggc_mx, gt_pch_nx): New functions.
214 2013-12-03 Gary Funck  <gary@intrepid.com>
216         Revert:
218         2011-10-10  Gary Funck  <gary@intrepid.com>
220         * tree.c (check_qualified_type, check_aligned_type):
221         Call tree_int_cst_equal() to compare UPC blocking factors
222         if the corresponding tree pointers are not equal.
223         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
225 2013-12-03 Gary Funck  <gary@intrepid.com>
227         * c-family/c.opt: Fix typo introduced in 2013-06-03
228         merge with trunk.
230 2013-12-02 Gary Funck  <gary@intrepid.com>
232         Merge trunk version 205582 into gupc branch.
234 2013-11-26  Meador Inge  <meadori@codesourcery.com>
236         * upc/upc-genericize.c (upc_expand_get): Ensure that temporaries
237         are declared via a DECL_EXPR.
239 2013-11-25 Gary Funck  <gary@intrepid.com>
241         Merge trunk version 205346 into gupc branch.
243 2013-11-18 Gary Funck  <gary@intrepid.com>
245         Merge trunk version 204942 into gupc branch.
247 2013-11-15 Gary Funck  <gary@intrepid.com>
249         Merge trunk version 204894 into gupc branch.
251 2013-11-15 Gary Funck  <gary@intrepid.com>
253         Merge trunk version 204659 into gupc branch.
255 2013-11-04 Gary Funck  <gary@intrepid.com>
257         Merge trunk version 204345 into gupc branch.
259 2013-10-31 Gary Funck  <gary@intrepid.com>
261         Released GUPC 4.9.0.1 based on version 203902.
262         This release version was committed on 2013-10-21.
263         * DEV-PHASE: Bump to 4.9.0.2.
264         * DATESTAMP: Bump date stamp.
266 2013-10-28 Gary Funck  <gary@intrepid.com>
268         Merge trunk version 204119 into gupc branch.
270 2013-10-21 Gary Funck  <gary@intrepid.com>
272         Merge trunk version 203886 into gupc branch.
274 2013-10-14 Gary Funck  <gary@intrepid.com>
276         Merge trunk version 203514 into gupc branch.
278 2013-10-07 Gary Funck  <gary@intrepid.com>
280         Merge trunk version 203240 into gupc branch.
282 2013-10-01 Gary Funck  <gary@intrepid.com>
284         Implement pointer-to-shared -> integer conversions.
285         Required per UPC 1.3 Specification.
286         * c/c-typeck.c (build_c_cast): Remove logic that diagnosed
287         PTS->int conversions as an error.  Rewrite into a CONVERT_EXPR
288         for later processing by upc_genericize().
290 2013-10-01 Gary Funck  <gary@intrepid.com>
292         Implement pointer-to-shared -> integer conversions.
293         Required per UPC 1.3 Specification.
294         * upc/upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
295         (upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().
297 2013-09-30 Gary Funck  <gary@intrepid.com>
299         Merge trunk version 203026 into gupc branch.
301 2013-09-23 Gary Funck  <gary@intrepid.com>
303         Merge trunk version 202825 into gupc branch.
305 2013-09-18 Gary Funck  <gary@intrepid.com>
307         Merge trunk version 202725 into gupc branch.
309 2013-09-16 Gary Funck  <gary@intrepid.com>
311         Merge trunk version 202619 into gupc branch.
313 2013-09-09 Gary Funck  <gary@intrepid.com>
315         Merge trunk version 202382 into gupc branch.
317 2013-09-02 Gary Funck  <gary@intrepid.com>
319         Merge trunk version 202159 into gupc branch.
321 2013-08-26 Gary Funck  <gary@intrepid.com>
323         Merge trunk version 202008 into gupc branch.
325 2013-08-19 Gary Funck  <gary@intrepid.com>
327         Merge trunk version 201832 into gupc branch.
329 2013-08-05 Gary Funck  <gary@intrepid.com>
331         Merge trunk version 201483 into gupc branch.
333 2013-07-29 Gary Funck  <gary@intrepid.com>
335         Merge trunk version 201301 into gupc branch.
337 2013-07-22 Gary Funck  <gary@intrepid.com>
339         Merge trunk version 201119 into gupc branch.
341 2013-07-15 Gary Funck  <gary@intrepid.com>
343         Merge trunk version 200955 into gupc branch.
345 2013-07-08 Gary Funck  <gary@intrepid.com>
347         Merge trunk version 200775 into gupc branch.
349 2013-07-01 Gary Funck  <gary@intrepid.com>
351         Merge trunk version 200575 into gupc branch.
353 2013-06-24 Gary Funck  <gary@intrepid.com>
355         Merge trunk version 200361 into gupc branch.
357 2013-06-19 Gary Funck  <gary@intrepid.com>
359         Merge trunk version 200149 into gupc branch.
361 2013-06-19 Gary Funck  <gary@intrepid.com>
363         Merge trunk version 200149 into gupc branch.
364         * upc/upc-act.c (upc_create_static_var): New.
365         (upc_build_init_func): Call upc_create_static_var() to
366         create a static variable, __upc_init_func_addr, which
367         is initialized to the address of the UPC
368         shared data initialization function.  This change is
369         needed to avoid writing to the output assembly language
370         file too early.
371         (upc_build_sync_stmt): Delete unused variable, sync_expr_type.
373 2013-06-03 Gary Funck  <gary@intrepid.com>
375         Merge trunk version 199596 into gupc branch.
377 2013-05-27 Gary Funck  <gary@intrepid.com>
379         Merge trunk version 199350 into gupc branch.
381 2013-05-20 Gary Funck  <gary@intrepid.com>
383         Merge trunk version 199093 into gupc branch.
385 2013-05-14 Gary Funck  <gary@intrepid.com>
387         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt):
388         When checking whether the phase of a PTS should be reset,
389         if the source type is an array type, then bypass
390         the check for equal type sizes.
391         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
393 2013-05-13 Gary Funck  <gary@intrepid.com>
395         Merge trunk version 198815 into gupc branch.
397 2013-05-06 Gary Funck  <gary@intrepid.com>
399         Merge trunk version 198622 into gupc branch.
401 2013-04-29 Gary Funck  <gary@intrepid.com>
403         Merge trunk version 198433 into gupc branch.
405 2013-04-15 Gary Funck  <gary@intrepid.com>
407         Merge trunk version 197958 into gupc branch.
409 2013-04-08 Gary Funck  <gary@intrepid.com>
411         Merge trunk version 197571 into gupc branch.
413 2013-04-04 Gary Funck  <gary@intrepid.com>
415         Per the UPC 1.3 specification, the type of the
416         optional barrier/notify/wait expression is not constrained to
417         'int'. Instead, any type that is assignment compatible
418         with an 'int' type is permitted.
419         * c/c-parser.c (c_parser_upc_sync_statement): Do not check
420         the optional expression type here.  Let upc_build_sync_stmt()
421         handle it.
422         * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
423         * c/c-typeck.c (c_cvt_expr_for_assign): New.  Also, call
424         error_at() in lieu of error() when the source location is known.
425         * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
426         to check/convert the optional synchronization statement
427         expression.
429 2013-04-02 Gary Funck  <gary@intrepid.com>
431         Merge trunk version 197340 into gupc branch.
433 2013-04-02 Gary Funck  <gary@intrepid.com>
435         Revert revision 178346 (2011-08-30)
436         which changed the prototype of check_qualified_type and related
437         functions so that their parameters were just 'tree' and not
438         'const_tree'.  This seemed necessary at the time because of a
439         change to TYPE_BLOCK_FACTOR(), which in turn called function
440         that hashed the type node pointer.  The hash functions did
441         not accept "const void *" pointers.  Implement a work around
442         that removes this restriction.
443         * c/c-typeck.c: Revert.
444         * tree.c: Revert.
445         * tree.h: Revert.  Change prototype of upc_block_factor_lookup()
446         to accept a 'const_tree' pointer to a type node.
447         * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
448         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
449         input argument and convert this to 'tree' for use with hash function.
451 2013-04-02 Gary Funck  <gary@intrepid.com>
453         Revert revision 178346 (2011-08-30)
454         which changed the prototype of check_qualified_type and related
455         functions so that their parameters were just 'tree' and not
456         'const_tree'.  This seemed necessary at the time because of a
457         change to TYPE_BLOCK_FACTOR(), which in turn called a function
458         that hashed the type node pointer.  The hash functions did
459         not accept "const void *" pointers.  Implement a work around
460         that removes this restriction.
461         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
462         input argument and convert this to 'tree' for use with hash function.
464 2013-03-25 Gary Funck  <gary@intrepid.com>
466         Merge trunk version 197029 into gupc branch.
468 2013-03-21 Gary Funck  <gary@intrepid.com>
470         Released GUPC 4.8.0.3 based on version 196601.
471         This release version was committed on 2013-03-11.
472         * DATESTAMP: Bump date stamp.
474 2013-03-18 Gary Funck  <gary@intrepid.com>
476         Merge trunk version 196771 into gupc branch.
477         * DEV-PHASE: Bump release identifier to 4.9.0-1.
479 2013-03-11 Gary Funck  <gary@intrepid.com>
481         Merge trunk version 196592 into gupc branch.
483 2013-03-04 Gary Funck  <gary@intrepid.com>
485         Merge trunk version 196422 into gupc branch.
487 2013-02-25 Gary Funck  <gary@intrepid.com>
489         Merge trunk version 196253 into gupc branch.
491 2013-02-18 Gary Funck  <gary@intrepid.com>
493         Merge trunk version 196115 into gupc branch.
495 2013-02-11 Gary Funck  <gary@intrepid.com>
497         Merge trunk version 195937 into gupc branch.
499 2013-02-04 Gary Funck  <gary@intrepid.com>
501         Merge trunk version 195707 into gupc branch.
503 2013-01-28 Gary Funck  <gary@intrepid.com>
505         Merge trunk version 195502 into gupc branch.
507 2013-01-21 Gary Funck  <gary@intrepid.com>
509         Merge trunk version 195330 into gupc branch.
511 2013-01-14 Gary Funck  <gary@intrepid.com>
513         Merge trunk version 195164 into gupc branch.
515 2013-01-07 Gary Funck  <gary@intrepid.com>
517         Merge trunk version 194962 into gupc branch.
519 2012-12-24 Gary Funck  <gary@intrepid.com>
521         Merge trunk version 194709 into gupc branch.
523 2012-12-17 Gary Funck  <gary@intrepid.com>
525         Merge trunk version 194552 into gupc branch.
527 2012-12-10 Gary Funck  <gary@intrepid.com>
529         Merge trunk version 194351 into gupc branch.
531 2012-12-03 Gary Funck  <gary@intrepid.com>
533         Merge trunk version 194076 into gupc branch.
535 2012-11-30  Gary Funck  <gary@intrepid.com>
537         Released GUPC 4.8.0.2 based on version 193446.
538         Date of release: 2012-11-12.
539         * DEV-PHASE: Bump release identifier to 4.8.0-3.
540         * DATESTAMP: Bump date stamp.
542 2012-11-26 Gary Funck  <gary@intrepid.com>
544         Merge trunk version 193807 into gupc branch.
546 2012-11-20 Gary Funck  <gary@intrepid.com>
548         Merge trunk version 193672 into gupc branch.
550 2012-11-19 Gary Funck  <gary@intrepid.com>
552         Merge trunk version 193617 into gupc branch.
554 2012-11-15 Gary Funck  <gary@intrepid.com>
556         Merge trunk version 193426 into gupc branch.
558 2012-11-12  Gary Funck  <gary@intrepid.com>
560         Released GUPC 4.8.0.1 based on version 192948.
561         Date of release: 2012-10-29.
562         * DEV-PHASE: Bump release identifier to 4.8.0-2.
563         * DATESTAMP: Bump date stamp.
565 2012-11-05 Gary Funck  <gary@intrepid.com>
567         Merge trunk version 193152 into gupc branch.
569 2012-10-29 Gary Funck  <gary@intrepid.com>
571         Merge trunk version 192909 into gupc branch.
573 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
575         Remove unused --upc-pthreads-per-process compile switch.
576         * c-family/c.opt: Remove --upc-pthreads-per-process switch
577         that compiler/runtime do not use.
578         * c-family/c-opts.c (c_common_handle_option): Remove support for
579         --upc-pthreads-per-process switch.
580         * c-family/c-common.c: Ditto.
581         * c-family/c-common.h: Ditto.
583 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
585         Remove unused --upc-pthreads-per-process compile switch. 
586         * upc/upc-act.c (upc_handle_option): Ditto.
587         (upc_cpp_builtins): Ditto.
588         * upc/upc-lang.c (upc_init_options): Ditto.
590 2012-10-27 Gary Funck  <gary@intrepid.com>
592         * defaults.h: fix typos and formatting in UPC-related entries.
594 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
596         Place shared initialization code into the .text
597         section instead of a separate .upc_init section.
598         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
599         (UPC_INIT_BEGIN_NAME): Delete.
600         (UPC_INIT_END_NAME): Delete.
601         * doc/tm.texi.in: Ditto.
602         * doc/tm.texi: Ditto.
604 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
606         Place shared initialization code into the .text
607         section instead of a separate .upc_init section.
608         * upc/upc-act.c (upc_build_init_func): Remove settings
609         of the section for shared initialization code.
611 2012-10-22 Gary Funck  <gary@intrepid.com>
613         Merge trunk version 192673 into gupc branch.
615 2012-10-15 Gary Funck  <gary@intrepid.com>
617         Merge trunk version 192449 into gupc branch.
619 2012-10-08 Gary Funck  <gary@intrepid.com>
621         Merge trunk version 192198 into gupc branch.
623 2012-10-01 Gary Funck  <gary@intrepid.com>
625         Merge trunk version 191931 into gupc branch.
627 2012-09-26  Gary Funck  <gary@intrepid.com>
629         Implement support for various UPC version 1.3 specification
630         additions and changes. Deprecate support for upc_local_alloc.
631         Add support for upc_tick (wall-clock timer) library.
632         Add support for collective de-allocation functions:
633         upc_all_free and upc_all_lock_free.
634         Consult libgupc/ChangeLog,
635         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
637 2012-09-26  Gary Funck  <gary@intrepid.com>
639         * upc/upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.
641 2012-09-24 Gary Funck  <gary@intrepid.com>
643         Merge trunk version 191658 into gupc branch.
645 2012-09-17  Gary Funck  <gary@intrepid.com>
647         Merge trunk version 191376 into gupc branch.
649 2012-09-10  Gary Funck  <gary@intrepid.com>
651         Merge trunk version 191141 into gupc branch.
653 2012-08-29  Nenad Vukicevic  <nenad@intrepid.com>
655         * upc/gupc.texi: Add description for -fupc-pre-include.
657 2012-08-27  Gary Funck  <gary@intrepid.com>
659         Merge trunk version 190707 into gupc branch.
660         * tree.h (struct tree_base): Adjust various
661         UPC tree and type flags to refer to the
662         newly introduced u.bits field.
664 2012-08-20  Gary Funck  <gary@intrepid.com>
666         Merge trunk version 190524 into gupc branch.
667         Incorporates a fix in genoutput.c (to properly use
668         CONST_CAST) that led to build failures with
669         older versions of g++.
671 2012-08-16  Gary Funck  <gary@intrepid.com>
673         Merge trunk version 190437 into gupc branch.
674         Incorporates a fix for a build failure on the PPC
675         due to passing incorrect switches to the assembler.
676         Also, first merged trunk revision that compiles GCC
677         with the C++ compiler in the first stage.
679 2012-08-16  Gary Funck  <gary@intrepid.com>
681         * upc/upc-pts-struct.c (upc_pts_struct_is_null_p):
682         Adjust VEC_index() calls to use C++ syntax.
683         This is required as part of the move to compile
684         GCC with the C++ compiler.
686 2012-08-13  Gary Funck  <gary@intrepid.com>
688         Merge trunk version 190336 into gupc branch.
690 2012-08-09  Gary Funck  <gary@intrepid.com>
692         * c-family/c-common.c (c_fully_fold_internal): Do not fold
693         offsetof-like expressions when they are applied to UPC
694         shared types.
696 2012-08-07  Gary Funck  <gary@intrepid.com>
698         * upc/upc-genericize.c: Delete un-used include of optabs.h.
699         Fixes a parallel make failure due to un-noticed dependency.
701 2012-08-06  Gary Funck  <gary@intrepid.com>
703         Merge trunk version 190173 into gupc branch.
705 2012-08-01  Gary Funck  <gary@intrepid.com>
707         Merge trunk version 190063 into gupc branch.
708         Incorporates fix for build failure on IA64.
710 2012-07-30  Gary Funck  <gary@intrepid.com>
712         Merge trunk version 189954 into gupc branch.
714 2012-07-27  Gary Funck  <gary@intrepid.com>
716         Merge trunk version 189856 into gupc branch.
717         Incorporates fix for bootstrap with a sub-set of language
718         specific source directories present.
719         * optabs.c: Revert to trunk.  Rather than defining opcodes
720         as a way of defining get/put runtime library function names,
721         generate them directly in gcc/upc/upc-genericize.c.
722         * optabs.h: Ditto.
723         * genopinit.c: Ditto.
725 2012-07-27  Gary Funck  <gary@intrepid.com>
727         * upc/upc-genericize.c (upc_expand_get, upc_expand_put):
728         Rather than referring to UPC-specific opcodes to find
729         the name of the get/put library function name, generate
730         the name directly.
731         (get_lc_mode_name): New.
733 2012-07-25  Gary Funck  <gary@intrepid.com>
735         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
736         Fix regression: field-by-field comparison of UPC
737         pointer-to-shared (vaddr, thread) only works
738         (with the current logic) for the == and != operators.
740 2012-07-24  Gary Funck  <gary@intrepid.com>
742         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
743         Fix warning about use of const_tree.
745 2012-07-24  Gary Funck  <gary@intrepid.com>
747         Per UPC spec. 6.4.2p6, ignore the value of the
748         phase of a pointer-to-shared, when comparing for
749         equal or not equal.
750         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
751         Use bit-wise comparison only if the UPC pointer-to-shared
752         target type has a block size <= 1 and the representation
753         has vaddr first or the comparison is for equality/inequality.
754         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
755         Use (vaddr, thread) comparison only if the UPC pointer-to-shared
756         has a block size <= 1 or the comparison is for equality/inequality.
758 2012-07-23  Gary Funck  <gary@intrepid.com>
760         Merge trunk version 189777 into gupc branch.
762 2012-07-16  Gary Funck  <gary@intrepid.com>
764         Merge trunk version 189545 into gupc branch.
766 2012-07-12  Gary Funck  <gary@intrepid.com>
768         Merge trunk version 189366 into gupc branch.
770 2012-07-05  Gary Funck  <gary@intrepid.com>
772         Merge trunk version 189274 into gupc branch.
773         Incorporates graphite build infrastructure changes.
775 2012-07-04  Gary Funck  <gary@intrepid.com>
777         Merge trunk version 189080 into gupc branch.
778         * Makefile.in: Adjust for move of C front-end files.
779         * c/Make-lang.in: Ditto.
781 2012-07-04  Gary Funck  <gary@intrepid.com>
783         * upc/config-lang.in: Adjust for move of C front-end files.
784         * upc/upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
785         * upc/upc-gasp.c: Ditto.
786         * upc/upc-genericize.c: Ditto.
787         * upc/upc-lang.c: Ditto.
788         * upc/upc-pts-struct.c: Ditto.
790 2012-07-03  Gary Funck  <gary@intrepid.com>
792         Merge trunk version 189078 into gupc branch.
794 2012-06-25  Gary Funck  <gary@intrepid.com>
796         Merge trunk version 188931 into gupc branch.
798 2012-06-18  Gary Funck  <gary@intrepid.com>
800         Merge trunk version 188721 into gupc branch.
802 2012-06-11  Gary Funck  <gary@intrepid.com>
804         Merge trunk version 188380 into gupc branch.
806 2012-06-04  Gary Funck  <gary@intrepid.com>
808         Merge trunk version 188168 into gupc branch.
810 2012-05-29  Gary Funck  <gary@intrepid.com>
812         Merge trunk version 187927 into gupc branch.
814 2012-05-19  Gary Funck  <gary@intrepid.com>
816         * upc/upc-act.c (upc_lang_layout_decl): Ignore declarations of
817         an array of shared type declarations if the size of the
818         array is zero.  This avoids a segfault when processing
819         the UPC blocking factor.
821 2012-05-18  Gary Funck  <gary@intrepid.com>
823         Merge trunk version 187666 into gupc branch.
824         Incorporates fix for ICE in tree vectorization pass
825         when processing strided loads.
827 2012-05-17  Gary Funck  <gary@intrepid.com>
829         Merge trunk version 187578 into gupc branch.
831 2012-05-09  Gary Funck  <gary@intrepid.com>
833         Merge trunk version 187347 into gupc branch.
834         Incorporates fix for segfault in tree vectorization pass.
836 2012-05-08  Nenad Vukicevic  <nenad@intrepid.com>
838         * upc/gupcspec.c (lang_specific_driver): Improve handling of
839         "-x" switches: (a) add "-x upc" switch for C source files if
840         no -x switch was seen before OR "-x none" was seen, (b) add
841         "-x none" for files other then C files if "-x upc" was
842         previously added. Cleanup warnings on unused variables
843         and integer conversion. Print verbose info regardless of the
844         command line being the same.
846 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
848         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
849         Appropriate libraries and include files are added on the
850         command line to make it possible to compile with the driver
851         from the build tree.
853 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
855         * upc/gupc.texi: Simplify the description of the optimization
856         options.
858 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
860         * upc/Make-lang.in: Remove build of xgupc.
861         * upc/gupcspec.c (get_libgupc_path): Delete.
862         (lang_specific_driver): Remove support for building xgupc.
863         Removed code tried to add -B, -L, -isystem to the command
864         line if xgupc driver is invoked from the development tree.
866 2012-05-04  Gary Funck  <gary@intrepid.com>
868         * upc/upc-act.c (upc_num_threads): When THREADS is specified
869         statically, convert the value to a signed size type,
870         so that (for example) the thread affinity test in a
871         upc_forall() statement will work as expected for negative
872         integer index values.
874 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
876         * upc/Make-lang.in: Add year 2012 to the copyright.
878 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
880         * upc/gupc.c: Delete. The old GUPC driver.
881         * upc/gupcspec.c: Add. The new GUPC driver tailored
882         after fortran/gfortranspec.c driver. Options "-n", "-inst",
883         and "-inst-functions' are not supported by the new driver.
884         Support for building gupc and xgupc remains the same.
885         * upc/Make-lang.in (xgupc): Changes to compile gupcspec.c
886         instead of gupc.c
887         (gupc): Ditto.
888         * upc/gupc.texi: Remove '-n', '-inst', and '-inst-functions'
889         options.
891 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
893         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
894         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
895         a function returns a pointer-to-shared in memory instead
896         of in registers.
897         (rs6000_pass_by_reference): Ditto.
899 2012-04-28  Gary Funck  <gary@intrepid.com>
901         * c-decl.c (grokdeclarator): Set 'type' to error node
902         after detecting "shared auto variable" error to avoid
903         downstream complications.
904         * upc/upc-act.c: Fix a couple of spelling errors in comments.
906 2012-04-26  Gary Funck  <gary@intrepid.com>
908         * c-family/c-pragma.c (handle_pragma_upc):
909         Fix typo in warning message.
911 2012-04-17  Nenad Vukicevic  <nenad@intrepid.com>
913         * upc/gupc.texi: Fix the warning for usage of 'insertcopying'
914         before 'copying'. Minor changes to to copyright years and
915         manual info.
917 2012-04-17  Gary Funck  <gary@intrepid.com>
919         Merge trunk version 186486 into gupc branch.
921 2012-04-17  Gary Funck  <gary@intrepid.com>
923         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
924         value of the pupc mode.  Fixes a compile-time warning.
925         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
926         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
927         Improve source formatting.
929 2012-04-16  Gary Funck  <gary@intrepid.com>
931         * upc/upc-genericize.c: Adjust copyright.
932         (upc_genericize_fndecl): Adjust call graph
933         union member reference to use the newly introduced
934         'symbol' field in order to refer to 'decl'.
936 2012-04-09  Gary Funck  <gary@intrepid.com>
938         Merge trunk version 186243 into gupc branch.
939         Incorporates a powerpc 'ffi' fix.
941 2012-03-16  Gary Funck  <gary@intrepid.com>
943         Merge trunk version 185454 into gupc branch.
944         Incorporates a libgcc fix for builds on Darwin.
946 2012-03-13  Gary Funck  <gary@intrepid.com>
948         Merge trunk version 185278 into gupc branch.
949         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
950         call build_pointer_type() to apply UPC-specific qualifiers.
951         * top-level/configure.ac: factor the checking for posix hostst
952         out of the libgomp section so that it can also be used by libgupc.
953         * top-level/configure: Re-generate.
954         * DEV-PHASE: bump to 4.8.0-1.
956 2012-03-12  Gary Funck  <gary@intrepid.com>
958         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
959         the mode for a pointer for upc-pointer-to-shared types.
961 2012-03-04  Gary Funck  <gary@intrepid.com>
963         Merge trunk version 184900 into gupc branch.
965 2012-02-17  Gary Funck  <gary@intrepid.com>
967         Released GUPC 4.7.0.2 based on version 183992.
968         * DEV-PHASE: Bump release identifier to 4.7.0-3.
969         * DATESTAMP: Bump date stamp.
971 2012-02-07  Nenad Vukicevic  <nenad@intrepid.com>
973         * upc/gupc.texi: Added entries for the directory.
975 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
977         * upc/gupc-manpage.html: Removed. HTML files are generated from
978         the texi source.
980 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
982         * upc/gupc.texi (-x upc): Add files ending with '.c' to the list
983         of files compiled as UPC source.
985 2012-02-04  Nenad Vukicevic  <nenad@intrepid.com>
987         * upc/Make-lang.in (doc/gupc.info): Fix dependencies for creating
988         gupc.info document.
990 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
992         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
993         code generation (same as #pragma pupc off).
994         (set_pupc_mode): New. Set/restore profiling mode.
995         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
996         (set_pupc_mode): New. Prototype.
997         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
998         profiling code for shared variables initialization routines.
1000 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
1002         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1003         profiling code for shared variables initialization routines.
1005 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
1007         * upc/Make-lang.in: Various changes related to generating
1008         man/info pages from texi source file.
1009         (upc.install-common): Fix for removing the upc command
1010         link before install if suffix was applied.
1011         (upc.install-pdf): New.
1012         (upc.install-html): Change for the build from texi.
1013         (upc.install-man): Change for the build from texi.
1014         * upc/gupc.1: Removed.
1015         * upc/gupc.texi: New. Created texi source for man/info
1016         generation.
1018 2012-01-31  Gary Funck  <gary@intrepid.com>
1020         Merge trunk version 183751 into gupc branch.
1021         Incorporates fix for bootstrap failure on openSUSE 12.1.
1023 2012-01-30  Nenad Vukicevic  <nenad@intrepid.com>
1025         * upc/Make-lang.in: Fix the --program-suffix configuration
1026         option.  GUPC executables are now installed with appropriate
1027         suffixes and GUPC driver execs 'gcc' with the right suffix.
1029 2012-01-24  Nenad Vukicevic  <nenad@intrepid.com>
1031         * upc/upc-lang.c (upc_init_options): Disable section anchors
1032         for UPC language.
1034 2012-01-14  Gary Funck  <gary@intrepid.com>
1036         * upc/upc-genericize.c (upc_genericize_expr): Update input_location
1037         while traversing the program tree.
1038         (upc_expand_get, upc_expand_put): For profiling,  derive
1039         the source code location from the incoming 'loc' parameter.
1041 2012-01-10  Gary Funck  <gary@intrepid.com>
1043         Merge trunk version 183072 into gupc branch.
1044         Incorporates libcpp __BASE_FILE__ fix.
1046 2012-01-09  Gary Funck  <gary@intrepid.com>
1048         * upc/upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
1049         is_gimple_non_addressable.
1051 2012-01-06  Nenad Vukicevic <nenad@intrepid.com>
1053         * upc/Make-lang.in: Add appropriate linker flags when linking
1054         gupc drivers.
1056 2012-01-06  Nenad Vukicevic <nenad@intrepid.com>
1058         * upc/Make-lang.in: Add appropriate linker flags when linking
1059         gupc drivers.
1061 2011-12-31  Gary Funck  <gary@intrepid.com>
1063         Fix gupc driver to avoid segfault when processing
1064         invalid use of a switch that expects an argument.
1065         * upc/gupc.c (get_libgupc_path): Add check for non-NULL value of
1066         libgupc_archive before attempting to access libgupc_archive[0].
1067         (main): Do not issue error if lib_dir is NULL.  Instead, only
1068         process lib_dir if it is non-NULL.
1070 2011-12-31  Gary Funck  <gary@intrepid.com>
1072         Improve -fupc-debug support.
1073         * upc/upc-genericize.c (upc_expand_get, upc_expand_put,
1074         upc_genericize_sync_stmt): Add check for flag_upc_debug.
1075         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
1076         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
1077         * upc/upc-act.c (upc_cpp_builtins): Disable inlining of the
1078         runtime if flag_upc_debug is asserted.
1080 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
1082         * top-level/Makefile.def (flags_to_pass): Added GUPC
1083         defines. Fixes the make error when upc is not specified as one
1084         of the languages to build.
1085         * top-level/Makefile.in: Re-generate.
1087 2011-11-22  Gary Funck  <gary@intrepid.com>
1089         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
1090         * dwarf2out.c (gen_compile_unit_die): Check for
1091         the "GNU UPC" language string in lieu of "GCC UPC".
1092         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
1094 2011-11-22  Gary Funck  <gary@intrepid.com>
1096         * upc/upc-act.c (upc_cpp_builtins): Generate new pre-defined
1097         macro: __GUPC__.
1099 2011-11-18  Gary Funck  <gary@intrepid.com>
1101         Merge trunk version 181552 into gupc branch.
1102         Incorporates libgcc/libunwind fix for IA64.
1104 2011-11-19  Gary Funck  <gary@intrepid.com>
1106         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1107         Add check for UPC when defining the language type value
1108         in a traceback entry.
1110 2011-11-19  Gary Funck  <gary@intrepid.com>
1112         * upc/config-lang.in: Remove checks for supported targets.
1113         This is now done at a higher level.
1115 2011-11-18  Gary Funck  <gary@intrepid.com>
1117         Merge trunk version 181493 into gupc branch.
1118         Incorporates final fix for PR target/49992.
1120 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
1122         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
1123         change that converted relative include paths into absolute
1124         ones, as it does not work with older version of make (3.80).
1126 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
1128         Apply patch for Darwin build - PR49992.
1129         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
1130         * gcc/configure.ac: Ditto.
1131         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
1132         * gcc/ada/gcc-interface/Makefile.in: Ditto.
1133         * top-level/configure: Re-generate.
1134         * gcc/configure: Re-genrate.
1136 2011-10-26  Gary Funck  <gary@intrepid.com>
1138         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1139         "libupc" to "libgupc".
1140         * top-level/configure.ac: Implement support for cross-builds, and
1141           adjust for rename of libupc to libgupc.
1142         * top-level/Makefile.tpl: Ditto.
1143         * top-level/Makefile.def: Ditto.
1144         * top-level/configure: Re-generate.
1145         * top-level/Makefile.in: Re-generate.
1146         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
1147         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
1148         * doc/tm.texi: Re-generate.
1149         * tree-pretty-print.c (dump_block_node): Delete unused variable.
1150         * gcc.c: Adjust for rename of libupc to libgupc.
1151         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
1152         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
1153         Change "xupc" to "xgupc".
1154         * configure.ac: Change "GCC UPC" to "GNU UPC".
1155         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
1156         so that they are absolute paths.  This is needed because
1157         the upc-crtstuff builds are in the libgupc library build
1158         directories which are not at the same level as libgcc.
1159         * config/darwin.h: Adjust for rename of libupc to libgupc.
1161 2011-10-26  Gary Funck  <gary@intrepid.com>
1163         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1164         "libupc" to "libgupc".
1165         * upc/gupc.c: Rename from upc-cmd.c and adjust for rename
1166         of libupc to libgupc.
1167         * upc/upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
1168         * upc/config-lang.in: Adjust for rename of libupc to libgupc.
1169         * upc/gupc.1: Rename from upc.1.  Change "GCC UPC" references
1170         to "GNU UPC".  Adjust for rename of libupc to libgupc.
1171         Improve formatting.
1172         * upc/gupc-manpage.html: Rename from upc-manpage.html.  Re-generate.
1173         * upc/Make-lang.in: Change "upc" to "gupc".  Change "xupc" to "xgupc".
1174         Adjust for rename of libupc to libgupc.  Install target symlink from
1175         "upc" to "gupc".  Install target/version-specific hard links to "gupc".
1177 2011-10-20  Gary Funck  <gary@intrepid.com>
1179         Merge trunk version 180276 into gupc branch.
1180         Incorporates fix for PR bootstrap/50709.
1182 2011-10-20  Gary Funck  <gary@intrepid.com>
1184         Merge trunk version 180246 into gupc branch.
1186 2011-10-19  Gary Funck  <gary@intrepid.com>
1188         Merge trunk version 180233 into gupc branch.
1189         Incorporates fix for PR debug/49310 (var tracking).
1191 2011-10-17  Gary Funck  <gary@intrepid.com>
1193         Fix a regression caused by the previous commit.
1194         * upc/upc-genericize.c (upc_genericize_walk):
1195         Renamed from: upc_genericize_stmt.
1196         (upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
1197         re-walk the tree after simplification, by calling
1198         upc_genericize_walk().
1199         (upc_genericize_array_ref): expand the newly constructed
1200         indirect reference by calling upc_genericize_indirect_ref().
1202 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
1204         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
1205         only four (O0 static/dynamic, O3 static/dynamic).
1206         Detect -fupc-threads-0 as an option for dynamic threads
1207         compile environment.
1209 2011-10-10  Gary Funck  <gary@intrepid.com>
1211         * tree.c (check_qualified_type, check_aligned_type):
1212         Call tree_int_cst_equal() to compare UPC blocking factors
1213         if the corresponding tree pointers are not equal.
1214         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
1216 2011-10-10  Gary Funck  <gary@intrepid.com>
1218         * upc/upc-genericize.c (upc_simplify_shared_ref): When simplifying
1219         the base address always convert to (shared [] char *).
1220         This ensures that &a[i].field1 ends up with the required
1221         zero block size, for example.
1223 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
1225         Add configuration checks for struct/packed builds so we can
1226         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
1227         * testsuite/lib/target-supports.exp
1228         (check_effective_target_upc_struct_pts): New.
1229         (check_effective_target_upc_packed_pts): New.
1231 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1233         Add to FLAGS the flags needed to disable inlining of
1234         UPC run-time access routines.
1235         * testsuite/lib/target-supports.exp
1236         (add_options_for_upc_library_calls): New.
1238 2011-09-15  Gary Funck  <gary@intrepid.com>
1240         Fix ICE involving shared bit field accesses.
1241         * tree.c (build3_stat): Propagate TEEE_SHARED()
1242         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1244 2011-09-13  Gary Funck  <gary@intrepid.com>
1246         Merge trunk version 178795 into gupc branch.
1247         Incorporates fix to PR bootstrap/50010 for x86-32.
1249 2011-09-08  Gary Funck  <gary@intrepid.com>
1251         Merge trunk version 178557 into gupc branch.
1253 2011-09-07  Gary Funck  <gary@intrepid.com>
1255         Ensure that UPC pointer-to-shared type alignment is
1256         propagated to the final type.  Revert to long-standing
1257         alignment policy: twice the size of a "C" pointer.
1258         * tree.c (build_pointer_type): Propagate the alignment
1259         of the UPC pointer-to-shared representation type
1260         into the newly built pointer type.
1262 2011-08-30  Gary Funck  <gary@intrepid.com>
1264         * tree.h (check_qualified_type): Change 'const_tree'
1265         argument types back to 'tree' to avoid complaints
1266         of assignment drops qualifiers for invocations of the
1267         newly implemented TYPE_BLOCK_FACTOR() macro, which
1268         invokes hash functions with 'tree' pointer values that
1269         are not const qualified.
1270         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1271         * c-typeck.c (comptypes_internal): Ditto.
1273 2011-08-29  Gary Funck  <gary@intrepid.com>
1275         Fixes for regressions noted running "make check"
1276         versus GCC trunk.
1277         * fold-const.c (fold_unary_loc): Execute UPC-specific
1278         checks for a cast-of-a-cast, only if one of the
1279         operands is a UPC pointer-to-shared value.
1280         * opts.c (print_specific_help):  Fix a comparison
1281         in an assert that checks that there are enough
1282         bits reserved for the number of languages defined
1283         in the .opt files.
1285 2011-08-29  Gary Funck  <gary@intrepid.com>
1287         Implement a hash table to record UPC block factors.
1288         * c-family/stub-upc.c (upc_block_factor_insert,
1289         upc_block_factor_lookup): New dummy stub procedures.
1290         * c-family/c-common.c (c_sizeof_or_alignof_type):
1291         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1292         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1293         to copy (hashed) UPC blocking factor.
1294         (set_type_quals): Likewise.
1295         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1296         TYPE_HAS_THREADS_FACTOR().
1297         (type_common.block_factor): Delete.
1298         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1299         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1300         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1301         UPC blocking factors greater than one.
1302         * dwarf2out.c (modified_type_die): Re-implement
1303         logic that records UPC blocking factor in the generated
1304         DWARF2 debugging information.
1305         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1306         TYPE_HAS_THREADS_FACTOR().
1307         * c-decl.c (finish_decl, grokdeclarator):
1308         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1309         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1310         used by UPC, and print UPC-specific information.
1312 2011-08-28  Gary Funck  <gary@intrepid.com>
1314         Re-work the type machinery to fully support and to unify support
1315         for the UPC layout qualifier (blocking factor).
1316         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1317           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1318           and update prototype.
1319         * c-family/c-common.c (complete_array_type): call newly
1320           defined c_build_qualified_type_1() instead of
1321           upc_set_block_factor().
1322         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1323           upc_apply_layout_qualifier() and update prototype.
1324           (upc_set_block_factor): Delete prototype.
1325         * c-family/c-common.h (c_build_qualified_type): redefine
1326           as a pre-processor macro that invokes c_build_qualified_type_1()
1327           with a null UPC layout qualifier.
1328           (c_build_qualified_type_1): New.  Add layout qualifier argument
1329           to old c_build_qualified_type() prototype.
1330         * tree.c (set_type_quals, check_qualified_type):
1331           Add layout qualifier as argument.
1332           (check_aligned_type): Add check for UPC block factor equality.
1333           (get_qualified_type_1): Rename from get_qualified_type() and
1334           add layout qualifier as argument.
1335           (build_qualified_type_1): Rename from build_qualified_type() and
1336           add layout qualifier as argument.
1337         * tree.h (check_qualified_type): Add layout qualifier as argument
1338           to the prototype.
1339           (get_qualified_type): Re-define as a as a pre-processor macro
1340           that invokes get_qualified_type_1() with a null
1341           UPC layout qualifier.
1342           (get_qualified_type_1): Rename from get_qualified_type() and
1343           add layout qualifier as argument.
1344         * cp/tree.c (c_build_qualified_type_1): Rename from
1345           c_build_qualified_type() and add (unused) layout qualifier
1346           argument.
1347         * c-decl.c (finish_decl): re-format long error messages.
1348           (grokdeclarator): Re-work the logic so that it calls
1349           upc_grok_layout_qualifier() to handle the UPC layout
1350           qualifier, if present.
1351         * c-typeck.c (qualify_type, common_pointer_type,
1352           build_component_ref): Re-work the logic so that it calls
1353           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1354           if present.
1355           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1356           and add layout qualifier argument.
1357         * print_tree.c (print_node): Re-format a long line.
1359 2011-08-26  Gary Funck  <gary@intrepid.com>
1361         Merge trunk version 177949 into gupc branch.
1362         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1363           in the comment.
1364         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1365           to add new rliterals column value.
1367 2011-08-26  Gary Funck  <gary@intrepid.com>
1369         * convert.c (convert_to_integer): Fix the check for the
1370           difference between two UPC pointers-to-shared values.
1372 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1374         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1375           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1376           correctly check packed bits.
1377         * configure: Re-generate.
1379 2011-08-16  Gary Funck  <gary@intrepid.com>
1381         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1382           the barrier id expression is not an integer expression.
1384 2011-08-12  Gary Funck  <gary@intrepid.com>
1386         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1387           (revert to trunk).
1388         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1389           Set mode of UPC pointer-to-shared rep. to an
1390           integral mode of size at least as large as the
1391           size of the representation's struct type.
1393 2011-08-12  Gary Funck  <gary@intrepid.com>
1395         Rework/simplify the UPC genericize pass.
1396         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1397           upc_build_pointer_type): New.
1398           (upc_set_block_factor): Adjust to new calling sequence.
1399           (upc_build_shared_var_addr): Delete.
1400         * c-family/c-common.c (complete_array_type): Adjust call
1401           to upc_set_block_factor().
1402         * c-family/c-upc.h (upc_apply_layout_qualifier,
1403           upc_build_pointer_type): New.
1404           (upc_build_shared_var_addr): Delete.
1405           (upc_set_block_factor): Adjust to new calling sequence.
1406         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1407         * c-decl.c (grokdeclarator): Call newly defined
1408           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1409         * c-decl.c (grokdeclarator): Split long UPC-related error
1410           messages into two lines.
1411         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1412           directly.  Revert that change to trunk. (upc_genericize() will
1413           handle lowering the expressions that take the address of a
1414           UPC variable).
1415         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1416           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1417           representation type.
1419 2011-08-10  Gary Funck  <gary@intrepid.com>
1421         Implement additional fixes for recent merge with trunk.
1422         * explow.c (promote_mode): Do not attempt to promote
1423           the mode for UPC pointer-to-shared types.
1424         * config/i386/i386.c (function_value_64): Ditto.
1426 2011-08-07  Gary Funck  <gary@intrepid.com>
1428         Merge trunk version 177548 into gupc branch.
1429         * config/i386/i386.c (ix86_promote_function_mode):
1430           Do not promote UPC pointers-to-shared to Pmode.
1431         * c-family/c-ommon.c (pointer_int_sum):
1432           Also check the pointer operand, rather than just
1433           its type, when making the decision to derive
1434           the equivalent unshared type.
1435         * tree.c (build2_stat): If the type of the result
1436           passed in as an argument is a UPC shared type,
1437           derive the unshared equivalent when calculating
1438           the result type of the node.
1440 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1442         * config/darwin.c: Disable var_tracking option
1443           on -O0 as it is supposed to run only when optimization
1444           is applied. See GCC bug 49743.
1446 2011-07-06  Gary Funck  <gary@intrepid.com>
1448         Re-implement the pass that lowers trees generated by
1449         the UPC front-end into GENERIC.  Previously this was
1450         done within the gimplification framework, but this
1451         required that gimplification be run before inlining
1452         and various other passes, which did not fit in well
1453         with the current design of the middle-end passes.
1454         Now, the lowering is done by a newly defined language
1455         specific genericize hook.  With this change, we are
1456         are able to undo some extensions made to the gimplify
1457         logic, and thus can revert several files to trunk.
1458         * c-decl.c: Add a check for UPC deprecated names which
1459           may appear as undefined function names.
1460         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1461           LTI_upc_getaddr): Remove definitions of unused UPC
1462           library function names.  These were defined back when
1463           the libfunc interface was used to call these routines.
1464         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1465           in UPC lowering (genericize) pass.
1466         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1467           (instrument_func): Delete this hook.  Now handled in
1468           upc_genericize().
1469         * tree-pass.h: Revert to trunk.
1470         * c-typeck.c (build_unary_op): Adjust reference to
1471           upc_genericize() in a comment.
1472         * gimplify.c (create_tmp_var_raw): Delete logic that
1473           was converting UPC shared types into unshared types
1474           to be used for temporaries.  Now handled in  upc_genericize().
1475           Replace with an assertion check.
1476           (prepare_gimple_addressable): Revert to trunk's definition.
1477           No longer needed as an externally called function.
1478           (flag_instrument_functions_exclude_p): Re-define as
1479           an externally called function.
1480           (gimplify_function_tree): Delete code that implemented
1481           call to UPC's language specific function instrumentation hook.
1482         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1483           (prepare_gimple_addressable): Delete extern definition;
1484           revert to trunk's definition.
1485         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1486           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1487         * c-family/c-gimplify.c: Revert to trunk.
1488         * cp/cp-gimplify.c: Revert to trunk.
1489         * cp/cp-tree.h: Revert to trunk.
1490         * explow.c: Revert to trunk.
1491         * langhooks.c: Revert to trunk.
1492         * libfuncs.h: Revert to trunk.
1493         * objc/objc-act.c: Revert to trunk.
1495 2011-06-30  Gary Funck  <gary@intrepid.com>
1497         * c-family/c.opt: Bring options definitions up-to-date
1498         with respect to changes made in the trunk.
1500 2011-06-29  Gary Funck  <gary@intrepid.com>
1502         Merge trunk version 175584 into gupc branch.
1504 2011-06-13  Gary Funck  <gary@intrepid.com>
1506         libcpp/
1507         * include/cpplib.h (enum c_lang):
1508         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1509         This keeps all the "C" variants together.
1510         * init.c (lang_defaults): Add an entry for UPC.
1512 2011-06-09  Gary Funck  <gary@intrepid.com>
1514         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1515         a 32-bit target, the size expression overflowed, the result was
1516         error_mark_node, and an ICE was triggered on an attempt to evaluate
1517         C_TYPE_VARIABLE_SIZE() on the error node.
1518         (upc_blocksizeof_expr, upc_blocksizeof_type,
1519         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1520         Make similar changes to avoid further processing of error_mark_node.
1522 2011-06-07  Gary Funck  <gary@intrepid.com>
1524         * sel-sched.c (move_op): Incorporate the following
1525         patch to eliminate ICE at -O3 on IA64/Altix.
1527 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1529         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1530         code_motion_path_driver returned 0 or 1.
1531         (sel_region_finish): Clear h_d_i_d.
1533 2011-06-02  Gary Funck  <gary@intrepid.com>
1535         Merge trunk version 174558 into gupc branch.
1537 2011-05-30  Gary Funck  <gary@intrepid.com>
1539         * configure.ac: Make the default order of the virtual
1540           address field in a UPC pointer-to-shared to be "first".
1541           This reverts to the previous setting, and is a short term
1542           measure to work around a bug found on the IA64,
1543           where vaddr=last led to incorrect code generation.
1544           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1545           in AC_DEFINE(), to agree with recent changes in files
1546           that reference this define.
1547           configure, config.in: Regenerate.
1549 2011-05-26  Gary Funck  <gary@intrepid.com>
1551         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1552           configure: Regenerate.
1553         * ../fixincludes/fixincl.x: Revert to trunk.
1554           This file is auto-generated, and should not be merged.
1556 2011-05-18  Gary Funck  <gary@intrepid.com>
1558         Merge trunk version 173845 into gupc branch.
1560 2011-05-17  Gary Funck  <gary@intrepid.com>
1562         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1563           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1564         * c-family/c-pragma.c: Remove conditional compilation
1565           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1566           Test 'compiling_upc' when compiling to determine if
1567           the "upc" and "pupc" pragmas should be registered.
1568         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1569           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1570           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1571           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1572           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1573           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1574           Move these target-dependent definitions from config/upc-conf.h
1575           to here.
1576         * configure.ac: Improve the logic for UPC-related options.
1577           Delete references to pre-processor definitions that have
1578           been moved to "upc/upc-pts.h".
1579         * configure, config.in: Regenerate.
1580         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1581           to trunk.  This substitution variable was used to
1582           configure the representation-specific versions of
1583           the tree rewrites that operate on UPC pointer-to-shared
1584           types and objects.
1585         * c-parser.c (c_parser_upc_forall_statement): Remove
1586           reference to UPC_FORALL_DEPTH_NAME, and call
1587           newly defined upc_rts_forall_depth_var() instead.
1588         * config/upc-config.h: Delete. Various definitions
1589           moved to "upc/upc-rts-names.h", "defaults.h", and
1590           "upc/upc-pts.h".
1591         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1592           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1593           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1594           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1595           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1596           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1597           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1598           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1599           New.  Document UPC target macros.
1600           doc/tm.texi: Regenerate.
1602 2011-05-07  Gary Funck  <gary@intrepid.com>
1604         * ../configure.ac: Disable build of libupc
1605           on non POSIX hosted systems.  Use AS_HELP_STRING
1606           to define messages.  Remove 'word-pair' as a
1607           possible --with-upc-pts UPC pointer-to-shared
1608           representation.
1609         * ../configure: Regenerate.
1610         * configure.ac: Use AS_HELP_STRING to define messages.
1611           Remove 'word-pair' as a possible --with-upc-pts
1612           UPC pointer-to-shared representation.
1613           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1614           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1615         * configure: Regenerate.
1616         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1617           definition.
1618         * ChangeLog.upc: Fix some typos.
1620 2011-05-07  Gary Funck  <gary@intrepid.com>
1622         * ../maintainer-scripts/gcc_release: Add "upc"
1623           as one of the released languages.
1625 2011-05-06  Gary Funck  <gary@intrepid.com>
1627         Eliminate compilation warnings, by fixing
1628         #include's and updating function prototypes.
1629         * c-family/c-cppbuiltin.c: Include c-upc.h.
1630         * optabs.c (gen_libfunc): Change type of 'suffix'
1631           parameter to conform with prototype.
1632         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1633           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1634           hook used by UPC.
1635         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1636           the prototype.
1637         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1638           argument values to cp_gimplify_expr.
1639         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1640           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
1641           pre-processor definitions that are no longer
1642           needed to build the 'upc' command (upc-cmd.c)
1643           because the linker specs. defined in libupc
1644           take care of linking in the needed libraries.
1645         * c-parser.c (c_parser_upc_forall_statement):
1646           initialize affinity_loc to avoid "maybe unused" warning.
1647           (c_parser_upc_sync_statement): Remove un-needed
1648           'ret' variable.  Cast return value from
1649           'upc_build_sync_stmt' to 'void' to avoid
1650           compile-time warning.
1651         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1652           integer constant, not a string.  Range is restricted
1653           to maximum positive 32-bit integer (2+ billion) to
1654           fit in with the use of 'int' in the front-end's
1655           switch handling logic.
1657 2011-05-06  Gary Funck  <gary@intrepid.com>
1659         Upgrade c-family source files to conform with modularity
1660         improvements.  Mainly, remove #include of c-tree.h in files
1661         under c-family, and define a new UPC-specific #include file,
1662         c-upc.h, and use it.
1663         * c-family/stub-upc.c: Remove #include of c-tree.h and
1664           upc/upc-act.h.  Replace with #include of c-common.h
1665           and c-upc.h.
1666           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1667           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1668           upc_localsizeof_expr, upc_localsizeof_type,
1669           upc_shared_type_p): Delete.
1670         * c-family/c-opts.c: Add #include of c-upc.h
1671         * c-family/c-common.c: Remove #include of c-tree.h and
1672           add #include of c-upc.h.
1673         * c-family/c-upc.h: New. Define API for UPC-specific functions
1674           (mostly implemented in upc/upc-act.c).
1675         * c-family/c-common.h (upc_cpp_builtins,
1676           upc_write_global_declarations): Remove extern definitions.
1677         * c-family/c-pragma.c: Remove #include of c-tree.h.
1678           Add #include of c-upc.h.
1679         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
1680           c-tree.h.
1681           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
1682           upc/upc-act.c, and define as a macro.
1683           (expand_affinity_test): Remove unused external definition.
1684           (build_upc_unshared_type): Add external definition.
1685           (upc_shared_type_p): Remove external definition.
1686         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1687         * dojump.c: Remove #include of c-tree.h.
1688         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1689           and move to tree.h.
1690           (count_upc_threads_refs, is_multiple_of_upc_threads,
1691           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1692           upc_build_shared_var_addr, upc_build_sync_stmt,
1693           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1694           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1695           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1696           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1697           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1698           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1699           set_upc_consistency_mode, get_upc_consistency_mode,
1700           push_upc_consistency_mode, pop_upc_consistency_mode,
1701           get_upc_pupc_mode):
1702           Move external definitions to c-family/c-upc.h.
1703           (upc_blocksizeof_type, upc_localsizeof_type,
1704           upc_elemsizeof_type): Remove external definitions;
1705           these functions were moved to c-parser.c.
1706         * c-decl.c: Add #include of c-upc.h.
1707         * c-typeck.c: Add #include of c-upc.h.
1708         * c-convert.c: Add #include of c-upc.h.
1709         * ChangeLog.upc: Fix typo.
1710         * Makefile.in: Add references to c-family/c-upc.h, everywhere
1711           there is a reference to c-family/c-objc.h.
1712           Remove extraneous reference to upc-act.h.
1713         * c-parser.c: Add #include of c-upc.h.
1714           (upc_blocksizeof_expr, upc_blocksizeof_type,
1715           upc_elemsizeof_expr, upc_elemsizeof_type,
1716           upc_localsizeof_expr, upc_localsizeof_type):
1717           Move from upc/upc-act.c.
1718         * tree.c (build_upc_unshared_type): New.
1719           Move upc_get_unshared_type from upc/upc-act.c and rename
1720           to build_upc_unshared_type.
1721           c-family/c-common.c (pointer_int_sum): refer to renamed
1722           build_upc_unshared_type function.
1723           c-convert.c (convert): Ditto.
1724           convert.c (convert_to_pointer): Ditto.
1725           c-typeck.c (build_unary_op, build_modify_expr,
1726           really_start_incremental_init): Ditto.
1727           gimplify.c (create_tmp_var_raw): Ditto.
1728           tree.c (build1_stat): Ditto.
1729           tree.h (upc_get_unshared_type): Rename to
1730           build_upc_unshared_type.
1732 2011-05-06  Gary Funck  <gary@intrepid.com>
1734         Merge trunk version 173471 into gupc branch.
1736 2011-05-05  Gary Funck  <gary@intrepid.com>
1738         Make changes that bring the GUPC branch more closely in sync.
1739         with the GCC trunk.  Revert any fixes that are not UPC-specific.
1740         Remove gratuitous re-formatting.
1741         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1742           This file should have been removed in a previous merge
1743           with the trunk.
1744         * ../configure.ac: Remove Cray Catamount/CNL support.
1745         * ../configure: Regenerate.
1746         * ../config.sub: Remove Cray Catamount/CNL support.
1747         * config.gcc: Remove Cray Catamount/CNL support.
1748         * ../maintainer-scripts/gcc_release: Revert to trunk.
1749         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1750           was missed in a previous merge with the trunk.
1751         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1752           procedure.
1753         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1754           in addition to ARRAY_TYPE.
1755         * c-typeck.c: Remove an extra newline character.
1756         * varasm.c: Revert a fix that improved an error message
1757           when TLS common data is unimplemented.
1758         * varasm.c: Revert a gcc_assert that had been added which
1759           checked for a null DECL_SIZE_UNIT field.
1760         * emultls.c: Revert to trunk. Remove possible fix.
1761         * Makefile.in: Revert extra blank line that is present
1762           in the trunk version.
1763         * Makefile.in: Revert a fix that handled long shell
1764           argument lists for plugin headers.
1765         * config/ia64/ia64.opt: Revert an option setting
1766           that increased the default TLS address range.
1767         * config/ia64/crtbegin.asm: Revert to trunk.
1768           Removes an extra newline character.
1769         * ChangeLog.upc: Spell check.
1771 2011-05-03  Gary Funck  <gary@intrepid.com>
1773         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1774           (c_apply_type_quals_to_decl): Ditto.
1775         * c-family/c-common.h: Ditto.
1776         * dojump.c: Ditto.
1777         * c-decl.c (merge_decls): Ditto.
1778         * c-typeck.c (qualify_type, default_conversion,
1779           build_component_ref, build_unary_op,
1780           c_build_qualified_type): Ditto.
1781         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1783 2011-04-29  Gary Funck  <gary@intrepid.com>
1785         * c-decl.c (finish_decl): Improve error diagnostics.
1786           (grokdeclarator): Ditto.
1787         * c-typeck.c (build_c_cast): Improve error diagnostics.
1788           (convert_for_assignment): Ditto.
1789           (build_binary_op): Ditto.
1790         * c-parser.c (c_parser_upc_forall_statement):
1791           Improve error diagnostics.
1792         * convert.c (convert_to_integer):  Improve error diagnostics.
1794 2011-04-24  Gary Funck  <gary@intrepid.com>
1796         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1797           occurred if there is an error in the barrier id
1798           expression.  Map error_mark_node into NULL.
1800 2011-04-22  Gary Funck  <gary@intrepid.com>
1802         Merge trunk version 172873 into gupc branch.
1804 2011-04-19  Gary Funck  <gary@intrepid.com>
1806         Merge trunk version 172359 into gupc branch.
1808 2011-04-14  Gary Funck  <gary@intrepid.com>
1810         * c-family/c.opt: Add UPC as a valid language for various
1811           switches where it is valid for "C", that were not updated
1812           in previous merges with trunk.
1814 2011-04-13  Gary Funck  <gary@intrepid.com>
1816         * c-family/c.opt (fupc-pre-include): New option definition.
1817         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1818           -fno-upc-pre-include is asserted.
1820 2011-04-07  Gary Funck  <gary@intrepid.com>
1822         Merge trunk version 172158 into gupc branch.
1823         to bring in the following fix.
1825 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1827         PR bootstrap/48403
1828         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1829         if old and new states differ.
1831 2011-04-06  Gary Funck  <gary@intrepid.com>
1833         Merge trunk version 171966 into gupc branch.
1835 2011-04-01  Gary Funck  <gary@intrepid.com>
1837         * tree.h (tree_base): Move UPC flag bits into bit fields
1838           located just before spare bits.  Decrement spare bits.
1839           Rename 'shared_flag' -> 'upc_shared_flag',
1840           'relaxed_flag' -> 'upc_relaxed_flag',
1841           'strict_flag' -> 'upc_strict_flag, and adjust macros
1842           that reference them accordingly.
1844 2011-04-01  Gary Funck  <gary@intrepid.com>
1846         * c-decl.c (grokdeclarator): Fix formatting of
1847           code that sets UPC block size on scalars.
1849 2011-04-01  Gary Funck  <gary@intrepid.com>
1851         * c-decl.c (grokdeclarator): Revert use of white space
1852           to match the trunk (to rationalize diffs).
1853         * c-typeck.c (convert_for_assignment): Ditto.
1854         * tree-ssa.c (useless_type_conversion_p): Ditto.
1856 2011-03-23  Gary Funck  <gary@intrepid.com>
1858         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1859           the GCC 4.6 release branch.
1861 2011-03-21  Gary Funck  <gary@intrepid.com>
1863         Merge trunk version 171202 into gupc branch.
1865 2011-03-20  Gary Funck  <gary@intrepid.com>
1867         * varasm.c: Call error() directly with a format specifier,
1868           rather than using sprintf() to format the message.
1869           This should make it easier to internationalize UPC's error messages.
1871 2011-03-20  Gary Funck  <gary@intrepid.com>
1873         * configure.ac: Fix the check for gnu ld when enabling
1874           UPC link script support.
1875           configure: Regenerate (also picks up changes from previous
1876           merge with trunk).
1878 2011-03-20  Gary Funck  <gary@intrepid.com>
1880         Move UPC start files, end files, and linker specs.
1881         into libupc.  This reduces the impact on common GCC
1882         configuration files, and ensures that these UPC-specific
1883         components are only built when the UPC language dialect is selected.
1884         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1885           linker specs. Fix typo in -fupc-debug message.
1886         * config/upc-conf.h, config/darwin.h: Move defines for
1887           UPC-related section begins/ends into libupc/config/default/
1888           upc-crt-config.h.
1889         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1890           UPC-related linker compiler specifications,
1891           accessed via %:include().
1892         * configure.ac, configure: Remove logic related to building
1893                 upc-crtbegin/end. Remove config. tests for numa and cpu
1894           affinity (previously used by the 'upc' driver); these
1895           settings are now propagated by target-specific compiler
1896           specs. built by libupc.  Regenerate autoconf.
1897         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1898           linker compiler specifications, accessed via %:include().
1899           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1900           'link_upc_spec'.
1901         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1902         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1903           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1904           config/ia64/linux.h, config/mips/t-iris,
1905           config/mips/iris6.h: Revert to trunk version 167307.
1906         libgcc/
1907         * configure, configure.ac, config.host, Makefile.in:
1908           Revert to trunk version 167307.
1910 2011-02-23  Gary Funck  <gary@intrepid.com>
1912         * c-decl.c (undeclared_variable): fix typo. Inadvertently
1913         removed negation on following 'if'.
1915 2011-02-22  Gary Funck  <gary@intrepid.com>
1917         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1918         to check for the usage of certain deprecated UPC keywords.
1919         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1920         * c-tree.h (undeclared_variable): Define prototype.
1922 2011-02-12  Gary Funck  <gary@intrepid.com>
1924         * c-typeck.c: (build_c_cast, convert_for_assignment)
1925           Diagnose an attempt to convert from an integer to
1926           a pointer-to-shared as an error.  Also, fix various
1927           error messages so that they use the preferred term
1928           pointer-to-shared instead of "shared pointer".
1930 2011-02-07  Gary Funck  <gary@intrepid.com>
1932         * c-typeck.c: (convert_for_assignment)
1933           Fix typo. in error message.
1935 2011-01-23  Gary Funck  <gary@intrepid.com>
1937         * c-typeck.c: (c_build_qualified_type)
1938           derive UPC block size by calling upc_get_block_size(),
1939           to ensure that the element type of an array of an array
1940           is derived correctly.
1942 2010-12-29  Gary Funck  <gary@intrepid.com>
1944         Merge trunk version 168314 into gupc branch.
1946 2010-12-15  Gary Funck  <gary@intrepid.com>
1948         Merge trunk version 167307 into gupc branch.
1950 2010-10-19  Gary Funck  <gary@intrepid.com>
1952         * c-typeck.c: Fix typo in previous fix
1953           which led to a mis-compare for equal block sizes.
1955 2010-10-18  Gary Funck  <gary@intrepid.com>
1957         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1958           diagnosed as an error
1959           The conversion from any type (shared or not) to
1960           a shared type is likely either meaningless or an error.  This update
1961           makes any conversion to a shared type, an error.
1963 2010-10-18  Gary Funck  <gary@intrepid.com>
1965         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1966           generates spurious warning
1967           Add a #define procedure that does the same thing as
1968           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1969           this procedure to diagnose passing an integer value to a
1970           pointer-to-shared as an error.
1972 2010-10-18  Gary Funck  <gary@intrepid.com>
1974         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1975           matching routine declaration.
1976           When checking for type compatibility, shared qualified types must
1977           have the same block factor.  This check was missing from
1978           comptypes_internal().  This update adds the check for blocking
1979           factor equality.
1981 2010-10-17  Gary Funck  <gary@intrepid.com>
1983         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1984           found (-O1 -g)
1985           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1987 2010-10-17  Gary Funck  <gary@intrepid.com>
1989         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1990           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1991           produces ice with -O3 and -m32.
1992           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1994 2010-10-17  Gary Funck  <gary@intrepid.com>
1996         * c-common.c: Diagnose the application of the various "*sizeof"
1997           operations on generic pointer-to-shared as a compilation error.
1999 2010-10-17  Gary Funck  <gary@intrepid.com>
2001         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2002           message regarding a function parameter being declared with a shared
2003           qualifier.
2004           The parameter's 'name' value is not defined at this point, and
2005           cannot be used in the error message.  This update removes the
2006           reference to 'name', and eliminates the segfault.
2008 2010-10-16  Gary Funck  <gary@intrepid.com>
2010         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2011           The gcc/Makefile.in rules for install-plugin had to be re-written to
2012           break up a long list of header files that exceeded the command line
2013           limitation imposed by Irix.
2014           Access functions for TFmode types had to be implemented.
2015           Apparently, this is the mode used for the SGI/MIPS port to represent
2016           "long float".
2018 2010-10-14  Gary Funck  <gary@intrepid.com>
2020         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2021           via typedef chain should not be diagnosed as an error.
2022           If the block size that is given by the typedef is equal to the block
2023           size given explicitly in the variable declaration, then do not
2024           complain.  The easiest way to make this check was to create a
2025           temporary type that is a clone of the element type and then set its
2026           block size using the given layout qualifier.  Then compare the block
2027           size of the temporary (the declaration) to the block size specified
2028           in the typedef.  This complexity is needed, because the '[*]' block
2029           size needs to be calculated, and the '[]' needs to be mapped into a
2030           zero block size.
2032 2010-10-10  Gary Funck  <gary@intrepid.com>
2034         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2035           specified
2036           The compiler properly detected the presence of two or more layout
2037           qualifiers as an error, but then hit an assertion check, because the
2038           code that followed the error expected to see a qualifier and not a
2039           layout specifier.  The fix is simple: just return immediately after
2040           detecting the error.
2042 2010-10-10  Gary Funck  <gary@intrepid.com>
2044         * c-decl.c: Improve error diagnostics for various cases of UPC
2045           shared array type declarations.
2046           Add the check for this error: "In the dynamic translation
2047           environment, THREADS may not appear in declarations of shared arrays
2048           with indefinite block size".  Also, fix up a few of the other
2049           related error diagnostics.
2051 2010-10-09  Gary Funck  <gary@intrepid.com>
2053         * c-common.c: Fix bug: segfault on incomplete array definition.
2054           This turned out to be a bit complicated.   The logic in
2055           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2056           the THREADS identifier in the case where the blocking factor has
2057           been set to indefinite ([]).  This can happen when indefinite array
2058           declarations are processed for shared arrays.  At that time, the
2059           file scope has been closed and THREADS is no longer in scope.  Some
2060           more work is needed on upc_lang_layout_decl().  It has some
2061           duplication, and notably duplicates the two branches of the if
2062           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2063           caller of this routine (layout_decl()).
2064           The method of forcing a layout qualifier of [] in the indefinite
2065           declaration handler is odd a well.  The code that just does the
2066           setting of the block factor, needs to moved into its own routine
2067           that doesn't depend upon a declspec for '[]' to be passed in, just
2068           in order to set the blocking factor to some value (in this case, 0).
2069           Also, the logic for how that shared type is constructed is strange.
2070           First the type with 0 blocking factor is set.  Then the shared
2071           qualifier is removed from the type, and then added back later.  The
2072           intermediate type has a blocking factor set, but it has no shared
2073           qualifier.  Fixing this will require some thought.  It is tempting
2074           just to make indefinite shared arrays an error, rather than forcing
2075           the dimension to be '1'.
2076           This likely fixes a serious error in the previous update to
2077           upc_lang_layout_decl(), where it didn't have the logic to set
2078           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2079           the previous update would fail on many tests.
2081 2010-10-09  Gary Funck  <gary@intrepid.com>
2083         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2084           (decl) is null, which can happen if some layout error occurred
2085           upstream.
2087 2010-10-09  Gary Funck  <gary@intrepid.com>
2089         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2090           "variable-sized" when compiled in dynamic threads.
2091           This long-standing bug is easily fixed.  Just check
2092           for the situation that the non-constant sized type is shared and
2093           that it does not have a dimension that references a multiple of
2094           threads.  If this criteria is met, then issue a meaningful
2095           diagnostic.
2097 2010-10-01  Gary Funck  <gary@intrepid.com>
2099         * configure, configure.ac: Update manual page, and bug reporting
2100           URL.  Update "man" page to reflect debugging switches.
2101           Also, some general clean up.  Change the bug reporting
2102           URL to point to gccupc.org.
2104 2010-09-27  Gary Funck  <gary@intrepid.com>
2106         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2107           the UPC forall depth count variable is not found.
2108           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2109           The compiler will generate code that references this variable in
2110           order to implement nested upc_forall semantics.  If there is a
2111           compiler build or install problem, this variable may not be found.
2112           In this case, terminate with an internal_error().
2114 2010-09-26  Gary Funck  <gary@intrepid.com>
2116         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2117           mis-diagnosed as syntax error.
2118           Fix a failure exhibited by the Berkeley test case,
2119           bug873a.upc, which has the code:
2120                double d;
2121                upc_forall (;;;d) {...} The compiler did not properly handle
2122           the empty "condition" clause, and did not recover well when it was
2123           determined that the use of a double value, "d" above, was neither a
2124           pointer-to-shared nor an integer expression.  The update implements a
2125           fix for both issues.
2126           See also: gcc/c-parser.c gcc/upc/upc-act.c
2128 2010-09-23  Gary Funck  <gary@intrepid.com>
2130         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2131           incorporated into the referencing type.
2132           This was semi-fixed a few times before.  This update fixes a few
2133           more places where the layout qualifier wasn't being propagated
2134           through typedef's properly.  What made this a bit tricky is shown in
2135           the example cited in the bug report:
2136           typedef shared [5] int A_t; A_t A[5*THREADS];
2137           In the typedef, the blocksize is being applied to a shared *scalar*,
2138           and the code was applying the blocksize only to arrays.  This update
2139           handles shared scalars correctly.
2141 2010-09-22  Gary Funck  <gary@intrepid.com>
2143         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2144           upc_forall() semantics are not implemented
2145           The checkforall test in the Berkeley harness test suite indicated
2146           that GCC/UPC was not properly implementing nested upc_forall
2147           semantics.  Nested upc_forall statements (both statically or
2148           dynamically nested) must implement their affinity clause as if it
2149           were "continue"; thus all steps in the loop must execute without
2150           regard for affinity.  To implement these semantics a global depth
2151           counter, __upc_forall_depth, is maintained by the generated code
2152           that implements upc_forall.
2153           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2154           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2155           libupc/include/upc.h libupc/smp/upc_main.c
2157 2010-09-19  Gary Funck  <gary@intrepid.com>
2159         * c-decl.c: c-decl.c: zero out the layout specifier, after
2160           processing an array type.
2161           Fix the previous fix, that moved the setting of the type's layout
2162           qualifier to the outside of the array type processing loop.  What is
2163           missing from the fix is that the layout_qualifier variable needs to
2164           be cleared after setting the type's blocksize.
2166 2010-09-19  Gary Funck  <gary@intrepid.com>
2168         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2169           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2170           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2171           the actual maximum block size.  Therefore, the message was correct,
2172           but the underlying value that was being checked was wrong.  Change
2173           the values so that they agree with the actual implementation-defined
2174           limit.
2176 2010-09-11  Gary Funck  <gary@intrepid.com>
2178         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2179           multi-dimensional shared array with dynamic threads.
2180           This declaration caused an internal compiler error when compiled
2181           with dynamic threads:
2182               shared [*] int A[THREADS][16]; The bug was discovered when
2183           compiling the RTED_UPC test suite.
2184           The fix is to process layout qualifiers after the entire array type
2185           has been built.  Otherwise, we try to calculate the blocksize on a
2186           shared array type that has not had its "size depends upon the value
2187           of THREADS" flag set.
2188           Also, added a test case.
2189           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2191 2010-07-11  Gary Funck  <gary@intrepid.com>
2193         Fix a bug where a statement in c_build_qualified_type()
2194         in the trunk had been inadvertently deleted.
2195         This bug showed up in the IA64 port, because jmpbuf's
2196         on that architecture must be 16 byte aligned, and they were not.
2197         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2199 2010-07-08  Gary Funck  <gary@intrepid.com>
2201         Make changes so that other language compilers
2202         will build and bootstrap.
2203         * c-family/c-common.c (compiling_upc, flag_upc,
2204         flag_upc_instrument, flag_upc_instrument_functions,
2205         use_upc_dwarf2_extensions): Move to stub-upc.c and
2206         upc-lang.c.
2207         * c-family/c-common.h (use_upc_dwarf2_extensions,
2208         compiling_upc): Add extern definitions - needed
2209         to compile/build other language front ends.
2210         * c-family/c.opt: Fix the spelling of ObjC.
2211         It had been incorrectly spelled as Objc.
2212         * c-family/c.opt: Add UPC for the various switches
2213         that are valid for both C and ObjC.
2214         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2215         supported options switches when compiling assembly
2216         language.
2217         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2218         flag_upc_instrument, flag_upc_instrument_functions):
2219         Remove these definitions.  They have been moved
2220         to c-family/stub-upc.c.
2221         * upc/ChangeLog: Move relevant entries
2222         to ChangeLog.upc.
2223         * c-family/stub-upc.c (compiling_upc, flag_upc,
2224         flag_upc_instrument, flag_upc_instrument_functions,
2225         use_upc_dwarf2_extensions): Moved from c-common.c
2226         * upc/upc-lang.c (compiling_upc, flag_upc,
2227         flag_upc_instrument, flag_upc_instrument_functions,
2228         use_upc_dwarf2_extensions): Moved from c-common.c
2229         * objc/objc-act.c (objc_gimplify_expr): Add additional
2230         parameters to c_gimplify_expr() call, that are used
2231         by upc's tree rewrites.
2232         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2233         * gcc/cp/lex.c (init_reswords): If not compiling
2234         UPC, then mask off the UPC keywords.
2235         * cp/Make-lang.in (C_STUB_OBJS): Use this
2236         make macro to link with c-family/stub-objc.o
2237         and c-family/stub-upc.o.
2238         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2239         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2240         * objc/Make-lang.in: Link with c-family/stub-upc.o
2241         to avoid undefined references.
2242         c-parser.c: Fix line indentation.
2243         * libcpp/include/cpplib.h: Remove CL_UPC from
2244         the list of language kinds accepted by the
2245         C preprocessor.  This is not necessary because
2246         UPC is a derivative of C99, and does not need
2247         a different language kind.
2248         * c-fmaily/c-opts.c (c_common_handle_option):
2249         Call set_std_c99() when processing the
2250         "--lang upc" switch, instead of setting the
2251         language kind to CL_UPC.
2252         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2254 2010-07-03  Gary Funck  <gary@intrepid.com>
2256         Merge trunk version 161517 into gupc branch.
2257         * gcc/stub-upc.c: Move to gcc/c-family/.
2258         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2259         Add 'unused' attributes to avoid "set, but
2260         not referenced" warnings.
2261         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2262         Likewise.
2264 2010-03-01 Gary Funck  <gary@intrepid.com>
2266         Create gupc branch from trunk version 157149.
2268 2011-10-04  Gary Funck  <gary@intrepid.com>
2270         Merge trunk version 179421 into gupc branch.
2271         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
2272         argument to the call to check_qualified_type().
2274 2011-09-22  Gary Funck  <gary@intrepid.com>
2276         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
2277         information.
2278         (dump_upc_type_quals): New.
2280 2011-09-22  Gary Funck  <gary@intrepid.com>
2282         * upc/upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
2283         before calling TYPE_BLOCK_FACTOR().  This fits better with
2284         recent encoding of block factor values with a hash table.
2286 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
2288         Add to FLAGS the flags needed to disable inlining of
2289         UPC run-time access routines.
2290         * testsuite/lib/target-supports.exp
2291         (add_options_for_upc_library_calls): New.
2293 2011-09-15  Gary Funck  <gary@intrepid.com>
2295         Fix ICE involving shared bit field accesses.
2296         * tree.c (build3_stat): Propagate TEEE_SHARED()
2297         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
2299 2011-09-15  Gary Funck  <gary@intrepid.com>
2301         Fix ICE involving shared bit field accesses.
2302         * upc/upc-genericize.c (upc_simplify_shared_ref): Improve
2303         "shared bit fields not yet implemented" error message
2304         by adding file/line number location.
2306 2011-09-13  Gary Funck  <gary@intrepid.com>
2308         Merge trunk version 178795 into gupc branch.
2309         Incorporates fix to PR bootstrap/50010 for x86-32.
2311 2011-09-13  Gary Funck  <gary@intrepid.com>
2313         * upc/upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
2314         * upc/upc-lang.c (upc_init_options): Ditto.
2315         * upc/upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
2316         upc_genericize_expr, upc_genericize_compound_expr): Ditto.
2317         * upc/upc-act.c (upc_parse_init, upc_build_pointer_type,
2318         upc_block_factor_insert, upc_pts_is_valid_p): Ditto.
2320 2011-09-08  Gary Funck  <gary@intrepid.com>
2322         Merge trunk version 178557 into gupc branch.
2324 2011-09-07  Gary Funck  <gary@intrepid.com>
2326         Ensure that UPC pointer-to-shared type alignment is
2327         propagated to the final type.  Revert to long-standing
2328         alignment policy: twice the size of a "C" pointer.
2329         * tree.c (build_pointer_type): Propagate the alignment
2330         of the UPC pointer-to-shared representation type
2331         into the newly built pointer type.
2333 2011-09-07  Gary Funck  <gary@intrepid.com>
2335         Ensure that UPC pointer-to-shared type alignment is
2336         propagated to the final type.  Revert to long-standing
2337         alignment policy: twice the size of a "C" pointer.
2338         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
2339         shared pointers have twice the alignment of a pointer.
2340         * upc/upc-act.c (upc_cpp_builtins): Unconditionally emit
2341         the definition of __UPC_PTS_ALIGN__.
2343 2011-09-02  Gary Funck  <gary@intrepid.com>
2345         Align UPC pointers-to-shared, only if the target enforces
2346         strict alignment.
2347         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Align a
2348         UPC pointer-to-shared type, only if the target requires
2349         strict alignment.
2350         * upc/upc-act.c (upc_cpp_builtins): Output pre-defined macro,
2351         __UPC_PTS_ALIGN__, only if the target requires strict alignment.
2353 2011-08-30  Gary Funck  <gary@intrepid.com>
2355         * tree.h (check_qualified_type): Change 'const_tree'
2356         argument types back to 'tree' to avoid complaints
2357         of assignment drops qualifiers for invocations of the
2358         newly implemented TYPE_BLOCK_FACTOR() macro, which
2359         invokes hash functions with 'tree' pointer values that
2360         are not const qualified.
2361         * tree.c (check_qualified_type, check_aligned_type): Ditto.
2362         * c-typeck.c (comptypes_internal): Ditto.
2364 2011-08-29  Gary Funck  <gary@intrepid.com>
2366         Fixes for regressions noted running "make check"
2367         versus GCC trunk.
2368         * fold-const.c (fold_unary_loc): Execute UPC-specific
2369         checks for a cast-of-a-cast, only if one of the
2370         operands is a UPC pointer-to-shared value.
2371         * opts.c (print_specific_help):  Fix a comparison
2372         in an assert that checks that there are enough
2373         bits reserved for the number of languages defined
2374         in the .opt files.
2376 2011-08-29  Gary Funck  <gary@intrepid.com>
2378         Implement a hash table to record UPC block factors.
2379         * c-family/stub-upc.c (upc_block_factor_insert,
2380         upc_block_factor_lookup): New dummy stub procedures.
2381         * c-family/c-common.c (c_sizeof_or_alignof_type):
2382         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2383         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
2384         to copy (hashed) UPC blocking factor.
2385         (set_type_quals): Likewise.
2386         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2387         TYPE_HAS_THREADS_FACTOR().
2388         (type_common.block_factor): Delete.
2389         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
2390         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
2391         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
2392         UPC blocking factors greater than one.
2393         * dwarf2out.c (modified_type_die): Re-implement
2394         logic that records UPC blocking factor in the generated
2395         DWARF2 debugging information.
2396         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2397         TYPE_HAS_THREADS_FACTOR().
2398         * c-decl.c (finish_decl, grokdeclarator):
2399         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2400         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
2401         used by UPC, and print UPC-specific information.
2403 2011-08-29  Gary Funck  <gary@intrepid.com>
2405         Implement a hash table to record UPC block factors.
2406         * upc/upc-act.c (upc_block_factor_for_type): New garbage-collected
2407         hash table.
2408         (upc_lang_init, upc_finish): Move to end of source file.
2409         (upc_lang_init): create  upc_block_factor_for_type hash table.
2410         (upc_block_factor_lookup, upc_block_factor_insert): New.
2411         (upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
2412         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2413         (upc_grok_layout_qualifier): convert blocking factor to sizetype
2414         before checking for equality to element type's blocking factor.
2416 2011-08-28  Gary Funck  <gary@intrepid.com>
2418         Re-work the type machinery to fully support and to unify support
2419         for the UPC layout qualifier (blocking factor).
2420         * c-family/stub-upc.c (upc_set_block_factor): Delete.
2421           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
2422           and update prototype.
2423         * c-family/c-common.c (complete_array_type): call newly
2424           defined c_build_qualified_type_1() instead of
2425           upc_set_block_factor().
2426         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
2427           upc_apply_layout_qualifier() and update prototype.
2428           (upc_set_block_factor): Delete prototype.
2429         * c-family/c-common.h (c_build_qualified_type): redefine
2430           as a pre-processor macro that invokes c_build_qualified_type_1()
2431           with a null UPC layout qualifier.
2432           (c_build_qualified_type_1): New.  Add layout qualifier argument
2433           to old c_build_qualified_type() prototype.
2434         * tree.c (set_type_quals, check_qualified_type):
2435           Add layout qualifier as argument.
2436           (check_aligned_type): Add check for UPC block factor equality.
2437           (get_qualified_type_1): Rename from get_qualified_type() and
2438           add layout qualifier as argument.
2439           (build_qualified_type_1): Rename from build_qualified_type() and
2440           add layout qualifier as argument.
2441         * tree.h (check_qualified_type): Add layout qualifier as argument
2442           to the prototype.
2443           (get_qualified_type): Re-define as a as a pre-processor macro
2444           that invokes get_qualified_type_1() with a null
2445           UPC layout qualifier.
2446           (get_qualified_type_1): Rename from get_qualified_type() and
2447           add layout qualifier as argument.
2448         * cp/tree.c (c_build_qualified_type_1): Rename from
2449           c_build_qualified_type() and add (unused) layout qualifier
2450           argument.
2451         * c-decl.c (finish_decl): re-format long error messages.
2452           (grokdeclarator): Re-work the logic so that it calls
2453           upc_grok_layout_qualifier() to handle the UPC layout
2454           qualifier, if present.
2455         * c-typeck.c (qualify_type, common_pointer_type,
2456           build_component_ref): Re-work the logic so that it calls
2457           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
2458           if present.
2459           (c_build_qualified_type_1): Rename from c_build_qualified_type()
2460           and add layout qualifier argument.
2461         * print_tree.c (print_node): Re-format a long line.
2463 2011-08-28  Gary Funck  <gary@intrepid.com>
2465         Re-work the type machinery to fully support and to unify support
2466         for the UPC layout qualifier (blocking factor).
2467         * upc/upc-genericize.c (upc_simplify_shared_ref): Call
2468         c_build_qualified_type_1() instead of upc_set_block_factor()
2469         to assert a zero blocking factor.
2470         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Call
2471         c_build_qualified_type_1() to build predefined shared
2472         qualified types, instead of build_variant_type_copy().
2473         * upc/upc-pts-packed.c (upc_pts_packed_init_type): Call
2474         c_build_qualified_type_1() to build predefined shared
2475         qualified types, instead of build_variant_type_copy().
2476         * upc/upc-act.c (upc_set_block_factor): Delete.
2477         (upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
2478         Rework logic so that it returns a blocking factor rather than
2479         a qualified type.  Add 'loc' argument and call error_at().
2480         Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
2481         the block size of the element type into the result type, and checks
2482         for errors due to an attempt to merge differing blocking factors.
2484 2011-08-26  Gary Funck  <gary@intrepid.com>
2486         Merge trunk version 177949 into gupc branch.
2487         * c-family/c-common.h (enum rid): Bump the number of type modifiers
2488           in the comment.
2489         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
2490           to add new rliterals column value.
2492 2011-08-26  Gary Funck  <gary@intrepid.com>
2494         * convert.c (convert_to_integer): Fix the check for the
2495           difference between two UPC pointers-to-shared values.
2497 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
2499         * configure.ac: Fix the name for --with-upc-pts-packed-bits
2500           option. Support --with-upc-packed-bits as deprecated. Fix the code to
2501           correctly check packed bits.
2502         * configure: Re-generate.
2504 2011-08-16  Gary Funck  <gary@intrepid.com>
2506         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
2507           the barrier id expression is not an integer expression.
2509 2011-08-16  Gary Funck  <gary@intrepid.com>
2511         * upc/upc-act.c (upc_decl_init): Do not attempt to expand
2512           an error mark node.  Fixes ICE after error diagnostic.
2513         * upc/upc-cmd.c (main): detect missing option argument for
2514           options that require an argument, and print error diagnostic.
2515           (get_print_cmd): Re-direct error output to /dev/null to
2516           avoid issuing duplicate error messages.
2518 2011-08-12  Gary Funck  <gary@intrepid.com>
2520         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
2521           (revert to trunk).
2522         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
2523           Set mode of UPC pointer-to-shared rep. to an
2524           integral mode of size at least as large as the
2525           size of the representation's struct type.
2527 2011-08-12  Gary Funck  <gary@intrepid.com>
2529         Rework/simplify the UPC genericize pass.
2530         * c-family/stub-upc.c (upc_apply_layout_qualifier,
2531           upc_build_pointer_type): New.
2532           (upc_set_block_factor): Adjust to new calling sequence.
2533           (upc_build_shared_var_addr): Delete.
2534         * c-family/c-common.c (complete_array_type): Adjust call
2535           to upc_set_block_factor().
2536         * c-family/c-upc.h (upc_apply_layout_qualifier,
2537           upc_build_pointer_type): New.
2538           (upc_build_shared_var_addr): Delete.
2539           (upc_set_block_factor): Adjust to new calling sequence.
2540         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
2541         * c-decl.c (grokdeclarator): Call newly defined
2542           upc_apply_layout_qualifier() instead of upc_set_block_factor().
2543         * c-decl.c (grokdeclarator): Split long UPC-related error
2544           messages into two lines.
2545         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
2546           directly.  Revert that change to trunk. (upc_genericize() will
2547           handle lowering the expressions that take the address of a
2548           UPC variable).
2549         * config/i386/i386.c (ix86_promote_function_mode): For UPC
2550           pointers-to-shared, return the type mode of the UPC pointer-to-shared
2551           representation type.
2553 2011-08-12  Gary Funck  <gary@intrepid.com>
2555         Rework/simplify the UPC genericize pass.
2556         * upc/upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
2557         * upc/upc-act.h: Cosmetic change.
2558         * upc/config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
2559         * upc/upc-genericize.c (upc_expand_get):
2560           Add WANT_STABLE_VALUE parameter.
2561           (upc_build_shared_var_addr, upc_shared_addr_rep): New.
2562           (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
2563           create_unshared_var, lookup_unshared_var, map_unshared_var,
2564           unshared_var_addr, unshared_var_name,
2565           upc_free_unshared_var_table): Move from upc-act.c.
2566           (upc_expand_get, upc_expand_put): Change their source and/or
2567           destination parameters so that they are no longer addresses
2568           of the objects, but rather references to the objects themselves.
2569           (upc_simplify_shared_ref): Rewrite (simplify/generalize).
2570           (upc_shared_addr_rep): New.
2571           (upc_shared_addr):  Adjust call to upc_build_shared_var_addr(),
2572           and re-factor the logic.
2573           (upc_genericize_sync_stmt): Re-format comment.
2574           (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
2575           (upc_genericize_addr_expr): Re-factor the logic.
2576           (upc_genericize_indirect_ref, upc_genericize_field_ref):
2577           Adjust call to upc_expand_get() and re-factor the logic.
2578           (upc_genericize_modify_expr): Adjust call to upc_expand_put()
2579           and re-factor the logic.
2580           (upc_genericize_expr): Improve/fix comments.
2581           (upc_genericize_finish, upc_genericize_init): New.
2582         * upc/upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
2583           (upc_char_pts_type_node): Create new global type node.
2584           (upc_pts_struct_is_null_p): Generalize variable names to
2585           reflect the fact that the vaddr field can be either first/last.
2586           (upc_pts_struct_build_sum): Make corrections to comments.
2587           (upc_pts_struct_build_add_offset): Delete.
2588         * upc/upc-genericize.h (upc_genericize_finish, upc_genericize_init):
2589           New prototypes.
2590         * upc/upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
2591           (upc_char_pts_type_node): Create new global type node.
2592         * upc/Make-lang.in: Add dependencies to gtype-upc.h
2593           and gt-upc-upc-genericize.h.
2594         * upc/upc-act.c: Adjust includes to reflect moving the functions
2595           that handle the UPC unshared "shadow variables" into
2596           upc-genericize.c.  Improve/fix various comments.
2597         * upc/upc-act.c (upc_parse_init): Call upc_genericize_init().
2598           (upc_build_pointer_type): New.
2599           (upc_set_block_factor): Re-purpose.  Move the front-end
2600           related error checks into upc_apply_layout_qualifier().
2601           (upc_apply_layout_qualifier): New.
2602           (upc_write_global_declarations): Call upc_genericize_finish().
2604 2011-08-10  Gary Funck  <gary@intrepid.com>
2606         Implement additional fixes for recent merge with trunk.
2607         * explow.c (promote_mode): Do not attempt to promote
2608           the mode for UPC pointer-to-shared types.
2609         * config/i386/i386.c (function_value_64): Ditto.
2611 2011-08-07  Gary Funck  <gary@intrepid.com>
2613         Merge trunk version 177548 into gupc branch.
2614         * config/i386/i386.c (ix86_promote_function_mode):
2615           Do not promote UPC pointers-to-shared to Pmode.
2616         * c-family/c-ommon.c (pointer_int_sum):
2617           Also check the pointer operand, rather than just
2618           its type, when making the decision to derive
2619           the equivalent unshared type.
2620         * tree.c (build2_stat): If the type of the result
2621           passed in as an argument is a UPC shared type,
2622           derive the unshared equivalent when calculating
2623           the result type of the node.
2625 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
2627         * config/darwin.c: Disable var_tracking option
2628           on -O0 as it is supposed to run only when optimization
2629           is applied. See GCC bug 49743.
2631 2011-07-11  Gary Funck  <gary@intrepid.com>
2633         * upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
2634         qualification was incorrectly derived from the source operand.
2635         (upc_genericize_fndecl): New.
2636         (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
2637         c_genericize() more than once in the event of nested procedures.
2638         (upc_genericize_real_imag_ref): Rename,
2639         was: upc_genericize_real_image_ref.
2640         (upc_expand_put): call internal_error() with meaningful message
2641         in lieu of abort().
2642         (upc_genericize_real_imag_ref): call internal_error() with
2643         meaningful message in lieu of gcc_unreachable().
2645 2011-07-06  Gary Funck  <gary@intrepid.com>
2647         Re-implement the pass that lowers trees generated by
2648         the UPC front-end into GENERIC.  Previously this was
2649         done within the gimplification framework, but this
2650         required that gimplification be run before inlining
2651         and various other passes, which did not fit in well
2652         with the current design of the middle-end passes.
2653         Now, the lowering is done by a newly defined language
2654         specific genericize hook.  With this change, we are
2655         are able to undo some extensions made to the gimplify
2656         logic, and thus can revert several files to trunk.
2657         * c-decl.c: Add a check for UPC deprecated names which
2658           may appear as undefined function names.
2659         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
2660           LTI_upc_getaddr): Remove definitions of unused UPC
2661           library function names.  These were defined back when
2662           the libfunc interface was used to call these routines.
2663         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
2664           in UPC lowering (genericize) pass.
2665         * langhooks.h (gimplify_expr): Revert to trunk's definition.
2666           (instrument_func): Delete this hook.  Now handled in
2667           upc_genericize().
2668         * tree-pass.h: Revert to trunk.
2669         * c-typeck.c (build_unary_op): Adjust reference to
2670           upc_genericize() in a comment.
2671         * gimplify.c (create_tmp_var_raw): Delete logic that
2672           was converting UPC shared types into unshared types
2673           to be used for temporaries.  Now handled in  upc_genericize().
2674           Replace with an assertion check.
2675           (prepare_gimple_addressable): Revert to trunk's definition.
2676           No longer needed as an externally called function.
2677           (flag_instrument_functions_exclude_p): Re-define as
2678           an externally called function.
2679           (gimplify_function_tree): Delete code that implemented
2680           call to UPC's language specific function instrumentation hook.
2681         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
2682           (prepare_gimple_addressable): Delete extern definition;
2683           revert to trunk's definition.
2684         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
2685           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
2686         * c-family/c-gimplify.c: Revert to trunk.
2687         * cp/cp-gimplify.c: Revert to trunk.
2688         * cp/cp-tree.h: Revert to trunk.
2689         * explow.c: Revert to trunk.
2690         * langhooks.c: Revert to trunk.
2691         * libfuncs.h: Revert to trunk.
2692         * objc/objc-act.c: Revert to trunk.
2694 2011-07-06  Gary Funck  <gary@intrepid.com>
2696         Improve/simplify the logic in upc_genericize.
2697         * upc/upc-genericize.c (upc_create_tmp_var): Delete the
2698           PREFIX argument.  Aways use "UPC" as the prefix.
2699           (upc_genericize_compound_expr): Add a WANT_VALUE argument.
2700           (upc_genericize_cond_expr): New.
2701           (upc_genericize_decl_expr): New.
2702           (upc_genericize_stmt): New.
2703           (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
2704           to upc_create_tmp_var().
2705           (upc_genericize_expr): Change the handling
2706           of the want_value flag passed in the DATA argument.
2707           Always assert this flag after processing EXPR_P.
2708           (upc_genericize_compound_expr): Adjust call
2709           to upc_genericize_compound_expr() and call
2710           upc_genericize_cond_expr() and upc_genericize_decl_expr().
2712 2011-07-06  Gary Funck  <gary@intrepid.com>
2714         Re-implement the pass that lowers trees generated by
2715         the UPC front-end into GENERIC.  Previously this was
2716         done within the gimplification framework, but this
2717         required that gimplification be run before inlining
2718         and various other passes, which did not fit in well
2719         with the current design of the middle-end passes.
2720         Now, the lowering is done by a newly defined language
2721         specific genericize hook.  With this change, we are
2722         are able to undo some extensions made to the gimplify
2723         logic, and thus can revert several files to trunk.
2724         * upc/upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
2725         * upc/upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
2726         * upc/Make-lang.in: Adjust to refer to upc-genericize.[cho].
2727         * upc/upc-lnag.c: refer to upc-genericize.h.
2728           (LANG_HOOKS_GENERICIZE): define as upc_genericize.
2729           (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
2730           (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
2731         * upc/upc-act.c: Minor code format fix.
2733 2011-06-30  Gary Funck  <gary@intrepid.com>
2735         * c-family/c.opt: Bring options definitions up-to-date
2736         with respect to changes made in the trunk.
2738 2011-06-29  Gary Funck  <gary@intrepid.com>
2740         Merge trunk version 175584 into gupc branch.
2742 2011-06-29  Gary Funck  <gary@intrepid.com>
2744         Merge trunk version 175584 into gupc branch.
2745         * upc/upc-act.c (upc_handle_option): Change reference to
2746         have_named_sections so that it refers to the
2747         targetm_common structure.
2749 2011-06-28  Gary Funck  <gary@intrepid.com>
2751         * upc/upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
2752         Remove extern definitions. Now declared as 'static'.
2753         * upc/upc-gimplify.c, upc/upc-lang.c,
2754         upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
2755         upc-cmd.c, upc-act.c: Improve/add comments, fix
2756         typos and spelling errors.
2758 2011-06-13  Gary Funck  <gary@intrepid.com>
2760         libcpp/
2761         * include/cpplib.h (enum c_lang):
2762         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
2763         This keeps all the "C" variants together.
2764         * init.c (lang_defaults): Add an entry for UPC.
2766 2011-06-10  Gary Funck  <gary@intrepid.com>
2768         * upc/upc-act.c (upc_set_block_factor): Handle the case where
2769         the UPC blocking factor expression overflowed.
2771 2011-06-09  Gary Funck  <gary@intrepid.com>
2773         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
2774         a 32-bit target, the size expression overflowed, the result was
2775         error_mark_node, and an ICE was triggered on an attempt to evaluate
2776         C_TYPE_VARIABLE_SIZE() on the error node.
2777         (upc_blocksizeof_expr, upc_blocksizeof_type,
2778         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
2779         Make similar changes to avoid further processing of error_mark_node.
2781 2011-06-07  Gary Funck  <gary@intrepid.com>
2783         * sel-sched.c (move_op): Incorporate the following
2784         patch to eliminate ICE at -O3 on IA64/Altix.
2786 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
2788         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
2789         code_motion_path_driver returned 0 or 1.
2790         (sel_region_finish): Clear h_d_i_d.
2792 2011-06-02  Gary Funck  <gary@intrepid.com>
2794         Merge trunk version 174558 into gupc branch.
2796 2011-06-02  Gary Funck  <gary@intrepid.com>
2798         Merge trunk version 174558 into gupc branch.
2799         * upc/upc-lang.c (upc_check_decl_init): Use recently defined
2800         'append_to_statement_list_force' function to add UPC
2801         initialization statements to the UPC initialization
2802         statement list ('upc_init_stmt_list').
2803         (upc_build_init_func): Use recently defined
2804         'append_to_statement_list_force' function to add
2805         statements listed in 'upc_init_stmt_list' onto the
2806         function body constructed to implement initialization
2807         of UPC declarations that require active initialization
2808         at program start up.  The previous methods of manipulating
2809         statement lists no longer worked, due to changes in the
2810         the statement list structure.
2812 2011-05-30  Gary Funck  <gary@intrepid.com>
2814         * configure.ac: Make the default order of the virtual
2815           address field in a UPC pointer-to-shared to be "first".
2816           This reverts to the previous setting, and is a short term
2817           measure to work around a bug found on the IA64,
2818           where vaddr=last led to incorrect code generation.
2819           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
2820           in AC_DEFINE(), to agree with recent changes in files
2821           that reference this define.
2822           configure, config.in: Regenerate.
2824 2011-05-26  Gary Funck  <gary@intrepid.com>
2826         * configure.ac: Fix typo when referring to $upc_vaddr_order.
2827           configure: Regenerate.
2828         * ../fixincludes/fixincl.x: Revert to trunk.
2829           This file is auto-generated, and should not be merged.
2831 2011-05-23  Gary Funck  <gary@intrepid.com>
2833         * upc/upc-pts-struct.c: Revert to code that aligned the
2834           internal pointer-to-shared representation to
2835           twice the alignment of a pointer.  This fixes
2836           an ICE that occurred when building the compiler
2837           on an IA64 target.
2839 2011-05-18  Gary Funck  <gary@intrepid.com>
2841         Merge trunk version 173845 into gupc branch.
2843 2011-05-17  Gary Funck  <gary@intrepid.com>
2845         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
2846           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
2847         * c-family/c-pragma.c: Remove conditional compilation
2848           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
2849           Test 'compiling_upc' when compiling to determine if
2850           the "upc" and "pupc" pragmas should be registered.
2851         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2852           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2853           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2854           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2855           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2856           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
2857           Move these target-dependent definitions from config/upc-conf.h
2858           to here.
2859         * configure.ac: Improve the logic for UPC-related options.
2860           Delete references to pre-processor definitions that have
2861           been moved to "upc/upc-pts.h".
2862         * configure, config.in: Regenerate.
2863         * Makefile.in (UPC_PTS_REP): Remove definition and revert
2864           to trunk.  This substitution variable was used to
2865           configure the representation-specific versions of
2866           the tree rewrites that operate on UPC pointer-to-shared
2867           types and objects.
2868         * c-parser.c (c_parser_upc_forall_statement): Remove
2869           reference to UPC_FORALL_DEPTH_NAME, and call
2870           newly defined upc_rts_forall_depth_var() instead.
2871         * config/upc-config.h: Delete. Various definitions
2872           moved to "upc/upc-rts-names.h", "defaults.h", and
2873           "upc/upc-pts.h".
2874         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
2875           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
2876           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2877           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2878           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2879           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2880           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2881           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
2882           New.  Document UPC target macros.
2883           doc/tm.texi: Regenerate.
2885 2011-05-17  Gary Funck  <gary@intrepid.com>
2887         * upc/upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
2888           upc_pts_build_cond_expr, upc_pts_build_constant,
2889           upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
2890           upc_pts_build_threadof, upc_pts_init_type): Remove extern
2891           definitions.
2892           (upc_pts_ops_t): New. Define handler table that will
2893           implement either the 'packed' or the 'struct' representation
2894           of a UPC pointer-to-shared value.
2895           (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
2896           refers to the packed and the struct UPC pointer-to-shared
2897           representation implementation.
2898           (upc_pts): New. Define handler table that is set up at initialization
2899           to refer to the handlers for the UPC pointer-to-shared
2900           representation (packed/struct) that has been configured.
2901           Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
2902           and configure the UPC pointer-to-shared definitions that
2903           are specific to the configured UPC pointer-to-shared
2904           representation.
2905         * upc/upc-act.h (upc_pts_is_valid_p): Rename extern definition from
2906           is_valid_pts_p to upc_pts_is_valid_p.
2907         * lang-specs.h: Reformat the UPC compilation specs.
2908           to improve readability.
2909         * upc/upc-rts-names.h: New. Define the names of UPC runtime
2910           library functions that implement UPC language statement
2911           semantics.  These definitions were moved from config/upc-conf.h
2912         * upc/upc-gimplify.c: Add include of "upc-rts-names.h".
2913           Refer to newly defined pointer manipulation routines
2914           by indirecting through the newly defined "pts" handler table.
2915           Re-format, re-indent.
2916         * upc/upc-lang.c: Add include of "upc-pts.h".  Fix a comment.
2917         * upc/config-lang.in: Remove logic that inserted "config/upc-conf.h"
2918           into the target include and file path.
2919         * upc/upc-pts-struct.c: Add include of "upc-rts-names.h".
2920           (upc_pts_struct_ops): Define the pointer manipulation
2921           handler table that implements operations on UPC
2922           pointers-to-shared, represented as a struct.
2923           Re-format and re-indent.
2924         * upc/upc-gasp.c: Add include of "upc-rts-names.h".
2925           Re-format and re-indent.
2926         * upc/upc-pts-packed.c: Add include of "upc-rts-names.h".
2927           (upc_pts_packed_ops): Define the pointer manipulation
2928           handler table that implements operations on UPC
2929           pointers-to-shared, represented as a packed integer.
2930           Re-format and re-indent.
2931         * upc/Make-lang.in: Compile both "upc-pts-packed.c" and
2932           "upc-pts-struct.c".  One/other will be selected at
2933           compilation time to implement operations on UPC
2934           on the UPC pointer-to-shared that has been configured.
2935           Add dependencies on "upc-rts-names.h".
2936         * upc/upc-cmd.c: Re-format and re-indent.
2937         * upc/upc-act.c: Add include of "upc-rts-names.h".
2938           (upc_pts): New. Add definition of the handler
2939           table that implements representation specific
2940           operations on trees that refer to UPC pointer-to-shared
2941           objects and types.  Re-format and re-indent.
2943 2011-05-07  Gary Funck  <gary@intrepid.com>
2945         * ../configure.ac: Disable build of libupc
2946           on non POSIX hosted systems.  Use AS_HELP_STRING
2947           to define messages.  Remove 'word-pair' as a
2948           possible --with-upc-pts UPC pointer-to-shared
2949           representation.
2950         * ../configure: Regenerate.
2951         * configure.ac: Use AS_HELP_STRING to define messages.
2952           Remove 'word-pair' as a possible --with-upc-pts
2953           UPC pointer-to-shared representation.
2954           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
2955           (UPC_MAX_BLOCK_SIZE): Correct the default value.
2956         * configure: Regenerate.
2957         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
2958           definition.
2959         * ChangeLog.upc: Fix some typos.
2961 2011-05-07  Gary Funck  <gary@intrepid.com>
2963         * ../maintainer-scripts/gcc_release: Add "upc"
2964           as one of the released languages.
2966 2011-05-06  Gary Funck  <gary@intrepid.com>
2968         Eliminate compilation warnings, by fixing
2969         #include's and updating function prototypes.
2970         * c-family/c-cppbuiltin.c: Include c-upc.h.
2971         * optabs.c (gen_libfunc): Change type of 'suffix'
2972           parameter to conform with prototype.
2973         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2974           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2975           hook used by UPC.
2976         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2977           the prototype.
2978         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2979           argument values to cp_gimplify_expr.
2980         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2981           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
2982           pre-processor definitions that are no longer
2983           needed to build the 'upc' command (upc-cmd.c)
2984           because the linker specs. defined in libupc
2985           take care of linking in the needed libraries.
2986         * c-parser.c (c_parser_upc_forall_statement):
2987           initialize affinity_loc to avoid "maybe unused" warning.
2988           (c_parser_upc_sync_statement): Remove un-needed
2989           'ret' variable.  Cast return value from
2990           'upc_build_sync_stmt' to 'void' to avoid
2991           compile-time warning.
2992         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2993           integer constant, not a string.  Range is restricted
2994           to maximum positive 32-bit integer (2+ billion) to
2995           fit in with the use of 'int' in the front-end's
2996           switch handling logic.
2998 2011-05-06  Gary Funck  <gary@intrepid.com>
3000         Upgrade c-family source files to conform with modularity
3001         improvements.  Mainly, remove #include of c-tree.h in files
3002         under c-family, and define a new UPC-specific #include file,
3003         c-upc.h, and use it.
3004         * c-family/stub-upc.c: Remove #include of c-tree.h and
3005           upc/upc-act.h.  Replace with #include of c-common.h
3006           and c-upc.h.
3007           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
3008           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
3009           upc_localsizeof_expr, upc_localsizeof_type,
3010           upc_shared_type_p): Delete.
3011         * c-family/c-opts.c: Add #include of c-upc.h
3012         * c-family/c-common.c: Remove #include of c-tree.h and
3013           add #include of c-upc.h.
3014         * c-family/c-upc.h: New. Define API for UPC-specific functions
3015           (mostly implemented in upc/upc-act.c).
3016         * c-family/c-common.h (upc_cpp_builtins,
3017           upc_write_global_declarations): Remove extern definitions.
3018         * c-family/c-pragma.c: Remove #include of c-tree.h.
3019           Add #include of c-upc.h.
3020         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
3021           c-tree.h.
3022           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
3023           upc/upc-act.c, and define as a macro.
3024           (expand_affinity_test): Remove unused external definition.
3025           (build_upc_unshared_type): Add external definition.
3026           (upc_shared_type_p): Remove external definition.
3027         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
3028         * dojump.c: Remove #include of c-tree.h.
3029         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
3030           and move to tree.h.
3031           (count_upc_threads_refs, is_multiple_of_upc_threads,
3032           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
3033           upc_build_shared_var_addr, upc_build_sync_stmt,
3034           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
3035           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
3036           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
3037           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
3038           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
3039           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
3040           set_upc_consistency_mode, get_upc_consistency_mode,
3041           push_upc_consistency_mode, pop_upc_consistency_mode,
3042           get_upc_pupc_mode):
3043           Move external definitions to c-family/c-upc.h.
3044           (upc_blocksizeof_type, upc_localsizeof_type,
3045           upc_elemsizeof_type): Remove external definitions;
3046           these functions were moved to c-parser.c.
3047         * c-decl.c: Add #include of c-upc.h.
3048         * c-typeck.c: Add #include of c-upc.h.
3049         * c-convert.c: Add #include of c-upc.h.
3050         * ChangeLog.upc: Fix typo.
3051         * Makefile.in: Add references to c-family/c-upc.h, everywhere
3052           there is a reference to c-family/c-objc.h.
3053           Remove extraneous reference to upc-act.h.
3054         * c-parser.c: Add #include of c-upc.h.
3055           (upc_blocksizeof_expr, upc_blocksizeof_type,
3056           upc_elemsizeof_expr, upc_elemsizeof_type,
3057           upc_localsizeof_expr, upc_localsizeof_type):
3058           Move from upc/upc-act.c.
3059         * tree.c (build_upc_unshared_type): New.
3060           Move upc_get_unshared_type from upc/upc-act.c and rename
3061           to build_upc_unshared_type.
3062           c-family/c-common.c (pointer_int_sum): refer to renamed
3063           build_upc_unshared_type function.
3064           c-convert.c (convert): Ditto.
3065           convert.c (convert_to_pointer): Ditto.
3066           c-typeck.c (build_unary_op, build_modify_expr,
3067           really_start_incremental_init): Ditto.
3068           gimplify.c (create_tmp_var_raw): Ditto.
3069           tree.c (build1_stat): Ditto.
3070           tree.h (upc_get_unshared_type): Rename to
3071           build_upc_unshared_type.
3073 2011-05-06  Gary Funck  <gary@intrepid.com>
3075         Merge trunk version 173471 into gupc branch.
3077 2011-05-06  Gary Funck  <gary@intrepid.com>
3079         Eliminate compilation warnings, by fixing
3080         #include's and updating function prototypes.
3081         * upc/upc-gimplify.c: Include bitmap.h.
3082           (upc_gimplify_real_image_ref): Mark various parameters
3083           as unused.  This is a stub procedure for now.
3084         * upc/upc-lang.c: Include c-family/c-upc.h.
3085           upc-gasp.c: Ditto.
3086         * upc/upc-cmd.c (no_start_files): Delete unused variable.
3087           The -nostartfiles switch is now handled by the linker spec.
3088         * ChangeLog: Spell check.
3090 2011-05-06  Gary Funck  <gary@intrepid.com>
3092         Upgrade c-family source files to conform with modularity
3093         improvements.  Mainly, remove #include of c-tree.h in files
3094         under c-family, and define a new UPC-specific #include file,
3095         c-upc.h, and use it.
3096         * upc/upc-act.h (upc_write_global_declarations,
3097           upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
3098           upc_num_threads, upc_diagnose_deprecated_stmt):
3099           Move external definitions to c-family/c-upc.h
3100           (upc_blocksizeof_expr, upc_blocksizeof_type,
3101           upc_elemsizeof_expr, upc_elemsizeof_type,
3102           upc_localsizeof_expr, upc_localsizeof_type):
3103           Remove external definitions; these functions
3104           were moved from upc-act.c to c-parser.c.
3105         * upc/upc-gimplify.c: Add #include of c-family/c-upc.h.
3106           upc-pts-packed.c: Ditto.
3107           upc-pts-struct.c: Ditto.
3108         * upc/config-lang.in: Update gtfiles to refer to c-upc.h
3109           and other files.
3110         * upc/upc-act.c: Add #include of c-family/c-upc.h.
3111           (upc_blocksize, upc_elemsizeof, upc_localsizeof):
3112           Make external so that it can be called from c-parser.c.
3113           (upc_blocksizeof_expr, upc_blocksizeof_type,
3114           upc_elemsizeof_expr, upc_elemsizeof_type,
3115           upc_localsizeof_expr, upc_localsizeof_type):
3116           Move from upc/upc-act.c to c-parser.c.
3117           (upc_set_block_factor): Fix typo in error message.
3118           (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
3119           Move to tree.h and define as a macro.
3120           (upc_get_unshared_type): Delete. renamed to
3121           build_upc_unshared_type and moved to tree.c.
3122         * upc/upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
3123           refer to renamed build_upc_unshared_type function.
3124           upc-act.c (create_unshared_var): Ditto.
3126 2011-05-05  Gary Funck  <gary@intrepid.com>
3128         Make changes that bring the GUPC branch more closely in sync.
3129         with the GCC trunk.  Revert any fixes that are not UPC-specific.
3130         Remove gratuitous re-formatting.
3131         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
3132           This file should have been removed in a previous merge
3133           with the trunk.
3134         * ../configure.ac: Remove Cray Catamount/CNL support.
3135         * ../configure: Regenerate.
3136         * ../config.sub: Remove Cray Catamount/CNL support.
3137         * config.gcc: Remove Cray Catamount/CNL support.
3138         * ../maintainer-scripts/gcc_release: Revert to trunk.
3139         * c-family/c-common.h: Define parse_optimize_options.  Its definition
3140           was missed in a previous merge with the trunk.
3141         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
3142           procedure.
3143         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
3144           in addition to ARRAY_TYPE.
3145         * c-typeck.c: Remove an extra newline character.
3146         * varasm.c: Revert a fix that improved an error message
3147           when TLS common data is unimplemented.
3148         * varasm.c: Revert a gcc_assert that had been added which
3149           checked for a null DECL_SIZE_UNIT field.
3150         * emultls.c: Revert to trunk. Remove possible fix.
3151         * Makefile.in: Revert extra blank line that is present
3152           in the trunk version.
3153         * Makefile.in: Revert a fix that handled long shell
3154           argument lists for plugin headers.
3155         * config/ia64/ia64.opt: Revert an option setting
3156           that increased the default TLS address range.
3157         * config/ia64/crtbegin.asm: Revert to trunk.
3158           Removes an extra newline character.
3159         * ChangeLog.upc: Spell check.
3161 2011-05-03  Gary Funck  <gary@intrepid.com>
3163         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
3164           (c_apply_type_quals_to_decl): Ditto.
3165         * c-family/c-common.h: Ditto.
3166         * dojump.c: Ditto.
3167         * c-decl.c (merge_decls): Ditto.
3168         * c-typeck.c (qualify_type, default_conversion,
3169           build_component_ref, build_unary_op,
3170           c_build_qualified_type): Ditto.
3171         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
3173 2011-05-03  Gary Funck  <gary@intrepid.com>
3175         * upc/upc-lang.c: Remove extraneous FIXME/TODO comments.
3176         * upc/upc-pts-packed.c (upc_pts_build_cvt): Ditto.
3177         * upc/upc-act.c (upc_set_block_factor): Ditto.
3179 2011-04-29  Gary Funck  <gary@intrepid.com>
3181         * c-decl.c (finish_decl): Improve error diagnostics.
3182           (grokdeclarator): Ditto.
3183         * c-typeck.c (build_c_cast): Improve error diagnostics.
3184           (convert_for_assignment): Ditto.
3185           (build_binary_op): Ditto.
3186         * c-parser.c (c_parser_upc_forall_statement):
3187           Improve error diagnostics.
3188         * convert.c (convert_to_integer):  Improve error diagnostics.
3190 2011-04-29  Gary Funck  <gary@intrepid.com>
3192         * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
3193           (upc_expand_put): Ditto.
3194           (upc_shared_addr): Ditto.
3195           (upc_gimplify_sync_stmt): Ditto.
3196           (upc_gimplify_field_ref): Ditto.
3197         * upc/upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
3198           (upc_pts_build_cvt): Ditto.
3199         * upc/upc-act.c (upc_handle_option): Improve error diagnostics.
3200           (upc_lang_init): Ditto.
3201           (upc_sizeof_type_check): Ditto.
3202           (upc_set_block_factor): Ditto.
3203           (upc_decl_init): Ditto.
3204           (upc_affinity_test): Ditto.
3205           (upc_num_threads): Ditto.
3206           (upc_diagnose_deprecated_stmt): Ditto.
3207           (upc_build_shared_var_addr): Ditto.
3208           (upc_pts_int_sum): Ditto.
3209           (upc_pts_diff): Ditto.
3211 2011-04-28  Gary Funck  <gary@intrepid.com>
3213         * upc/upc-act.c (create_unshared_var): call upc_get_unshared_type()
3214           instead of using TYPE_MAIN_VARIANT() to create an equivalent type
3215           that is not a UPC shared type.  This is sometimes necessary
3216           when the given shared type is derived from a typedef.
3218 2011-04-24  Gary Funck  <gary@intrepid.com>
3220         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
3221           occurred if there is an error in the barrier id
3222           expression.  Map error_mark_node into NULL.
3224 2011-04-24  Gary Funck  <gary@intrepid.com>
3226         * upc/upc-act.c (upc_handle_option): Fix incorrect error
3227           diagnostic messages when both -fupc-debug and
3228           -fupc-inline-lib are asserted.
3230 2011-04-24  Gary Funck  <gary@intrepid.com>
3232         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
3233           to the list of switches that accept arguments.
3234           (main): Check for switches that have a following
3235           argument inside the loop that copies arguments and
3236           adds '-x upc' or '-x none' as necessary.
3237           (main): Misc. clean ups and simplifications.
3239 2011-04-22  Gary Funck  <gary@intrepid.com>
3241         Merge trunk version 172873 into gupc branch.
3243 2011-04-22  Gary Funck  <gary@intrepid.com>
3245         Merge trunk version 172873 into gupc branch.
3246         * upc/upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
3247           on init_func() to prevent it from being removed from
3248           the call graph.
3250 2011-04-19  Gary Funck  <gary@intrepid.com>
3252         Merge trunk version 172359 into gupc branch.
3254 2011-04-19  Gary Funck  <gary@intrepid.com>
3256         Merge trunk version 172359 into gupc branch.
3257         * upc/upc-lang.c (upc_init_ts): New.
3258           (LANG_HOOKS_INIT_TS): use upc_init_ts.
3260 2011-04-19  Gary Funck  <gary@intrepid.com>
3262         Eliminate warnings when compiling upc-cmd.c.
3263         * upc/upc-cmd.c (file_exists): Remove.
3264           (arg_copy): Remove const qualifier.
3266 2011-04-14  Gary Funck  <gary@intrepid.com>
3268         * c-family/c.opt: Add UPC as a valid language for various
3269           switches where it is valid for "C", that were not updated
3270           in previous merges with trunk.
3272 2011-04-13  Gary Funck  <gary@intrepid.com>
3274         * c-family/c.opt (fupc-pre-include): New option definition.
3275         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
3276           -fno-upc-pre-include is asserted.
3278 2011-04-13  Gary Funck  <gary@intrepid.com>
3280         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
3281           to the list, and alphabetize.
3283 2011-04-13  Gary Funck  <gary@intrepid.com>
3285         * upc/upc-gimplify.c (upc_gimplify_real_image_ref): New.
3286           Currently, a not-yet-implemented stub.
3287           (upc_gimplify_lval): call upc_gimplify_real_image_ref to
3288           rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
3289           This will avoid an ICE when compiling regular "C"
3290           code that refers to those operators.
3292 2011-04-13  Gary Funck  <gary@intrepid.com>
3294         * upc/upc-cmd.c: Do not add "-isystem <libupc_path>" if
3295           -fno-upc-pre-include is asserted.
3297 2011-04-07  Gary Funck  <gary@intrepid.com>
3299         Merge trunk version 172158 into gupc branch.
3300         to bring in the following fix.
3302 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
3304         PR bootstrap/48403
3305         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3306         if old and new states differ.
3308 2011-04-06  Gary Funck  <gary@intrepid.com>
3310         Merge trunk version 171966 into gupc branch.
3312 2011-04-01  Gary Funck  <gary@intrepid.com>
3314         * tree.h (tree_base): Move UPC flag bits into bit fields
3315           located just before spare bits.  Decrement spare bits.
3316           Rename 'shared_flag' -> 'upc_shared_flag',
3317           'relaxed_flag' -> 'upc_relaxed_flag',
3318           'strict_flag' -> 'upc_strict_flag, and adjust macros
3319           that reference them accordingly.
3321 2011-04-01  Gary Funck  <gary@intrepid.com>
3323         * c-decl.c (grokdeclarator): Fix formatting of
3324           code that sets UPC block size on scalars.
3326 2011-04-01  Gary Funck  <gary@intrepid.com>
3328         * c-decl.c (grokdeclarator): Revert use of white space
3329           to match the trunk (to rationalize diffs).
3330         * c-typeck.c (convert_for_assignment): Ditto.
3331         * tree-ssa.c (useless_type_conversion_p): Ditto.
3333 2011-03-23  Gary Funck  <gary@intrepid.com>
3335         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
3336           the GCC 4.6 release branch.
3338 2011-03-22  Gary Funck  <gary@intrepid.com>
3340         * upc/upc-cmd.c: Move linker switches into libupc/libupc.spec.
3341           (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
3342           (find_ld_script) Remove.
3344 2011-03-21  Gary Funck  <gary@intrepid.com>
3346         Merge trunk version 171202 into gupc branch.
3348 2011-03-20  Gary Funck  <gary@intrepid.com>
3350         * varasm.c: Call error() directly with a format specifier,
3351           rather than using sprintf() to format the message.
3352           This should make it easier to internationalize UPC's error messages.
3354 2011-03-20  Gary Funck  <gary@intrepid.com>
3356         * configure.ac: Fix the check for gnu ld when enabling
3357           UPC link script support.
3358           configure: Regenerate (also picks up changes from previous
3359           merge with trunk).
3361 2011-03-20  Gary Funck  <gary@intrepid.com>
3363         Move UPC start files, end files, and linker specs.
3364         into libupc.  This reduces the impact on common GCC
3365         configuration files, and ensures that these UPC-specific
3366         components are only built when the UPC language dialect is selected.
3367         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
3368           linker specs. Fix typo in -fupc-debug message.
3369         * config/upc-conf.h, config/darwin.h: Move defines for
3370           UPC-related section begins/ends into libupc/config/default/
3371           upc-crt-config.h.
3372         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
3373           UPC-related linker compiler specifications,
3374           accessed via %:include().
3375         * configure.ac, configure: Remove logic related to building
3376           upc-crtbegin/end. Remove config. tests for numa and cpu
3377           affinity (previously used by the 'upc' driver); these
3378           settings are now propagated by target-specific compiler
3379           specs. built by libupc.  Regenerate autoconf.
3380         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
3381           linker compiler specifications, accessed via %:include().
3382           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
3383           'link_upc_spec'.
3384         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
3385         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
3386           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
3387           config/ia64/linux.h, config/mips/t-iris,
3388           config/mips/iris6.h: Revert to trunk version 167307.
3389         libgcc/
3390         * configure, configure.ac, config.host, Makefile.in:
3391           Revert to trunk version 167307.
3393 2011-03-20  Gary Funck  <gary@intrepid.com>
3395         * upc/upc-act.c: Call error() directly with a format specifier,
3396           rather than using sprintf() to format the message.
3397           This should make it easier to internationalize UPC's error messages.
3399 2011-03-20  Gary Funck  <gary@intrepid.com>
3401         Move UPC start files, end files, and linker specs.
3402         into libupc.  This reduces the impact on common GCC
3403         configuration files, and ensures that these UPC-specific
3404         components are only built when the UPC language dialect is selected.
3405         * upc/config-lang.in: Remove setting of 'upc_extra_parts', which
3406           was used to specify which upc-crtbegin and upc-crtend files
3407           need to built.  Remove extraneous (commented out)
3408           settings of 'cfiles'.  The listed configuration files
3409           have been reverted to trunk, and weren't referenced
3410           via cfiles in any event.
3411         * upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
3412           Simply test for the presence of the UPC link script
3413           in the current directory or the libupc directory.
3414           Add -B<path-to-libupc> to the switches passed to 'gcc';
3415           this is needed in order to find the upc-crtbegin
3416           and upc-crtend object files now built in libupc.
3417           Remove test for and inclusion of UPC_LINKER_SWITCHES.
3418           if extra switches are needed for a particular target
3419           (like SGI/Irix), they will be defined by the custom
3420           linker spec. built in libupc.  Remove test for
3421           HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
3422           will be added to the custom linker specs. built
3423           in libupc.
3424         * upc/upc-crtstuff.c: Move to libupc.
3426 2011-02-23  Gary Funck  <gary@intrepid.com>
3428         * c-decl.c (undeclared_variable): fix typo. Inadvertently
3429         removed negation on following 'if'.
3431 2011-02-22  Gary Funck  <gary@intrepid.com>
3433         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
3434         to check for the usage of certain deprecated UPC keywords.
3435         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
3436         * c-tree.h (undeclared_variable): Define prototype.
3438 2011-02-22  Gary Funck  <gary@intrepid.com>
3440         * upc/upc-act.c (upc_diagnose_deprecated_stmt): New.
3441           upc-act.h (upc_diagnose_deprecated_stmt): Define.
3442           Check usage of deprecated keywords and issue
3443           error message.
3445 2011-02-12  Gary Funck  <gary@intrepid.com>
3447         * c-typeck.c: (build_c_cast, convert_for_assignment)
3448           Diagnose an attempt to convert from an integer to
3449           a pointer-to-shared as an error.  Also, fix various
3450           error messages so that they use the preferred term
3451           pointer-to-shared instead of "shared pointer".
3453 2011-02-08  Gary Funck  <gary@intrepid.com>
3455         * upc/upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
3456           for struct-pts representation
3457           Analysis indicated that for something like (+ ptr -80) this was
3458           being represented as (+ ptr (- 80)) and further, when the
3459           calculations were propagated into the individual operations on the
3460           components of the 'struct' pointer, it would end up with something
3461           like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
3462           "long unsigned int" because of the addition to the pointer.  This
3463           caused the calculations involving the signed 'int' operand to be
3464           performed incorrectly.  This fix insures that the 'int' operand is
3465           signed.
3467 2011-02-08  Gary Funck  <gary@intrepid.com>
3469         * upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
3470           upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
3471           upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
3472           upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
3473           upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
3474           upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
3475         Update copyright notices.
3477 2011-02-07  Gary Funck  <gary@intrepid.com>
3479         * c-typeck.c: (convert_for_assignment)
3480           Fix typo. in error message.
3482 2011-01-23  Gary Funck  <gary@intrepid.com>
3484         * c-typeck.c: (c_build_qualified_type)
3485           derive UPC block size by calling upc_get_block_size(),
3486           to ensure that the element type of an array of an array
3487           is derived correctly.
3489 2011-01-09  Gary Funck  <gary@intrepid.com>
3491         Fix behavior of upc_localsizeof() when called in a dynamic
3492         threads compilation environment.  This bug, and the expected
3493         behavior is documented in this bug report:
3494         https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
3495         * upc/_act.c (upc_localsizeof): Re-implement.
3497 2010-12-29  Gary Funck  <gary@intrepid.com>
3499         Merge trunk version 168314 into gupc branch.
3501 2010-12-15  Gary Funck  <gary@intrepid.com>
3503         Merge trunk version 167307 into gupc branch.
3505 2010-12-15  Gary Funck  <gary@intrepid.com>
3507         Merge trunk version 167307 into gupc branch.
3508         * upc/_act.h: (upc_handle_option) add location and struct
3509         cl_option_handlers * parameters.
3510         (upc_finish_file) Remove.
3511         (upc_write_global_declarations) New, replaces upc_finish_file.
3512         * lang-spec.h: Disable multi-file compilation for .upc files.
3513         This fixes an issue where file-scoped static variables were
3514         diagnosed as multiply-defined.  Both "C" and "ObjC" also disable
3515         multi-file compilation.
3516         * upc/upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
3517         explicitly when deciding whether a UPC shared object is addressable.
3518         is_gimple_addressable() used to do this, but now checks for MEM_REF
3519         which does not apply to UPC shared objects.
3520         (upc_gimplify_lval, upc_gimplify_expr) Delete references to
3521         ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
3522         These are no longer defined.
3523         (upc_genericize) Add call to bitmap_obstack_initialize()
3524         and bitmap_obstack_release() around call to gimplify_function_tree().
3525         * upc/upc-lang.c: Add #include of "opts.h" and "options.h".
3526         (flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
3527         flag_upc_instrument_functions) Remove.  Use definitions
3528         generated by the options file.
3529         (upc_init_options) Use cl_decoded_option struct.
3530         (LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
3531         (finish_file) Delete.
3532         (upc_init_options) Call control_warning_option() to specify
3533         -Werror=pointer-arith as the default.  Remove call to
3534         enable_warning_as_error().
3535         * upc/upc-pts-struct.c: (upc_pts_init_type) Move test that
3536         UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
3537         rather than an #ifdef; this macro now depends upon a
3538         target size macro which must be evaluated at runtime.
3539         * upc/Make-lang.in: (cc1-dummy) Remove make target.
3540         (cc1upc-checksum.c) Generate directly from object files.
3541         * upc/upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
3542         references to these deprecated macro definitions.
3543         (GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
3544         (all_exec_args) Delete variable.
3545         (exec_args) Re-define as (const char *).
3546         (exec_arg_list) New.  Make copy of exec_args to pass to 'exec'.
3547         * upc/upc-act.c: (upc_handle_option) Update argument list to accept
3548         (cl_option_handlers *) argument.
3549         (upc_finish_file) Rename to upc_write_global_declarations.
3550         (upc_write_global_declarations) New.
3552 2010-10-19  Gary Funck  <gary@intrepid.com>
3554         * c-typeck.c: Fix typo in previous fix
3555           which led to a mis-compare for equal block sizes.
3557 2010-10-18  Gary Funck  <gary@intrepid.com>
3559         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
3560           diagnosed as an error
3561           The conversion from any type (shared or not) to
3562           a shared type is likely either meaningless or an error.  This update
3563           makes any conversion to a shared type, an error.
3565 2010-10-18  Gary Funck  <gary@intrepid.com>
3567         * c-typeck.c: Fix bug: passing int to shared pointer arg.
3568           generates spurious warning
3569           Add a #define procedure that does the same thing as
3570           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
3571           this procedure to diagnose passing an integer value to a
3572           pointer-to-shared as an error.
3574 2010-10-18  Gary Funck  <gary@intrepid.com>
3576         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
3577           matching routine declaration.
3578           When checking for type compatibility, shared qualified types must
3579           have the same block factor.  This check was missing from
3580           comptypes_internal().  This update adds the check for blocking
3581           factor equality.
3583 2010-10-17  Gary Funck  <gary@intrepid.com>
3585         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
3586           found (-O1 -g)
3587           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
3589 2010-10-17  Gary Funck  <gary@intrepid.com>
3591         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
3592           45869 - [4.5/4.6 Regression] type mismatch in shift expression
3593           produces ice with -O3 and -m32.
3594           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
3596 2010-10-17  Gary Funck  <gary@intrepid.com>
3598         * c-common.c: Diagnose the application of the various "*sizeof"
3599           operations on generic pointer-to-shared as a compilation error.
3601 2010-10-17  Gary Funck  <gary@intrepid.com>
3603         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
3604           message regarding a function parameter being declared with a shared
3605           qualifier.
3606           The parameter's 'name' value is not defined at this point, and
3607           cannot be used in the error message.  This update removes the
3608           reference to 'name', and eliminates the segfault.
3610 2010-10-17  Gary Funck  <gary@intrepid.com>
3612         * upc/upc-act.c: Issue a compilation error on attempts to perform
3613           arithmetic on generic pointer-to-shared values.
3614           (The rest of this update is a small code clean up.)
3616 2010-10-17  Gary Funck  <gary@intrepid.com>
3618         * upc/upc-lang.c: For UPC only, issue errors for arithmetic and related
3619           operations on void types.
3620           This update simulates the effect of -Werror=pointer-arith, thus
3621           causing arithmetic on void types, sizeof(void) and so on to be
3622           considered compilation errors.  This meets the expectations of some
3623           harness tests and the RTED/CTED test suites.  GCC is more
3624           permissive, but since this is for UPC only, we can fairly safely
3625           define this new policy.
3627 2010-10-16  Gary Funck  <gary@intrepid.com>
3629         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
3630           The gcc/Makefile.in rules for install-plugin had to be re-written to
3631           break up a long list of header files that exceeded the command line
3632           limitation imposed by Irix.
3633           Access functions for TFmode types had to be implemented.
3634           Apparently, this is the mode used for the SGI/MIPS port to represent
3635           "long float".
3637 2010-10-16  Gary Funck  <gary@intrepid.com>
3639         * upc/upc-act.c: Fix bug: Static initialization of shared
3640           arrays is unsupported -- issue an error message.
3641           Currently, static initialization of a shared array is not
3642           implemented correctly.
3643           We do not plan to fix this for a while, therefore the compiler will
3644           issue an error message indicating that this is an unsupported
3645           operation.
3647 2010-10-14  Gary Funck  <gary@intrepid.com>
3649         * c-decl.c: Fix bug: Multiple equal blocking factors specified
3650           via typedef chain should not be diagnosed as an error.
3651           If the block size that is given by the typedef is equal to the block
3652           size given explicitly in the variable declaration, then do not
3653           complain.  The easiest way to make this check was to create a
3654           temporary type that is a clone of the element type and then set its
3655           block size using the given layout qualifier.  Then compare the block
3656           size of the temporary (the declaration) to the block size specified
3657           in the typedef.  This complexity is needed, because the '[*]' block
3658           size needs to be calculated, and the '[]' needs to be mapped into a
3659           zero block size.
3661 2010-10-13  Gary Funck  <gary@intrepid.com>
3663         * upc/upc-act.c: Fix bug: negative layout qualifiers not diagnosed
3664           as an error.
3665           The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
3666           it was not diagnosed as an error.  With this fix, negative block
3667           sizes will generate a translation error.
3669 2010-10-10  Gary Funck  <gary@intrepid.com>
3671         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
3672           specified
3673           The compiler properly detected the presence of two or more layout
3674           qualifiers as an error, but then hit an assertion check, because the
3675           code that followed the error expected to see a qualifier and not a
3676           layout specifier.  The fix is simple: just return immediately after
3677           detecting the error.
3679 2010-10-10  Gary Funck  <gary@intrepid.com>
3681         * c-decl.c: Improve error diagnostics for various cases of UPC
3682           shared array type declarations.
3683           Add the check for this error: "In the dynamic translation
3684           environment, THREADS may not appear in declarations of shared arrays
3685           with indefinite block size".  Also, fix up a few of the other
3686           related error diagnostics.
3688 2010-10-10  Gary Funck  <gary@intrepid.com>
3690         * upc/upc-act.c: Fix bug: ICE: Attempt to take the difference of
3691           shared and non-shared pointers
3692           The compiler detected the error, and then tried to return
3693           error_mark_node.  This apparently is not acceptable, as there is an
3694           explicit assertion check to prevent this from happening in
3695           build_binary_op.  Return the more user-friendly size_one_node
3696           instead.
3698 2010-10-09  Gary Funck  <gary@intrepid.com>
3700         * c-common.c: Fix bug: segfault on incomplete array definition.
3701           This turned out to be a bit complicated.   The logic in
3702           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3703           the THREADS identifier in the case where the blocking factor has
3704           been set to indefinite ([]).  This can happen when indefinite array
3705           declarations are processed for shared arrays.  At that time, the
3706           file scope has been closed and THREADS is no longer in scope.  Some
3707           more work is needed on upc_lang_layout_decl().  It has some
3708           duplication, and notably duplicates the two branches of the if
3709           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3710           caller of this routine (layout_decl()).
3711           The method of forcing a layout qualifier of [] in the indefinite
3712           declaration handler is odd a well.  The code that just does the
3713           setting of the block factor, needs to moved into its own routine
3714           that doesn't depend upon a declspec for '[]' to be passed in, just
3715           in order to set the blocking factor to some value (in this case, 0).
3716           Also, the logic for how that shared type is constructed is strange.
3717           First the type with 0 blocking factor is set.  Then the shared
3718           qualifier is removed from the type, and then added back later.  The
3719           intermediate type has a blocking factor set, but it has no shared
3720           qualifier.  Fixing this will require some thought.  It is tempting
3721           just to make indefinite shared arrays an error, rather than forcing
3722           the dimension to be '1'.
3723           This likely fixes a serious error in the previous update to
3724           upc_lang_layout_decl(), where it didn't have the logic to set
3725           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3726           the previous update would fail on many tests.
3728 2010-10-09  Gary Funck  <gary@intrepid.com>
3730         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
3731           (decl) is null, which can happen if some layout error occurred
3732           upstream.
3734 2010-10-09  Gary Funck  <gary@intrepid.com>
3736         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
3737           "variable-sized" when compiled in dynamic threads.
3738           This long-standing bug is easily fixed.  Just check
3739           for the situation that the non-constant sized type is shared and
3740           that it does not have a dimension that references a multiple of
3741           threads.  If this criteria is met, then issue a meaningful
3742           diagnostic.
3744 2010-10-09  Gary Funck  <gary@intrepid.com>
3746         * upc/upc-act.c: Fix bug: segfault on incomplete array definition.
3747           This turned out to be a bit complicated.   The logic in
3748           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3749           the THREADS identifier in the case where the blocking factor has
3750           been set to indefinite ([]).  This can happen when indefinite array
3751           declarations are processed for shared arrays.  At that time, the
3752           file scope has been closed and THREADS is no longer in scope.  Some
3753           more work is needed on upc_lang_layout_decl().  It has some
3754           duplication, and notably duplicates the two branches of the if
3755           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3756           caller of this routine (layout_decl()).
3757           The method of forcing a layout qualifier of [] in the indefinite
3758           declaration handler is odd a well.  The code that just does the
3759           setting of the block factor, needs to moved into its own routine
3760           that doesn't depend upon a declspec for '[]' to be passed in, just
3761           in order to set the blocking factor to some value (in this case, 0).
3762           Also, the logic for how that shared type is constructed is strange.
3763           First the type with 0 blocking factor is set.  Then the shared
3764           qualifier is removed from the type, and then added back later.  The
3765           intermediate type has a blocking factor set, but it has no shared
3766           qualifier.  Fixing this will require some thought.  It is tempting
3767           just to make indefinite shared arrays an error, rather than forcing
3768           the dimension to be '1'.
3769           This likely fixes a serious error in the previous update to
3770           upc_lang_layout_decl(), where it didn't have the logic to set
3771           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3772           the previous update would fail on many tests.
3773           See also: gcc/c-common.c gcc/upc/upc-act.c
3775 2010-10-01  Gary Funck  <gary@intrepid.com>
3777         * configure, configure.ac: Update manual page, and bug reporting
3778           URL.
3779           Update "man" page to reflect debugging switches.  Also, some general
3780           clean up.  Change the bug reporting URL to point to gccupc.org.
3782 2010-10-01  Gary Funck  <gary@intrepid.com>
3784         * upc/upc-manpage.html, upc.1: Update manual page, and bug reporting
3785           URL.
3786           Update "man" page to reflect debugging switches.  Also, some general
3787           clean up.  Change the bug reporting URL to point to gccupc.org.
3788           See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
3789           gcc/upc/upc.1
3791 2010-10-01  Gary Funck  <gary@intrepid.com>
3793         * upc/upc-act.c: Do not zap all qualifier bits when constructing a
3794           non-shared result node.
3795           This fix was suggested by Paul H. in the following Berkeley Bugzilla
3796           report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
3797           use of "!" rather than "~" zapped all the type qualifier bits rather
3798           than just those that are related to the "shared" qualifier.  This
3799           fix clears only the relevant bits.
3801 2010-09-27  Gary Funck  <gary@intrepid.com>
3803         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
3804           the UPC forall depth count variable is not found.
3805           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
3806           The compiler will generate code that references this variable in
3807           order to implement nested upc_forall semantics.  If there is a
3808           compiler build or install problem, this variable may not be found.
3809           In this case, terminate with an internal_error().
3811 2010-09-26  Gary Funck  <gary@intrepid.com>
3813         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
3814           mis-diagnosed as syntax error.
3815           Fix a failure exhibited by the Berkeley test case,
3816           bug873a.upc, which has the code:
3817                double d;
3818                upc_forall (;;;d) {...} The compiler did not properly handle
3819           the empty "condition" clause, and did not recover well when it was
3820           determined that the use of a double value, "d" above, was neither a
3821           pointer-to-shared nor an integer expression.  The update implements a
3822           fix for both issues.
3823           See also: gcc/c-parser.c gcc/upc/upc-act.c
3825 2010-09-26  Gary Funck  <gary@intrepid.com>
3827         * upc/upc-act.c: Fix bug: upc_forall with empty clauses
3828           mis-diagnosed as syntax error.
3829           A failure was exhibited by the Berkeley test case,
3830           bug873a.upc, which has the code:
3831                double d;
3832                upc_forall (;;;d) {...} The compiler did not properly handle
3833           the empty "condition" clause, and did not recover well when it was
3834           determined that the use of a double value, "d" above, was neither a
3835           pointer-to-shared nor an integer expression.  The update implements a
3836           fix for both issues.
3837           See also: gcc/c-parser.c gcc/upc/upc-act.c
3839 2010-09-25  Gary Funck  <gary@intrepid.com>
3841         * upc/upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
3842           gimple check when calculating affinity for upc_forall.
3843           Intrepid test, test10.upc, failed to compile due a mis-match between
3844           the COMPONENT_REF node and the internal 'thread' field.  Changed the
3845           code to make the types agree, and added a conversion to sizetype if
3846           necessary.
3848 2010-09-23  Gary Funck  <gary@intrepid.com>
3850         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
3851           incorporated into the referencing type.
3852           This was semi-fixed a few times before.  This update fixes a few
3853           more places where the layout qualifier wasn't being propagated
3854           through typedef's properly.  What made this a bit tricky is shown in
3855           the example cited in the bug report:
3856           typedef shared [5] int A_t; A_t A[5*THREADS];
3857           In the typedef, the blocksize is being applied to a shared *scalar*,
3858           and the code was applying the blocksize only to arrays.  This update
3859           handles shared scalars correctly.
3861 2010-09-23  Gary Funck  <gary@intrepid.com>
3863         * upc/upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
3864           with static threads and size not a multiple of threads.
3865           Add an extra check for an attempt to apply a '[*]' layout qualifier
3866           to a shared array that does not specify a size that is a multiple of
3867           THREADS, when compiled in a static THREADS compilation environment.
3869 2010-09-22  Gary Funck  <gary@intrepid.com>
3871         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
3872           upc_forall() semantics are not implemented
3873           The checkforall test in the Berkeley harness test suite indicated
3874           that GCC/UPC was not properly implementing nested upc_forall
3875           semantics.  Nested upc_forall statements (both statically or
3876           dynamically nested) must implement their affinity clause as if it
3877           were "continue"; thus all steps in the loop must execute without
3878           regard for affinity.  To implement these semantics a global depth
3879           counter, __upc_forall_depth, is maintained by the generated code
3880           that implements upc_forall.
3881           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3882           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3883           libupc/include/upc.h libupc/smp/upc_main.c
3885 2010-09-22  Gary Funck  <gary@intrepid.com>
3887         * upc/upc-act.c, upc/upc-act.h: Fix bug: Nested upc_forall() semantics
3888           are not implemented
3889           The checkforall test in the Berkeley harness test suite indicated
3890           that GCC/UPC was not properly implementing nested upc_forall
3891           semantics.  Nested upc_forall statements (both statically or
3892           dynamically nested) must implement their affinity clause as if it
3893           were "continue"; thus all steps in the loop must execute without
3894           regard for affinity.  To implement these semantics a global depth
3895           counter, __upc_forall_depth, is maintained by the generated code
3896           that implements upc_forall.
3897           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3898           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3899           libupc/include/upc.h libupc/smp/upc_main.c
3901 2010-09-19  Gary Funck  <gary@intrepid.com>
3903         * c-decl.c: c-decl.c: zero out the layout specifier, after
3904           processing an array type.
3905           Fix the previous fix, that moved the setting of the type's layout
3906           qualifier to the outside of the array type processing loop.  What is
3907           missing from the fix is that the layout_qualifier variable needs to
3908           be cleared after setting the type's blocksize.
3910 2010-09-19  Gary Funck  <gary@intrepid.com>
3912         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
3913           given blocksize is greater than UPC_MAX_BLOCKSIZE.
3914           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
3915           the actual maximum block size.  Therefore, the message was correct,
3916           but the underlying value that was being checked was wrong.  Change
3917           the values so that they agree with the actual implementation-defined
3918           limit.
3920 2010-09-18  Gary Funck  <gary@intrepid.com>
3922         * upc/upc-act.c, upc/upc-pts-packed.c, upc/upc-pts-struct.c:
3923           Implement -fupc-debug switch.
3925 2010-09-11  Gary Funck  <gary@intrepid.com>
3927         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
3928           multi-dimensional shared array with dynamic threads.
3929           This declaration caused an internal compiler error when compiled
3930           with dynamic threads:
3931               shared [*] int A[THREADS][16]; The bug was discovered when
3932           compiling the RTED_UPC test suite.
3933           The fix is to process layout qualifiers after the entire array type
3934           has been built.  Otherwise, we try to calculate the blocksize on a
3935           shared array type that has not had its "size depends upon the value
3936           of THREADS" flag set.
3937           Also, added a test case.
3938           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
3940 2010-07-11  Gary Funck  <gary@intrepid.com>
3942         Fix a bug where a statement in c_build_qualified_type()
3943         in the trunk had been inadvertently deleted.
3944         This bug showed up in the IA64 port, because jmpbuf's
3945         on that architecture must be 16 byte aligned, and they were not.
3946         c-typeck.c (c_build_qualified_type): Revive the deleted line.
3948 2010-07-08  Gary Funck  <gary@intrepid.com>
3950         Make changes so that other language compilers
3951         will build and bootstrap.
3952         * c-family/c-common.c (compiling_upc, flag_upc,
3953         flag_upc_instrument, flag_upc_instrument_functions,
3954         use_upc_dwarf2_extensions): Move to stub-upc.c and
3955         upc-lang.c.
3956         * c-family/c-common.h (use_upc_dwarf2_extensions,
3957         compiling_upc): Add extern definitions - needed
3958         to compile/build other language front ends.
3959         * c-family/c.opt: Fix the spelling of ObjC.
3960         It had been incorrectly spelled as Objc.
3961         * c-family/c.opt: Add UPC for the various switches
3962         that are valid for both C and ObjC.
3963         * c-fmaily/c-opts.c: Add CL_UPC to the list of
3964         supported options switches when compiling assembly
3965         language.
3966         * lto/lto-lang.c (use_upc_dwarf2_extensions,
3967         flag_upc_instrument, flag_upc_instrument_functions):
3968         Remove these definitions.  They have been moved
3969         to c-family/stub-upc.c.
3970         * upc/ChangeLog: Move relevant entries
3971         to ChangeLog.upc.
3972         * c-family/stub-upc.c (compiling_upc, flag_upc,
3973         flag_upc_instrument, flag_upc_instrument_functions,
3974         use_upc_dwarf2_extensions): Moved from c-common.c
3975         * upc/upc-lang.c (compiling_upc, flag_upc,
3976         flag_upc_instrument, flag_upc_instrument_functions,
3977         use_upc_dwarf2_extensions): Moved from c-common.c
3978         * objc/objc-act.c (objc_gimplify_expr): Add additional
3979         parameters to c_gimplify_expr() call, that are used
3980         by upc's tree rewrites.
3981         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
3982         * gcc/cp/lex.c (init_reswords): If not compiling
3983         UPC, then mask off the UPC keywords.
3984         * cp/Make-lang.in (C_STUB_OBJS): Use this
3985         make macro to link with c-family/stub-objc.o
3986         and c-family/stub-upc.o.
3987         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
3988         * java/Make-lang.in (C_STUB_OBJS): Likewise.
3989         * objc/Make-lang.in: Link with c-family/stub-upc.o
3990         to avoid undefined references.
3991         c-parser.c: Fix line indentation.
3992         * libcpp/include/cpplib.h: Remove CL_UPC from
3993         the list of language kinds accepted by the
3994         C preprocessor.  This is not necessary because
3995         UPC is a derivative of C99, and does not need
3996         a different language kind.
3997         * c-fmaily/c-opts.c (c_common_handle_option):
3998         Call set_std_c99() when processing the
3999         "--lang upc" switch, instead of setting the
4000         language kind to CL_UPC.
4001         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
4003 2010-07-03  Gary Funck  <gary@intrepid.com>
4005         Merge trunk version 161517 into gupc branch.
4006         * gcc/stub-upc.c: Move to gcc/c-family/.
4007         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
4008         Add 'unused' attributes to avoid "set, but
4009         not referenced" warnings.
4010         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
4011         Likewise.
4013 2010-07-03  Gary Funck  <gary@intrepid.com>
4015         Merge trunk version 161517 into gupc branch.
4016         * upc/config-lang.in: Update references to files
4017           moved into c-family/.
4018         * upc/Make-lang.in: Likewise.
4019         * upc/upc-act.c: Likewise.
4020         * upc/upc-gasp.c: Likewise.
4021         * upc/upc-gimplify.c: Likewise.
4022         * upc/upc-lang.c: Likewise.
4023         * upc/upc-pts-packed.c: Likewise.
4024         * upc/upc-pts-struct.c: Likewise.
4025         * upc/upc-act.c: (upc_handle_option) add parameters to
4026           effect pass through call to c_common_handle_option.
4027         * upc/upc-act.h: (upc_handle_option) Likewise.
4028         * upc/upc-act.c: (map_unshared_var) used typed ggc allocation.
4029         * upc/upc-act.c: (upc_build_init_func) add call to
4030           to mark_decl_referenced(), to ensure that UPC shared
4031           variable initializer function is not removed from
4032           the call tree graph.
4034 2010-03-01 Gary Funck  <gary@intrepid.com>
4036         Create gupc branch from trunk version 157149.