Merge trunk version 214779 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blobaf7d6cc8a837df9bb4d7707829f9dca1831596b3
1 2014-09-01  Gary Funck  <gary@intrepid.com>
3         Merge trunk version 214779 into gupc branch.
5 2014-08-25  Gary Funck  <gary@intrepid.com>
7         Merge trunk version 214415 into gupc branch.
9 2014-08-19  Gary Funck  <gary@intrepid.com>
11         Merge trunk version 214178 into gupc branch.
13 2014-08-14  Gary Funck  <gary@intrepid.com>
15         Merge trunk version 213968 into gupc branch.
16         DEV-PHASE: Bump to 5.0.0-1.
18 2014-08-11  Gary Funck  <gary@intrepid.com>
20         Merge trunk version 213809 into gupc branch.
22 2014-08-05  Gary Funck  <gary@intrepid.com>
24         Merge trunk version 213646 into gupc branch.
26 2014-08-04  Gary Funck  <gary@intrepid.com>
28         Merge trunk version 213543 into gupc branch.
30 2014-08-01  Gary Funck  <gary@intrepid.com>
32         * testsuite/gcc.dg/gupc: New.
33         Add compile-only tests which check for semantic errors/warnings
34         and verify that UPC constructs generate expected UPC runtime calls.
35         * testsuite/upc.dg: Removed.
36         * testsuite/lib/upc-dg.exp: Removed.
37         * testsuite/lib/upc.exp: Removed.
38         * testsuite/lib/target-supports.exp
39         (check_effective_target_fupc): New.
40         (check_effective_target_upc_struct_pts,
41         check_effective_target_upc_packed_pts):
42         Pass "-fupc -fno-upc-pre-include".
43         * testsuite/gcc.dg/gupc/gupc.exp: Moved from
44         testsuite/upc.dg/compile/compile.exp and modified to
45         work under gcc.dg.
47 2014-07-28  Gary Funck  <gary@intrepid.com>
49         Merge trunk version 213118 into gupc branch.
51 2014-07-21  Gary Funck  <gary@intrepid.com>
53         Merge trunk version 212892 into gupc branch.
55 2014-07-14  Gary Funck  <gary@intrepid.com>
57         Merge trunk version 212522 into gupc branch.
59 2014-07-07  Gary Funck  <gary@intrepid.com>
61         Merge trunk version 212325 into gupc branch.
63 2014-07-02  Nenad Vukicevic  <nenad@intrepid.com>
65         * configure.ac: Fix checking for 32-bits target while
66         setting the default PTS packed bits.
67         * configure: Regenerate.
69 2014-06-30  Gary Funck  <gary@intrepid.com>
71         Merge trunk version 212138 into gupc branch.
73 2014-06-23  Gary Funck  <gary@intrepid.com>
75         Merge trunk version 211886 into gupc branch.
77 2014-06-16  Gary Funck  <gary@intrepid.com>
79         Merge trunk version 211699 into gupc branch.
81 2014-06-14  Gary Funck  <gary@intrepid.com>
83         Merge trunk version 211672 into gupc branch.
85 2014-06-12  Gary Funck  <gary@intrepid.com>
87         Merge trunk version 211604 into gupc branch.
89 2014-06-02  Gary Funck  <gary@intrepid.com>
91         Merge trunk version 211129 into gupc branch.
93 2014-05-26  Gary Funck  <gary@intrepid.com>
95         Merge trunk version 210928 into gupc branch.
97 2014-05-21  Nenad Vukicevic  <nenad@intrepid.com>
99         * config/darwin.h (LINK_COMMAND_SPEC_A): Fix linker spec
100         on Darwin, replace -fupc-link with -fupc option.
102 2014-05-12  Gary Funck  <gary@intrepid.com>
104         Merge trunk version 210323 into gupc branch.
106 2014-05-05  Gary Funck  <gary@intrepid.com>
108         Merge trunk version 210065 into gupc branch.
110 2014-04-28  Gary Funck  <gary@intrepid.com>
112         Merge trunk version 209848 into gupc branch.
114 2014-04-21  Gary Funck  <gary@intrepid.com>
116         Merge trunk version 209542 into gupc branch.
118 2014-04-20  Gary Funck  <gary@intrepid.com>
120         * c/c-typeck.c (build_binary_op): Check for invalid comparison
121         between pointers-to-shared with target types that have
122         differing UPC blocking factors.
124 2014-04-16  Gary Funck  <gary@intrepid.com>
126         Fix PTS comparison involving a generic PTS using packed representation.
127         * c-family/c-upc-pts-packed.c (upc_pts_packed_build_cond_expr):
128         When comparing (shared void *) pointers, mask out the phase component.
130 2014-04-14  Gary Funck  <gary@intrepid.com>
132         Merge trunk version 209359 into gupc branch.
133         DEV-PHASE: Bump to 4.10.0-1.
135 2014-04-07  Gary Funck  <gary@intrepid.com>
137         Merge trunk version 209179 into gupc branch.
139 2014-04-04  Gary Funck  <gary@intrepid.com>
141         * tree-upc.c tree-upc.h: New.
142         Factor UPC-specific tree node handling
143         into tree-upc.c and tree-upc.h.
144         * Makefile.in: Refer to tree-upc.c and tree-upc.h.
145         * c/c-convert.c c/c-decl.c c/c-objc-common.c
146         c/c-typeck.c c/c-upc-lang.c c-family/c-common.c
147         c-family/c-pretty-print.c c-family/c-upc-low.c
148         c-family/c-upc-pts-packed.c c-family/c-upc-pts-struct.c
149         c-family/c-upc.c c-family/c-upc.h convert.c
150         dwarf2out.c print-tree.c tree-core.h tree-dump.c
151         tree-pretty-print.c tree.c tree.h: Rename variables and
152         functions to include 'upc' in their names.
154 2014-03-31  Gary Funck  <gary@intrepid.com>
156         Merge trunk version 208955 into gupc branch.
158 2014-03-24  Gary Funck  <gary@intrepid.com>
160         Merge trunk version 208783 into gupc branch.
162 2014-03-17  Gary Funck  <gary@intrepid.com>
164         Merge trunk version 208609 into gupc branch.
166 2014-03-10  Gary Funck  <gary@intrepid.com>
168         Merge trunk version 208447 into gupc branch.
170 2014-03-03  Gary Funck  <gary@intrepid.com>
172         Merge trunk version 208270 into gupc branch.
174 2014-02-24  Gary Funck  <gary@intrepid.com>
176         Merge trunk version 208066 into gupc branch.
178 2014-02-17  Gary Funck  <gary@intrepid.com>
180         Merge trunk version 207818 into gupc branch.
182 2014-02-10  Gary Funck  <gary@intrepid.com>
184         Merge trunk version 207649 into gupc branch.
186 2014-02-03  Gary Funck  <gary@intrepid.com>
188         Merge trunk version 207415 into gupc branch.
190 2014-01-30  Gary Funck  <gary@intrepid.com>
192         Merge trunk version 207297 into gupc branch.
194 2014-01-28  Gary Funck  <gary@intrepid.com>
196         * c/gupcspec.c (match_suffix): Remove use of PARAMS.
198 2014-01-20  Gary Funck  <gary@intrepid.com>
200         Merge trunk version 206847 into gupc branch.
202 2014-01-20  Gary Funck  <gary@intrepid.com>
204         Merge trunk version 206792 into gupc branch.
206 2014-01-17  Nenad Vukicevic  <nenad@intrepid.com>
208         * c-family/c-cppbuiltin.c (upc_cpp_builtins): Remove pre-defines
209         for __UPC_CASTABLE__, __UPC_COLLECTIVE__, __UPC_TICK__ and
210         __UPC_PUPC__ as they are library and not compiler features.
212 2014-01-13  Gary Funck  <gary@intrepid.com>
214         Merge trunk version 206575 into gupc branch.
216 2014-01-10  Gary Funck  <gary@intrepid.com>
218         Update copyright notices.
220 2014-01-06  Gary Funck  <gary@intrepid.com>
222         Merge trunk version 206354 into gupc branch.
224 2014-01-04  Gary Funck  <gary@intrepid.com>
226         Integrate GUPC into cc1.
227         * upc/: Remove directory.  Re-distribute files.
228         * c/c-upc-lang.c: Move upc/upc-lang.c here.
229         * c/c-upc-lang.h: New.
230         * c-family/c-upc.c: Move upc/upc-act.c here.
231         * c-family/c-upc-gasp.c: Move upc/upc-gasp.c here.
232         * c-family/c-upc-gasp.h: Move upc/upc-gasp.h here.
233         * c-family/c-upc.h: Move upc/upc-act.h here.
234         * c-family/c-upc-low.c: Move upc/upc-genericize.c here.
235         * c-family/c-upc-low.h: Move upc/upc-genericize.h here.
236         * c-family/c-upc-pts.h: Split upc/upc-pts.h here.
237         * c-family/c-upc-pts-ops.c: Split upc/upc-pts.c here.
238         * c-family/c-upc-pts-ops.h: Split upc/upc-pts.h here.
239         * c-family/c-upc-pts-packed.c: Move upc/upc-pts-packed.c here.
240         * c-family/c-upc-pts-struct.c: Move upc/upc-pts-struct.c here.
241         * c-family/c-upc-rts-names.h: Move upc/upc-rts-names.h here.
242         * c-family/stub-upc.c: Remove.
243         * c/gupcspec.c: Move upc/gupcspec.c here.
244         * doc/gupc.texi: Move upc/gupc.texi here.
245         * c/c-objc-common.h: Revert to trunk.
246         * cp/lex.c: Revert to trunk.
247         * cp/Make-lang.in: Revert to trunk.
248         * expr.h: Revert to trunk.
249         * flags.h: Revert to trunk.
250         * fortran/Make-lang.in: Revert to trunk.
251         * java/Make-lang.in: Revert to trunk.
252         * lto/Make-lang.in: Revert to trunk.
253         * objc/Make-lang.in: Revert to trunk.
254         * stor-layout.c: Delete custom hook routines, use
255         newly defined declaration layout language hooks.
256         * stor-layout.h: Revert to trunk.
257         * ../configure.ac: Remove check for UPC language dialect.
258         * ../configure: Re-generate.
259         * Makefile.in (C_COMMON_OBJS): Add UPC-related object files.
260         * c/Make-lang.in: Compile UPC-related files.  Build gupc driver.
261         * c/c-decl.c: Call c_genericize() directly rather than
262         lang_hooks.genericize().  Adjust for flag_upc and name changes.
263         * c/c-lang.c (LANG_HOOKS_UPC_TOGGLE_KEYWORDS,
264         LANG_HOOKS_UPC_PTS_STRUCT_INIT_TYPE, LANG_HOOKS_UPC_BUILD_INIT_FUNC,
265         LANG_HOOKS_LAYOUT_DECL_P, LANG_HOOKS_LAYOUT_DECL):
266         Define UPC-specific hooks.
267         * c/c-objc-common.c (upc_types_compatible_p): Move to here.
268         (c_types_compatible_p): Call upc_types_compatible_p().
269         * c/c-parser.c (upc_affinity_test): Move to here.
270         (upc_build_sync_stmt): Move to here.
271         * c/c-typeck.c: #include c-family/c-upc-low.h.
272         * c/config-lang.in (gtfiles): Add UPC gt files.
273         * c-family/c-common.c: Add #include c-upc.h.
274         (c_common_get_alias_set): Move UPC-related alias check to here.
275         (upc_num_threads): Move to here.
276         (c_common_init_ts): Mark UPC-specific statement tree definitions.
277         * c-family/c-common.def (UPC_FORALL_STMT, UPC_SYNC_STMT):
278         Define UPC-specific statements.
279         * c-family/c-common.h (RID_FIRST_UPC_QUAL, RID_LAST_UPC_QUAL,
280         RID_FIRST_UPC_KW, RID_LAST_UPC_KW, UPC_IS_KEYWORD): New.
281         (clk_upc, clk_upcxx, c_dialect_upc, compiling_upc): Delete.
282         (use_upc_dwarf2_extensions, flag_upc): Move to c-family/c.opts.
283         (upc_num_threads): Declare prototype.
284         (UPC_SYNC_OP, UPC_SYNC_ID, UPC_SYNC_NOTIFY_OP, UPC_SYNC_WAIT_OP,
285         UPC_SYNC_BARRIER_OP): Move definitions here.
286         * c-family/c-cppbuiltin.c: Remove #include c-upc.h and
287         add #include c-upc-pts.h.
288         (upc_cpp_builtins): Move to here.  Define as static.
289         (c_cpp_builtin): Change call to c_dialect_upc () into
290         test of flag_upc.
291         * c-family/c-gimplify.c: #include c-upc-low.h.
292         (c_common_genericize): Rename c_genericize() to this and make static.
293         (c_genericize): Call upc_genericize() if flag_upc is set and
294         then call c_common_genericize().
295         * c-family/c-opts.c: #include c-upc-low.h and c-upc-pts.h.
296         (c_family_lang_mask): Remove CL_UPC.
297         (c_common_option_lang_mask): Remove CL_UPC from lang_flags.
298         (upc_init_options): Move to here, make it static.
299         (c_common_init_options): Add early check for flag_upc, if found
300         call upc_init_options().
301         (upc_handle_option): Move to here and make static.
302         (c_common_handle_option): Check for UPC-related options
303         and call upc_handle_option().  Remove references to
304         OPT_lang_upc and clk_upc.  Check flag_upc instead of
305         calling c_dialect_upc().
306         * c-family/c-pragma.c: #include langhooks.h.
307         (handle_pragma_upc): Remove warning if flag_upc not set;
308         flag_upc now serves the function of compiling_upc().
309         Add call to lang_hooks.upc.toggle_keywords() to
310         implement enable/disable of UPC keywords.
311         (init_pragma): Check flag_upc instead of compiling_upc.
312         * c-family/c-pragma.h (deny_pragma_upc, get_upc_consistency_mode,
313         permit_pragma_upc, pop_upc_consistency_mode,
314         pragma_upc_permitted_p, push_upc_consistency_mode,
315         set_upc_consistency_mode): Move prototypes to here.
316         * c-family/c.opt: Remove all references to "UPC" language dialect.
317         Add -fupc option. Delete -fupc-link option.
318         Add -fupc-threads= option and deprecate -fupc-threads-.
319         * configure.ac: Remove check for UPC language dialect.
320         * configure: Re-generate.
321         * explow.c (tree_expr_size): Move to tree.c.
322         * gcc.c: Change specs to refer to -fupc instead of -lang-upc
323         and -fupc-link.
324         * hooks.c (hook_bool_tree_tree_false): Declare prototype.
325         * langhooks.c (lhd_do_nothing_b, lhd_do_nothing_t_t): New.
326         * langhooks.h (lang_hooks_for_upc): Define hooks for UPC.
327         (layout_decl_p, layout_decl): Define language-specific
328         declaration  layout hooks.
329         (genericize): Remove this language hook.
330         * langhooks-def.h: Define UPC default language hooks.
331         Define language-specific declaration layout default hooks.
332         * langhooks.c (lhd_do_nothing_b): New.
333         * tree-core.h (shared_flag): Rename from upc_shared_flag.
334         (strict_flag): Rename from upc_strict_flag.
335         (relaxed_flag): Rename from upc_relaxed_flag.
336         (threads_factor_flag): New. Was a lang. flag.
337         (block_factor_0): New. Was a lang. flag.
338         (block_factor_x): New. Was a lang. flag.
339         (spare1): Decrement spare bits from 8 down to 5.
340         * tree.c (block_factor_for_type): Move to here.
341         (tree_expr_size): Move to here from explow.c.
342         (block_factor_lookup): Move to here.
343         (block_factor_insert): Move to here.
344         (upc_get_block_factor): Move to here.
345         * tree.h: refer to block_factor_* instead of upc_block_factor_*.
346         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
347         TYPE_HAS_THREADS_FACTOR): Refer to tree base flag bits instead
348         of lang. flag bits.
349         (tree_expr_size): Move prototype from explow.h.
351 2013-12-30  Gary Funck  <gary@intrepid.com>
353         Merge trunk version 206243 into gupc branch.
355 2013-12-23  Gary Funck  <gary@intrepid.com>
357         Merge trunk version 206179 into gupc branch.
359 2013-12-22  Gary Funck  <gary@intrepid.com>
361         * upc/upc-act.c (upc_cpp_builtins): Bump UPC_VERSION
362         to reflect UPC specification version 1.3 compliance.
364 2013-12-16  Gary Funck  <gary@intrepid.com>
366         Merge trunk version 206010 into gupc branch.
368 2013-12-09  Gary Funck  <gary@intrepid.com>
370         Merge trunk version 205801 into gupc branch.
372 2013-12-03  Meador Inge  <meadori@codesourcery.com>
374         * tree-core.h (tree_type_common): Change tree_type_common to use
375         user-provided GC marking.
376         (gt_ggc_mx, gt_pch_nx): New prototypes.
377         * tree.c (gt_ggc_mx, gt_pch_nx): New functions.
379 2013-12-03  Gary Funck  <gary@intrepid.com>
381         Revert:
383         2011-10-10  Gary Funck  <gary@intrepid.com>
385         * tree.c (check_qualified_type, check_aligned_type):
386         Call tree_int_cst_equal() to compare UPC blocking factors
387         if the corresponding tree pointers are not equal.
388         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
390 2013-12-03  Gary Funck  <gary@intrepid.com>
392         * c-family/c.opt: Fix typo introduced in 2013-06-03
393         merge with trunk.
395 2013-12-02  Gary Funck  <gary@intrepid.com>
397         Merge trunk version 205582 into gupc branch.
399 2013-11-26  Meador Inge  <meadori@codesourcery.com>
401         * upc/upc-genericize.c (upc_expand_get): Ensure that temporaries
402         are declared via a DECL_EXPR.
404 2013-11-25  Gary Funck  <gary@intrepid.com>
406         Merge trunk version 205346 into gupc branch.
408 2013-11-18  Gary Funck  <gary@intrepid.com>
410         Merge trunk version 204942 into gupc branch.
412 2013-11-15  Gary Funck  <gary@intrepid.com>
414         Merge trunk version 204894 into gupc branch.
416 2013-11-15  Gary Funck  <gary@intrepid.com>
418         Merge trunk version 204659 into gupc branch.
420 2013-11-04  Gary Funck  <gary@intrepid.com>
422         Merge trunk version 204345 into gupc branch.
424 2013-10-31  Gary Funck  <gary@intrepid.com>
426         Released GUPC 4.9.0.1 based on version 203902.
427         This release version was committed on 2013-10-21.
428         * DEV-PHASE: Bump to 4.9.0.2.
429         * DATESTAMP: Bump date stamp.
431 2013-10-28  Gary Funck  <gary@intrepid.com>
433         Merge trunk version 204119 into gupc branch.
435 2013-10-21  Gary Funck  <gary@intrepid.com>
437         Merge trunk version 203886 into gupc branch.
439 2013-10-14  Gary Funck  <gary@intrepid.com>
441         Merge trunk version 203514 into gupc branch.
443 2013-10-07  Gary Funck  <gary@intrepid.com>
445         Merge trunk version 203240 into gupc branch.
447 2013-10-01  Gary Funck  <gary@intrepid.com>
449         Implement pointer-to-shared -> integer conversions.
450         Required per UPC 1.3 Specification.
451         * c/c-typeck.c (build_c_cast): Remove logic that diagnosed
452         PTS->int conversions as an error.  Rewrite into a CONVERT_EXPR
453         for later processing by upc_genericize().
455 2013-10-01  Gary Funck  <gary@intrepid.com>
457         Implement pointer-to-shared -> integer conversions.
458         Required per UPC 1.3 Specification.
459         * upc/upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
460         (upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().
462 2013-09-30  Gary Funck  <gary@intrepid.com>
464         Merge trunk version 203026 into gupc branch.
466 2013-09-23  Gary Funck  <gary@intrepid.com>
468         Merge trunk version 202825 into gupc branch.
470 2013-09-18  Gary Funck  <gary@intrepid.com>
472         Merge trunk version 202725 into gupc branch.
474 2013-09-16  Gary Funck  <gary@intrepid.com>
476         Merge trunk version 202619 into gupc branch.
478 2013-09-09  Gary Funck  <gary@intrepid.com>
480         Merge trunk version 202382 into gupc branch.
482 2013-09-02  Gary Funck  <gary@intrepid.com>
484         Merge trunk version 202159 into gupc branch.
486 2013-08-26  Gary Funck  <gary@intrepid.com>
488         Merge trunk version 202008 into gupc branch.
490 2013-08-19  Gary Funck  <gary@intrepid.com>
492         Merge trunk version 201832 into gupc branch.
494 2013-08-05  Gary Funck  <gary@intrepid.com>
496         Merge trunk version 201483 into gupc branch.
498 2013-07-29  Gary Funck  <gary@intrepid.com>
500         Merge trunk version 201301 into gupc branch.
502 2013-07-22  Gary Funck  <gary@intrepid.com>
504         Merge trunk version 201119 into gupc branch.
506 2013-07-15  Gary Funck  <gary@intrepid.com>
508         Merge trunk version 200955 into gupc branch.
510 2013-07-08  Gary Funck  <gary@intrepid.com>
512         Merge trunk version 200775 into gupc branch.
514 2013-07-01  Gary Funck  <gary@intrepid.com>
516         Merge trunk version 200575 into gupc branch.
518 2013-06-24  Gary Funck  <gary@intrepid.com>
520         Merge trunk version 200361 into gupc branch.
522 2013-06-19  Gary Funck  <gary@intrepid.com>
524         Merge trunk version 200149 into gupc branch.
526 2013-06-19  Gary Funck  <gary@intrepid.com>
528         Merge trunk version 200149 into gupc branch.
529         * upc/upc-act.c (upc_create_static_var): New.
530         (upc_build_init_func): Call upc_create_static_var() to
531         create a static variable, __upc_init_func_addr, which
532         is initialized to the address of the UPC
533         shared data initialization function.  This change is
534         needed to avoid writing to the output assembly language
535         file too early.
536         (upc_build_sync_stmt): Delete unused variable, sync_expr_type.
538 2013-06-03  Gary Funck  <gary@intrepid.com>
540         Merge trunk version 199596 into gupc branch.
542 2013-05-27  Gary Funck  <gary@intrepid.com>
544         Merge trunk version 199350 into gupc branch.
546 2013-05-20  Gary Funck  <gary@intrepid.com>
548         Merge trunk version 199093 into gupc branch.
550 2013-05-14  Gary Funck  <gary@intrepid.com>
552         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt):
553         When checking whether the phase of a PTS should be reset,
554         if the source type is an array type, then bypass
555         the check for equal type sizes.
556         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
558 2013-05-13  Gary Funck  <gary@intrepid.com>
560         Merge trunk version 198815 into gupc branch.
562 2013-05-06  Gary Funck  <gary@intrepid.com>
564         Merge trunk version 198622 into gupc branch.
566 2013-04-29  Gary Funck  <gary@intrepid.com>
568         Merge trunk version 198433 into gupc branch.
570 2013-04-15  Gary Funck  <gary@intrepid.com>
572         Merge trunk version 197958 into gupc branch.
574 2013-04-08  Gary Funck  <gary@intrepid.com>
576         Merge trunk version 197571 into gupc branch.
578 2013-04-04  Gary Funck  <gary@intrepid.com>
580         Per the UPC 1.3 specification, the type of the
581         optional barrier/notify/wait expression is not constrained to
582         'int'. Instead, any type that is assignment compatible
583         with an 'int' type is permitted.
584         * c/c-parser.c (c_parser_upc_sync_statement): Do not check
585         the optional expression type here.  Let upc_build_sync_stmt()
586         handle it.
587         * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
588         * c/c-typeck.c (c_cvt_expr_for_assign): New.  Also, call
589         error_at() in lieu of error() when the source location is known.
590         * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
591         to check/convert the optional synchronization statement
592         expression.
594 2013-04-02  Gary Funck  <gary@intrepid.com>
596         Merge trunk version 197340 into gupc branch.
598 2013-04-02  Gary Funck  <gary@intrepid.com>
600         Revert revision 178346 (2011-08-30)
601         which changed the prototype of check_qualified_type and related
602         functions so that their parameters were just 'tree' and not
603         'const_tree'.  This seemed necessary at the time because of a
604         change to TYPE_BLOCK_FACTOR(), which in turn called function
605         that hashed the type node pointer.  The hash functions did
606         not accept "const void *" pointers.  Implement a work around
607         that removes this restriction.
608         * c/c-typeck.c: Revert.
609         * tree.c: Revert.
610         * tree.h: Revert.  Change prototype of upc_block_factor_lookup()
611         to accept a 'const_tree' pointer to a type node.
612         * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
613         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
614         input argument and convert this to 'tree' for use with hash function.
616 2013-04-02  Gary Funck  <gary@intrepid.com>
618         Revert revision 178346 (2011-08-30)
619         which changed the prototype of check_qualified_type and related
620         functions so that their parameters were just 'tree' and not
621         'const_tree'.  This seemed necessary at the time because of a
622         change to TYPE_BLOCK_FACTOR(), which in turn called a function
623         that hashed the type node pointer.  The hash functions did
624         not accept "const void *" pointers.  Implement a work around
625         that removes this restriction.
626         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
627         input argument and convert this to 'tree' for use with hash function.
629 2013-03-25  Gary Funck  <gary@intrepid.com>
631         Merge trunk version 197029 into gupc branch.
633 2013-03-21  Gary Funck  <gary@intrepid.com>
635         Released GUPC 4.8.0.3 based on version 196601.
636         This release version was committed on 2013-03-11.
637         * DATESTAMP: Bump date stamp.
639 2013-03-18  Gary Funck  <gary@intrepid.com>
641         Merge trunk version 196771 into gupc branch.
642         * DEV-PHASE: Bump release identifier to 4.9.0-1.
644 2013-03-11  Gary Funck  <gary@intrepid.com>
646         Merge trunk version 196592 into gupc branch.
648 2013-03-04  Gary Funck  <gary@intrepid.com>
650         Merge trunk version 196422 into gupc branch.
652 2013-02-25  Gary Funck  <gary@intrepid.com>
654         Merge trunk version 196253 into gupc branch.
656 2013-02-18  Gary Funck  <gary@intrepid.com>
658         Merge trunk version 196115 into gupc branch.
660 2013-02-11  Gary Funck  <gary@intrepid.com>
662         Merge trunk version 195937 into gupc branch.
664 2013-02-04  Gary Funck  <gary@intrepid.com>
666         Merge trunk version 195707 into gupc branch.
668 2013-01-28  Gary Funck  <gary@intrepid.com>
670         Merge trunk version 195502 into gupc branch.
672 2013-01-21  Gary Funck  <gary@intrepid.com>
674         Merge trunk version 195330 into gupc branch.
676 2013-01-14  Gary Funck  <gary@intrepid.com>
678         Merge trunk version 195164 into gupc branch.
680 2013-01-07  Gary Funck  <gary@intrepid.com>
682         Merge trunk version 194962 into gupc branch.
684 2012-12-24  Gary Funck  <gary@intrepid.com>
686         Merge trunk version 194709 into gupc branch.
688 2012-12-17  Gary Funck  <gary@intrepid.com>
690         Merge trunk version 194552 into gupc branch.
692 2012-12-10  Gary Funck  <gary@intrepid.com>
694         Merge trunk version 194351 into gupc branch.
696 2012-12-03  Gary Funck  <gary@intrepid.com>
698         Merge trunk version 194076 into gupc branch.
700 2012-11-30  Gary Funck  <gary@intrepid.com>
702         Released GUPC 4.8.0.2 based on version 193446.
703         Date of release: 2012-11-12.
704         * DEV-PHASE: Bump release identifier to 4.8.0-3.
705         * DATESTAMP: Bump date stamp.
707 2012-11-26  Gary Funck  <gary@intrepid.com>
709         Merge trunk version 193807 into gupc branch.
711 2012-11-20  Gary Funck  <gary@intrepid.com>
713         Merge trunk version 193672 into gupc branch.
715 2012-11-19  Gary Funck  <gary@intrepid.com>
717         Merge trunk version 193617 into gupc branch.
719 2012-11-15  Gary Funck  <gary@intrepid.com>
721         Merge trunk version 193426 into gupc branch.
723 2012-11-12  Gary Funck  <gary@intrepid.com>
725         Released GUPC 4.8.0.1 based on version 192948.
726         Date of release: 2012-10-29.
727         * DEV-PHASE: Bump release identifier to 4.8.0-2.
728         * DATESTAMP: Bump date stamp.
730 2012-11-05  Gary Funck  <gary@intrepid.com>
732         Merge trunk version 193152 into gupc branch.
734 2012-10-29  Gary Funck  <gary@intrepid.com>
736         Merge trunk version 192909 into gupc branch.
738 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
740         Remove unused --upc-pthreads-per-process compile switch.
741         * c-family/c.opt: Remove --upc-pthreads-per-process switch
742         that compiler/runtime do not use.
743         * c-family/c-opts.c (c_common_handle_option): Remove support for
744         --upc-pthreads-per-process switch.
745         * c-family/c-common.c: Ditto.
746         * c-family/c-common.h: Ditto.
748 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
750         Remove unused --upc-pthreads-per-process compile switch.
751         * upc/upc-act.c (upc_handle_option): Ditto.
752         (upc_cpp_builtins): Ditto.
753         * upc/upc-lang.c (upc_init_options): Ditto.
755 2012-10-27  Gary Funck  <gary@intrepid.com>
757         * defaults.h: fix typos and formatting in UPC-related entries.
759 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
761         Place shared initialization code into the .text
762         section instead of a separate .upc_init section.
763         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
764         (UPC_INIT_BEGIN_NAME): Delete.
765         (UPC_INIT_END_NAME): Delete.
766         * doc/tm.texi.in: Ditto.
767         * doc/tm.texi: Ditto.
769 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
771         Place shared initialization code into the .text
772         section instead of a separate .upc_init section.
773         * upc/upc-act.c (upc_build_init_func): Remove settings
774         of the section for shared initialization code.
776 2012-10-22  Gary Funck  <gary@intrepid.com>
778         Merge trunk version 192673 into gupc branch.
780 2012-10-15  Gary Funck  <gary@intrepid.com>
782         Merge trunk version 192449 into gupc branch.
784 2012-10-08  Gary Funck  <gary@intrepid.com>
786         Merge trunk version 192198 into gupc branch.
788 2012-10-01  Gary Funck  <gary@intrepid.com>
790         Merge trunk version 191931 into gupc branch.
792 2012-09-26  Gary Funck  <gary@intrepid.com>
794         Implement support for various UPC version 1.3 specification
795         additions and changes. Deprecate support for upc_local_alloc.
796         Add support for upc_tick (wall-clock timer) library.
797         Add support for collective de-allocation functions:
798         upc_all_free and upc_all_lock_free.
799         Consult libgupc/ChangeLog,
800         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
802 2012-09-26  Gary Funck  <gary@intrepid.com>
804         * upc/upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.
806 2012-09-24  Gary Funck  <gary@intrepid.com>
808         Merge trunk version 191658 into gupc branch.
810 2012-09-17  Gary Funck  <gary@intrepid.com>
812         Merge trunk version 191376 into gupc branch.
814 2012-09-10  Gary Funck  <gary@intrepid.com>
816         Merge trunk version 191141 into gupc branch.
818 2012-08-29  Nenad Vukicevic  <nenad@intrepid.com>
820         * upc/gupc.texi: Add description for -fupc-pre-include.
822 2012-08-27  Gary Funck  <gary@intrepid.com>
824         Merge trunk version 190707 into gupc branch.
825         * tree.h (struct tree_base): Adjust various
826         UPC tree and type flags to refer to the
827         newly introduced u.bits field.
829 2012-08-20  Gary Funck  <gary@intrepid.com>
831         Merge trunk version 190524 into gupc branch.
832         Incorporates a fix in genoutput.c (to properly use
833         CONST_CAST) that led to build failures with
834         older versions of g++.
836 2012-08-16  Gary Funck  <gary@intrepid.com>
838         Merge trunk version 190437 into gupc branch.
839         Incorporates a fix for a build failure on the PPC
840         due to passing incorrect switches to the assembler.
841         Also, first merged trunk revision that compiles GCC
842         with the C++ compiler in the first stage.
844 2012-08-16  Gary Funck  <gary@intrepid.com>
846         * upc/upc-pts-struct.c (upc_pts_struct_is_null_p):
847         Adjust VEC_index() calls to use C++ syntax.
848         This is required as part of the move to compile
849         GCC with the C++ compiler.
851 2012-08-13  Gary Funck  <gary@intrepid.com>
853         Merge trunk version 190336 into gupc branch.
855 2012-08-09  Gary Funck  <gary@intrepid.com>
857         * c-family/c-common.c (c_fully_fold_internal): Do not fold
858         offsetof-like expressions when they are applied to UPC
859         shared types.
861 2012-08-07  Gary Funck  <gary@intrepid.com>
863         * upc/upc-genericize.c: Delete un-used include of optabs.h.
864         Fixes a parallel make failure due to un-noticed dependency.
866 2012-08-06  Gary Funck  <gary@intrepid.com>
868         Merge trunk version 190173 into gupc branch.
870 2012-08-01  Gary Funck  <gary@intrepid.com>
872         Merge trunk version 190063 into gupc branch.
873         Incorporates fix for build failure on IA64.
875 2012-07-30  Gary Funck  <gary@intrepid.com>
877         Merge trunk version 189954 into gupc branch.
879 2012-07-27  Gary Funck  <gary@intrepid.com>
881         Merge trunk version 189856 into gupc branch.
882         Incorporates fix for bootstrap with a sub-set of language
883         specific source directories present.
884         * optabs.c: Revert to trunk.  Rather than defining opcodes
885         as a way of defining get/put runtime library function names,
886         generate them directly in gcc/upc/upc-genericize.c.
887         * optabs.h: Ditto.
888         * genopinit.c: Ditto.
890 2012-07-27  Gary Funck  <gary@intrepid.com>
892         * upc/upc-genericize.c (upc_expand_get, upc_expand_put):
893         Rather than referring to UPC-specific opcodes to find
894         the name of the get/put library function name, generate
895         the name directly.
896         (get_lc_mode_name): New.
898 2012-07-25  Gary Funck  <gary@intrepid.com>
900         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
901         Fix regression: field-by-field comparison of UPC
902         pointer-to-shared (vaddr, thread) only works
903         (with the current logic) for the == and != operators.
905 2012-07-24  Gary Funck  <gary@intrepid.com>
907         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
908         Fix warning about use of const_tree.
910 2012-07-24  Gary Funck  <gary@intrepid.com>
912         Per UPC spec. 6.4.2p6, ignore the value of the
913         phase of a pointer-to-shared, when comparing for
914         equal or not equal.
915         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
916         Use bit-wise comparison only if the UPC pointer-to-shared
917         target type has a block size <= 1 and the representation
918         has vaddr first or the comparison is for equality/inequality.
919         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
920         Use (vaddr, thread) comparison only if the UPC pointer-to-shared
921         has a block size <= 1 or the comparison is for equality/inequality.
923 2012-07-23  Gary Funck  <gary@intrepid.com>
925         Merge trunk version 189777 into gupc branch.
927 2012-07-16  Gary Funck  <gary@intrepid.com>
929         Merge trunk version 189545 into gupc branch.
931 2012-07-12  Gary Funck  <gary@intrepid.com>
933         Merge trunk version 189366 into gupc branch.
935 2012-07-05  Gary Funck  <gary@intrepid.com>
937         Merge trunk version 189274 into gupc branch.
938         Incorporates graphite build infrastructure changes.
940 2012-07-04  Gary Funck  <gary@intrepid.com>
942         Merge trunk version 189080 into gupc branch.
943         * Makefile.in: Adjust for move of C front-end files.
944         * c/Make-lang.in: Ditto.
946 2012-07-04  Gary Funck  <gary@intrepid.com>
948         * upc/config-lang.in: Adjust for move of C front-end files.
949         * upc/upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
950         * upc/upc-gasp.c: Ditto.
951         * upc/upc-genericize.c: Ditto.
952         * upc/upc-lang.c: Ditto.
953         * upc/upc-pts-struct.c: Ditto.
955 2012-07-03  Gary Funck  <gary@intrepid.com>
957         Merge trunk version 189078 into gupc branch.
959 2012-06-25  Gary Funck  <gary@intrepid.com>
961         Merge trunk version 188931 into gupc branch.
963 2012-06-18  Gary Funck  <gary@intrepid.com>
965         Merge trunk version 188721 into gupc branch.
967 2012-06-11  Gary Funck  <gary@intrepid.com>
969         Merge trunk version 188380 into gupc branch.
971 2012-06-04  Gary Funck  <gary@intrepid.com>
973         Merge trunk version 188168 into gupc branch.
975 2012-05-29  Gary Funck  <gary@intrepid.com>
977         Merge trunk version 187927 into gupc branch.
979 2012-05-19  Gary Funck  <gary@intrepid.com>
981         * upc/upc-act.c (upc_lang_layout_decl): Ignore declarations of
982         an array of shared type declarations if the size of the
983         array is zero.  This avoids a segfault when processing
984         the UPC blocking factor.
986 2012-05-18  Gary Funck  <gary@intrepid.com>
988         Merge trunk version 187666 into gupc branch.
989         Incorporates fix for ICE in tree vectorization pass
990         when processing strided loads.
992 2012-05-17  Gary Funck  <gary@intrepid.com>
994         Merge trunk version 187578 into gupc branch.
996 2012-05-09  Gary Funck  <gary@intrepid.com>
998         Merge trunk version 187347 into gupc branch.
999         Incorporates fix for segfault in tree vectorization pass.
1001 2012-05-08  Nenad Vukicevic  <nenad@intrepid.com>
1003         * upc/gupcspec.c (lang_specific_driver): Improve handling of
1004         "-x" switches: (a) add "-x upc" switch for C source files if
1005         no -x switch was seen before OR "-x none" was seen, (b) add
1006         "-x none" for files other then C files if "-x upc" was
1007         previously added. Cleanup warnings on unused variables
1008         and integer conversion. Print verbose info regardless of the
1009         command line being the same.
1011 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
1013         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
1014         Appropriate libraries and include files are added on the
1015         command line to make it possible to compile with the driver
1016         from the build tree.
1018 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
1020         * upc/gupc.texi: Simplify the description of the optimization
1021         options.
1023 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
1025         * upc/Make-lang.in: Remove build of xgupc.
1026         * upc/gupcspec.c (get_libgupc_path): Delete.
1027         (lang_specific_driver): Remove support for building xgupc.
1028         Removed code tried to add -B, -L, -isystem to the command
1029         line if xgupc driver is invoked from the development tree.
1031 2012-05-04  Gary Funck  <gary@intrepid.com>
1033         * upc/upc-act.c (upc_num_threads): When THREADS is specified
1034         statically, convert the value to a signed size type,
1035         so that (for example) the thread affinity test in a
1036         upc_forall() statement will work as expected for negative
1037         integer index values.
1039 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
1041         * upc/Make-lang.in: Add year 2012 to the copyright.
1043 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
1045         * upc/gupc.c: Delete. The old GUPC driver.
1046         * upc/gupcspec.c: Add. The new GUPC driver tailored
1047         after fortran/gfortranspec.c driver. Options "-n", "-inst",
1048         and "-inst-functions' are not supported by the new driver.
1049         Support for building gupc and xgupc remains the same.
1050         * upc/Make-lang.in (xgupc): Changes to compile gupcspec.c
1051         instead of gupc.c
1052         (gupc): Ditto.
1053         * upc/gupc.texi: Remove '-n', '-inst', and '-inst-functions'
1054         options.
1056 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
1058         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
1059         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
1060         a function returns a pointer-to-shared in memory instead
1061         of in registers.
1062         (rs6000_pass_by_reference): Ditto.
1064 2012-04-28  Gary Funck  <gary@intrepid.com>
1066         * c-decl.c (grokdeclarator): Set 'type' to error node
1067         after detecting "shared auto variable" error to avoid
1068         downstream complications.
1069         * upc/upc-act.c: Fix a couple of spelling errors in comments.
1071 2012-04-26  Gary Funck  <gary@intrepid.com>
1073         * c-family/c-pragma.c (handle_pragma_upc):
1074         Fix typo in warning message.
1076 2012-04-17  Nenad Vukicevic  <nenad@intrepid.com>
1078         * upc/gupc.texi: Fix the warning for usage of 'insertcopying'
1079         before 'copying'. Minor changes to to copyright years and
1080         manual info.
1082 2012-04-17  Gary Funck  <gary@intrepid.com>
1084         Merge trunk version 186486 into gupc branch.
1086 2012-04-17  Gary Funck  <gary@intrepid.com>
1088         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
1089         value of the pupc mode.  Fixes a compile-time warning.
1090         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
1091         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
1092         Improve source formatting.
1094 2012-04-16  Gary Funck  <gary@intrepid.com>
1096         * upc/upc-genericize.c: Adjust copyright.
1097         (upc_genericize_fndecl): Adjust call graph
1098         union member reference to use the newly introduced
1099         'symbol' field in order to refer to 'decl'.
1101 2012-04-09  Gary Funck  <gary@intrepid.com>
1103         Merge trunk version 186243 into gupc branch.
1104         Incorporates a powerpc 'ffi' fix.
1106 2012-03-16  Gary Funck  <gary@intrepid.com>
1108         Merge trunk version 185454 into gupc branch.
1109         Incorporates a libgcc fix for builds on Darwin.
1111 2012-03-13  Gary Funck  <gary@intrepid.com>
1113         Merge trunk version 185278 into gupc branch.
1114         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
1115         call build_pointer_type() to apply UPC-specific qualifiers.
1116         * top-level/configure.ac: factor the checking for posix hostst
1117         out of the libgomp section so that it can also be used by libgupc.
1118         * top-level/configure: Re-generate.
1119         * DEV-PHASE: bump to 4.8.0-1.
1121 2012-03-12  Gary Funck  <gary@intrepid.com>
1123         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
1124         the mode for a pointer for upc-pointer-to-shared types.
1126 2012-03-04  Gary Funck  <gary@intrepid.com>
1128         Merge trunk version 184900 into gupc branch.
1130 2012-02-17  Gary Funck  <gary@intrepid.com>
1132         Released GUPC 4.7.0.2 based on version 183992.
1133         * DEV-PHASE: Bump release identifier to 4.7.0-3.
1134         * DATESTAMP: Bump date stamp.
1136 2012-02-07  Nenad Vukicevic  <nenad@intrepid.com>
1138         * upc/gupc.texi: Added entries for the directory.
1140 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
1142         * upc/gupc-manpage.html: Removed. HTML files are generated from
1143         the texi source.
1145 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
1147         * upc/gupc.texi (-x upc): Add files ending with '.c' to the list
1148         of files compiled as UPC source.
1150 2012-02-04  Nenad Vukicevic  <nenad@intrepid.com>
1152         * upc/Make-lang.in (doc/gupc.info): Fix dependencies for creating
1153         gupc.info document.
1155 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
1157         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
1158         code generation (same as #pragma pupc off).
1159         (set_pupc_mode): New. Set/restore profiling mode.
1160         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
1161         (set_pupc_mode): New. Prototype.
1162         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1163         profiling code for shared variables initialization routines.
1165 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
1167         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1168         profiling code for shared variables initialization routines.
1170 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
1172         * upc/Make-lang.in: Various changes related to generating
1173         man/info pages from texi source file.
1174         (upc.install-common): Fix for removing the upc command
1175         link before install if suffix was applied.
1176         (upc.install-pdf): New.
1177         (upc.install-html): Change for the build from texi.
1178         (upc.install-man): Change for the build from texi.
1179         * upc/gupc.1: Removed.
1180         * upc/gupc.texi: New. Created texi source for man/info
1181         generation.
1183 2012-01-31  Gary Funck  <gary@intrepid.com>
1185         Merge trunk version 183751 into gupc branch.
1186         Incorporates fix for bootstrap failure on openSUSE 12.1.
1188 2012-01-30  Nenad Vukicevic  <nenad@intrepid.com>
1190         * upc/Make-lang.in: Fix the --program-suffix configuration
1191         option.  GUPC executables are now installed with appropriate
1192         suffixes and GUPC driver execs 'gcc' with the right suffix.
1194 2012-01-24  Nenad Vukicevic  <nenad@intrepid.com>
1196         * upc/upc-lang.c (upc_init_options): Disable section anchors
1197         for UPC language.
1199 2012-01-14  Gary Funck  <gary@intrepid.com>
1201         * upc/upc-genericize.c (upc_genericize_expr): Update input_location
1202         while traversing the program tree.
1203         (upc_expand_get, upc_expand_put): For profiling,  derive
1204         the source code location from the incoming 'loc' parameter.
1206 2012-01-10  Gary Funck  <gary@intrepid.com>
1208         Merge trunk version 183072 into gupc branch.
1209         Incorporates libcpp __BASE_FILE__ fix.
1211 2012-01-09  Gary Funck  <gary@intrepid.com>
1213         * upc/upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
1214         is_gimple_non_addressable.
1216 2012-01-06  Nenad Vukicevic  <nenad@intrepid.com>
1218         * upc/Make-lang.in: Add appropriate linker flags when linking
1219         gupc drivers.
1221 2012-01-06  Nenad Vukicevic  <nenad@intrepid.com>
1223         * upc/Make-lang.in: Add appropriate linker flags when linking
1224         gupc drivers.
1226 2011-12-31  Gary Funck  <gary@intrepid.com>
1228         Fix gupc driver to avoid segfault when processing
1229         invalid use of a switch that expects an argument.
1230         * upc/gupc.c (get_libgupc_path): Add check for non-NULL value of
1231         libgupc_archive before attempting to access libgupc_archive[0].
1232         (main): Do not issue error if lib_dir is NULL.  Instead, only
1233         process lib_dir if it is non-NULL.
1235 2011-12-31  Gary Funck  <gary@intrepid.com>
1237         Improve -fupc-debug support.
1238         * upc/upc-genericize.c (upc_expand_get, upc_expand_put,
1239         upc_genericize_sync_stmt): Add check for flag_upc_debug.
1240         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
1241         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
1242         * upc/upc-act.c (upc_cpp_builtins): Disable inlining of the
1243         runtime if flag_upc_debug is asserted.
1245 2011-12-20  Nenad Vukicevic  <nenad@intrepid.com>
1247         * top-level/Makefile.def (flags_to_pass): Added GUPC
1248         defines. Fixes the make error when upc is not specified as one
1249         of the languages to build.
1250         * top-level/Makefile.in: Re-generate.
1252 2011-11-22  Gary Funck  <gary@intrepid.com>
1254         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
1255         * dwarf2out.c (gen_compile_unit_die): Check for
1256         the "GNU UPC" language string in lieu of "GCC UPC".
1257         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
1259 2011-11-22  Gary Funck  <gary@intrepid.com>
1261         * upc/upc-act.c (upc_cpp_builtins): Generate new pre-defined
1262         macro: __GUPC__.
1264 2011-11-18  Gary Funck  <gary@intrepid.com>
1266         Merge trunk version 181552 into gupc branch.
1267         Incorporates libgcc/libunwind fix for IA64.
1269 2011-11-19  Gary Funck  <gary@intrepid.com>
1271         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1272         Add check for UPC when defining the language type value
1273         in a traceback entry.
1275 2011-11-19  Gary Funck  <gary@intrepid.com>
1277         * upc/config-lang.in: Remove checks for supported targets.
1278         This is now done at a higher level.
1280 2011-11-18  Gary Funck  <gary@intrepid.com>
1282         Merge trunk version 181493 into gupc branch.
1283         Incorporates final fix for PR target/49992.
1285 2011-11-09  Nenad Vukicevic  <nenad@intrepid.com>
1287         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
1288         change that converted relative include paths into absolute
1289         ones, as it does not work with older version of make (3.80).
1291 2011-10-27  Nenad Vukicevic  <nenad@intrepid.com>
1293         Apply patch for Darwin build - PR49992.
1294         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
1295         * gcc/configure.ac: Ditto.
1296         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
1297         * gcc/ada/gcc-interface/Makefile.in: Ditto.
1298         * top-level/configure: Re-generate.
1299         * gcc/configure: Re-genrate.
1301 2011-10-26  Gary Funck  <gary@intrepid.com>
1303         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1304         "libupc" to "libgupc".
1305         * top-level/configure.ac: Implement support for cross-builds, and
1306           adjust for rename of libupc to libgupc.
1307         * top-level/Makefile.tpl: Ditto.
1308         * top-level/Makefile.def: Ditto.
1309         * top-level/configure: Re-generate.
1310         * top-level/Makefile.in: Re-generate.
1311         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
1312         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
1313         * doc/tm.texi: Re-generate.
1314         * tree-pretty-print.c (dump_block_node): Delete unused variable.
1315         * gcc.c: Adjust for rename of libupc to libgupc.
1316         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
1317         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
1318         Change "xupc" to "xgupc".
1319         * configure.ac: Change "GCC UPC" to "GNU UPC".
1320         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
1321         so that they are absolute paths.  This is needed because
1322         the upc-crtstuff builds are in the libgupc library build
1323         directories which are not at the same level as libgcc.
1324         * config/darwin.h: Adjust for rename of libupc to libgupc.
1326 2011-10-26  Gary Funck  <gary@intrepid.com>
1328         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1329         "libupc" to "libgupc".
1330         * upc/gupc.c: Rename from upc-cmd.c and adjust for rename
1331         of libupc to libgupc.
1332         * upc/upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
1333         * upc/config-lang.in: Adjust for rename of libupc to libgupc.
1334         * upc/gupc.1: Rename from upc.1.  Change "GCC UPC" references
1335         to "GNU UPC".  Adjust for rename of libupc to libgupc.
1336         Improve formatting.
1337         * upc/gupc-manpage.html: Rename from upc-manpage.html.  Re-generate.
1338         * upc/Make-lang.in: Change "upc" to "gupc".  Change "xupc" to "xgupc".
1339         Adjust for rename of libupc to libgupc.  Install target symlink from
1340         "upc" to "gupc".  Install target/version-specific hard links to "gupc".
1342 2011-10-20  Gary Funck  <gary@intrepid.com>
1344         Merge trunk version 180276 into gupc branch.
1345         Incorporates fix for PR bootstrap/50709.
1347 2011-10-20  Gary Funck  <gary@intrepid.com>
1349         Merge trunk version 180246 into gupc branch.
1351 2011-10-19  Gary Funck  <gary@intrepid.com>
1353         Merge trunk version 180233 into gupc branch.
1354         Incorporates fix for PR debug/49310 (var tracking).
1356 2011-10-17  Gary Funck  <gary@intrepid.com>
1358         Fix a regression caused by the previous commit.
1359         * upc/upc-genericize.c (upc_genericize_walk):
1360         Renamed from: upc_genericize_stmt.
1361         (upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
1362         re-walk the tree after simplification, by calling
1363         upc_genericize_walk().
1364         (upc_genericize_array_ref): expand the newly constructed
1365         indirect reference by calling upc_genericize_indirect_ref().
1367 2011-10-11  Nenad Vukicevic  <nenad@intrepid.com>
1369         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
1370         only four (O0 static/dynamic, O3 static/dynamic).
1371         Detect -fupc-threads-0 as an option for dynamic threads
1372         compile environment.
1374 2011-10-10  Gary Funck  <gary@intrepid.com>
1376         * tree.c (check_qualified_type, check_aligned_type):
1377         Call tree_int_cst_equal() to compare UPC blocking factors
1378         if the corresponding tree pointers are not equal.
1379         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
1381 2011-10-10  Gary Funck  <gary@intrepid.com>
1383         * upc/upc-genericize.c (upc_simplify_shared_ref): When simplifying
1384         the base address always convert to (shared [] char *).
1385         This ensures that &a[i].field1 ends up with the required
1386         zero block size, for example.
1388 2011-10-07  Nenad Vukicevic  <nenad@intrepid.com>
1390         Add configuration checks for struct/packed builds so we can
1391         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
1392         * testsuite/lib/target-supports.exp
1393         (check_effective_target_upc_struct_pts): New.
1394         (check_effective_target_upc_packed_pts): New.
1396 2011-09-15  Nenad Vukicevic  <nenad@intrepid.com>
1398         Add to FLAGS the flags needed to disable inlining of
1399         UPC run-time access routines.
1400         * testsuite/lib/target-supports.exp
1401         (add_options_for_upc_library_calls): New.
1403 2011-09-15  Gary Funck  <gary@intrepid.com>
1405         Fix ICE involving shared bit field accesses.
1406         * tree.c (build3_stat): Propagate TEEE_SHARED()
1407         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1409 2011-09-13  Gary Funck  <gary@intrepid.com>
1411         Merge trunk version 178795 into gupc branch.
1412         Incorporates fix to PR bootstrap/50010 for x86-32.
1414 2011-09-08  Gary Funck  <gary@intrepid.com>
1416         Merge trunk version 178557 into gupc branch.
1418 2011-09-07  Gary Funck  <gary@intrepid.com>
1420         Ensure that UPC pointer-to-shared type alignment is
1421         propagated to the final type.  Revert to long-standing
1422         alignment policy: twice the size of a "C" pointer.
1423         * tree.c (build_pointer_type): Propagate the alignment
1424         of the UPC pointer-to-shared representation type
1425         into the newly built pointer type.
1427 2011-08-30  Gary Funck  <gary@intrepid.com>
1429         * tree.h (check_qualified_type): Change 'const_tree'
1430         argument types back to 'tree' to avoid complaints
1431         of assignment drops qualifiers for invocations of the
1432         newly implemented TYPE_BLOCK_FACTOR() macro, which
1433         invokes hash functions with 'tree' pointer values that
1434         are not const qualified.
1435         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1436         * c-typeck.c (comptypes_internal): Ditto.
1438 2011-08-29  Gary Funck  <gary@intrepid.com>
1440         Fixes for regressions noted running "make check"
1441         versus GCC trunk.
1442         * fold-const.c (fold_unary_loc): Execute UPC-specific
1443         checks for a cast-of-a-cast, only if one of the
1444         operands is a UPC pointer-to-shared value.
1445         * opts.c (print_specific_help):  Fix a comparison
1446         in an assert that checks that there are enough
1447         bits reserved for the number of languages defined
1448         in the .opt files.
1450 2011-08-29  Gary Funck  <gary@intrepid.com>
1452         Implement a hash table to record UPC block factors.
1453         * c-family/stub-upc.c (upc_block_factor_insert,
1454         upc_block_factor_lookup): New dummy stub procedures.
1455         * c-family/c-common.c (c_sizeof_or_alignof_type):
1456         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1457         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1458         to copy (hashed) UPC blocking factor.
1459         (set_type_quals): Likewise.
1460         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1461         TYPE_HAS_THREADS_FACTOR().
1462         (type_common.block_factor): Delete.
1463         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1464         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1465         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1466         UPC blocking factors greater than one.
1467         * dwarf2out.c (modified_type_die): Re-implement
1468         logic that records UPC blocking factor in the generated
1469         DWARF2 debugging information.
1470         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1471         TYPE_HAS_THREADS_FACTOR().
1472         * c-decl.c (finish_decl, grokdeclarator):
1473         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1474         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1475         used by UPC, and print UPC-specific information.
1477 2011-08-28  Gary Funck  <gary@intrepid.com>
1479         Re-work the type machinery to fully support and to unify support
1480         for the UPC layout qualifier (blocking factor).
1481         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1482           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1483           and update prototype.
1484         * c-family/c-common.c (complete_array_type): call newly
1485           defined c_build_qualified_type_1() instead of
1486           upc_set_block_factor().
1487         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1488           upc_apply_layout_qualifier() and update prototype.
1489           (upc_set_block_factor): Delete prototype.
1490         * c-family/c-common.h (c_build_qualified_type): redefine
1491           as a pre-processor macro that invokes c_build_qualified_type_1()
1492           with a null UPC layout qualifier.
1493           (c_build_qualified_type_1): New.  Add layout qualifier argument
1494           to old c_build_qualified_type() prototype.
1495         * tree.c (set_type_quals, check_qualified_type):
1496           Add layout qualifier as argument.
1497           (check_aligned_type): Add check for UPC block factor equality.
1498           (get_qualified_type_1): Rename from get_qualified_type() and
1499           add layout qualifier as argument.
1500           (build_qualified_type_1): Rename from build_qualified_type() and
1501           add layout qualifier as argument.
1502         * tree.h (check_qualified_type): Add layout qualifier as argument
1503           to the prototype.
1504           (get_qualified_type): Re-define as a as a pre-processor macro
1505           that invokes get_qualified_type_1() with a null
1506           UPC layout qualifier.
1507           (get_qualified_type_1): Rename from get_qualified_type() and
1508           add layout qualifier as argument.
1509         * cp/tree.c (c_build_qualified_type_1): Rename from
1510           c_build_qualified_type() and add (unused) layout qualifier
1511           argument.
1512         * c-decl.c (finish_decl): re-format long error messages.
1513           (grokdeclarator): Re-work the logic so that it calls
1514           upc_grok_layout_qualifier() to handle the UPC layout
1515           qualifier, if present.
1516         * c-typeck.c (qualify_type, common_pointer_type,
1517           build_component_ref): Re-work the logic so that it calls
1518           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1519           if present.
1520           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1521           and add layout qualifier argument.
1522         * print_tree.c (print_node): Re-format a long line.
1524 2011-08-26  Gary Funck  <gary@intrepid.com>
1526         Merge trunk version 177949 into gupc branch.
1527         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1528           in the comment.
1529         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1530           to add new rliterals column value.
1532 2011-08-26  Gary Funck  <gary@intrepid.com>
1534         * convert.c (convert_to_integer): Fix the check for the
1535           difference between two UPC pointers-to-shared values.
1537 2011-08-23  Nenad Vukicevic  <nenad@intrepid.com>
1539         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1540           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1541           correctly check packed bits.
1542         * configure: Re-generate.
1544 2011-08-16  Gary Funck  <gary@intrepid.com>
1546         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1547           the barrier id expression is not an integer expression.
1549 2011-08-12  Gary Funck  <gary@intrepid.com>
1551         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1552           (revert to trunk).
1553         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1554           Set mode of UPC pointer-to-shared rep. to an
1555           integral mode of size at least as large as the
1556           size of the representation's struct type.
1558 2011-08-12  Gary Funck  <gary@intrepid.com>
1560         Rework/simplify the UPC genericize pass.
1561         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1562           upc_build_pointer_type): New.
1563           (upc_set_block_factor): Adjust to new calling sequence.
1564           (upc_build_shared_var_addr): Delete.
1565         * c-family/c-common.c (complete_array_type): Adjust call
1566           to upc_set_block_factor().
1567         * c-family/c-upc.h (upc_apply_layout_qualifier,
1568           upc_build_pointer_type): New.
1569           (upc_build_shared_var_addr): Delete.
1570           (upc_set_block_factor): Adjust to new calling sequence.
1571         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1572         * c-decl.c (grokdeclarator): Call newly defined
1573           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1574         * c-decl.c (grokdeclarator): Split long UPC-related error
1575           messages into two lines.
1576         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1577           directly.  Revert that change to trunk. (upc_genericize() will
1578           handle lowering the expressions that take the address of a
1579           UPC variable).
1580         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1581           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1582           representation type.
1584 2011-08-10  Gary Funck  <gary@intrepid.com>
1586         Implement additional fixes for recent merge with trunk.
1587         * explow.c (promote_mode): Do not attempt to promote
1588           the mode for UPC pointer-to-shared types.
1589         * config/i386/i386.c (function_value_64): Ditto.
1591 2011-08-07  Gary Funck  <gary@intrepid.com>
1593         Merge trunk version 177548 into gupc branch.
1594         * config/i386/i386.c (ix86_promote_function_mode):
1595           Do not promote UPC pointers-to-shared to Pmode.
1596         * c-family/c-ommon.c (pointer_int_sum):
1597           Also check the pointer operand, rather than just
1598           its type, when making the decision to derive
1599           the equivalent unshared type.
1600         * tree.c (build2_stat): If the type of the result
1601           passed in as an argument is a UPC shared type,
1602           derive the unshared equivalent when calculating
1603           the result type of the node.
1605 2011-07-15  Nenad Vukicevic  <nenad@intrepid.com>
1607         * config/darwin.c: Disable var_tracking option
1608           on -O0 as it is supposed to run only when optimization
1609           is applied. See GCC bug 49743.
1611 2011-07-06  Gary Funck  <gary@intrepid.com>
1613         Re-implement the pass that lowers trees generated by
1614         the UPC front-end into GENERIC.  Previously this was
1615         done within the gimplification framework, but this
1616         required that gimplification be run before inlining
1617         and various other passes, which did not fit in well
1618         with the current design of the middle-end passes.
1619         Now, the lowering is done by a newly defined language
1620         specific genericize hook.  With this change, we are
1621         are able to undo some extensions made to the gimplify
1622         logic, and thus can revert several files to trunk.
1623         * c-decl.c: Add a check for UPC deprecated names which
1624           may appear as undefined function names.
1625         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1626           LTI_upc_getaddr): Remove definitions of unused UPC
1627           library function names.  These were defined back when
1628           the libfunc interface was used to call these routines.
1629         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1630           in UPC lowering (genericize) pass.
1631         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1632           (instrument_func): Delete this hook.  Now handled in
1633           upc_genericize().
1634         * tree-pass.h: Revert to trunk.
1635         * c-typeck.c (build_unary_op): Adjust reference to
1636           upc_genericize() in a comment.
1637         * gimplify.c (create_tmp_var_raw): Delete logic that
1638           was converting UPC shared types into unshared types
1639           to be used for temporaries.  Now handled in  upc_genericize().
1640           Replace with an assertion check.
1641           (prepare_gimple_addressable): Revert to trunk's definition.
1642           No longer needed as an externally called function.
1643           (flag_instrument_functions_exclude_p): Re-define as
1644           an externally called function.
1645           (gimplify_function_tree): Delete code that implemented
1646           call to UPC's language specific function instrumentation hook.
1647         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1648           (prepare_gimple_addressable): Delete extern definition;
1649           revert to trunk's definition.
1650         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1651           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1652         * c-family/c-gimplify.c: Revert to trunk.
1653         * cp/cp-gimplify.c: Revert to trunk.
1654         * cp/cp-tree.h: Revert to trunk.
1655         * explow.c: Revert to trunk.
1656         * langhooks.c: Revert to trunk.
1657         * libfuncs.h: Revert to trunk.
1658         * objc/objc-act.c: Revert to trunk.
1660 2011-06-30  Gary Funck  <gary@intrepid.com>
1662         * c-family/c.opt: Bring options definitions up-to-date
1663         with respect to changes made in the trunk.
1665 2011-06-29  Gary Funck  <gary@intrepid.com>
1667         Merge trunk version 175584 into gupc branch.
1669 2011-06-13  Gary Funck  <gary@intrepid.com>
1671         libcpp/
1672         * include/cpplib.h (enum c_lang):
1673         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1674         This keeps all the "C" variants together.
1675         * init.c (lang_defaults): Add an entry for UPC.
1677 2011-06-09  Gary Funck  <gary@intrepid.com>
1679         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1680         a 32-bit target, the size expression overflowed, the result was
1681         error_mark_node, and an ICE was triggered on an attempt to evaluate
1682         C_TYPE_VARIABLE_SIZE() on the error node.
1683         (upc_blocksizeof_expr, upc_blocksizeof_type,
1684         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1685         Make similar changes to avoid further processing of error_mark_node.
1687 2011-06-07  Gary Funck  <gary@intrepid.com>
1689         * sel-sched.c (move_op): Incorporate the following
1690         patch to eliminate ICE at -O3 on IA64/Altix.
1692 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1694         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1695         code_motion_path_driver returned 0 or 1.
1696         (sel_region_finish): Clear h_d_i_d.
1698 2011-06-02  Gary Funck  <gary@intrepid.com>
1700         Merge trunk version 174558 into gupc branch.
1702 2011-05-30  Gary Funck  <gary@intrepid.com>
1704         * configure.ac: Make the default order of the virtual
1705           address field in a UPC pointer-to-shared to be "first".
1706           This reverts to the previous setting, and is a short term
1707           measure to work around a bug found on the IA64,
1708           where vaddr=last led to incorrect code generation.
1709           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1710           in AC_DEFINE(), to agree with recent changes in files
1711           that reference this define.
1712           configure, config.in: Regenerate.
1714 2011-05-26  Gary Funck  <gary@intrepid.com>
1716         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1717           configure: Regenerate.
1718         * ../fixincludes/fixincl.x: Revert to trunk.
1719           This file is auto-generated, and should not be merged.
1721 2011-05-18  Gary Funck  <gary@intrepid.com>
1723         Merge trunk version 173845 into gupc branch.
1725 2011-05-17  Gary Funck  <gary@intrepid.com>
1727         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1728           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1729         * c-family/c-pragma.c: Remove conditional compilation
1730           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1731           Test 'compiling_upc' when compiling to determine if
1732           the "upc" and "pupc" pragmas should be registered.
1733         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1734           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1735           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1736           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1737           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1738           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1739           Move these target-dependent definitions from config/upc-conf.h
1740           to here.
1741         * configure.ac: Improve the logic for UPC-related options.
1742           Delete references to pre-processor definitions that have
1743           been moved to "upc/upc-pts.h".
1744         * configure, config.in: Regenerate.
1745         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1746           to trunk.  This substitution variable was used to
1747           configure the representation-specific versions of
1748           the tree rewrites that operate on UPC pointer-to-shared
1749           types and objects.
1750         * c-parser.c (c_parser_upc_forall_statement): Remove
1751           reference to UPC_FORALL_DEPTH_NAME, and call
1752           newly defined upc_rts_forall_depth_var() instead.
1753         * config/upc-config.h: Delete. Various definitions
1754           moved to "upc/upc-rts-names.h", "defaults.h", and
1755           "upc/upc-pts.h".
1756         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1757           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1758           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1759           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1760           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1761           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1762           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1763           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1764           New.  Document UPC target macros.
1765           doc/tm.texi: Regenerate.
1767 2011-05-07  Gary Funck  <gary@intrepid.com>
1769         * ../configure.ac: Disable build of libupc
1770           on non POSIX hosted systems.  Use AS_HELP_STRING
1771           to define messages.  Remove 'word-pair' as a
1772           possible --with-upc-pts UPC pointer-to-shared
1773           representation.
1774         * ../configure: Regenerate.
1775         * configure.ac: Use AS_HELP_STRING to define messages.
1776           Remove 'word-pair' as a possible --with-upc-pts
1777           UPC pointer-to-shared representation.
1778           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1779           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1780         * configure: Regenerate.
1781         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1782           definition.
1783         * ChangeLog.upc: Fix some typos.
1785 2011-05-07  Gary Funck  <gary@intrepid.com>
1787         * ../maintainer-scripts/gcc_release: Add "upc"
1788           as one of the released languages.
1790 2011-05-06  Gary Funck  <gary@intrepid.com>
1792         Eliminate compilation warnings, by fixing
1793         #include's and updating function prototypes.
1794         * c-family/c-cppbuiltin.c: Include c-upc.h.
1795         * optabs.c (gen_libfunc): Change type of 'suffix'
1796           parameter to conform with prototype.
1797         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1798           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1799           hook used by UPC.
1800         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1801           the prototype.
1802         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1803           argument values to cp_gimplify_expr.
1804         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1805           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
1806           pre-processor definitions that are no longer
1807           needed to build the 'upc' command (upc-cmd.c)
1808           because the linker specs. defined in libupc
1809           take care of linking in the needed libraries.
1810         * c-parser.c (c_parser_upc_forall_statement):
1811           initialize affinity_loc to avoid "maybe unused" warning.
1812           (c_parser_upc_sync_statement): Remove un-needed
1813           'ret' variable.  Cast return value from
1814           'upc_build_sync_stmt' to 'void' to avoid
1815           compile-time warning.
1816         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1817           integer constant, not a string.  Range is restricted
1818           to maximum positive 32-bit integer (2+ billion) to
1819           fit in with the use of 'int' in the front-end's
1820           switch handling logic.
1822 2011-05-06  Gary Funck  <gary@intrepid.com>
1824         Upgrade c-family source files to conform with modularity
1825         improvements.  Mainly, remove #include of c-tree.h in files
1826         under c-family, and define a new UPC-specific #include file,
1827         c-upc.h, and use it.
1828         * c-family/stub-upc.c: Remove #include of c-tree.h and
1829           upc/upc-act.h.  Replace with #include of c-common.h
1830           and c-upc.h.
1831           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1832           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1833           upc_localsizeof_expr, upc_localsizeof_type,
1834           upc_shared_type_p): Delete.
1835         * c-family/c-opts.c: Add #include of c-upc.h
1836         * c-family/c-common.c: Remove #include of c-tree.h and
1837           add #include of c-upc.h.
1838         * c-family/c-upc.h: New. Define API for UPC-specific functions
1839           (mostly implemented in upc/upc-act.c).
1840         * c-family/c-common.h (upc_cpp_builtins,
1841           upc_write_global_declarations): Remove extern definitions.
1842         * c-family/c-pragma.c: Remove #include of c-tree.h.
1843           Add #include of c-upc.h.
1844         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
1845           c-tree.h.
1846           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
1847           upc/upc-act.c, and define as a macro.
1848           (expand_affinity_test): Remove unused external definition.
1849           (build_upc_unshared_type): Add external definition.
1850           (upc_shared_type_p): Remove external definition.
1851         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1852         * dojump.c: Remove #include of c-tree.h.
1853         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1854           and move to tree.h.
1855           (count_upc_threads_refs, is_multiple_of_upc_threads,
1856           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1857           upc_build_shared_var_addr, upc_build_sync_stmt,
1858           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1859           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1860           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1861           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1862           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1863           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1864           set_upc_consistency_mode, get_upc_consistency_mode,
1865           push_upc_consistency_mode, pop_upc_consistency_mode,
1866           get_upc_pupc_mode):
1867           Move external definitions to c-family/c-upc.h.
1868           (upc_blocksizeof_type, upc_localsizeof_type,
1869           upc_elemsizeof_type): Remove external definitions;
1870           these functions were moved to c-parser.c.
1871         * c-decl.c: Add #include of c-upc.h.
1872         * c-typeck.c: Add #include of c-upc.h.
1873         * c-convert.c: Add #include of c-upc.h.
1874         * ChangeLog.upc: Fix typo.
1875         * Makefile.in: Add references to c-family/c-upc.h, everywhere
1876           there is a reference to c-family/c-objc.h.
1877           Remove extraneous reference to upc-act.h.
1878         * c-parser.c: Add #include of c-upc.h.
1879           (upc_blocksizeof_expr, upc_blocksizeof_type,
1880           upc_elemsizeof_expr, upc_elemsizeof_type,
1881           upc_localsizeof_expr, upc_localsizeof_type):
1882           Move from upc/upc-act.c.
1883         * tree.c (build_upc_unshared_type): New.
1884           Move upc_get_unshared_type from upc/upc-act.c and rename
1885           to build_upc_unshared_type.
1886           c-family/c-common.c (pointer_int_sum): refer to renamed
1887           build_upc_unshared_type function.
1888           c-convert.c (convert): Ditto.
1889           convert.c (convert_to_pointer): Ditto.
1890           c-typeck.c (build_unary_op, build_modify_expr,
1891           really_start_incremental_init): Ditto.
1892           gimplify.c (create_tmp_var_raw): Ditto.
1893           tree.c (build1_stat): Ditto.
1894           tree.h (upc_get_unshared_type): Rename to
1895           build_upc_unshared_type.
1897 2011-05-06  Gary Funck  <gary@intrepid.com>
1899         Merge trunk version 173471 into gupc branch.
1901 2011-05-05  Gary Funck  <gary@intrepid.com>
1903         Make changes that bring the GUPC branch more closely in sync.
1904         with the GCC trunk.  Revert any fixes that are not UPC-specific.
1905         Remove gratuitous re-formatting.
1906         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1907           This file should have been removed in a previous merge
1908           with the trunk.
1909         * ../configure.ac: Remove Cray Catamount/CNL support.
1910         * ../configure: Regenerate.
1911         * ../config.sub: Remove Cray Catamount/CNL support.
1912         * config.gcc: Remove Cray Catamount/CNL support.
1913         * ../maintainer-scripts/gcc_release: Revert to trunk.
1914         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1915           was missed in a previous merge with the trunk.
1916         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1917           procedure.
1918         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1919           in addition to ARRAY_TYPE.
1920         * c-typeck.c: Remove an extra newline character.
1921         * varasm.c: Revert a fix that improved an error message
1922           when TLS common data is unimplemented.
1923         * varasm.c: Revert a gcc_assert that had been added which
1924           checked for a null DECL_SIZE_UNIT field.
1925         * emultls.c: Revert to trunk. Remove possible fix.
1926         * Makefile.in: Revert extra blank line that is present
1927           in the trunk version.
1928         * Makefile.in: Revert a fix that handled long shell
1929           argument lists for plugin headers.
1930         * config/ia64/ia64.opt: Revert an option setting
1931           that increased the default TLS address range.
1932         * config/ia64/crtbegin.asm: Revert to trunk.
1933           Removes an extra newline character.
1934         * ChangeLog.upc: Spell check.
1936 2011-05-03  Gary Funck  <gary@intrepid.com>
1938         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1939           (c_apply_type_quals_to_decl): Ditto.
1940         * c-family/c-common.h: Ditto.
1941         * dojump.c: Ditto.
1942         * c-decl.c (merge_decls): Ditto.
1943         * c-typeck.c (qualify_type, default_conversion,
1944           build_component_ref, build_unary_op,
1945           c_build_qualified_type): Ditto.
1946         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1948 2011-04-29  Gary Funck  <gary@intrepid.com>
1950         * c-decl.c (finish_decl): Improve error diagnostics.
1951           (grokdeclarator): Ditto.
1952         * c-typeck.c (build_c_cast): Improve error diagnostics.
1953           (convert_for_assignment): Ditto.
1954           (build_binary_op): Ditto.
1955         * c-parser.c (c_parser_upc_forall_statement):
1956           Improve error diagnostics.
1957         * convert.c (convert_to_integer):  Improve error diagnostics.
1959 2011-04-24  Gary Funck  <gary@intrepid.com>
1961         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1962           occurred if there is an error in the barrier id
1963           expression.  Map error_mark_node into NULL.
1965 2011-04-22  Gary Funck  <gary@intrepid.com>
1967         Merge trunk version 172873 into gupc branch.
1969 2011-04-19  Gary Funck  <gary@intrepid.com>
1971         Merge trunk version 172359 into gupc branch.
1973 2011-04-14  Gary Funck  <gary@intrepid.com>
1975         * c-family/c.opt: Add UPC as a valid language for various
1976           switches where it is valid for "C", that were not updated
1977           in previous merges with trunk.
1979 2011-04-13  Gary Funck  <gary@intrepid.com>
1981         * c-family/c.opt (fupc-pre-include): New option definition.
1982         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1983           -fno-upc-pre-include is asserted.
1985 2011-04-07  Gary Funck  <gary@intrepid.com>
1987         Merge trunk version 172158 into gupc branch.
1988         to bring in the following fix.
1990 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1992         PR bootstrap/48403
1993         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1994         if old and new states differ.
1996 2011-04-06  Gary Funck  <gary@intrepid.com>
1998         Merge trunk version 171966 into gupc branch.
2000 2011-04-01  Gary Funck  <gary@intrepid.com>
2002         * tree.h (tree_base): Move UPC flag bits into bit fields
2003           located just before spare bits.  Decrement spare bits.
2004           Rename 'shared_flag' -> 'upc_shared_flag',
2005           'relaxed_flag' -> 'upc_relaxed_flag',
2006           'strict_flag' -> 'upc_strict_flag, and adjust macros
2007           that reference them accordingly.
2009 2011-04-01  Gary Funck  <gary@intrepid.com>
2011         * c-decl.c (grokdeclarator): Fix formatting of
2012           code that sets UPC block size on scalars.
2014 2011-04-01  Gary Funck  <gary@intrepid.com>
2016         * c-decl.c (grokdeclarator): Revert use of white space
2017           to match the trunk (to rationalize diffs).
2018         * c-typeck.c (convert_for_assignment): Ditto.
2019         * tree-ssa.c (useless_type_conversion_p): Ditto.
2021 2011-03-23  Gary Funck  <gary@intrepid.com>
2023         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2024           the GCC 4.6 release branch.
2026 2011-03-21  Gary Funck  <gary@intrepid.com>
2028         Merge trunk version 171202 into gupc branch.
2030 2011-03-20  Gary Funck  <gary@intrepid.com>
2032         * varasm.c: Call error() directly with a format specifier,
2033           rather than using sprintf() to format the message.
2034           This should make it easier to internationalize UPC's error messages.
2036 2011-03-20  Gary Funck  <gary@intrepid.com>
2038         * configure.ac: Fix the check for gnu ld when enabling
2039           UPC link script support.
2040           configure: Regenerate (also picks up changes from previous
2041           merge with trunk).
2043 2011-03-20  Gary Funck  <gary@intrepid.com>
2045         Move UPC start files, end files, and linker specs.
2046         into libupc.  This reduces the impact on common GCC
2047         configuration files, and ensures that these UPC-specific
2048         components are only built when the UPC language dialect is selected.
2049         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2050           linker specs. Fix typo in -fupc-debug message.
2051         * config/upc-conf.h, config/darwin.h: Move defines for
2052           UPC-related section begins/ends into libupc/config/default/
2053           upc-crt-config.h.
2054         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2055           UPC-related linker compiler specifications,
2056           accessed via %:include().
2057         * configure.ac, configure: Remove logic related to building
2058                 upc-crtbegin/end. Remove config. tests for numa and cpu
2059           affinity (previously used by the 'upc' driver); these
2060           settings are now propagated by target-specific compiler
2061           specs. built by libupc.  Regenerate autoconf.
2062         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2063           linker compiler specifications, accessed via %:include().
2064           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2065           'link_upc_spec'.
2066         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2067         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2068           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2069           config/ia64/linux.h, config/mips/t-iris,
2070           config/mips/iris6.h: Revert to trunk version 167307.
2071         libgcc/
2072         * configure, configure.ac, config.host, Makefile.in:
2073           Revert to trunk version 167307.
2075 2011-02-23  Gary Funck  <gary@intrepid.com>
2077         * c-decl.c (undeclared_variable): fix typo. Inadvertently
2078         removed negation on following 'if'.
2080 2011-02-22  Gary Funck  <gary@intrepid.com>
2082         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2083         to check for the usage of certain deprecated UPC keywords.
2084         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2085         * c-tree.h (undeclared_variable): Define prototype.
2087 2011-02-12  Gary Funck  <gary@intrepid.com>
2089         * c-typeck.c: (build_c_cast, convert_for_assignment)
2090           Diagnose an attempt to convert from an integer to
2091           a pointer-to-shared as an error.  Also, fix various
2092           error messages so that they use the preferred term
2093           pointer-to-shared instead of "shared pointer".
2095 2011-02-07  Gary Funck  <gary@intrepid.com>
2097         * c-typeck.c: (convert_for_assignment)
2098           Fix typo. in error message.
2100 2011-01-23  Gary Funck  <gary@intrepid.com>
2102         * c-typeck.c: (c_build_qualified_type)
2103           derive UPC block size by calling upc_get_block_size(),
2104           to ensure that the element type of an array of an array
2105           is derived correctly.
2107 2010-12-29  Gary Funck  <gary@intrepid.com>
2109         Merge trunk version 168314 into gupc branch.
2111 2010-12-15  Gary Funck  <gary@intrepid.com>
2113         Merge trunk version 167307 into gupc branch.
2115 2010-10-19  Gary Funck  <gary@intrepid.com>
2117         * c-typeck.c: Fix typo in previous fix
2118           which led to a mis-compare for equal block sizes.
2120 2010-10-18  Gary Funck  <gary@intrepid.com>
2122         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2123           diagnosed as an error
2124           The conversion from any type (shared or not) to
2125           a shared type is likely either meaningless or an error.  This update
2126           makes any conversion to a shared type, an error.
2128 2010-10-18  Gary Funck  <gary@intrepid.com>
2130         * c-typeck.c: Fix bug: passing int to shared pointer arg.
2131           generates spurious warning
2132           Add a #define procedure that does the same thing as
2133           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
2134           this procedure to diagnose passing an integer value to a
2135           pointer-to-shared as an error.
2137 2010-10-18  Gary Funck  <gary@intrepid.com>
2139         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2140           matching routine declaration.
2141           When checking for type compatibility, shared qualified types must
2142           have the same block factor.  This check was missing from
2143           comptypes_internal().  This update adds the check for blocking
2144           factor equality.
2146 2010-10-17  Gary Funck  <gary@intrepid.com>
2148         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2149           found (-O1 -g)
2150           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2152 2010-10-17  Gary Funck  <gary@intrepid.com>
2154         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2155           45869 - [4.5/4.6 Regression] type mismatch in shift expression
2156           produces ice with -O3 and -m32.
2157           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2159 2010-10-17  Gary Funck  <gary@intrepid.com>
2161         * c-common.c: Diagnose the application of the various "*sizeof"
2162           operations on generic pointer-to-shared as a compilation error.
2164 2010-10-17  Gary Funck  <gary@intrepid.com>
2166         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2167           message regarding a function parameter being declared with a shared
2168           qualifier.
2169           The parameter's 'name' value is not defined at this point, and
2170           cannot be used in the error message.  This update removes the
2171           reference to 'name', and eliminates the segfault.
2173 2010-10-16  Gary Funck  <gary@intrepid.com>
2175         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2176           The gcc/Makefile.in rules for install-plugin had to be re-written to
2177           break up a long list of header files that exceeded the command line
2178           limitation imposed by Irix.
2179           Access functions for TFmode types had to be implemented.
2180           Apparently, this is the mode used for the SGI/MIPS port to represent
2181           "long float".
2183 2010-10-14  Gary Funck  <gary@intrepid.com>
2185         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2186           via typedef chain should not be diagnosed as an error.
2187           If the block size that is given by the typedef is equal to the block
2188           size given explicitly in the variable declaration, then do not
2189           complain.  The easiest way to make this check was to create a
2190           temporary type that is a clone of the element type and then set its
2191           block size using the given layout qualifier.  Then compare the block
2192           size of the temporary (the declaration) to the block size specified
2193           in the typedef.  This complexity is needed, because the '[*]' block
2194           size needs to be calculated, and the '[]' needs to be mapped into a
2195           zero block size.
2197 2010-10-10  Gary Funck  <gary@intrepid.com>
2199         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2200           specified
2201           The compiler properly detected the presence of two or more layout
2202           qualifiers as an error, but then hit an assertion check, because the
2203           code that followed the error expected to see a qualifier and not a
2204           layout specifier.  The fix is simple: just return immediately after
2205           detecting the error.
2207 2010-10-10  Gary Funck  <gary@intrepid.com>
2209         * c-decl.c: Improve error diagnostics for various cases of UPC
2210           shared array type declarations.
2211           Add the check for this error: "In the dynamic translation
2212           environment, THREADS may not appear in declarations of shared arrays
2213           with indefinite block size".  Also, fix up a few of the other
2214           related error diagnostics.
2216 2010-10-09  Gary Funck  <gary@intrepid.com>
2218         * c-common.c: Fix bug: segfault on incomplete array definition.
2219           This turned out to be a bit complicated.   The logic in
2220           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2221           the THREADS identifier in the case where the blocking factor has
2222           been set to indefinite ([]).  This can happen when indefinite array
2223           declarations are processed for shared arrays.  At that time, the
2224           file scope has been closed and THREADS is no longer in scope.  Some
2225           more work is needed on upc_lang_layout_decl().  It has some
2226           duplication, and notably duplicates the two branches of the if
2227           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2228           caller of this routine (layout_decl()).
2229           The method of forcing a layout qualifier of [] in the indefinite
2230           declaration handler is odd a well.  The code that just does the
2231           setting of the block factor, needs to moved into its own routine
2232           that doesn't depend upon a declspec for '[]' to be passed in, just
2233           in order to set the blocking factor to some value (in this case, 0).
2234           Also, the logic for how that shared type is constructed is strange.
2235           First the type with 0 blocking factor is set.  Then the shared
2236           qualifier is removed from the type, and then added back later.  The
2237           intermediate type has a blocking factor set, but it has no shared
2238           qualifier.  Fixing this will require some thought.  It is tempting
2239           just to make indefinite shared arrays an error, rather than forcing
2240           the dimension to be '1'.
2241           This likely fixes a serious error in the previous update to
2242           upc_lang_layout_decl(), where it didn't have the logic to set
2243           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2244           the previous update would fail on many tests.
2246 2010-10-09  Gary Funck  <gary@intrepid.com>
2248         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2249           (decl) is null, which can happen if some layout error occurred
2250           upstream.
2252 2010-10-09  Gary Funck  <gary@intrepid.com>
2254         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2255           "variable-sized" when compiled in dynamic threads.
2256           This long-standing bug is easily fixed.  Just check
2257           for the situation that the non-constant sized type is shared and
2258           that it does not have a dimension that references a multiple of
2259           threads.  If this criteria is met, then issue a meaningful
2260           diagnostic.
2262 2010-10-01  Gary Funck  <gary@intrepid.com>
2264         * configure, configure.ac: Update manual page, and bug reporting
2265           URL.  Update "man" page to reflect debugging switches.
2266           Also, some general clean up.  Change the bug reporting
2267           URL to point to gccupc.org.
2269 2010-09-27  Gary Funck  <gary@intrepid.com>
2271         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2272           the UPC forall depth count variable is not found.
2273           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2274           The compiler will generate code that references this variable in
2275           order to implement nested upc_forall semantics.  If there is a
2276           compiler build or install problem, this variable may not be found.
2277           In this case, terminate with an internal_error().
2279 2010-09-26  Gary Funck  <gary@intrepid.com>
2281         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2282           mis-diagnosed as syntax error.
2283           Fix a failure exhibited by the Berkeley test case,
2284           bug873a.upc, which has the code:
2285                double d;
2286                upc_forall (;;;d) {...} The compiler did not properly handle
2287           the empty "condition" clause, and did not recover well when it was
2288           determined that the use of a double value, "d" above, was neither a
2289           pointer-to-shared nor an integer expression.  The update implements a
2290           fix for both issues.
2291           See also: gcc/c-parser.c gcc/upc/upc-act.c
2293 2010-09-23  Gary Funck  <gary@intrepid.com>
2295         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2296           incorporated into the referencing type.
2297           This was semi-fixed a few times before.  This update fixes a few
2298           more places where the layout qualifier wasn't being propagated
2299           through typedef's properly.  What made this a bit tricky is shown in
2300           the example cited in the bug report:
2301           typedef shared [5] int A_t; A_t A[5*THREADS];
2302           In the typedef, the blocksize is being applied to a shared *scalar*,
2303           and the code was applying the blocksize only to arrays.  This update
2304           handles shared scalars correctly.
2306 2010-09-22  Gary Funck  <gary@intrepid.com>
2308         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2309           upc_forall() semantics are not implemented
2310           The checkforall test in the Berkeley harness test suite indicated
2311           that GCC/UPC was not properly implementing nested upc_forall
2312           semantics.  Nested upc_forall statements (both statically or
2313           dynamically nested) must implement their affinity clause as if it
2314           were "continue"; thus all steps in the loop must execute without
2315           regard for affinity.  To implement these semantics a global depth
2316           counter, __upc_forall_depth, is maintained by the generated code
2317           that implements upc_forall.
2318           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2319           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2320           libupc/include/upc.h libupc/smp/upc_main.c
2322 2010-09-19  Gary Funck  <gary@intrepid.com>
2324         * c-decl.c: c-decl.c: zero out the layout specifier, after
2325           processing an array type.
2326           Fix the previous fix, that moved the setting of the type's layout
2327           qualifier to the outside of the array type processing loop.  What is
2328           missing from the fix is that the layout_qualifier variable needs to
2329           be cleared after setting the type's blocksize.
2331 2010-09-19  Gary Funck  <gary@intrepid.com>
2333         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2334           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2335           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2336           the actual maximum block size.  Therefore, the message was correct,
2337           but the underlying value that was being checked was wrong.  Change
2338           the values so that they agree with the actual implementation-defined
2339           limit.
2341 2010-09-11  Gary Funck  <gary@intrepid.com>
2343         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2344           multi-dimensional shared array with dynamic threads.
2345           This declaration caused an internal compiler error when compiled
2346           with dynamic threads:
2347               shared [*] int A[THREADS][16]; The bug was discovered when
2348           compiling the RTED_UPC test suite.
2349           The fix is to process layout qualifiers after the entire array type
2350           has been built.  Otherwise, we try to calculate the blocksize on a
2351           shared array type that has not had its "size depends upon the value
2352           of THREADS" flag set.
2353           Also, added a test case.
2354           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2356 2010-07-11  Gary Funck  <gary@intrepid.com>
2358         Fix a bug where a statement in c_build_qualified_type()
2359         in the trunk had been inadvertently deleted.
2360         This bug showed up in the IA64 port, because jmpbuf's
2361         on that architecture must be 16 byte aligned, and they were not.
2362         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2364 2010-07-08  Gary Funck  <gary@intrepid.com>
2366         Make changes so that other language compilers
2367         will build and bootstrap.
2368         * c-family/c-common.c (compiling_upc, flag_upc,
2369         flag_upc_instrument, flag_upc_instrument_functions,
2370         use_upc_dwarf2_extensions): Move to stub-upc.c and
2371         upc-lang.c.
2372         * c-family/c-common.h (use_upc_dwarf2_extensions,
2373         compiling_upc): Add extern definitions - needed
2374         to compile/build other language front ends.
2375         * c-family/c.opt: Fix the spelling of ObjC.
2376         It had been incorrectly spelled as Objc.
2377         * c-family/c.opt: Add UPC for the various switches
2378         that are valid for both C and ObjC.
2379         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2380         supported options switches when compiling assembly
2381         language.
2382         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2383         flag_upc_instrument, flag_upc_instrument_functions):
2384         Remove these definitions.  They have been moved
2385         to c-family/stub-upc.c.
2386         * upc/ChangeLog: Move relevant entries
2387         to ChangeLog.upc.
2388         * c-family/stub-upc.c (compiling_upc, flag_upc,
2389         flag_upc_instrument, flag_upc_instrument_functions,
2390         use_upc_dwarf2_extensions): Moved from c-common.c
2391         * upc/upc-lang.c (compiling_upc, flag_upc,
2392         flag_upc_instrument, flag_upc_instrument_functions,
2393         use_upc_dwarf2_extensions): Moved from c-common.c
2394         * objc/objc-act.c (objc_gimplify_expr): Add additional
2395         parameters to c_gimplify_expr() call, that are used
2396         by upc's tree rewrites.
2397         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2398         * gcc/cp/lex.c (init_reswords): If not compiling
2399         UPC, then mask off the UPC keywords.
2400         * cp/Make-lang.in (C_STUB_OBJS): Use this
2401         make macro to link with c-family/stub-objc.o
2402         and c-family/stub-upc.o.
2403         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2404         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2405         * objc/Make-lang.in: Link with c-family/stub-upc.o
2406         to avoid undefined references.
2407         c-parser.c: Fix line indentation.
2408         * libcpp/include/cpplib.h: Remove CL_UPC from
2409         the list of language kinds accepted by the
2410         C preprocessor.  This is not necessary because
2411         UPC is a derivative of C99, and does not need
2412         a different language kind.
2413         * c-fmaily/c-opts.c (c_common_handle_option):
2414         Call set_std_c99() when processing the
2415         "--lang upc" switch, instead of setting the
2416         language kind to CL_UPC.
2417         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2419 2010-07-03  Gary Funck  <gary@intrepid.com>
2421         Merge trunk version 161517 into gupc branch.
2422         * gcc/stub-upc.c: Move to gcc/c-family/.
2423         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2424         Add 'unused' attributes to avoid "set, but
2425         not referenced" warnings.
2426         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2427         Likewise.
2429 2010-03-01  Gary Funck  <gary@intrepid.com>
2431         Create gupc branch from trunk version 157149.
2433 2011-10-04  Gary Funck  <gary@intrepid.com>
2435         Merge trunk version 179421 into gupc branch.
2436         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
2437         argument to the call to check_qualified_type().
2439 2011-09-22  Gary Funck  <gary@intrepid.com>
2441         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
2442         information.
2443         (dump_upc_type_quals): New.
2445 2011-09-22  Gary Funck  <gary@intrepid.com>
2447         * upc/upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
2448         before calling TYPE_BLOCK_FACTOR().  This fits better with
2449         recent encoding of block factor values with a hash table.
2451 2011-09-15  Nenad Vukicevic  <nenad@intrepid.com>
2453         Add to FLAGS the flags needed to disable inlining of
2454         UPC run-time access routines.
2455         * testsuite/lib/target-supports.exp
2456         (add_options_for_upc_library_calls): New.
2458 2011-09-15  Gary Funck  <gary@intrepid.com>
2460         Fix ICE involving shared bit field accesses.
2461         * tree.c (build3_stat): Propagate TEEE_SHARED()
2462         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
2464 2011-09-15  Gary Funck  <gary@intrepid.com>
2466         Fix ICE involving shared bit field accesses.
2467         * upc/upc-genericize.c (upc_simplify_shared_ref): Improve
2468         "shared bit fields not yet implemented" error message
2469         by adding file/line number location.
2471 2011-09-13  Gary Funck  <gary@intrepid.com>
2473         Merge trunk version 178795 into gupc branch.
2474         Incorporates fix to PR bootstrap/50010 for x86-32.
2476 2011-09-13  Gary Funck  <gary@intrepid.com>
2478         * upc/upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
2479         * upc/upc-lang.c (upc_init_options): Ditto.
2480         * upc/upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
2481         upc_genericize_expr, upc_genericize_compound_expr): Ditto.
2482         * upc/upc-act.c (upc_parse_init, upc_build_pointer_type,
2483         upc_block_factor_insert, upc_pts_is_valid_p): Ditto.
2485 2011-09-08  Gary Funck  <gary@intrepid.com>
2487         Merge trunk version 178557 into gupc branch.
2489 2011-09-07  Gary Funck  <gary@intrepid.com>
2491         Ensure that UPC pointer-to-shared type alignment is
2492         propagated to the final type.  Revert to long-standing
2493         alignment policy: twice the size of a "C" pointer.
2494         * tree.c (build_pointer_type): Propagate the alignment
2495         of the UPC pointer-to-shared representation type
2496         into the newly built pointer type.
2498 2011-09-07  Gary Funck  <gary@intrepid.com>
2500         Ensure that UPC pointer-to-shared type alignment is
2501         propagated to the final type.  Revert to long-standing
2502         alignment policy: twice the size of a "C" pointer.
2503         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
2504         shared pointers have twice the alignment of a pointer.
2505         * upc/upc-act.c (upc_cpp_builtins): Unconditionally emit
2506         the definition of __UPC_PTS_ALIGN__.
2508 2011-09-02  Gary Funck  <gary@intrepid.com>
2510         Align UPC pointers-to-shared, only if the target enforces
2511         strict alignment.
2512         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Align a
2513         UPC pointer-to-shared type, only if the target requires
2514         strict alignment.
2515         * upc/upc-act.c (upc_cpp_builtins): Output pre-defined macro,
2516         __UPC_PTS_ALIGN__, only if the target requires strict alignment.
2518 2011-08-30  Gary Funck  <gary@intrepid.com>
2520         * tree.h (check_qualified_type): Change 'const_tree'
2521         argument types back to 'tree' to avoid complaints
2522         of assignment drops qualifiers for invocations of the
2523         newly implemented TYPE_BLOCK_FACTOR() macro, which
2524         invokes hash functions with 'tree' pointer values that
2525         are not const qualified.
2526         * tree.c (check_qualified_type, check_aligned_type): Ditto.
2527         * c-typeck.c (comptypes_internal): Ditto.
2529 2011-08-29  Gary Funck  <gary@intrepid.com>
2531         Fixes for regressions noted running "make check"
2532         versus GCC trunk.
2533         * fold-const.c (fold_unary_loc): Execute UPC-specific
2534         checks for a cast-of-a-cast, only if one of the
2535         operands is a UPC pointer-to-shared value.
2536         * opts.c (print_specific_help):  Fix a comparison
2537         in an assert that checks that there are enough
2538         bits reserved for the number of languages defined
2539         in the .opt files.
2541 2011-08-29  Gary Funck  <gary@intrepid.com>
2543         Implement a hash table to record UPC block factors.
2544         * c-family/stub-upc.c (upc_block_factor_insert,
2545         upc_block_factor_lookup): New dummy stub procedures.
2546         * c-family/c-common.c (c_sizeof_or_alignof_type):
2547         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2548         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
2549         to copy (hashed) UPC blocking factor.
2550         (set_type_quals): Likewise.
2551         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2552         TYPE_HAS_THREADS_FACTOR().
2553         (type_common.block_factor): Delete.
2554         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
2555         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
2556         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
2557         UPC blocking factors greater than one.
2558         * dwarf2out.c (modified_type_die): Re-implement
2559         logic that records UPC blocking factor in the generated
2560         DWARF2 debugging information.
2561         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2562         TYPE_HAS_THREADS_FACTOR().
2563         * c-decl.c (finish_decl, grokdeclarator):
2564         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2565         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
2566         used by UPC, and print UPC-specific information.
2568 2011-08-29  Gary Funck  <gary@intrepid.com>
2570         Implement a hash table to record UPC block factors.
2571         * upc/upc-act.c (upc_block_factor_for_type): New garbage-collected
2572         hash table.
2573         (upc_lang_init, upc_finish): Move to end of source file.
2574         (upc_lang_init): create  upc_block_factor_for_type hash table.
2575         (upc_block_factor_lookup, upc_block_factor_insert): New.
2576         (upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
2577         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2578         (upc_grok_layout_qualifier): convert blocking factor to sizetype
2579         before checking for equality to element type's blocking factor.
2581 2011-08-28  Gary Funck  <gary@intrepid.com>
2583         Re-work the type machinery to fully support and to unify support
2584         for the UPC layout qualifier (blocking factor).
2585         * c-family/stub-upc.c (upc_set_block_factor): Delete.
2586           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
2587           and update prototype.
2588         * c-family/c-common.c (complete_array_type): call newly
2589           defined c_build_qualified_type_1() instead of
2590           upc_set_block_factor().
2591         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
2592           upc_apply_layout_qualifier() and update prototype.
2593           (upc_set_block_factor): Delete prototype.
2594         * c-family/c-common.h (c_build_qualified_type): redefine
2595           as a pre-processor macro that invokes c_build_qualified_type_1()
2596           with a null UPC layout qualifier.
2597           (c_build_qualified_type_1): New.  Add layout qualifier argument
2598           to old c_build_qualified_type() prototype.
2599         * tree.c (set_type_quals, check_qualified_type):
2600           Add layout qualifier as argument.
2601           (check_aligned_type): Add check for UPC block factor equality.
2602           (get_qualified_type_1): Rename from get_qualified_type() and
2603           add layout qualifier as argument.
2604           (build_qualified_type_1): Rename from build_qualified_type() and
2605           add layout qualifier as argument.
2606         * tree.h (check_qualified_type): Add layout qualifier as argument
2607           to the prototype.
2608           (get_qualified_type): Re-define as a as a pre-processor macro
2609           that invokes get_qualified_type_1() with a null
2610           UPC layout qualifier.
2611           (get_qualified_type_1): Rename from get_qualified_type() and
2612           add layout qualifier as argument.
2613         * cp/tree.c (c_build_qualified_type_1): Rename from
2614           c_build_qualified_type() and add (unused) layout qualifier
2615           argument.
2616         * c-decl.c (finish_decl): re-format long error messages.
2617           (grokdeclarator): Re-work the logic so that it calls
2618           upc_grok_layout_qualifier() to handle the UPC layout
2619           qualifier, if present.
2620         * c-typeck.c (qualify_type, common_pointer_type,
2621           build_component_ref): Re-work the logic so that it calls
2622           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
2623           if present.
2624           (c_build_qualified_type_1): Rename from c_build_qualified_type()
2625           and add layout qualifier argument.
2626         * print_tree.c (print_node): Re-format a long line.
2628 2011-08-28  Gary Funck  <gary@intrepid.com>
2630         Re-work the type machinery to fully support and to unify support
2631         for the UPC layout qualifier (blocking factor).
2632         * upc/upc-genericize.c (upc_simplify_shared_ref): Call
2633         c_build_qualified_type_1() instead of upc_set_block_factor()
2634         to assert a zero blocking factor.
2635         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Call
2636         c_build_qualified_type_1() to build predefined shared
2637         qualified types, instead of build_variant_type_copy().
2638         * upc/upc-pts-packed.c (upc_pts_packed_init_type): Call
2639         c_build_qualified_type_1() to build predefined shared
2640         qualified types, instead of build_variant_type_copy().
2641         * upc/upc-act.c (upc_set_block_factor): Delete.
2642         (upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
2643         Rework logic so that it returns a blocking factor rather than
2644         a qualified type.  Add 'loc' argument and call error_at().
2645         Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
2646         the block size of the element type into the result type, and checks
2647         for errors due to an attempt to merge differing blocking factors.
2649 2011-08-26  Gary Funck  <gary@intrepid.com>
2651         Merge trunk version 177949 into gupc branch.
2652         * c-family/c-common.h (enum rid): Bump the number of type modifiers
2653           in the comment.
2654         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
2655           to add new rliterals column value.
2657 2011-08-26  Gary Funck  <gary@intrepid.com>
2659         * convert.c (convert_to_integer): Fix the check for the
2660           difference between two UPC pointers-to-shared values.
2662 2011-08-23  Nenad Vukicevic  <nenad@intrepid.com>
2664         * configure.ac: Fix the name for --with-upc-pts-packed-bits
2665           option. Support --with-upc-packed-bits as deprecated. Fix the code to
2666           correctly check packed bits.
2667         * configure: Re-generate.
2669 2011-08-16  Gary Funck  <gary@intrepid.com>
2671         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
2672           the barrier id expression is not an integer expression.
2674 2011-08-16  Gary Funck  <gary@intrepid.com>
2676         * upc/upc-act.c (upc_decl_init): Do not attempt to expand
2677           an error mark node.  Fixes ICE after error diagnostic.
2678         * upc/upc-cmd.c (main): detect missing option argument for
2679           options that require an argument, and print error diagnostic.
2680           (get_print_cmd): Re-direct error output to /dev/null to
2681           avoid issuing duplicate error messages.
2683 2011-08-12  Gary Funck  <gary@intrepid.com>
2685         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
2686           (revert to trunk).
2687         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
2688           Set mode of UPC pointer-to-shared rep. to an
2689           integral mode of size at least as large as the
2690           size of the representation's struct type.
2692 2011-08-12  Gary Funck  <gary@intrepid.com>
2694         Rework/simplify the UPC genericize pass.
2695         * c-family/stub-upc.c (upc_apply_layout_qualifier,
2696           upc_build_pointer_type): New.
2697           (upc_set_block_factor): Adjust to new calling sequence.
2698           (upc_build_shared_var_addr): Delete.
2699         * c-family/c-common.c (complete_array_type): Adjust call
2700           to upc_set_block_factor().
2701         * c-family/c-upc.h (upc_apply_layout_qualifier,
2702           upc_build_pointer_type): New.
2703           (upc_build_shared_var_addr): Delete.
2704           (upc_set_block_factor): Adjust to new calling sequence.
2705         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
2706         * c-decl.c (grokdeclarator): Call newly defined
2707           upc_apply_layout_qualifier() instead of upc_set_block_factor().
2708         * c-decl.c (grokdeclarator): Split long UPC-related error
2709           messages into two lines.
2710         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
2711           directly.  Revert that change to trunk. (upc_genericize() will
2712           handle lowering the expressions that take the address of a
2713           UPC variable).
2714         * config/i386/i386.c (ix86_promote_function_mode): For UPC
2715           pointers-to-shared, return the type mode of the UPC pointer-to-shared
2716           representation type.
2718 2011-08-12  Gary Funck  <gary@intrepid.com>
2720         Rework/simplify the UPC genericize pass.
2721         * upc/upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
2722         * upc/upc-act.h: Cosmetic change.
2723         * upc/config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
2724         * upc/upc-genericize.c (upc_expand_get):
2725           Add WANT_STABLE_VALUE parameter.
2726           (upc_build_shared_var_addr, upc_shared_addr_rep): New.
2727           (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
2728           create_unshared_var, lookup_unshared_var, map_unshared_var,
2729           unshared_var_addr, unshared_var_name,
2730           upc_free_unshared_var_table): Move from upc-act.c.
2731           (upc_expand_get, upc_expand_put): Change their source and/or
2732           destination parameters so that they are no longer addresses
2733           of the objects, but rather references to the objects themselves.
2734           (upc_simplify_shared_ref): Rewrite (simplify/generalize).
2735           (upc_shared_addr_rep): New.
2736           (upc_shared_addr):  Adjust call to upc_build_shared_var_addr(),
2737           and re-factor the logic.
2738           (upc_genericize_sync_stmt): Re-format comment.
2739           (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
2740           (upc_genericize_addr_expr): Re-factor the logic.
2741           (upc_genericize_indirect_ref, upc_genericize_field_ref):
2742           Adjust call to upc_expand_get() and re-factor the logic.
2743           (upc_genericize_modify_expr): Adjust call to upc_expand_put()
2744           and re-factor the logic.
2745           (upc_genericize_expr): Improve/fix comments.
2746           (upc_genericize_finish, upc_genericize_init): New.
2747         * upc/upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
2748           (upc_char_pts_type_node): Create new global type node.
2749           (upc_pts_struct_is_null_p): Generalize variable names to
2750           reflect the fact that the vaddr field can be either first/last.
2751           (upc_pts_struct_build_sum): Make corrections to comments.
2752           (upc_pts_struct_build_add_offset): Delete.
2753         * upc/upc-genericize.h (upc_genericize_finish, upc_genericize_init):
2754           New prototypes.
2755         * upc/upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
2756           (upc_char_pts_type_node): Create new global type node.
2757         * upc/Make-lang.in: Add dependencies to gtype-upc.h
2758           and gt-upc-upc-genericize.h.
2759         * upc/upc-act.c: Adjust includes to reflect moving the functions
2760           that handle the UPC unshared "shadow variables" into
2761           upc-genericize.c.  Improve/fix various comments.
2762         * upc/upc-act.c (upc_parse_init): Call upc_genericize_init().
2763           (upc_build_pointer_type): New.
2764           (upc_set_block_factor): Re-purpose.  Move the front-end
2765           related error checks into upc_apply_layout_qualifier().
2766           (upc_apply_layout_qualifier): New.
2767           (upc_write_global_declarations): Call upc_genericize_finish().
2769 2011-08-10  Gary Funck  <gary@intrepid.com>
2771         Implement additional fixes for recent merge with trunk.
2772         * explow.c (promote_mode): Do not attempt to promote
2773           the mode for UPC pointer-to-shared types.
2774         * config/i386/i386.c (function_value_64): Ditto.
2776 2011-08-07  Gary Funck  <gary@intrepid.com>
2778         Merge trunk version 177548 into gupc branch.
2779         * config/i386/i386.c (ix86_promote_function_mode):
2780           Do not promote UPC pointers-to-shared to Pmode.
2781         * c-family/c-ommon.c (pointer_int_sum):
2782           Also check the pointer operand, rather than just
2783           its type, when making the decision to derive
2784           the equivalent unshared type.
2785         * tree.c (build2_stat): If the type of the result
2786           passed in as an argument is a UPC shared type,
2787           derive the unshared equivalent when calculating
2788           the result type of the node.
2790 2011-07-15  Nenad Vukicevic  <nenad@intrepid.com>
2792         * config/darwin.c: Disable var_tracking option
2793           on -O0 as it is supposed to run only when optimization
2794           is applied. See GCC bug 49743.
2796 2011-07-11  Gary Funck  <gary@intrepid.com>
2798         * upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
2799         qualification was incorrectly derived from the source operand.
2800         (upc_genericize_fndecl): New.
2801         (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
2802         c_genericize() more than once in the event of nested procedures.
2803         (upc_genericize_real_imag_ref): Rename,
2804         was: upc_genericize_real_image_ref.
2805         (upc_expand_put): call internal_error() with meaningful message
2806         in lieu of abort().
2807         (upc_genericize_real_imag_ref): call internal_error() with
2808         meaningful message in lieu of gcc_unreachable().
2810 2011-07-06  Gary Funck  <gary@intrepid.com>
2812         Re-implement the pass that lowers trees generated by
2813         the UPC front-end into GENERIC.  Previously this was
2814         done within the gimplification framework, but this
2815         required that gimplification be run before inlining
2816         and various other passes, which did not fit in well
2817         with the current design of the middle-end passes.
2818         Now, the lowering is done by a newly defined language
2819         specific genericize hook.  With this change, we are
2820         are able to undo some extensions made to the gimplify
2821         logic, and thus can revert several files to trunk.
2822         * c-decl.c: Add a check for UPC deprecated names which
2823           may appear as undefined function names.
2824         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
2825           LTI_upc_getaddr): Remove definitions of unused UPC
2826           library function names.  These were defined back when
2827           the libfunc interface was used to call these routines.
2828         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
2829           in UPC lowering (genericize) pass.
2830         * langhooks.h (gimplify_expr): Revert to trunk's definition.
2831           (instrument_func): Delete this hook.  Now handled in
2832           upc_genericize().
2833         * tree-pass.h: Revert to trunk.
2834         * c-typeck.c (build_unary_op): Adjust reference to
2835           upc_genericize() in a comment.
2836         * gimplify.c (create_tmp_var_raw): Delete logic that
2837           was converting UPC shared types into unshared types
2838           to be used for temporaries.  Now handled in  upc_genericize().
2839           Replace with an assertion check.
2840           (prepare_gimple_addressable): Revert to trunk's definition.
2841           No longer needed as an externally called function.
2842           (flag_instrument_functions_exclude_p): Re-define as
2843           an externally called function.
2844           (gimplify_function_tree): Delete code that implemented
2845           call to UPC's language specific function instrumentation hook.
2846         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
2847           (prepare_gimple_addressable): Delete extern definition;
2848           revert to trunk's definition.
2849         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
2850           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
2851         * c-family/c-gimplify.c: Revert to trunk.
2852         * cp/cp-gimplify.c: Revert to trunk.
2853         * cp/cp-tree.h: Revert to trunk.
2854         * explow.c: Revert to trunk.
2855         * langhooks.c: Revert to trunk.
2856         * libfuncs.h: Revert to trunk.
2857         * objc/objc-act.c: Revert to trunk.
2859 2011-07-06  Gary Funck  <gary@intrepid.com>
2861         Improve/simplify the logic in upc_genericize.
2862         * upc/upc-genericize.c (upc_create_tmp_var): Delete the
2863           PREFIX argument.  Aways use "UPC" as the prefix.
2864           (upc_genericize_compound_expr): Add a WANT_VALUE argument.
2865           (upc_genericize_cond_expr): New.
2866           (upc_genericize_decl_expr): New.
2867           (upc_genericize_stmt): New.
2868           (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
2869           to upc_create_tmp_var().
2870           (upc_genericize_expr): Change the handling
2871           of the want_value flag passed in the DATA argument.
2872           Always assert this flag after processing EXPR_P.
2873           (upc_genericize_compound_expr): Adjust call
2874           to upc_genericize_compound_expr() and call
2875           upc_genericize_cond_expr() and upc_genericize_decl_expr().
2877 2011-07-06  Gary Funck  <gary@intrepid.com>
2879         Re-implement the pass that lowers trees generated by
2880         the UPC front-end into GENERIC.  Previously this was
2881         done within the gimplification framework, but this
2882         required that gimplification be run before inlining
2883         and various other passes, which did not fit in well
2884         with the current design of the middle-end passes.
2885         Now, the lowering is done by a newly defined language
2886         specific genericize hook.  With this change, we are
2887         are able to undo some extensions made to the gimplify
2888         logic, and thus can revert several files to trunk.
2889         * upc/upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
2890         * upc/upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
2891         * upc/Make-lang.in: Adjust to refer to upc-genericize.[cho].
2892         * upc/upc-lnag.c: refer to upc-genericize.h.
2893           (LANG_HOOKS_GENERICIZE): define as upc_genericize.
2894           (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
2895           (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
2896         * upc/upc-act.c: Minor code format fix.
2898 2011-06-30  Gary Funck  <gary@intrepid.com>
2900         * c-family/c.opt: Bring options definitions up-to-date
2901         with respect to changes made in the trunk.
2903 2011-06-29  Gary Funck  <gary@intrepid.com>
2905         Merge trunk version 175584 into gupc branch.
2907 2011-06-29  Gary Funck  <gary@intrepid.com>
2909         Merge trunk version 175584 into gupc branch.
2910         * upc/upc-act.c (upc_handle_option): Change reference to
2911         have_named_sections so that it refers to the
2912         targetm_common structure.
2914 2011-06-28  Gary Funck  <gary@intrepid.com>
2916         * upc/upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
2917         Remove extern definitions. Now declared as 'static'.
2918         * upc/upc-gimplify.c, upc/upc-lang.c,
2919         upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
2920         upc-cmd.c, upc-act.c: Improve/add comments, fix
2921         typos and spelling errors.
2923 2011-06-13  Gary Funck  <gary@intrepid.com>
2925         libcpp/
2926         * include/cpplib.h (enum c_lang):
2927         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
2928         This keeps all the "C" variants together.
2929         * init.c (lang_defaults): Add an entry for UPC.
2931 2011-06-10  Gary Funck  <gary@intrepid.com>
2933         * upc/upc-act.c (upc_set_block_factor): Handle the case where
2934         the UPC blocking factor expression overflowed.
2936 2011-06-09  Gary Funck  <gary@intrepid.com>
2938         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
2939         a 32-bit target, the size expression overflowed, the result was
2940         error_mark_node, and an ICE was triggered on an attempt to evaluate
2941         C_TYPE_VARIABLE_SIZE() on the error node.
2942         (upc_blocksizeof_expr, upc_blocksizeof_type,
2943         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
2944         Make similar changes to avoid further processing of error_mark_node.
2946 2011-06-07  Gary Funck  <gary@intrepid.com>
2948         * sel-sched.c (move_op): Incorporate the following
2949         patch to eliminate ICE at -O3 on IA64/Altix.
2951 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
2953         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
2954         code_motion_path_driver returned 0 or 1.
2955         (sel_region_finish): Clear h_d_i_d.
2957 2011-06-02  Gary Funck  <gary@intrepid.com>
2959         Merge trunk version 174558 into gupc branch.
2961 2011-06-02  Gary Funck  <gary@intrepid.com>
2963         Merge trunk version 174558 into gupc branch.
2964         * upc/upc-lang.c (upc_check_decl_init): Use recently defined
2965         'append_to_statement_list_force' function to add UPC
2966         initialization statements to the UPC initialization
2967         statement list ('upc_init_stmt_list').
2968         (upc_build_init_func): Use recently defined
2969         'append_to_statement_list_force' function to add
2970         statements listed in 'upc_init_stmt_list' onto the
2971         function body constructed to implement initialization
2972         of UPC declarations that require active initialization
2973         at program start up.  The previous methods of manipulating
2974         statement lists no longer worked, due to changes in the
2975         the statement list structure.
2977 2011-05-30  Gary Funck  <gary@intrepid.com>
2979         * configure.ac: Make the default order of the virtual
2980           address field in a UPC pointer-to-shared to be "first".
2981           This reverts to the previous setting, and is a short term
2982           measure to work around a bug found on the IA64,
2983           where vaddr=last led to incorrect code generation.
2984           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
2985           in AC_DEFINE(), to agree with recent changes in files
2986           that reference this define.
2987           configure, config.in: Regenerate.
2989 2011-05-26  Gary Funck  <gary@intrepid.com>
2991         * configure.ac: Fix typo when referring to $upc_vaddr_order.
2992           configure: Regenerate.
2993         * ../fixincludes/fixincl.x: Revert to trunk.
2994           This file is auto-generated, and should not be merged.
2996 2011-05-23  Gary Funck  <gary@intrepid.com>
2998         * upc/upc-pts-struct.c: Revert to code that aligned the
2999           internal pointer-to-shared representation to
3000           twice the alignment of a pointer.  This fixes
3001           an ICE that occurred when building the compiler
3002           on an IA64 target.
3004 2011-05-18  Gary Funck  <gary@intrepid.com>
3006         Merge trunk version 173845 into gupc branch.
3008 2011-05-17  Gary Funck  <gary@intrepid.com>
3010         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
3011           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
3012         * c-family/c-pragma.c: Remove conditional compilation
3013           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
3014           Test 'compiling_upc' when compiling to determine if
3015           the "upc" and "pupc" pragmas should be registered.
3016         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
3017           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
3018           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
3019           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
3020           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
3021           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
3022           Move these target-dependent definitions from config/upc-conf.h
3023           to here.
3024         * configure.ac: Improve the logic for UPC-related options.
3025           Delete references to pre-processor definitions that have
3026           been moved to "upc/upc-pts.h".
3027         * configure, config.in: Regenerate.
3028         * Makefile.in (UPC_PTS_REP): Remove definition and revert
3029           to trunk.  This substitution variable was used to
3030           configure the representation-specific versions of
3031           the tree rewrites that operate on UPC pointer-to-shared
3032           types and objects.
3033         * c-parser.c (c_parser_upc_forall_statement): Remove
3034           reference to UPC_FORALL_DEPTH_NAME, and call
3035           newly defined upc_rts_forall_depth_var() instead.
3036         * config/upc-config.h: Delete. Various definitions
3037           moved to "upc/upc-rts-names.h", "defaults.h", and
3038           "upc/upc-pts.h".
3039         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
3040           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
3041           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
3042           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
3043           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
3044           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
3045           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
3046           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
3047           New.  Document UPC target macros.
3048           doc/tm.texi: Regenerate.
3050 2011-05-17  Gary Funck  <gary@intrepid.com>
3052         * upc/upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
3053           upc_pts_build_cond_expr, upc_pts_build_constant,
3054           upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
3055           upc_pts_build_threadof, upc_pts_init_type): Remove extern
3056           definitions.
3057           (upc_pts_ops_t): New. Define handler table that will
3058           implement either the 'packed' or the 'struct' representation
3059           of a UPC pointer-to-shared value.
3060           (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
3061           refers to the packed and the struct UPC pointer-to-shared
3062           representation implementation.
3063           (upc_pts): New. Define handler table that is set up at initialization
3064           to refer to the handlers for the UPC pointer-to-shared
3065           representation (packed/struct) that has been configured.
3066           Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
3067           and configure the UPC pointer-to-shared definitions that
3068           are specific to the configured UPC pointer-to-shared
3069           representation.
3070         * upc/upc-act.h (upc_pts_is_valid_p): Rename extern definition from
3071           is_valid_pts_p to upc_pts_is_valid_p.
3072         * lang-specs.h: Reformat the UPC compilation specs.
3073           to improve readability.
3074         * upc/upc-rts-names.h: New. Define the names of UPC runtime
3075           library functions that implement UPC language statement
3076           semantics.  These definitions were moved from config/upc-conf.h
3077         * upc/upc-gimplify.c: Add include of "upc-rts-names.h".
3078           Refer to newly defined pointer manipulation routines
3079           by indirecting through the newly defined "pts" handler table.
3080           Re-format, re-indent.
3081         * upc/upc-lang.c: Add include of "upc-pts.h".  Fix a comment.
3082         * upc/config-lang.in: Remove logic that inserted "config/upc-conf.h"
3083           into the target include and file path.
3084         * upc/upc-pts-struct.c: Add include of "upc-rts-names.h".
3085           (upc_pts_struct_ops): Define the pointer manipulation
3086           handler table that implements operations on UPC
3087           pointers-to-shared, represented as a struct.
3088           Re-format and re-indent.
3089         * upc/upc-gasp.c: Add include of "upc-rts-names.h".
3090           Re-format and re-indent.
3091         * upc/upc-pts-packed.c: Add include of "upc-rts-names.h".
3092           (upc_pts_packed_ops): Define the pointer manipulation
3093           handler table that implements operations on UPC
3094           pointers-to-shared, represented as a packed integer.
3095           Re-format and re-indent.
3096         * upc/Make-lang.in: Compile both "upc-pts-packed.c" and
3097           "upc-pts-struct.c".  One/other will be selected at
3098           compilation time to implement operations on UPC
3099           on the UPC pointer-to-shared that has been configured.
3100           Add dependencies on "upc-rts-names.h".
3101         * upc/upc-cmd.c: Re-format and re-indent.
3102         * upc/upc-act.c: Add include of "upc-rts-names.h".
3103           (upc_pts): New. Add definition of the handler
3104           table that implements representation specific
3105           operations on trees that refer to UPC pointer-to-shared
3106           objects and types.  Re-format and re-indent.
3108 2011-05-07  Gary Funck  <gary@intrepid.com>
3110         * ../configure.ac: Disable build of libupc
3111           on non POSIX hosted systems.  Use AS_HELP_STRING
3112           to define messages.  Remove 'word-pair' as a
3113           possible --with-upc-pts UPC pointer-to-shared
3114           representation.
3115         * ../configure: Regenerate.
3116         * configure.ac: Use AS_HELP_STRING to define messages.
3117           Remove 'word-pair' as a possible --with-upc-pts
3118           UPC pointer-to-shared representation.
3119           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
3120           (UPC_MAX_BLOCK_SIZE): Correct the default value.
3121         * configure: Regenerate.
3122         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
3123           definition.
3124         * ChangeLog.upc: Fix some typos.
3126 2011-05-07  Gary Funck  <gary@intrepid.com>
3128         * ../maintainer-scripts/gcc_release: Add "upc"
3129           as one of the released languages.
3131 2011-05-06  Gary Funck  <gary@intrepid.com>
3133         Eliminate compilation warnings, by fixing
3134         #include's and updating function prototypes.
3135         * c-family/c-cppbuiltin.c: Include c-upc.h.
3136         * optabs.c (gen_libfunc): Change type of 'suffix'
3137           parameter to conform with prototype.
3138         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
3139           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
3140           hook used by UPC.
3141         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
3142           the prototype.
3143         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
3144           argument values to cp_gimplify_expr.
3145         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
3146           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
3147           pre-processor definitions that are no longer
3148           needed to build the 'upc' command (upc-cmd.c)
3149           because the linker specs. defined in libupc
3150           take care of linking in the needed libraries.
3151         * c-parser.c (c_parser_upc_forall_statement):
3152           initialize affinity_loc to avoid "maybe unused" warning.
3153           (c_parser_upc_sync_statement): Remove un-needed
3154           'ret' variable.  Cast return value from
3155           'upc_build_sync_stmt' to 'void' to avoid
3156           compile-time warning.
3157         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
3158           integer constant, not a string.  Range is restricted
3159           to maximum positive 32-bit integer (2+ billion) to
3160           fit in with the use of 'int' in the front-end's
3161           switch handling logic.
3163 2011-05-06  Gary Funck  <gary@intrepid.com>
3165         Upgrade c-family source files to conform with modularity
3166         improvements.  Mainly, remove #include of c-tree.h in files
3167         under c-family, and define a new UPC-specific #include file,
3168         c-upc.h, and use it.
3169         * c-family/stub-upc.c: Remove #include of c-tree.h and
3170           upc/upc-act.h.  Replace with #include of c-common.h
3171           and c-upc.h.
3172           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
3173           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
3174           upc_localsizeof_expr, upc_localsizeof_type,
3175           upc_shared_type_p): Delete.
3176         * c-family/c-opts.c: Add #include of c-upc.h
3177         * c-family/c-common.c: Remove #include of c-tree.h and
3178           add #include of c-upc.h.
3179         * c-family/c-upc.h: New. Define API for UPC-specific functions
3180           (mostly implemented in upc/upc-act.c).
3181         * c-family/c-common.h (upc_cpp_builtins,
3182           upc_write_global_declarations): Remove extern definitions.
3183         * c-family/c-pragma.c: Remove #include of c-tree.h.
3184           Add #include of c-upc.h.
3185         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
3186           c-tree.h.
3187           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
3188           upc/upc-act.c, and define as a macro.
3189           (expand_affinity_test): Remove unused external definition.
3190           (build_upc_unshared_type): Add external definition.
3191           (upc_shared_type_p): Remove external definition.
3192         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
3193         * dojump.c: Remove #include of c-tree.h.
3194         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
3195           and move to tree.h.
3196           (count_upc_threads_refs, is_multiple_of_upc_threads,
3197           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
3198           upc_build_shared_var_addr, upc_build_sync_stmt,
3199           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
3200           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
3201           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
3202           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
3203           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
3204           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
3205           set_upc_consistency_mode, get_upc_consistency_mode,
3206           push_upc_consistency_mode, pop_upc_consistency_mode,
3207           get_upc_pupc_mode):
3208           Move external definitions to c-family/c-upc.h.
3209           (upc_blocksizeof_type, upc_localsizeof_type,
3210           upc_elemsizeof_type): Remove external definitions;
3211           these functions were moved to c-parser.c.
3212         * c-decl.c: Add #include of c-upc.h.
3213         * c-typeck.c: Add #include of c-upc.h.
3214         * c-convert.c: Add #include of c-upc.h.
3215         * ChangeLog.upc: Fix typo.
3216         * Makefile.in: Add references to c-family/c-upc.h, everywhere
3217           there is a reference to c-family/c-objc.h.
3218           Remove extraneous reference to upc-act.h.
3219         * c-parser.c: Add #include of c-upc.h.
3220           (upc_blocksizeof_expr, upc_blocksizeof_type,
3221           upc_elemsizeof_expr, upc_elemsizeof_type,
3222           upc_localsizeof_expr, upc_localsizeof_type):
3223           Move from upc/upc-act.c.
3224         * tree.c (build_upc_unshared_type): New.
3225           Move upc_get_unshared_type from upc/upc-act.c and rename
3226           to build_upc_unshared_type.
3227           c-family/c-common.c (pointer_int_sum): refer to renamed
3228           build_upc_unshared_type function.
3229           c-convert.c (convert): Ditto.
3230           convert.c (convert_to_pointer): Ditto.
3231           c-typeck.c (build_unary_op, build_modify_expr,
3232           really_start_incremental_init): Ditto.
3233           gimplify.c (create_tmp_var_raw): Ditto.
3234           tree.c (build1_stat): Ditto.
3235           tree.h (upc_get_unshared_type): Rename to
3236           build_upc_unshared_type.
3238 2011-05-06  Gary Funck  <gary@intrepid.com>
3240         Merge trunk version 173471 into gupc branch.
3242 2011-05-06  Gary Funck  <gary@intrepid.com>
3244         Eliminate compilation warnings, by fixing
3245         #include's and updating function prototypes.
3246         * upc/upc-gimplify.c: Include bitmap.h.
3247           (upc_gimplify_real_image_ref): Mark various parameters
3248           as unused.  This is a stub procedure for now.
3249         * upc/upc-lang.c: Include c-family/c-upc.h.
3250           upc-gasp.c: Ditto.
3251         * upc/upc-cmd.c (no_start_files): Delete unused variable.
3252           The -nostartfiles switch is now handled by the linker spec.
3253         * ChangeLog: Spell check.
3255 2011-05-06  Gary Funck  <gary@intrepid.com>
3257         Upgrade c-family source files to conform with modularity
3258         improvements.  Mainly, remove #include of c-tree.h in files
3259         under c-family, and define a new UPC-specific #include file,
3260         c-upc.h, and use it.
3261         * upc/upc-act.h (upc_write_global_declarations,
3262           upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
3263           upc_num_threads, upc_diagnose_deprecated_stmt):
3264           Move external definitions to c-family/c-upc.h
3265           (upc_blocksizeof_expr, upc_blocksizeof_type,
3266           upc_elemsizeof_expr, upc_elemsizeof_type,
3267           upc_localsizeof_expr, upc_localsizeof_type):
3268           Remove external definitions; these functions
3269           were moved from upc-act.c to c-parser.c.
3270         * upc/upc-gimplify.c: Add #include of c-family/c-upc.h.
3271           upc-pts-packed.c: Ditto.
3272           upc-pts-struct.c: Ditto.
3273         * upc/config-lang.in: Update gtfiles to refer to c-upc.h
3274           and other files.
3275         * upc/upc-act.c: Add #include of c-family/c-upc.h.
3276           (upc_blocksize, upc_elemsizeof, upc_localsizeof):
3277           Make external so that it can be called from c-parser.c.
3278           (upc_blocksizeof_expr, upc_blocksizeof_type,
3279           upc_elemsizeof_expr, upc_elemsizeof_type,
3280           upc_localsizeof_expr, upc_localsizeof_type):
3281           Move from upc/upc-act.c to c-parser.c.
3282           (upc_set_block_factor): Fix typo in error message.
3283           (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
3284           Move to tree.h and define as a macro.
3285           (upc_get_unshared_type): Delete. renamed to
3286           build_upc_unshared_type and moved to tree.c.
3287         * upc/upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
3288           refer to renamed build_upc_unshared_type function.
3289           upc-act.c (create_unshared_var): Ditto.
3291 2011-05-05  Gary Funck  <gary@intrepid.com>
3293         Make changes that bring the GUPC branch more closely in sync.
3294         with the GCC trunk.  Revert any fixes that are not UPC-specific.
3295         Remove gratuitous re-formatting.
3296         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
3297           This file should have been removed in a previous merge
3298           with the trunk.
3299         * ../configure.ac: Remove Cray Catamount/CNL support.
3300         * ../configure: Regenerate.
3301         * ../config.sub: Remove Cray Catamount/CNL support.
3302         * config.gcc: Remove Cray Catamount/CNL support.
3303         * ../maintainer-scripts/gcc_release: Revert to trunk.
3304         * c-family/c-common.h: Define parse_optimize_options.  Its definition
3305           was missed in a previous merge with the trunk.
3306         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
3307           procedure.
3308         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
3309           in addition to ARRAY_TYPE.
3310         * c-typeck.c: Remove an extra newline character.
3311         * varasm.c: Revert a fix that improved an error message
3312           when TLS common data is unimplemented.
3313         * varasm.c: Revert a gcc_assert that had been added which
3314           checked for a null DECL_SIZE_UNIT field.
3315         * emultls.c: Revert to trunk. Remove possible fix.
3316         * Makefile.in: Revert extra blank line that is present
3317           in the trunk version.
3318         * Makefile.in: Revert a fix that handled long shell
3319           argument lists for plugin headers.
3320         * config/ia64/ia64.opt: Revert an option setting
3321           that increased the default TLS address range.
3322         * config/ia64/crtbegin.asm: Revert to trunk.
3323           Removes an extra newline character.
3324         * ChangeLog.upc: Spell check.
3326 2011-05-03  Gary Funck  <gary@intrepid.com>
3328         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
3329           (c_apply_type_quals_to_decl): Ditto.
3330         * c-family/c-common.h: Ditto.
3331         * dojump.c: Ditto.
3332         * c-decl.c (merge_decls): Ditto.
3333         * c-typeck.c (qualify_type, default_conversion,
3334           build_component_ref, build_unary_op,
3335           c_build_qualified_type): Ditto.
3336         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
3338 2011-05-03  Gary Funck  <gary@intrepid.com>
3340         * upc/upc-lang.c: Remove extraneous FIXME/TODO comments.
3341         * upc/upc-pts-packed.c (upc_pts_build_cvt): Ditto.
3342         * upc/upc-act.c (upc_set_block_factor): Ditto.
3344 2011-04-29  Gary Funck  <gary@intrepid.com>
3346         * c-decl.c (finish_decl): Improve error diagnostics.
3347           (grokdeclarator): Ditto.
3348         * c-typeck.c (build_c_cast): Improve error diagnostics.
3349           (convert_for_assignment): Ditto.
3350           (build_binary_op): Ditto.
3351         * c-parser.c (c_parser_upc_forall_statement):
3352           Improve error diagnostics.
3353         * convert.c (convert_to_integer):  Improve error diagnostics.
3355 2011-04-29  Gary Funck  <gary@intrepid.com>
3357         * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
3358           (upc_expand_put): Ditto.
3359           (upc_shared_addr): Ditto.
3360           (upc_gimplify_sync_stmt): Ditto.
3361           (upc_gimplify_field_ref): Ditto.
3362         * upc/upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
3363           (upc_pts_build_cvt): Ditto.
3364         * upc/upc-act.c (upc_handle_option): Improve error diagnostics.
3365           (upc_lang_init): Ditto.
3366           (upc_sizeof_type_check): Ditto.
3367           (upc_set_block_factor): Ditto.
3368           (upc_decl_init): Ditto.
3369           (upc_affinity_test): Ditto.
3370           (upc_num_threads): Ditto.
3371           (upc_diagnose_deprecated_stmt): Ditto.
3372           (upc_build_shared_var_addr): Ditto.
3373           (upc_pts_int_sum): Ditto.
3374           (upc_pts_diff): Ditto.
3376 2011-04-28  Gary Funck  <gary@intrepid.com>
3378         * upc/upc-act.c (create_unshared_var): call upc_get_unshared_type()
3379           instead of using TYPE_MAIN_VARIANT() to create an equivalent type
3380           that is not a UPC shared type.  This is sometimes necessary
3381           when the given shared type is derived from a typedef.
3383 2011-04-24  Gary Funck  <gary@intrepid.com>
3385         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
3386           occurred if there is an error in the barrier id
3387           expression.  Map error_mark_node into NULL.
3389 2011-04-24  Gary Funck  <gary@intrepid.com>
3391         * upc/upc-act.c (upc_handle_option): Fix incorrect error
3392           diagnostic messages when both -fupc-debug and
3393           -fupc-inline-lib are asserted.
3395 2011-04-24  Gary Funck  <gary@intrepid.com>
3397         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
3398           to the list of switches that accept arguments.
3399           (main): Check for switches that have a following
3400           argument inside the loop that copies arguments and
3401           adds '-x upc' or '-x none' as necessary.
3402           (main): Misc. clean ups and simplifications.
3404 2011-04-22  Gary Funck  <gary@intrepid.com>
3406         Merge trunk version 172873 into gupc branch.
3408 2011-04-22  Gary Funck  <gary@intrepid.com>
3410         Merge trunk version 172873 into gupc branch.
3411         * upc/upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
3412           on init_func() to prevent it from being removed from
3413           the call graph.
3415 2011-04-19  Gary Funck  <gary@intrepid.com>
3417         Merge trunk version 172359 into gupc branch.
3419 2011-04-19  Gary Funck  <gary@intrepid.com>
3421         Merge trunk version 172359 into gupc branch.
3422         * upc/upc-lang.c (upc_init_ts): New.
3423           (LANG_HOOKS_INIT_TS): use upc_init_ts.
3425 2011-04-19  Gary Funck  <gary@intrepid.com>
3427         Eliminate warnings when compiling upc-cmd.c.
3428         * upc/upc-cmd.c (file_exists): Remove.
3429           (arg_copy): Remove const qualifier.
3431 2011-04-14  Gary Funck  <gary@intrepid.com>
3433         * c-family/c.opt: Add UPC as a valid language for various
3434           switches where it is valid for "C", that were not updated
3435           in previous merges with trunk.
3437 2011-04-13  Gary Funck  <gary@intrepid.com>
3439         * c-family/c.opt (fupc-pre-include): New option definition.
3440         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
3441           -fno-upc-pre-include is asserted.
3443 2011-04-13  Gary Funck  <gary@intrepid.com>
3445         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
3446           to the list, and alphabetize.
3448 2011-04-13  Gary Funck  <gary@intrepid.com>
3450         * upc/upc-gimplify.c (upc_gimplify_real_image_ref): New.
3451           Currently, a not-yet-implemented stub.
3452           (upc_gimplify_lval): call upc_gimplify_real_image_ref to
3453           rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
3454           This will avoid an ICE when compiling regular "C"
3455           code that refers to those operators.
3457 2011-04-13  Gary Funck  <gary@intrepid.com>
3459         * upc/upc-cmd.c: Do not add "-isystem <libupc_path>" if
3460           -fno-upc-pre-include is asserted.
3462 2011-04-07  Gary Funck  <gary@intrepid.com>
3464         Merge trunk version 172158 into gupc branch.
3465         to bring in the following fix.
3467 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
3469         PR bootstrap/48403
3470         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3471         if old and new states differ.
3473 2011-04-06  Gary Funck  <gary@intrepid.com>
3475         Merge trunk version 171966 into gupc branch.
3477 2011-04-01  Gary Funck  <gary@intrepid.com>
3479         * tree.h (tree_base): Move UPC flag bits into bit fields
3480           located just before spare bits.  Decrement spare bits.
3481           Rename 'shared_flag' -> 'upc_shared_flag',
3482           'relaxed_flag' -> 'upc_relaxed_flag',
3483           'strict_flag' -> 'upc_strict_flag, and adjust macros
3484           that reference them accordingly.
3486 2011-04-01  Gary Funck  <gary@intrepid.com>
3488         * c-decl.c (grokdeclarator): Fix formatting of
3489           code that sets UPC block size on scalars.
3491 2011-04-01  Gary Funck  <gary@intrepid.com>
3493         * c-decl.c (grokdeclarator): Revert use of white space
3494           to match the trunk (to rationalize diffs).
3495         * c-typeck.c (convert_for_assignment): Ditto.
3496         * tree-ssa.c (useless_type_conversion_p): Ditto.
3498 2011-03-23  Gary Funck  <gary@intrepid.com>
3500         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
3501           the GCC 4.6 release branch.
3503 2011-03-22  Gary Funck  <gary@intrepid.com>
3505         * upc/upc-cmd.c: Move linker switches into libupc/libupc.spec.
3506           (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
3507           (find_ld_script) Remove.
3509 2011-03-21  Gary Funck  <gary@intrepid.com>
3511         Merge trunk version 171202 into gupc branch.
3513 2011-03-20  Gary Funck  <gary@intrepid.com>
3515         * varasm.c: Call error() directly with a format specifier,
3516           rather than using sprintf() to format the message.
3517           This should make it easier to internationalize UPC's error messages.
3519 2011-03-20  Gary Funck  <gary@intrepid.com>
3521         * configure.ac: Fix the check for gnu ld when enabling
3522           UPC link script support.
3523           configure: Regenerate (also picks up changes from previous
3524           merge with trunk).
3526 2011-03-20  Gary Funck  <gary@intrepid.com>
3528         Move UPC start files, end files, and linker specs.
3529         into libupc.  This reduces the impact on common GCC
3530         configuration files, and ensures that these UPC-specific
3531         components are only built when the UPC language dialect is selected.
3532         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
3533           linker specs. Fix typo in -fupc-debug message.
3534         * config/upc-conf.h, config/darwin.h: Move defines for
3535           UPC-related section begins/ends into libupc/config/default/
3536           upc-crt-config.h.
3537         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
3538           UPC-related linker compiler specifications,
3539           accessed via %:include().
3540         * configure.ac, configure: Remove logic related to building
3541           upc-crtbegin/end. Remove config. tests for numa and cpu
3542           affinity (previously used by the 'upc' driver); these
3543           settings are now propagated by target-specific compiler
3544           specs. built by libupc.  Regenerate autoconf.
3545         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
3546           linker compiler specifications, accessed via %:include().
3547           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
3548           'link_upc_spec'.
3549         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
3550         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
3551           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
3552           config/ia64/linux.h, config/mips/t-iris,
3553           config/mips/iris6.h: Revert to trunk version 167307.
3554         libgcc/
3555         * configure, configure.ac, config.host, Makefile.in:
3556           Revert to trunk version 167307.
3558 2011-03-20  Gary Funck  <gary@intrepid.com>
3560         * upc/upc-act.c: Call error() directly with a format specifier,
3561           rather than using sprintf() to format the message.
3562           This should make it easier to internationalize UPC's error messages.
3564 2011-03-20  Gary Funck  <gary@intrepid.com>
3566         Move UPC start files, end files, and linker specs.
3567         into libupc.  This reduces the impact on common GCC
3568         configuration files, and ensures that these UPC-specific
3569         components are only built when the UPC language dialect is selected.
3570         * upc/config-lang.in: Remove setting of 'upc_extra_parts', which
3571           was used to specify which upc-crtbegin and upc-crtend files
3572           need to built.  Remove extraneous (commented out)
3573           settings of 'cfiles'.  The listed configuration files
3574           have been reverted to trunk, and weren't referenced
3575           via cfiles in any event.
3576         * upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
3577           Simply test for the presence of the UPC link script
3578           in the current directory or the libupc directory.
3579           Add -B<path-to-libupc> to the switches passed to 'gcc';
3580           this is needed in order to find the upc-crtbegin
3581           and upc-crtend object files now built in libupc.
3582           Remove test for and inclusion of UPC_LINKER_SWITCHES.
3583           if extra switches are needed for a particular target
3584           (like SGI/Irix), they will be defined by the custom
3585           linker spec. built in libupc.  Remove test for
3586           HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
3587           will be added to the custom linker specs. built
3588           in libupc.
3589         * upc/upc-crtstuff.c: Move to libupc.
3591 2011-02-23  Gary Funck  <gary@intrepid.com>
3593         * c-decl.c (undeclared_variable): fix typo. Inadvertently
3594         removed negation on following 'if'.
3596 2011-02-22  Gary Funck  <gary@intrepid.com>
3598         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
3599         to check for the usage of certain deprecated UPC keywords.
3600         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
3601         * c-tree.h (undeclared_variable): Define prototype.
3603 2011-02-22  Gary Funck  <gary@intrepid.com>
3605         * upc/upc-act.c (upc_diagnose_deprecated_stmt): New.
3606           upc-act.h (upc_diagnose_deprecated_stmt): Define.
3607           Check usage of deprecated keywords and issue
3608           error message.
3610 2011-02-12  Gary Funck  <gary@intrepid.com>
3612         * c-typeck.c: (build_c_cast, convert_for_assignment)
3613           Diagnose an attempt to convert from an integer to
3614           a pointer-to-shared as an error.  Also, fix various
3615           error messages so that they use the preferred term
3616           pointer-to-shared instead of "shared pointer".
3618 2011-02-08  Gary Funck  <gary@intrepid.com>
3620         * upc/upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
3621           for struct-pts representation
3622           Analysis indicated that for something like (+ ptr -80) this was
3623           being represented as (+ ptr (- 80)) and further, when the
3624           calculations were propagated into the individual operations on the
3625           components of the 'struct' pointer, it would end up with something
3626           like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
3627           "long unsigned int" because of the addition to the pointer.  This
3628           caused the calculations involving the signed 'int' operand to be
3629           performed incorrectly.  This fix insures that the 'int' operand is
3630           signed.
3632 2011-02-08  Gary Funck  <gary@intrepid.com>
3634         * upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
3635           upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
3636           upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
3637           upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
3638           upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
3639           upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
3640         Update copyright notices.
3642 2011-02-07  Gary Funck  <gary@intrepid.com>
3644         * c-typeck.c: (convert_for_assignment)
3645           Fix typo. in error message.
3647 2011-01-23  Gary Funck  <gary@intrepid.com>
3649         * c-typeck.c: (c_build_qualified_type)
3650           derive UPC block size by calling upc_get_block_size(),
3651           to ensure that the element type of an array of an array
3652           is derived correctly.
3654 2011-01-09  Gary Funck  <gary@intrepid.com>
3656         Fix behavior of upc_localsizeof() when called in a dynamic
3657         threads compilation environment.  This bug, and the expected
3658         behavior is documented in this bug report:
3659         https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
3660         * upc/_act.c (upc_localsizeof): Re-implement.
3662 2010-12-29  Gary Funck  <gary@intrepid.com>
3664         Merge trunk version 168314 into gupc branch.
3666 2010-12-15  Gary Funck  <gary@intrepid.com>
3668         Merge trunk version 167307 into gupc branch.
3670 2010-12-15  Gary Funck  <gary@intrepid.com>
3672         Merge trunk version 167307 into gupc branch.
3673         * upc/_act.h: (upc_handle_option) add location and struct
3674         cl_option_handlers * parameters.
3675         (upc_finish_file) Remove.
3676         (upc_write_global_declarations) New, replaces upc_finish_file.
3677         * lang-spec.h: Disable multi-file compilation for .upc files.
3678         This fixes an issue where file-scoped static variables were
3679         diagnosed as multiply-defined.  Both "C" and "ObjC" also disable
3680         multi-file compilation.
3681         * upc/upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
3682         explicitly when deciding whether a UPC shared object is addressable.
3683         is_gimple_addressable() used to do this, but now checks for MEM_REF
3684         which does not apply to UPC shared objects.
3685         (upc_gimplify_lval, upc_gimplify_expr) Delete references to
3686         ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
3687         These are no longer defined.
3688         (upc_genericize) Add call to bitmap_obstack_initialize()
3689         and bitmap_obstack_release() around call to gimplify_function_tree().
3690         * upc/upc-lang.c: Add #include of "opts.h" and "options.h".
3691         (flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
3692         flag_upc_instrument_functions) Remove.  Use definitions
3693         generated by the options file.
3694         (upc_init_options) Use cl_decoded_option struct.
3695         (LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
3696         (finish_file) Delete.
3697         (upc_init_options) Call control_warning_option() to specify
3698         -Werror=pointer-arith as the default.  Remove call to
3699         enable_warning_as_error().
3700         * upc/upc-pts-struct.c: (upc_pts_init_type) Move test that
3701         UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
3702         rather than an #ifdef; this macro now depends upon a
3703         target size macro which must be evaluated at runtime.
3704         * upc/Make-lang.in: (cc1-dummy) Remove make target.
3705         (cc1upc-checksum.c) Generate directly from object files.
3706         * upc/upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
3707         references to these deprecated macro definitions.
3708         (GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
3709         (all_exec_args) Delete variable.
3710         (exec_args) Re-define as (const char *).
3711         (exec_arg_list) New.  Make copy of exec_args to pass to 'exec'.
3712         * upc/upc-act.c: (upc_handle_option) Update argument list to accept
3713         (cl_option_handlers *) argument.
3714         (upc_finish_file) Rename to upc_write_global_declarations.
3715         (upc_write_global_declarations) New.
3717 2010-10-19  Gary Funck  <gary@intrepid.com>
3719         * c-typeck.c: Fix typo in previous fix
3720           which led to a mis-compare for equal block sizes.
3722 2010-10-18  Gary Funck  <gary@intrepid.com>
3724         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
3725           diagnosed as an error
3726           The conversion from any type (shared or not) to
3727           a shared type is likely either meaningless or an error.  This update
3728           makes any conversion to a shared type, an error.
3730 2010-10-18  Gary Funck  <gary@intrepid.com>
3732         * c-typeck.c: Fix bug: passing int to shared pointer arg.
3733           generates spurious warning
3734           Add a #define procedure that does the same thing as
3735           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
3736           this procedure to diagnose passing an integer value to a
3737           pointer-to-shared as an error.
3739 2010-10-18  Gary Funck  <gary@intrepid.com>
3741         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
3742           matching routine declaration.
3743           When checking for type compatibility, shared qualified types must
3744           have the same block factor.  This check was missing from
3745           comptypes_internal().  This update adds the check for blocking
3746           factor equality.
3748 2010-10-17  Gary Funck  <gary@intrepid.com>
3750         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
3751           found (-O1 -g)
3752           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
3754 2010-10-17  Gary Funck  <gary@intrepid.com>
3756         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
3757           45869 - [4.5/4.6 Regression] type mismatch in shift expression
3758           produces ice with -O3 and -m32.
3759           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
3761 2010-10-17  Gary Funck  <gary@intrepid.com>
3763         * c-common.c: Diagnose the application of the various "*sizeof"
3764           operations on generic pointer-to-shared as a compilation error.
3766 2010-10-17  Gary Funck  <gary@intrepid.com>
3768         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
3769           message regarding a function parameter being declared with a shared
3770           qualifier.
3771           The parameter's 'name' value is not defined at this point, and
3772           cannot be used in the error message.  This update removes the
3773           reference to 'name', and eliminates the segfault.
3775 2010-10-17  Gary Funck  <gary@intrepid.com>
3777         * upc/upc-act.c: Issue a compilation error on attempts to perform
3778           arithmetic on generic pointer-to-shared values.
3779           (The rest of this update is a small code clean up.)
3781 2010-10-17  Gary Funck  <gary@intrepid.com>
3783         * upc/upc-lang.c: For UPC only, issue errors for arithmetic and related
3784           operations on void types.
3785           This update simulates the effect of -Werror=pointer-arith, thus
3786           causing arithmetic on void types, sizeof(void) and so on to be
3787           considered compilation errors.  This meets the expectations of some
3788           harness tests and the RTED/CTED test suites.  GCC is more
3789           permissive, but since this is for UPC only, we can fairly safely
3790           define this new policy.
3792 2010-10-16  Gary Funck  <gary@intrepid.com>
3794         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
3795           The gcc/Makefile.in rules for install-plugin had to be re-written to
3796           break up a long list of header files that exceeded the command line
3797           limitation imposed by Irix.
3798           Access functions for TFmode types had to be implemented.
3799           Apparently, this is the mode used for the SGI/MIPS port to represent
3800           "long float".
3802 2010-10-16  Gary Funck  <gary@intrepid.com>
3804         * upc/upc-act.c: Fix bug: Static initialization of shared
3805           arrays is unsupported -- issue an error message.
3806           Currently, static initialization of a shared array is not
3807           implemented correctly.
3808           We do not plan to fix this for a while, therefore the compiler will
3809           issue an error message indicating that this is an unsupported
3810           operation.
3812 2010-10-14  Gary Funck  <gary@intrepid.com>
3814         * c-decl.c: Fix bug: Multiple equal blocking factors specified
3815           via typedef chain should not be diagnosed as an error.
3816           If the block size that is given by the typedef is equal to the block
3817           size given explicitly in the variable declaration, then do not
3818           complain.  The easiest way to make this check was to create a
3819           temporary type that is a clone of the element type and then set its
3820           block size using the given layout qualifier.  Then compare the block
3821           size of the temporary (the declaration) to the block size specified
3822           in the typedef.  This complexity is needed, because the '[*]' block
3823           size needs to be calculated, and the '[]' needs to be mapped into a
3824           zero block size.
3826 2010-10-13  Gary Funck  <gary@intrepid.com>
3828         * upc/upc-act.c: Fix bug: negative layout qualifiers not diagnosed
3829           as an error.
3830           The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
3831           it was not diagnosed as an error.  With this fix, negative block
3832           sizes will generate a translation error.
3834 2010-10-10  Gary Funck  <gary@intrepid.com>
3836         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
3837           specified
3838           The compiler properly detected the presence of two or more layout
3839           qualifiers as an error, but then hit an assertion check, because the
3840           code that followed the error expected to see a qualifier and not a
3841           layout specifier.  The fix is simple: just return immediately after
3842           detecting the error.
3844 2010-10-10  Gary Funck  <gary@intrepid.com>
3846         * c-decl.c: Improve error diagnostics for various cases of UPC
3847           shared array type declarations.
3848           Add the check for this error: "In the dynamic translation
3849           environment, THREADS may not appear in declarations of shared arrays
3850           with indefinite block size".  Also, fix up a few of the other
3851           related error diagnostics.
3853 2010-10-10  Gary Funck  <gary@intrepid.com>
3855         * upc/upc-act.c: Fix bug: ICE: Attempt to take the difference of
3856           shared and non-shared pointers
3857           The compiler detected the error, and then tried to return
3858           error_mark_node.  This apparently is not acceptable, as there is an
3859           explicit assertion check to prevent this from happening in
3860           build_binary_op.  Return the more user-friendly size_one_node
3861           instead.
3863 2010-10-09  Gary Funck  <gary@intrepid.com>
3865         * c-common.c: Fix bug: segfault on incomplete array definition.
3866           This turned out to be a bit complicated.   The logic in
3867           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3868           the THREADS identifier in the case where the blocking factor has
3869           been set to indefinite ([]).  This can happen when indefinite array
3870           declarations are processed for shared arrays.  At that time, the
3871           file scope has been closed and THREADS is no longer in scope.  Some
3872           more work is needed on upc_lang_layout_decl().  It has some
3873           duplication, and notably duplicates the two branches of the if
3874           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3875           caller of this routine (layout_decl()).
3876           The method of forcing a layout qualifier of [] in the indefinite
3877           declaration handler is odd a well.  The code that just does the
3878           setting of the block factor, needs to moved into its own routine
3879           that doesn't depend upon a declspec for '[]' to be passed in, just
3880           in order to set the blocking factor to some value (in this case, 0).
3881           Also, the logic for how that shared type is constructed is strange.
3882           First the type with 0 blocking factor is set.  Then the shared
3883           qualifier is removed from the type, and then added back later.  The
3884           intermediate type has a blocking factor set, but it has no shared
3885           qualifier.  Fixing this will require some thought.  It is tempting
3886           just to make indefinite shared arrays an error, rather than forcing
3887           the dimension to be '1'.
3888           This likely fixes a serious error in the previous update to
3889           upc_lang_layout_decl(), where it didn't have the logic to set
3890           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3891           the previous update would fail on many tests.
3893 2010-10-09  Gary Funck  <gary@intrepid.com>
3895         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
3896           (decl) is null, which can happen if some layout error occurred
3897           upstream.
3899 2010-10-09  Gary Funck  <gary@intrepid.com>
3901         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
3902           "variable-sized" when compiled in dynamic threads.
3903           This long-standing bug is easily fixed.  Just check
3904           for the situation that the non-constant sized type is shared and
3905           that it does not have a dimension that references a multiple of
3906           threads.  If this criteria is met, then issue a meaningful
3907           diagnostic.
3909 2010-10-09  Gary Funck  <gary@intrepid.com>
3911         * upc/upc-act.c: Fix bug: segfault on incomplete array definition.
3912           This turned out to be a bit complicated.   The logic in
3913           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3914           the THREADS identifier in the case where the blocking factor has
3915           been set to indefinite ([]).  This can happen when indefinite array
3916           declarations are processed for shared arrays.  At that time, the
3917           file scope has been closed and THREADS is no longer in scope.  Some
3918           more work is needed on upc_lang_layout_decl().  It has some
3919           duplication, and notably duplicates the two branches of the if
3920           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3921           caller of this routine (layout_decl()).
3922           The method of forcing a layout qualifier of [] in the indefinite
3923           declaration handler is odd a well.  The code that just does the
3924           setting of the block factor, needs to moved into its own routine
3925           that doesn't depend upon a declspec for '[]' to be passed in, just
3926           in order to set the blocking factor to some value (in this case, 0).
3927           Also, the logic for how that shared type is constructed is strange.
3928           First the type with 0 blocking factor is set.  Then the shared
3929           qualifier is removed from the type, and then added back later.  The
3930           intermediate type has a blocking factor set, but it has no shared
3931           qualifier.  Fixing this will require some thought.  It is tempting
3932           just to make indefinite shared arrays an error, rather than forcing
3933           the dimension to be '1'.
3934           This likely fixes a serious error in the previous update to
3935           upc_lang_layout_decl(), where it didn't have the logic to set
3936           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3937           the previous update would fail on many tests.
3938           See also: gcc/c-common.c gcc/upc/upc-act.c
3940 2010-10-01  Gary Funck  <gary@intrepid.com>
3942         * configure, configure.ac: Update manual page, and bug reporting
3943           URL.
3944           Update "man" page to reflect debugging switches.  Also, some general
3945           clean up.  Change the bug reporting URL to point to gccupc.org.
3947 2010-10-01  Gary Funck  <gary@intrepid.com>
3949         * upc/upc-manpage.html, upc.1: Update manual page, and bug reporting
3950           URL.
3951           Update "man" page to reflect debugging switches.  Also, some general
3952           clean up.  Change the bug reporting URL to point to gccupc.org.
3953           See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
3954           gcc/upc/upc.1
3956 2010-10-01  Gary Funck  <gary@intrepid.com>
3958         * upc/upc-act.c: Do not zap all qualifier bits when constructing a
3959           non-shared result node.
3960           This fix was suggested by Paul H. in the following Berkeley Bugzilla
3961           report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
3962           use of "!" rather than "~" zapped all the type qualifier bits rather
3963           than just those that are related to the "shared" qualifier.  This
3964           fix clears only the relevant bits.
3966 2010-09-27  Gary Funck  <gary@intrepid.com>
3968         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
3969           the UPC forall depth count variable is not found.
3970           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
3971           The compiler will generate code that references this variable in
3972           order to implement nested upc_forall semantics.  If there is a
3973           compiler build or install problem, this variable may not be found.
3974           In this case, terminate with an internal_error().
3976 2010-09-26  Gary Funck  <gary@intrepid.com>
3978         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
3979           mis-diagnosed as syntax error.
3980           Fix a failure exhibited by the Berkeley test case,
3981           bug873a.upc, which has the code:
3982                double d;
3983                upc_forall (;;;d) {...} The compiler did not properly handle
3984           the empty "condition" clause, and did not recover well when it was
3985           determined that the use of a double value, "d" above, was neither a
3986           pointer-to-shared nor an integer expression.  The update implements a
3987           fix for both issues.
3988           See also: gcc/c-parser.c gcc/upc/upc-act.c
3990 2010-09-26  Gary Funck  <gary@intrepid.com>
3992         * upc/upc-act.c: Fix bug: upc_forall with empty clauses
3993           mis-diagnosed as syntax error.
3994           A failure was exhibited by the Berkeley test case,
3995           bug873a.upc, which has the code:
3996                double d;
3997                upc_forall (;;;d) {...} The compiler did not properly handle
3998           the empty "condition" clause, and did not recover well when it was
3999           determined that the use of a double value, "d" above, was neither a
4000           pointer-to-shared nor an integer expression.  The update implements a
4001           fix for both issues.
4002           See also: gcc/c-parser.c gcc/upc/upc-act.c
4004 2010-09-25  Gary Funck  <gary@intrepid.com>
4006         * upc/upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
4007           gimple check when calculating affinity for upc_forall.
4008           Intrepid test, test10.upc, failed to compile due a mis-match between
4009           the COMPONENT_REF node and the internal 'thread' field.  Changed the
4010           code to make the types agree, and added a conversion to sizetype if
4011           necessary.
4013 2010-09-23  Gary Funck  <gary@intrepid.com>
4015         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
4016           incorporated into the referencing type.
4017           This was semi-fixed a few times before.  This update fixes a few
4018           more places where the layout qualifier wasn't being propagated
4019           through typedef's properly.  What made this a bit tricky is shown in
4020           the example cited in the bug report:
4021           typedef shared [5] int A_t; A_t A[5*THREADS];
4022           In the typedef, the blocksize is being applied to a shared *scalar*,
4023           and the code was applying the blocksize only to arrays.  This update
4024           handles shared scalars correctly.
4026 2010-09-23  Gary Funck  <gary@intrepid.com>
4028         * upc/upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
4029           with static threads and size not a multiple of threads.
4030           Add an extra check for an attempt to apply a '[*]' layout qualifier
4031           to a shared array that does not specify a size that is a multiple of
4032           THREADS, when compiled in a static THREADS compilation environment.
4034 2010-09-22  Gary Funck  <gary@intrepid.com>
4036         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
4037           upc_forall() semantics are not implemented
4038           The checkforall test in the Berkeley harness test suite indicated
4039           that GCC/UPC was not properly implementing nested upc_forall
4040           semantics.  Nested upc_forall statements (both statically or
4041           dynamically nested) must implement their affinity clause as if it
4042           were "continue"; thus all steps in the loop must execute without
4043           regard for affinity.  To implement these semantics a global depth
4044           counter, __upc_forall_depth, is maintained by the generated code
4045           that implements upc_forall.
4046           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
4047           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
4048           libupc/include/upc.h libupc/smp/upc_main.c
4050 2010-09-22  Gary Funck  <gary@intrepid.com>
4052         * upc/upc-act.c, upc/upc-act.h: Fix bug: Nested upc_forall() semantics
4053           are not implemented
4054           The checkforall test in the Berkeley harness test suite indicated
4055           that GCC/UPC was not properly implementing nested upc_forall
4056           semantics.  Nested upc_forall statements (both statically or
4057           dynamically nested) must implement their affinity clause as if it
4058           were "continue"; thus all steps in the loop must execute without
4059           regard for affinity.  To implement these semantics a global depth
4060           counter, __upc_forall_depth, is maintained by the generated code
4061           that implements upc_forall.
4062           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
4063           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
4064           libupc/include/upc.h libupc/smp/upc_main.c
4066 2010-09-19  Gary Funck  <gary@intrepid.com>
4068         * c-decl.c: c-decl.c: zero out the layout specifier, after
4069           processing an array type.
4070           Fix the previous fix, that moved the setting of the type's layout
4071           qualifier to the outside of the array type processing loop.  What is
4072           missing from the fix is that the layout_qualifier variable needs to
4073           be cleared after setting the type's blocksize.
4075 2010-09-19  Gary Funck  <gary@intrepid.com>
4077         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
4078           given blocksize is greater than UPC_MAX_BLOCKSIZE.
4079           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
4080           the actual maximum block size.  Therefore, the message was correct,
4081           but the underlying value that was being checked was wrong.  Change
4082           the values so that they agree with the actual implementation-defined
4083           limit.
4085 2010-09-18  Gary Funck  <gary@intrepid.com>
4087         * upc/upc-act.c, upc/upc-pts-packed.c, upc/upc-pts-struct.c:
4088           Implement -fupc-debug switch.
4090 2010-09-11  Gary Funck  <gary@intrepid.com>
4092         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
4093           multi-dimensional shared array with dynamic threads.
4094           This declaration caused an internal compiler error when compiled
4095           with dynamic threads:
4096               shared [*] int A[THREADS][16]; The bug was discovered when
4097           compiling the RTED_UPC test suite.
4098           The fix is to process layout qualifiers after the entire array type
4099           has been built.  Otherwise, we try to calculate the blocksize on a
4100           shared array type that has not had its "size depends upon the value
4101           of THREADS" flag set.
4102           Also, added a test case.
4103           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
4105 2010-07-11  Gary Funck  <gary@intrepid.com>
4107         Fix a bug where a statement in c_build_qualified_type()
4108         in the trunk had been inadvertently deleted.
4109         This bug showed up in the IA64 port, because jmpbuf's
4110         on that architecture must be 16 byte aligned, and they were not.
4111         c-typeck.c (c_build_qualified_type): Revive the deleted line.
4113 2010-07-08  Gary Funck  <gary@intrepid.com>
4115         Make changes so that other language compilers
4116         will build and bootstrap.
4117         * c-family/c-common.c (compiling_upc, flag_upc,
4118         flag_upc_instrument, flag_upc_instrument_functions,
4119         use_upc_dwarf2_extensions): Move to stub-upc.c and
4120         upc-lang.c.
4121         * c-family/c-common.h (use_upc_dwarf2_extensions,
4122         compiling_upc): Add extern definitions - needed
4123         to compile/build other language front ends.
4124         * c-family/c.opt: Fix the spelling of ObjC.
4125         It had been incorrectly spelled as Objc.
4126         * c-family/c.opt: Add UPC for the various switches
4127         that are valid for both C and ObjC.
4128         * c-fmaily/c-opts.c: Add CL_UPC to the list of
4129         supported options switches when compiling assembly
4130         language.
4131         * lto/lto-lang.c (use_upc_dwarf2_extensions,
4132         flag_upc_instrument, flag_upc_instrument_functions):
4133         Remove these definitions.  They have been moved
4134         to c-family/stub-upc.c.
4135         * upc/ChangeLog: Move relevant entries
4136         to ChangeLog.upc.
4137         * c-family/stub-upc.c (compiling_upc, flag_upc,
4138         flag_upc_instrument, flag_upc_instrument_functions,
4139         use_upc_dwarf2_extensions): Moved from c-common.c
4140         * upc/upc-lang.c (compiling_upc, flag_upc,
4141         flag_upc_instrument, flag_upc_instrument_functions,
4142         use_upc_dwarf2_extensions): Moved from c-common.c
4143         * objc/objc-act.c (objc_gimplify_expr): Add additional
4144         parameters to c_gimplify_expr() call, that are used
4145         by upc's tree rewrites.
4146         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
4147         * gcc/cp/lex.c (init_reswords): If not compiling
4148         UPC, then mask off the UPC keywords.
4149         * cp/Make-lang.in (C_STUB_OBJS): Use this
4150         make macro to link with c-family/stub-objc.o
4151         and c-family/stub-upc.o.
4152         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
4153         * java/Make-lang.in (C_STUB_OBJS): Likewise.
4154         * objc/Make-lang.in: Link with c-family/stub-upc.o
4155         to avoid undefined references.
4156         c-parser.c: Fix line indentation.
4157         * libcpp/include/cpplib.h: Remove CL_UPC from
4158         the list of language kinds accepted by the
4159         C preprocessor.  This is not necessary because
4160         UPC is a derivative of C99, and does not need
4161         a different language kind.
4162         * c-fmaily/c-opts.c (c_common_handle_option):
4163         Call set_std_c99() when processing the
4164         "--lang upc" switch, instead of setting the
4165         language kind to CL_UPC.
4166         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
4168 2010-07-03  Gary Funck  <gary@intrepid.com>
4170         Merge trunk version 161517 into gupc branch.
4171         * gcc/stub-upc.c: Move to gcc/c-family/.
4172         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
4173         Add 'unused' attributes to avoid "set, but
4174         not referenced" warnings.
4175         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
4176         Likewise.
4178 2010-07-03  Gary Funck  <gary@intrepid.com>
4180         Merge trunk version 161517 into gupc branch.
4181         * upc/config-lang.in: Update references to files
4182           moved into c-family/.
4183         * upc/Make-lang.in: Likewise.
4184         * upc/upc-act.c: Likewise.
4185         * upc/upc-gasp.c: Likewise.
4186         * upc/upc-gimplify.c: Likewise.
4187         * upc/upc-lang.c: Likewise.
4188         * upc/upc-pts-packed.c: Likewise.
4189         * upc/upc-pts-struct.c: Likewise.
4190         * upc/upc-act.c: (upc_handle_option) add parameters to
4191           effect pass through call to c_common_handle_option.
4192         * upc/upc-act.h: (upc_handle_option) Likewise.
4193         * upc/upc-act.c: (map_unshared_var) used typed ggc allocation.
4194         * upc/upc-act.c: (upc_build_init_func) add call to
4195           to mark_decl_referenced(), to ensure that UPC shared
4196           variable initializer function is not removed from
4197           the call tree graph.
4199 2010-03-01  Gary Funck  <gary@intrepid.com>
4201         Create gupc branch from trunk version 157149.