Merge trunk version 217032 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blob63a434d3757ab77b081750ed975b3ac2b5e901be
1 2014-11-05  Gary Funck  <gary@intrepid.com>
3         Merge trunk version 217032 into gupc branch.
4         * c/c-upc-lang.c c/gupcspec.c c-family/c-upc.c
5         c-family/c-upc-gasp.c c-family/c-upc-low.c
6         c-family/c-upc-pts-ops.c c-family/c-upc-pts-packed.c
7         c-family/c-upc-pts-struct.c: Remove unnecessary #include's.
9 2014-10-27  Gary Funck  <gary@intrepid.com>
11         Merge trunk version 216723 into gupc branch.
13 2014-10-20  Gary Funck  <gary@intrepid.com>
15         Merge trunk version 216449 into gupc branch.
17 2014-10-13  Gary Funck  <gary@intrepid.com>
19         Merge trunk version 216139 into gupc branch.
21 2014-10-06  Gary Funck  <gary@intrepid.com>
23         Merge trunk version 215919 into gupc branch.
25 2014-09-29  Gary Funck  <gary@intrepid.com>
27         Merge trunk version 215678 into gupc branch.
29 2014-09-22  Gary Funck  <gary@intrepid.com>
31         Merge trunk version 215458 into gupc branch.
33 2014-09-15  Gary Funck  <gary@intrepid.com>
35         Merge trunk version 215259 into gupc branch.
37 2014-09-08  Gary Funck  <gary@intrepid.com>
39         Merge trunk version 215014 into gupc branch.
41 2014-09-01  Gary Funck  <gary@intrepid.com>
43         Merge trunk version 214779 into gupc branch.
45 2014-08-25  Gary Funck  <gary@intrepid.com>
47         Merge trunk version 214415 into gupc branch.
49 2014-08-19  Gary Funck  <gary@intrepid.com>
51         Merge trunk version 214178 into gupc branch.
53 2014-08-14  Gary Funck  <gary@intrepid.com>
55         Merge trunk version 213968 into gupc branch.
56         DEV-PHASE: Bump to 5.0.0-1.
58 2014-08-11  Gary Funck  <gary@intrepid.com>
60         Merge trunk version 213809 into gupc branch.
62 2014-08-05  Gary Funck  <gary@intrepid.com>
64         Merge trunk version 213646 into gupc branch.
66 2014-08-04  Gary Funck  <gary@intrepid.com>
68         Merge trunk version 213543 into gupc branch.
70 2014-08-01  Gary Funck  <gary@intrepid.com>
72         * testsuite/gcc.dg/gupc: New.
73         Add compile-only tests which check for semantic errors/warnings
74         and verify that UPC constructs generate expected UPC runtime calls.
75         * testsuite/upc.dg: Removed.
76         * testsuite/lib/upc-dg.exp: Removed.
77         * testsuite/lib/upc.exp: Removed.
78         * testsuite/lib/target-supports.exp
79         (check_effective_target_fupc): New.
80         (check_effective_target_upc_struct_pts,
81         check_effective_target_upc_packed_pts):
82         Pass "-fupc -fno-upc-pre-include".
83         * testsuite/gcc.dg/gupc/gupc.exp: Moved from
84         testsuite/upc.dg/compile/compile.exp and modified to
85         work under gcc.dg.
87 2014-07-28  Gary Funck  <gary@intrepid.com>
89         Merge trunk version 213118 into gupc branch.
91 2014-07-21  Gary Funck  <gary@intrepid.com>
93         Merge trunk version 212892 into gupc branch.
95 2014-07-14  Gary Funck  <gary@intrepid.com>
97         Merge trunk version 212522 into gupc branch.
99 2014-07-07  Gary Funck  <gary@intrepid.com>
101         Merge trunk version 212325 into gupc branch.
103 2014-07-02  Nenad Vukicevic  <nenad@intrepid.com>
105         * configure.ac: Fix checking for 32-bits target while
106         setting the default PTS packed bits.
107         * configure: Regenerate.
109 2014-06-30  Gary Funck  <gary@intrepid.com>
111         Merge trunk version 212138 into gupc branch.
113 2014-06-23  Gary Funck  <gary@intrepid.com>
115         Merge trunk version 211886 into gupc branch.
117 2014-06-16  Gary Funck  <gary@intrepid.com>
119         Merge trunk version 211699 into gupc branch.
121 2014-06-14  Gary Funck  <gary@intrepid.com>
123         Merge trunk version 211672 into gupc branch.
125 2014-06-12  Gary Funck  <gary@intrepid.com>
127         Merge trunk version 211604 into gupc branch.
129 2014-06-02  Gary Funck  <gary@intrepid.com>
131         Merge trunk version 211129 into gupc branch.
133 2014-05-26  Gary Funck  <gary@intrepid.com>
135         Merge trunk version 210928 into gupc branch.
137 2014-05-21  Nenad Vukicevic  <nenad@intrepid.com>
139         * config/darwin.h (LINK_COMMAND_SPEC_A): Fix linker spec
140         on Darwin, replace -fupc-link with -fupc option.
142 2014-05-12  Gary Funck  <gary@intrepid.com>
144         Merge trunk version 210323 into gupc branch.
146 2014-05-05  Gary Funck  <gary@intrepid.com>
148         Merge trunk version 210065 into gupc branch.
150 2014-04-28  Gary Funck  <gary@intrepid.com>
152         Merge trunk version 209848 into gupc branch.
154 2014-04-21  Gary Funck  <gary@intrepid.com>
156         Merge trunk version 209542 into gupc branch.
158 2014-04-20  Gary Funck  <gary@intrepid.com>
160         * c/c-typeck.c (build_binary_op): Check for invalid comparison
161         between pointers-to-shared with target types that have
162         differing UPC blocking factors.
164 2014-04-16  Gary Funck  <gary@intrepid.com>
166         Fix PTS comparison involving a generic PTS using packed representation.
167         * c-family/c-upc-pts-packed.c (upc_pts_packed_build_cond_expr):
168         When comparing (shared void *) pointers, mask out the phase component.
170 2014-04-14  Gary Funck  <gary@intrepid.com>
172         Merge trunk version 209359 into gupc branch.
173         DEV-PHASE: Bump to 4.10.0-1.
175 2014-04-07  Gary Funck  <gary@intrepid.com>
177         Merge trunk version 209179 into gupc branch.
179 2014-04-04  Gary Funck  <gary@intrepid.com>
181         * tree-upc.c tree-upc.h: New.
182         Factor UPC-specific tree node handling
183         into tree-upc.c and tree-upc.h.
184         * Makefile.in: Refer to tree-upc.c and tree-upc.h.
185         * c/c-convert.c c/c-decl.c c/c-objc-common.c
186         c/c-typeck.c c/c-upc-lang.c c-family/c-common.c
187         c-family/c-pretty-print.c c-family/c-upc-low.c
188         c-family/c-upc-pts-packed.c c-family/c-upc-pts-struct.c
189         c-family/c-upc.c c-family/c-upc.h convert.c
190         dwarf2out.c print-tree.c tree-core.h tree-dump.c
191         tree-pretty-print.c tree.c tree.h: Rename variables and
192         functions to include 'upc' in their names.
194 2014-03-31  Gary Funck  <gary@intrepid.com>
196         Merge trunk version 208955 into gupc branch.
198 2014-03-24  Gary Funck  <gary@intrepid.com>
200         Merge trunk version 208783 into gupc branch.
202 2014-03-17  Gary Funck  <gary@intrepid.com>
204         Merge trunk version 208609 into gupc branch.
206 2014-03-10  Gary Funck  <gary@intrepid.com>
208         Merge trunk version 208447 into gupc branch.
210 2014-03-03  Gary Funck  <gary@intrepid.com>
212         Merge trunk version 208270 into gupc branch.
214 2014-02-24  Gary Funck  <gary@intrepid.com>
216         Merge trunk version 208066 into gupc branch.
218 2014-02-17  Gary Funck  <gary@intrepid.com>
220         Merge trunk version 207818 into gupc branch.
222 2014-02-10  Gary Funck  <gary@intrepid.com>
224         Merge trunk version 207649 into gupc branch.
226 2014-02-03  Gary Funck  <gary@intrepid.com>
228         Merge trunk version 207415 into gupc branch.
230 2014-01-30  Gary Funck  <gary@intrepid.com>
232         Merge trunk version 207297 into gupc branch.
234 2014-01-28  Gary Funck  <gary@intrepid.com>
236         * c/gupcspec.c (match_suffix): Remove use of PARAMS.
238 2014-01-20  Gary Funck  <gary@intrepid.com>
240         Merge trunk version 206847 into gupc branch.
242 2014-01-20  Gary Funck  <gary@intrepid.com>
244         Merge trunk version 206792 into gupc branch.
246 2014-01-17  Nenad Vukicevic  <nenad@intrepid.com>
248         * c-family/c-cppbuiltin.c (upc_cpp_builtins): Remove pre-defines
249         for __UPC_CASTABLE__, __UPC_COLLECTIVE__, __UPC_TICK__ and
250         __UPC_PUPC__ as they are library and not compiler features.
252 2014-01-13  Gary Funck  <gary@intrepid.com>
254         Merge trunk version 206575 into gupc branch.
256 2014-01-10  Gary Funck  <gary@intrepid.com>
258         Update copyright notices.
260 2014-01-06  Gary Funck  <gary@intrepid.com>
262         Merge trunk version 206354 into gupc branch.
264 2014-01-04  Gary Funck  <gary@intrepid.com>
266         Integrate GUPC into cc1.
267         * upc/: Remove directory.  Re-distribute files.
268         * c/c-upc-lang.c: Move upc/upc-lang.c here.
269         * c/c-upc-lang.h: New.
270         * c-family/c-upc.c: Move upc/upc-act.c here.
271         * c-family/c-upc-gasp.c: Move upc/upc-gasp.c here.
272         * c-family/c-upc-gasp.h: Move upc/upc-gasp.h here.
273         * c-family/c-upc.h: Move upc/upc-act.h here.
274         * c-family/c-upc-low.c: Move upc/upc-genericize.c here.
275         * c-family/c-upc-low.h: Move upc/upc-genericize.h here.
276         * c-family/c-upc-pts.h: Split upc/upc-pts.h here.
277         * c-family/c-upc-pts-ops.c: Split upc/upc-pts.c here.
278         * c-family/c-upc-pts-ops.h: Split upc/upc-pts.h here.
279         * c-family/c-upc-pts-packed.c: Move upc/upc-pts-packed.c here.
280         * c-family/c-upc-pts-struct.c: Move upc/upc-pts-struct.c here.
281         * c-family/c-upc-rts-names.h: Move upc/upc-rts-names.h here.
282         * c-family/stub-upc.c: Remove.
283         * c/gupcspec.c: Move upc/gupcspec.c here.
284         * doc/gupc.texi: Move upc/gupc.texi here.
285         * c/c-objc-common.h: Revert to trunk.
286         * cp/lex.c: Revert to trunk.
287         * cp/Make-lang.in: Revert to trunk.
288         * expr.h: Revert to trunk.
289         * flags.h: Revert to trunk.
290         * fortran/Make-lang.in: Revert to trunk.
291         * java/Make-lang.in: Revert to trunk.
292         * lto/Make-lang.in: Revert to trunk.
293         * objc/Make-lang.in: Revert to trunk.
294         * stor-layout.c: Delete custom hook routines, use
295         newly defined declaration layout language hooks.
296         * stor-layout.h: Revert to trunk.
297         * ../configure.ac: Remove check for UPC language dialect.
298         * ../configure: Re-generate.
299         * Makefile.in (C_COMMON_OBJS): Add UPC-related object files.
300         * c/Make-lang.in: Compile UPC-related files.  Build gupc driver.
301         * c/c-decl.c: Call c_genericize() directly rather than
302         lang_hooks.genericize().  Adjust for flag_upc and name changes.
303         * c/c-lang.c (LANG_HOOKS_UPC_TOGGLE_KEYWORDS,
304         LANG_HOOKS_UPC_PTS_STRUCT_INIT_TYPE, LANG_HOOKS_UPC_BUILD_INIT_FUNC,
305         LANG_HOOKS_LAYOUT_DECL_P, LANG_HOOKS_LAYOUT_DECL):
306         Define UPC-specific hooks.
307         * c/c-objc-common.c (upc_types_compatible_p): Move to here.
308         (c_types_compatible_p): Call upc_types_compatible_p().
309         * c/c-parser.c (upc_affinity_test): Move to here.
310         (upc_build_sync_stmt): Move to here.
311         * c/c-typeck.c: #include c-family/c-upc-low.h.
312         * c/config-lang.in (gtfiles): Add UPC gt files.
313         * c-family/c-common.c: Add #include c-upc.h.
314         (c_common_get_alias_set): Move UPC-related alias check to here.
315         (upc_num_threads): Move to here.
316         (c_common_init_ts): Mark UPC-specific statement tree definitions.
317         * c-family/c-common.def (UPC_FORALL_STMT, UPC_SYNC_STMT):
318         Define UPC-specific statements.
319         * c-family/c-common.h (RID_FIRST_UPC_QUAL, RID_LAST_UPC_QUAL,
320         RID_FIRST_UPC_KW, RID_LAST_UPC_KW, UPC_IS_KEYWORD): New.
321         (clk_upc, clk_upcxx, c_dialect_upc, compiling_upc): Delete.
322         (use_upc_dwarf2_extensions, flag_upc): Move to c-family/c.opts.
323         (upc_num_threads): Declare prototype.
324         (UPC_SYNC_OP, UPC_SYNC_ID, UPC_SYNC_NOTIFY_OP, UPC_SYNC_WAIT_OP,
325         UPC_SYNC_BARRIER_OP): Move definitions here.
326         * c-family/c-cppbuiltin.c: Remove #include c-upc.h and
327         add #include c-upc-pts.h.
328         (upc_cpp_builtins): Move to here.  Define as static.
329         (c_cpp_builtin): Change call to c_dialect_upc () into
330         test of flag_upc.
331         * c-family/c-gimplify.c: #include c-upc-low.h.
332         (c_common_genericize): Rename c_genericize() to this and make static.
333         (c_genericize): Call upc_genericize() if flag_upc is set and
334         then call c_common_genericize().
335         * c-family/c-opts.c: #include c-upc-low.h and c-upc-pts.h.
336         (c_family_lang_mask): Remove CL_UPC.
337         (c_common_option_lang_mask): Remove CL_UPC from lang_flags.
338         (upc_init_options): Move to here, make it static.
339         (c_common_init_options): Add early check for flag_upc, if found
340         call upc_init_options().
341         (upc_handle_option): Move to here and make static.
342         (c_common_handle_option): Check for UPC-related options
343         and call upc_handle_option().  Remove references to
344         OPT_lang_upc and clk_upc.  Check flag_upc instead of
345         calling c_dialect_upc().
346         * c-family/c-pragma.c: #include langhooks.h.
347         (handle_pragma_upc): Remove warning if flag_upc not set;
348         flag_upc now serves the function of compiling_upc().
349         Add call to lang_hooks.upc.toggle_keywords() to
350         implement enable/disable of UPC keywords.
351         (init_pragma): Check flag_upc instead of compiling_upc.
352         * c-family/c-pragma.h (deny_pragma_upc, get_upc_consistency_mode,
353         permit_pragma_upc, pop_upc_consistency_mode,
354         pragma_upc_permitted_p, push_upc_consistency_mode,
355         set_upc_consistency_mode): Move prototypes to here.
356         * c-family/c.opt: Remove all references to "UPC" language dialect.
357         Add -fupc option. Delete -fupc-link option.
358         Add -fupc-threads= option and deprecate -fupc-threads-.
359         * configure.ac: Remove check for UPC language dialect.
360         * configure: Re-generate.
361         * explow.c (tree_expr_size): Move to tree.c.
362         * gcc.c: Change specs to refer to -fupc instead of -lang-upc
363         and -fupc-link.
364         * hooks.c (hook_bool_tree_tree_false): Declare prototype.
365         * langhooks.c (lhd_do_nothing_b, lhd_do_nothing_t_t): New.
366         * langhooks.h (lang_hooks_for_upc): Define hooks for UPC.
367         (layout_decl_p, layout_decl): Define language-specific
368         declaration  layout hooks.
369         (genericize): Remove this language hook.
370         * langhooks-def.h: Define UPC default language hooks.
371         Define language-specific declaration layout default hooks.
372         * langhooks.c (lhd_do_nothing_b): New.
373         * tree-core.h (shared_flag): Rename from upc_shared_flag.
374         (strict_flag): Rename from upc_strict_flag.
375         (relaxed_flag): Rename from upc_relaxed_flag.
376         (threads_factor_flag): New. Was a lang. flag.
377         (block_factor_0): New. Was a lang. flag.
378         (block_factor_x): New. Was a lang. flag.
379         (spare1): Decrement spare bits from 8 down to 5.
380         * tree.c (block_factor_for_type): Move to here.
381         (tree_expr_size): Move to here from explow.c.
382         (block_factor_lookup): Move to here.
383         (block_factor_insert): Move to here.
384         (upc_get_block_factor): Move to here.
385         * tree.h: refer to block_factor_* instead of upc_block_factor_*.
386         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
387         TYPE_HAS_THREADS_FACTOR): Refer to tree base flag bits instead
388         of lang. flag bits.
389         (tree_expr_size): Move prototype from explow.h.
391 2013-12-30  Gary Funck  <gary@intrepid.com>
393         Merge trunk version 206243 into gupc branch.
395 2013-12-23  Gary Funck  <gary@intrepid.com>
397         Merge trunk version 206179 into gupc branch.
399 2013-12-22  Gary Funck  <gary@intrepid.com>
401         * upc/upc-act.c (upc_cpp_builtins): Bump UPC_VERSION
402         to reflect UPC specification version 1.3 compliance.
404 2013-12-16  Gary Funck  <gary@intrepid.com>
406         Merge trunk version 206010 into gupc branch.
408 2013-12-09  Gary Funck  <gary@intrepid.com>
410         Merge trunk version 205801 into gupc branch.
412 2013-12-03  Meador Inge  <meadori@codesourcery.com>
414         * tree-core.h (tree_type_common): Change tree_type_common to use
415         user-provided GC marking.
416         (gt_ggc_mx, gt_pch_nx): New prototypes.
417         * tree.c (gt_ggc_mx, gt_pch_nx): New functions.
419 2013-12-03  Gary Funck  <gary@intrepid.com>
421         Revert:
423         2011-10-10  Gary Funck  <gary@intrepid.com>
425         * tree.c (check_qualified_type, check_aligned_type):
426         Call tree_int_cst_equal() to compare UPC blocking factors
427         if the corresponding tree pointers are not equal.
428         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
430 2013-12-03  Gary Funck  <gary@intrepid.com>
432         * c-family/c.opt: Fix typo introduced in 2013-06-03
433         merge with trunk.
435 2013-12-02  Gary Funck  <gary@intrepid.com>
437         Merge trunk version 205582 into gupc branch.
439 2013-11-26  Meador Inge  <meadori@codesourcery.com>
441         * upc/upc-genericize.c (upc_expand_get): Ensure that temporaries
442         are declared via a DECL_EXPR.
444 2013-11-25  Gary Funck  <gary@intrepid.com>
446         Merge trunk version 205346 into gupc branch.
448 2013-11-18  Gary Funck  <gary@intrepid.com>
450         Merge trunk version 204942 into gupc branch.
452 2013-11-15  Gary Funck  <gary@intrepid.com>
454         Merge trunk version 204894 into gupc branch.
456 2013-11-15  Gary Funck  <gary@intrepid.com>
458         Merge trunk version 204659 into gupc branch.
460 2013-11-04  Gary Funck  <gary@intrepid.com>
462         Merge trunk version 204345 into gupc branch.
464 2013-10-31  Gary Funck  <gary@intrepid.com>
466         Released GUPC 4.9.0.1 based on version 203902.
467         This release version was committed on 2013-10-21.
468         * DEV-PHASE: Bump to 4.9.0.2.
469         * DATESTAMP: Bump date stamp.
471 2013-10-28  Gary Funck  <gary@intrepid.com>
473         Merge trunk version 204119 into gupc branch.
475 2013-10-21  Gary Funck  <gary@intrepid.com>
477         Merge trunk version 203886 into gupc branch.
479 2013-10-14  Gary Funck  <gary@intrepid.com>
481         Merge trunk version 203514 into gupc branch.
483 2013-10-07  Gary Funck  <gary@intrepid.com>
485         Merge trunk version 203240 into gupc branch.
487 2013-10-01  Gary Funck  <gary@intrepid.com>
489         Implement pointer-to-shared -> integer conversions.
490         Required per UPC 1.3 Specification.
491         * c/c-typeck.c (build_c_cast): Remove logic that diagnosed
492         PTS->int conversions as an error.  Rewrite into a CONVERT_EXPR
493         for later processing by upc_genericize().
495 2013-10-01  Gary Funck  <gary@intrepid.com>
497         Implement pointer-to-shared -> integer conversions.
498         Required per UPC 1.3 Specification.
499         * upc/upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
500         (upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().
502 2013-09-30  Gary Funck  <gary@intrepid.com>
504         Merge trunk version 203026 into gupc branch.
506 2013-09-23  Gary Funck  <gary@intrepid.com>
508         Merge trunk version 202825 into gupc branch.
510 2013-09-18  Gary Funck  <gary@intrepid.com>
512         Merge trunk version 202725 into gupc branch.
514 2013-09-16  Gary Funck  <gary@intrepid.com>
516         Merge trunk version 202619 into gupc branch.
518 2013-09-09  Gary Funck  <gary@intrepid.com>
520         Merge trunk version 202382 into gupc branch.
522 2013-09-02  Gary Funck  <gary@intrepid.com>
524         Merge trunk version 202159 into gupc branch.
526 2013-08-26  Gary Funck  <gary@intrepid.com>
528         Merge trunk version 202008 into gupc branch.
530 2013-08-19  Gary Funck  <gary@intrepid.com>
532         Merge trunk version 201832 into gupc branch.
534 2013-08-05  Gary Funck  <gary@intrepid.com>
536         Merge trunk version 201483 into gupc branch.
538 2013-07-29  Gary Funck  <gary@intrepid.com>
540         Merge trunk version 201301 into gupc branch.
542 2013-07-22  Gary Funck  <gary@intrepid.com>
544         Merge trunk version 201119 into gupc branch.
546 2013-07-15  Gary Funck  <gary@intrepid.com>
548         Merge trunk version 200955 into gupc branch.
550 2013-07-08  Gary Funck  <gary@intrepid.com>
552         Merge trunk version 200775 into gupc branch.
554 2013-07-01  Gary Funck  <gary@intrepid.com>
556         Merge trunk version 200575 into gupc branch.
558 2013-06-24  Gary Funck  <gary@intrepid.com>
560         Merge trunk version 200361 into gupc branch.
562 2013-06-19  Gary Funck  <gary@intrepid.com>
564         Merge trunk version 200149 into gupc branch.
566 2013-06-19  Gary Funck  <gary@intrepid.com>
568         Merge trunk version 200149 into gupc branch.
569         * upc/upc-act.c (upc_create_static_var): New.
570         (upc_build_init_func): Call upc_create_static_var() to
571         create a static variable, __upc_init_func_addr, which
572         is initialized to the address of the UPC
573         shared data initialization function.  This change is
574         needed to avoid writing to the output assembly language
575         file too early.
576         (upc_build_sync_stmt): Delete unused variable, sync_expr_type.
578 2013-06-03  Gary Funck  <gary@intrepid.com>
580         Merge trunk version 199596 into gupc branch.
582 2013-05-27  Gary Funck  <gary@intrepid.com>
584         Merge trunk version 199350 into gupc branch.
586 2013-05-20  Gary Funck  <gary@intrepid.com>
588         Merge trunk version 199093 into gupc branch.
590 2013-05-14  Gary Funck  <gary@intrepid.com>
592         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt):
593         When checking whether the phase of a PTS should be reset,
594         if the source type is an array type, then bypass
595         the check for equal type sizes.
596         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
598 2013-05-13  Gary Funck  <gary@intrepid.com>
600         Merge trunk version 198815 into gupc branch.
602 2013-05-06  Gary Funck  <gary@intrepid.com>
604         Merge trunk version 198622 into gupc branch.
606 2013-04-29  Gary Funck  <gary@intrepid.com>
608         Merge trunk version 198433 into gupc branch.
610 2013-04-15  Gary Funck  <gary@intrepid.com>
612         Merge trunk version 197958 into gupc branch.
614 2013-04-08  Gary Funck  <gary@intrepid.com>
616         Merge trunk version 197571 into gupc branch.
618 2013-04-04  Gary Funck  <gary@intrepid.com>
620         Per the UPC 1.3 specification, the type of the
621         optional barrier/notify/wait expression is not constrained to
622         'int'. Instead, any type that is assignment compatible
623         with an 'int' type is permitted.
624         * c/c-parser.c (c_parser_upc_sync_statement): Do not check
625         the optional expression type here.  Let upc_build_sync_stmt()
626         handle it.
627         * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
628         * c/c-typeck.c (c_cvt_expr_for_assign): New.  Also, call
629         error_at() in lieu of error() when the source location is known.
630         * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
631         to check/convert the optional synchronization statement
632         expression.
634 2013-04-02  Gary Funck  <gary@intrepid.com>
636         Merge trunk version 197340 into gupc branch.
638 2013-04-02  Gary Funck  <gary@intrepid.com>
640         Revert revision 178346 (2011-08-30)
641         which changed the prototype of check_qualified_type and related
642         functions so that their parameters were just 'tree' and not
643         'const_tree'.  This seemed necessary at the time because of a
644         change to TYPE_BLOCK_FACTOR(), which in turn called function
645         that hashed the type node pointer.  The hash functions did
646         not accept "const void *" pointers.  Implement a work around
647         that removes this restriction.
648         * c/c-typeck.c: Revert.
649         * tree.c: Revert.
650         * tree.h: Revert.  Change prototype of upc_block_factor_lookup()
651         to accept a 'const_tree' pointer to a type node.
652         * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
653         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
654         input argument and convert this to 'tree' for use with hash function.
656 2013-04-02  Gary Funck  <gary@intrepid.com>
658         Revert revision 178346 (2011-08-30)
659         which changed the prototype of check_qualified_type and related
660         functions so that their parameters were just 'tree' and not
661         'const_tree'.  This seemed necessary at the time because of a
662         change to TYPE_BLOCK_FACTOR(), which in turn called a function
663         that hashed the type node pointer.  The hash functions did
664         not accept "const void *" pointers.  Implement a work around
665         that removes this restriction.
666         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
667         input argument and convert this to 'tree' for use with hash function.
669 2013-03-25  Gary Funck  <gary@intrepid.com>
671         Merge trunk version 197029 into gupc branch.
673 2013-03-21  Gary Funck  <gary@intrepid.com>
675         Released GUPC 4.8.0.3 based on version 196601.
676         This release version was committed on 2013-03-11.
677         * DATESTAMP: Bump date stamp.
679 2013-03-18  Gary Funck  <gary@intrepid.com>
681         Merge trunk version 196771 into gupc branch.
682         * DEV-PHASE: Bump release identifier to 4.9.0-1.
684 2013-03-11  Gary Funck  <gary@intrepid.com>
686         Merge trunk version 196592 into gupc branch.
688 2013-03-04  Gary Funck  <gary@intrepid.com>
690         Merge trunk version 196422 into gupc branch.
692 2013-02-25  Gary Funck  <gary@intrepid.com>
694         Merge trunk version 196253 into gupc branch.
696 2013-02-18  Gary Funck  <gary@intrepid.com>
698         Merge trunk version 196115 into gupc branch.
700 2013-02-11  Gary Funck  <gary@intrepid.com>
702         Merge trunk version 195937 into gupc branch.
704 2013-02-04  Gary Funck  <gary@intrepid.com>
706         Merge trunk version 195707 into gupc branch.
708 2013-01-28  Gary Funck  <gary@intrepid.com>
710         Merge trunk version 195502 into gupc branch.
712 2013-01-21  Gary Funck  <gary@intrepid.com>
714         Merge trunk version 195330 into gupc branch.
716 2013-01-14  Gary Funck  <gary@intrepid.com>
718         Merge trunk version 195164 into gupc branch.
720 2013-01-07  Gary Funck  <gary@intrepid.com>
722         Merge trunk version 194962 into gupc branch.
724 2012-12-24  Gary Funck  <gary@intrepid.com>
726         Merge trunk version 194709 into gupc branch.
728 2012-12-17  Gary Funck  <gary@intrepid.com>
730         Merge trunk version 194552 into gupc branch.
732 2012-12-10  Gary Funck  <gary@intrepid.com>
734         Merge trunk version 194351 into gupc branch.
736 2012-12-03  Gary Funck  <gary@intrepid.com>
738         Merge trunk version 194076 into gupc branch.
740 2012-11-30  Gary Funck  <gary@intrepid.com>
742         Released GUPC 4.8.0.2 based on version 193446.
743         Date of release: 2012-11-12.
744         * DEV-PHASE: Bump release identifier to 4.8.0-3.
745         * DATESTAMP: Bump date stamp.
747 2012-11-26  Gary Funck  <gary@intrepid.com>
749         Merge trunk version 193807 into gupc branch.
751 2012-11-20  Gary Funck  <gary@intrepid.com>
753         Merge trunk version 193672 into gupc branch.
755 2012-11-19  Gary Funck  <gary@intrepid.com>
757         Merge trunk version 193617 into gupc branch.
759 2012-11-15  Gary Funck  <gary@intrepid.com>
761         Merge trunk version 193426 into gupc branch.
763 2012-11-12  Gary Funck  <gary@intrepid.com>
765         Released GUPC 4.8.0.1 based on version 192948.
766         Date of release: 2012-10-29.
767         * DEV-PHASE: Bump release identifier to 4.8.0-2.
768         * DATESTAMP: Bump date stamp.
770 2012-11-05  Gary Funck  <gary@intrepid.com>
772         Merge trunk version 193152 into gupc branch.
774 2012-10-29  Gary Funck  <gary@intrepid.com>
776         Merge trunk version 192909 into gupc branch.
778 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
780         Remove unused --upc-pthreads-per-process compile switch.
781         * c-family/c.opt: Remove --upc-pthreads-per-process switch
782         that compiler/runtime do not use.
783         * c-family/c-opts.c (c_common_handle_option): Remove support for
784         --upc-pthreads-per-process switch.
785         * c-family/c-common.c: Ditto.
786         * c-family/c-common.h: Ditto.
788 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
790         Remove unused --upc-pthreads-per-process compile switch.
791         * upc/upc-act.c (upc_handle_option): Ditto.
792         (upc_cpp_builtins): Ditto.
793         * upc/upc-lang.c (upc_init_options): Ditto.
795 2012-10-27  Gary Funck  <gary@intrepid.com>
797         * defaults.h: fix typos and formatting in UPC-related entries.
799 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
801         Place shared initialization code into the .text
802         section instead of a separate .upc_init section.
803         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
804         (UPC_INIT_BEGIN_NAME): Delete.
805         (UPC_INIT_END_NAME): Delete.
806         * doc/tm.texi.in: Ditto.
807         * doc/tm.texi: Ditto.
809 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
811         Place shared initialization code into the .text
812         section instead of a separate .upc_init section.
813         * upc/upc-act.c (upc_build_init_func): Remove settings
814         of the section for shared initialization code.
816 2012-10-22  Gary Funck  <gary@intrepid.com>
818         Merge trunk version 192673 into gupc branch.
820 2012-10-15  Gary Funck  <gary@intrepid.com>
822         Merge trunk version 192449 into gupc branch.
824 2012-10-08  Gary Funck  <gary@intrepid.com>
826         Merge trunk version 192198 into gupc branch.
828 2012-10-01  Gary Funck  <gary@intrepid.com>
830         Merge trunk version 191931 into gupc branch.
832 2012-09-26  Gary Funck  <gary@intrepid.com>
834         Implement support for various UPC version 1.3 specification
835         additions and changes. Deprecate support for upc_local_alloc.
836         Add support for upc_tick (wall-clock timer) library.
837         Add support for collective de-allocation functions:
838         upc_all_free and upc_all_lock_free.
839         Consult libgupc/ChangeLog,
840         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
842 2012-09-26  Gary Funck  <gary@intrepid.com>
844         * upc/upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.
846 2012-09-24  Gary Funck  <gary@intrepid.com>
848         Merge trunk version 191658 into gupc branch.
850 2012-09-17  Gary Funck  <gary@intrepid.com>
852         Merge trunk version 191376 into gupc branch.
854 2012-09-10  Gary Funck  <gary@intrepid.com>
856         Merge trunk version 191141 into gupc branch.
858 2012-08-29  Nenad Vukicevic  <nenad@intrepid.com>
860         * upc/gupc.texi: Add description for -fupc-pre-include.
862 2012-08-27  Gary Funck  <gary@intrepid.com>
864         Merge trunk version 190707 into gupc branch.
865         * tree.h (struct tree_base): Adjust various
866         UPC tree and type flags to refer to the
867         newly introduced u.bits field.
869 2012-08-20  Gary Funck  <gary@intrepid.com>
871         Merge trunk version 190524 into gupc branch.
872         Incorporates a fix in genoutput.c (to properly use
873         CONST_CAST) that led to build failures with
874         older versions of g++.
876 2012-08-16  Gary Funck  <gary@intrepid.com>
878         Merge trunk version 190437 into gupc branch.
879         Incorporates a fix for a build failure on the PPC
880         due to passing incorrect switches to the assembler.
881         Also, first merged trunk revision that compiles GCC
882         with the C++ compiler in the first stage.
884 2012-08-16  Gary Funck  <gary@intrepid.com>
886         * upc/upc-pts-struct.c (upc_pts_struct_is_null_p):
887         Adjust VEC_index() calls to use C++ syntax.
888         This is required as part of the move to compile
889         GCC with the C++ compiler.
891 2012-08-13  Gary Funck  <gary@intrepid.com>
893         Merge trunk version 190336 into gupc branch.
895 2012-08-09  Gary Funck  <gary@intrepid.com>
897         * c-family/c-common.c (c_fully_fold_internal): Do not fold
898         offsetof-like expressions when they are applied to UPC
899         shared types.
901 2012-08-07  Gary Funck  <gary@intrepid.com>
903         * upc/upc-genericize.c: Delete un-used include of optabs.h.
904         Fixes a parallel make failure due to un-noticed dependency.
906 2012-08-06  Gary Funck  <gary@intrepid.com>
908         Merge trunk version 190173 into gupc branch.
910 2012-08-01  Gary Funck  <gary@intrepid.com>
912         Merge trunk version 190063 into gupc branch.
913         Incorporates fix for build failure on IA64.
915 2012-07-30  Gary Funck  <gary@intrepid.com>
917         Merge trunk version 189954 into gupc branch.
919 2012-07-27  Gary Funck  <gary@intrepid.com>
921         Merge trunk version 189856 into gupc branch.
922         Incorporates fix for bootstrap with a sub-set of language
923         specific source directories present.
924         * optabs.c: Revert to trunk.  Rather than defining opcodes
925         as a way of defining get/put runtime library function names,
926         generate them directly in gcc/upc/upc-genericize.c.
927         * optabs.h: Ditto.
928         * genopinit.c: Ditto.
930 2012-07-27  Gary Funck  <gary@intrepid.com>
932         * upc/upc-genericize.c (upc_expand_get, upc_expand_put):
933         Rather than referring to UPC-specific opcodes to find
934         the name of the get/put library function name, generate
935         the name directly.
936         (get_lc_mode_name): New.
938 2012-07-25  Gary Funck  <gary@intrepid.com>
940         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
941         Fix regression: field-by-field comparison of UPC
942         pointer-to-shared (vaddr, thread) only works
943         (with the current logic) for the == and != operators.
945 2012-07-24  Gary Funck  <gary@intrepid.com>
947         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
948         Fix warning about use of const_tree.
950 2012-07-24  Gary Funck  <gary@intrepid.com>
952         Per UPC spec. 6.4.2p6, ignore the value of the
953         phase of a pointer-to-shared, when comparing for
954         equal or not equal.
955         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
956         Use bit-wise comparison only if the UPC pointer-to-shared
957         target type has a block size <= 1 and the representation
958         has vaddr first or the comparison is for equality/inequality.
959         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
960         Use (vaddr, thread) comparison only if the UPC pointer-to-shared
961         has a block size <= 1 or the comparison is for equality/inequality.
963 2012-07-23  Gary Funck  <gary@intrepid.com>
965         Merge trunk version 189777 into gupc branch.
967 2012-07-16  Gary Funck  <gary@intrepid.com>
969         Merge trunk version 189545 into gupc branch.
971 2012-07-12  Gary Funck  <gary@intrepid.com>
973         Merge trunk version 189366 into gupc branch.
975 2012-07-05  Gary Funck  <gary@intrepid.com>
977         Merge trunk version 189274 into gupc branch.
978         Incorporates graphite build infrastructure changes.
980 2012-07-04  Gary Funck  <gary@intrepid.com>
982         Merge trunk version 189080 into gupc branch.
983         * Makefile.in: Adjust for move of C front-end files.
984         * c/Make-lang.in: Ditto.
986 2012-07-04  Gary Funck  <gary@intrepid.com>
988         * upc/config-lang.in: Adjust for move of C front-end files.
989         * upc/upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
990         * upc/upc-gasp.c: Ditto.
991         * upc/upc-genericize.c: Ditto.
992         * upc/upc-lang.c: Ditto.
993         * upc/upc-pts-struct.c: Ditto.
995 2012-07-03  Gary Funck  <gary@intrepid.com>
997         Merge trunk version 189078 into gupc branch.
999 2012-06-25  Gary Funck  <gary@intrepid.com>
1001         Merge trunk version 188931 into gupc branch.
1003 2012-06-18  Gary Funck  <gary@intrepid.com>
1005         Merge trunk version 188721 into gupc branch.
1007 2012-06-11  Gary Funck  <gary@intrepid.com>
1009         Merge trunk version 188380 into gupc branch.
1011 2012-06-04  Gary Funck  <gary@intrepid.com>
1013         Merge trunk version 188168 into gupc branch.
1015 2012-05-29  Gary Funck  <gary@intrepid.com>
1017         Merge trunk version 187927 into gupc branch.
1019 2012-05-19  Gary Funck  <gary@intrepid.com>
1021         * upc/upc-act.c (upc_lang_layout_decl): Ignore declarations of
1022         an array of shared type declarations if the size of the
1023         array is zero.  This avoids a segfault when processing
1024         the UPC blocking factor.
1026 2012-05-18  Gary Funck  <gary@intrepid.com>
1028         Merge trunk version 187666 into gupc branch.
1029         Incorporates fix for ICE in tree vectorization pass
1030         when processing strided loads.
1032 2012-05-17  Gary Funck  <gary@intrepid.com>
1034         Merge trunk version 187578 into gupc branch.
1036 2012-05-09  Gary Funck  <gary@intrepid.com>
1038         Merge trunk version 187347 into gupc branch.
1039         Incorporates fix for segfault in tree vectorization pass.
1041 2012-05-08  Nenad Vukicevic  <nenad@intrepid.com>
1043         * upc/gupcspec.c (lang_specific_driver): Improve handling of
1044         "-x" switches: (a) add "-x upc" switch for C source files if
1045         no -x switch was seen before OR "-x none" was seen, (b) add
1046         "-x none" for files other then C files if "-x upc" was
1047         previously added. Cleanup warnings on unused variables
1048         and integer conversion. Print verbose info regardless of the
1049         command line being the same.
1051 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
1053         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
1054         Appropriate libraries and include files are added on the
1055         command line to make it possible to compile with the driver
1056         from the build tree.
1058 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
1060         * upc/gupc.texi: Simplify the description of the optimization
1061         options.
1063 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
1065         * upc/Make-lang.in: Remove build of xgupc.
1066         * upc/gupcspec.c (get_libgupc_path): Delete.
1067         (lang_specific_driver): Remove support for building xgupc.
1068         Removed code tried to add -B, -L, -isystem to the command
1069         line if xgupc driver is invoked from the development tree.
1071 2012-05-04  Gary Funck  <gary@intrepid.com>
1073         * upc/upc-act.c (upc_num_threads): When THREADS is specified
1074         statically, convert the value to a signed size type,
1075         so that (for example) the thread affinity test in a
1076         upc_forall() statement will work as expected for negative
1077         integer index values.
1079 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
1081         * upc/Make-lang.in: Add year 2012 to the copyright.
1083 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
1085         * upc/gupc.c: Delete. The old GUPC driver.
1086         * upc/gupcspec.c: Add. The new GUPC driver tailored
1087         after fortran/gfortranspec.c driver. Options "-n", "-inst",
1088         and "-inst-functions' are not supported by the new driver.
1089         Support for building gupc and xgupc remains the same.
1090         * upc/Make-lang.in (xgupc): Changes to compile gupcspec.c
1091         instead of gupc.c
1092         (gupc): Ditto.
1093         * upc/gupc.texi: Remove '-n', '-inst', and '-inst-functions'
1094         options.
1096 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
1098         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
1099         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
1100         a function returns a pointer-to-shared in memory instead
1101         of in registers.
1102         (rs6000_pass_by_reference): Ditto.
1104 2012-04-28  Gary Funck  <gary@intrepid.com>
1106         * c-decl.c (grokdeclarator): Set 'type' to error node
1107         after detecting "shared auto variable" error to avoid
1108         downstream complications.
1109         * upc/upc-act.c: Fix a couple of spelling errors in comments.
1111 2012-04-26  Gary Funck  <gary@intrepid.com>
1113         * c-family/c-pragma.c (handle_pragma_upc):
1114         Fix typo in warning message.
1116 2012-04-17  Nenad Vukicevic  <nenad@intrepid.com>
1118         * upc/gupc.texi: Fix the warning for usage of 'insertcopying'
1119         before 'copying'. Minor changes to to copyright years and
1120         manual info.
1122 2012-04-17  Gary Funck  <gary@intrepid.com>
1124         Merge trunk version 186486 into gupc branch.
1126 2012-04-17  Gary Funck  <gary@intrepid.com>
1128         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
1129         value of the pupc mode.  Fixes a compile-time warning.
1130         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
1131         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
1132         Improve source formatting.
1134 2012-04-16  Gary Funck  <gary@intrepid.com>
1136         * upc/upc-genericize.c: Adjust copyright.
1137         (upc_genericize_fndecl): Adjust call graph
1138         union member reference to use the newly introduced
1139         'symbol' field in order to refer to 'decl'.
1141 2012-04-09  Gary Funck  <gary@intrepid.com>
1143         Merge trunk version 186243 into gupc branch.
1144         Incorporates a powerpc 'ffi' fix.
1146 2012-03-16  Gary Funck  <gary@intrepid.com>
1148         Merge trunk version 185454 into gupc branch.
1149         Incorporates a libgcc fix for builds on Darwin.
1151 2012-03-13  Gary Funck  <gary@intrepid.com>
1153         Merge trunk version 185278 into gupc branch.
1154         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
1155         call build_pointer_type() to apply UPC-specific qualifiers.
1156         * top-level/configure.ac: factor the checking for posix hostst
1157         out of the libgomp section so that it can also be used by libgupc.
1158         * top-level/configure: Re-generate.
1159         * DEV-PHASE: bump to 4.8.0-1.
1161 2012-03-12  Gary Funck  <gary@intrepid.com>
1163         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
1164         the mode for a pointer for upc-pointer-to-shared types.
1166 2012-03-04  Gary Funck  <gary@intrepid.com>
1168         Merge trunk version 184900 into gupc branch.
1170 2012-02-17  Gary Funck  <gary@intrepid.com>
1172         Released GUPC 4.7.0.2 based on version 183992.
1173         * DEV-PHASE: Bump release identifier to 4.7.0-3.
1174         * DATESTAMP: Bump date stamp.
1176 2012-02-07  Nenad Vukicevic  <nenad@intrepid.com>
1178         * upc/gupc.texi: Added entries for the directory.
1180 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
1182         * upc/gupc-manpage.html: Removed. HTML files are generated from
1183         the texi source.
1185 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
1187         * upc/gupc.texi (-x upc): Add files ending with '.c' to the list
1188         of files compiled as UPC source.
1190 2012-02-04  Nenad Vukicevic  <nenad@intrepid.com>
1192         * upc/Make-lang.in (doc/gupc.info): Fix dependencies for creating
1193         gupc.info document.
1195 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
1197         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
1198         code generation (same as #pragma pupc off).
1199         (set_pupc_mode): New. Set/restore profiling mode.
1200         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
1201         (set_pupc_mode): New. Prototype.
1202         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1203         profiling code for shared variables initialization routines.
1205 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
1207         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1208         profiling code for shared variables initialization routines.
1210 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
1212         * upc/Make-lang.in: Various changes related to generating
1213         man/info pages from texi source file.
1214         (upc.install-common): Fix for removing the upc command
1215         link before install if suffix was applied.
1216         (upc.install-pdf): New.
1217         (upc.install-html): Change for the build from texi.
1218         (upc.install-man): Change for the build from texi.
1219         * upc/gupc.1: Removed.
1220         * upc/gupc.texi: New. Created texi source for man/info
1221         generation.
1223 2012-01-31  Gary Funck  <gary@intrepid.com>
1225         Merge trunk version 183751 into gupc branch.
1226         Incorporates fix for bootstrap failure on openSUSE 12.1.
1228 2012-01-30  Nenad Vukicevic  <nenad@intrepid.com>
1230         * upc/Make-lang.in: Fix the --program-suffix configuration
1231         option.  GUPC executables are now installed with appropriate
1232         suffixes and GUPC driver execs 'gcc' with the right suffix.
1234 2012-01-24  Nenad Vukicevic  <nenad@intrepid.com>
1236         * upc/upc-lang.c (upc_init_options): Disable section anchors
1237         for UPC language.
1239 2012-01-14  Gary Funck  <gary@intrepid.com>
1241         * upc/upc-genericize.c (upc_genericize_expr): Update input_location
1242         while traversing the program tree.
1243         (upc_expand_get, upc_expand_put): For profiling,  derive
1244         the source code location from the incoming 'loc' parameter.
1246 2012-01-10  Gary Funck  <gary@intrepid.com>
1248         Merge trunk version 183072 into gupc branch.
1249         Incorporates libcpp __BASE_FILE__ fix.
1251 2012-01-09  Gary Funck  <gary@intrepid.com>
1253         * upc/upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
1254         is_gimple_non_addressable.
1256 2012-01-06  Nenad Vukicevic  <nenad@intrepid.com>
1258         * upc/Make-lang.in: Add appropriate linker flags when linking
1259         gupc drivers.
1261 2012-01-06  Nenad Vukicevic  <nenad@intrepid.com>
1263         * upc/Make-lang.in: Add appropriate linker flags when linking
1264         gupc drivers.
1266 2011-12-31  Gary Funck  <gary@intrepid.com>
1268         Fix gupc driver to avoid segfault when processing
1269         invalid use of a switch that expects an argument.
1270         * upc/gupc.c (get_libgupc_path): Add check for non-NULL value of
1271         libgupc_archive before attempting to access libgupc_archive[0].
1272         (main): Do not issue error if lib_dir is NULL.  Instead, only
1273         process lib_dir if it is non-NULL.
1275 2011-12-31  Gary Funck  <gary@intrepid.com>
1277         Improve -fupc-debug support.
1278         * upc/upc-genericize.c (upc_expand_get, upc_expand_put,
1279         upc_genericize_sync_stmt): Add check for flag_upc_debug.
1280         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
1281         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
1282         * upc/upc-act.c (upc_cpp_builtins): Disable inlining of the
1283         runtime if flag_upc_debug is asserted.
1285 2011-12-20  Nenad Vukicevic  <nenad@intrepid.com>
1287         * top-level/Makefile.def (flags_to_pass): Added GUPC
1288         defines. Fixes the make error when upc is not specified as one
1289         of the languages to build.
1290         * top-level/Makefile.in: Re-generate.
1292 2011-11-22  Gary Funck  <gary@intrepid.com>
1294         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
1295         * dwarf2out.c (gen_compile_unit_die): Check for
1296         the "GNU UPC" language string in lieu of "GCC UPC".
1297         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
1299 2011-11-22  Gary Funck  <gary@intrepid.com>
1301         * upc/upc-act.c (upc_cpp_builtins): Generate new pre-defined
1302         macro: __GUPC__.
1304 2011-11-18  Gary Funck  <gary@intrepid.com>
1306         Merge trunk version 181552 into gupc branch.
1307         Incorporates libgcc/libunwind fix for IA64.
1309 2011-11-19  Gary Funck  <gary@intrepid.com>
1311         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1312         Add check for UPC when defining the language type value
1313         in a traceback entry.
1315 2011-11-19  Gary Funck  <gary@intrepid.com>
1317         * upc/config-lang.in: Remove checks for supported targets.
1318         This is now done at a higher level.
1320 2011-11-18  Gary Funck  <gary@intrepid.com>
1322         Merge trunk version 181493 into gupc branch.
1323         Incorporates final fix for PR target/49992.
1325 2011-11-09  Nenad Vukicevic  <nenad@intrepid.com>
1327         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
1328         change that converted relative include paths into absolute
1329         ones, as it does not work with older version of make (3.80).
1331 2011-10-27  Nenad Vukicevic  <nenad@intrepid.com>
1333         Apply patch for Darwin build - PR49992.
1334         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
1335         * gcc/configure.ac: Ditto.
1336         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
1337         * gcc/ada/gcc-interface/Makefile.in: Ditto.
1338         * top-level/configure: Re-generate.
1339         * gcc/configure: Re-genrate.
1341 2011-10-26  Gary Funck  <gary@intrepid.com>
1343         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1344         "libupc" to "libgupc".
1345         * top-level/configure.ac: Implement support for cross-builds, and
1346           adjust for rename of libupc to libgupc.
1347         * top-level/Makefile.tpl: Ditto.
1348         * top-level/Makefile.def: Ditto.
1349         * top-level/configure: Re-generate.
1350         * top-level/Makefile.in: Re-generate.
1351         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
1352         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
1353         * doc/tm.texi: Re-generate.
1354         * tree-pretty-print.c (dump_block_node): Delete unused variable.
1355         * gcc.c: Adjust for rename of libupc to libgupc.
1356         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
1357         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
1358         Change "xupc" to "xgupc".
1359         * configure.ac: Change "GCC UPC" to "GNU UPC".
1360         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
1361         so that they are absolute paths.  This is needed because
1362         the upc-crtstuff builds are in the libgupc library build
1363         directories which are not at the same level as libgcc.
1364         * config/darwin.h: Adjust for rename of libupc to libgupc.
1366 2011-10-26  Gary Funck  <gary@intrepid.com>
1368         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1369         "libupc" to "libgupc".
1370         * upc/gupc.c: Rename from upc-cmd.c and adjust for rename
1371         of libupc to libgupc.
1372         * upc/upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
1373         * upc/config-lang.in: Adjust for rename of libupc to libgupc.
1374         * upc/gupc.1: Rename from upc.1.  Change "GCC UPC" references
1375         to "GNU UPC".  Adjust for rename of libupc to libgupc.
1376         Improve formatting.
1377         * upc/gupc-manpage.html: Rename from upc-manpage.html.  Re-generate.
1378         * upc/Make-lang.in: Change "upc" to "gupc".  Change "xupc" to "xgupc".
1379         Adjust for rename of libupc to libgupc.  Install target symlink from
1380         "upc" to "gupc".  Install target/version-specific hard links to "gupc".
1382 2011-10-20  Gary Funck  <gary@intrepid.com>
1384         Merge trunk version 180276 into gupc branch.
1385         Incorporates fix for PR bootstrap/50709.
1387 2011-10-20  Gary Funck  <gary@intrepid.com>
1389         Merge trunk version 180246 into gupc branch.
1391 2011-10-19  Gary Funck  <gary@intrepid.com>
1393         Merge trunk version 180233 into gupc branch.
1394         Incorporates fix for PR debug/49310 (var tracking).
1396 2011-10-17  Gary Funck  <gary@intrepid.com>
1398         Fix a regression caused by the previous commit.
1399         * upc/upc-genericize.c (upc_genericize_walk):
1400         Renamed from: upc_genericize_stmt.
1401         (upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
1402         re-walk the tree after simplification, by calling
1403         upc_genericize_walk().
1404         (upc_genericize_array_ref): expand the newly constructed
1405         indirect reference by calling upc_genericize_indirect_ref().
1407 2011-10-11  Nenad Vukicevic  <nenad@intrepid.com>
1409         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
1410         only four (O0 static/dynamic, O3 static/dynamic).
1411         Detect -fupc-threads-0 as an option for dynamic threads
1412         compile environment.
1414 2011-10-10  Gary Funck  <gary@intrepid.com>
1416         * tree.c (check_qualified_type, check_aligned_type):
1417         Call tree_int_cst_equal() to compare UPC blocking factors
1418         if the corresponding tree pointers are not equal.
1419         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
1421 2011-10-10  Gary Funck  <gary@intrepid.com>
1423         * upc/upc-genericize.c (upc_simplify_shared_ref): When simplifying
1424         the base address always convert to (shared [] char *).
1425         This ensures that &a[i].field1 ends up with the required
1426         zero block size, for example.
1428 2011-10-07  Nenad Vukicevic  <nenad@intrepid.com>
1430         Add configuration checks for struct/packed builds so we can
1431         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
1432         * testsuite/lib/target-supports.exp
1433         (check_effective_target_upc_struct_pts): New.
1434         (check_effective_target_upc_packed_pts): New.
1436 2011-09-15  Nenad Vukicevic  <nenad@intrepid.com>
1438         Add to FLAGS the flags needed to disable inlining of
1439         UPC run-time access routines.
1440         * testsuite/lib/target-supports.exp
1441         (add_options_for_upc_library_calls): New.
1443 2011-09-15  Gary Funck  <gary@intrepid.com>
1445         Fix ICE involving shared bit field accesses.
1446         * tree.c (build3_stat): Propagate TEEE_SHARED()
1447         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1449 2011-09-13  Gary Funck  <gary@intrepid.com>
1451         Merge trunk version 178795 into gupc branch.
1452         Incorporates fix to PR bootstrap/50010 for x86-32.
1454 2011-09-08  Gary Funck  <gary@intrepid.com>
1456         Merge trunk version 178557 into gupc branch.
1458 2011-09-07  Gary Funck  <gary@intrepid.com>
1460         Ensure that UPC pointer-to-shared type alignment is
1461         propagated to the final type.  Revert to long-standing
1462         alignment policy: twice the size of a "C" pointer.
1463         * tree.c (build_pointer_type): Propagate the alignment
1464         of the UPC pointer-to-shared representation type
1465         into the newly built pointer type.
1467 2011-08-30  Gary Funck  <gary@intrepid.com>
1469         * tree.h (check_qualified_type): Change 'const_tree'
1470         argument types back to 'tree' to avoid complaints
1471         of assignment drops qualifiers for invocations of the
1472         newly implemented TYPE_BLOCK_FACTOR() macro, which
1473         invokes hash functions with 'tree' pointer values that
1474         are not const qualified.
1475         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1476         * c-typeck.c (comptypes_internal): Ditto.
1478 2011-08-29  Gary Funck  <gary@intrepid.com>
1480         Fixes for regressions noted running "make check"
1481         versus GCC trunk.
1482         * fold-const.c (fold_unary_loc): Execute UPC-specific
1483         checks for a cast-of-a-cast, only if one of the
1484         operands is a UPC pointer-to-shared value.
1485         * opts.c (print_specific_help):  Fix a comparison
1486         in an assert that checks that there are enough
1487         bits reserved for the number of languages defined
1488         in the .opt files.
1490 2011-08-29  Gary Funck  <gary@intrepid.com>
1492         Implement a hash table to record UPC block factors.
1493         * c-family/stub-upc.c (upc_block_factor_insert,
1494         upc_block_factor_lookup): New dummy stub procedures.
1495         * c-family/c-common.c (c_sizeof_or_alignof_type):
1496         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1497         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1498         to copy (hashed) UPC blocking factor.
1499         (set_type_quals): Likewise.
1500         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1501         TYPE_HAS_THREADS_FACTOR().
1502         (type_common.block_factor): Delete.
1503         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1504         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1505         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1506         UPC blocking factors greater than one.
1507         * dwarf2out.c (modified_type_die): Re-implement
1508         logic that records UPC blocking factor in the generated
1509         DWARF2 debugging information.
1510         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1511         TYPE_HAS_THREADS_FACTOR().
1512         * c-decl.c (finish_decl, grokdeclarator):
1513         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1514         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1515         used by UPC, and print UPC-specific information.
1517 2011-08-28  Gary Funck  <gary@intrepid.com>
1519         Re-work the type machinery to fully support and to unify support
1520         for the UPC layout qualifier (blocking factor).
1521         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1522           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1523           and update prototype.
1524         * c-family/c-common.c (complete_array_type): call newly
1525           defined c_build_qualified_type_1() instead of
1526           upc_set_block_factor().
1527         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1528           upc_apply_layout_qualifier() and update prototype.
1529           (upc_set_block_factor): Delete prototype.
1530         * c-family/c-common.h (c_build_qualified_type): redefine
1531           as a pre-processor macro that invokes c_build_qualified_type_1()
1532           with a null UPC layout qualifier.
1533           (c_build_qualified_type_1): New.  Add layout qualifier argument
1534           to old c_build_qualified_type() prototype.
1535         * tree.c (set_type_quals, check_qualified_type):
1536           Add layout qualifier as argument.
1537           (check_aligned_type): Add check for UPC block factor equality.
1538           (get_qualified_type_1): Rename from get_qualified_type() and
1539           add layout qualifier as argument.
1540           (build_qualified_type_1): Rename from build_qualified_type() and
1541           add layout qualifier as argument.
1542         * tree.h (check_qualified_type): Add layout qualifier as argument
1543           to the prototype.
1544           (get_qualified_type): Re-define as a as a pre-processor macro
1545           that invokes get_qualified_type_1() with a null
1546           UPC layout qualifier.
1547           (get_qualified_type_1): Rename from get_qualified_type() and
1548           add layout qualifier as argument.
1549         * cp/tree.c (c_build_qualified_type_1): Rename from
1550           c_build_qualified_type() and add (unused) layout qualifier
1551           argument.
1552         * c-decl.c (finish_decl): re-format long error messages.
1553           (grokdeclarator): Re-work the logic so that it calls
1554           upc_grok_layout_qualifier() to handle the UPC layout
1555           qualifier, if present.
1556         * c-typeck.c (qualify_type, common_pointer_type,
1557           build_component_ref): Re-work the logic so that it calls
1558           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1559           if present.
1560           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1561           and add layout qualifier argument.
1562         * print_tree.c (print_node): Re-format a long line.
1564 2011-08-26  Gary Funck  <gary@intrepid.com>
1566         Merge trunk version 177949 into gupc branch.
1567         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1568           in the comment.
1569         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1570           to add new rliterals column value.
1572 2011-08-26  Gary Funck  <gary@intrepid.com>
1574         * convert.c (convert_to_integer): Fix the check for the
1575           difference between two UPC pointers-to-shared values.
1577 2011-08-23  Nenad Vukicevic  <nenad@intrepid.com>
1579         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1580           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1581           correctly check packed bits.
1582         * configure: Re-generate.
1584 2011-08-16  Gary Funck  <gary@intrepid.com>
1586         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1587           the barrier id expression is not an integer expression.
1589 2011-08-12  Gary Funck  <gary@intrepid.com>
1591         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1592           (revert to trunk).
1593         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1594           Set mode of UPC pointer-to-shared rep. to an
1595           integral mode of size at least as large as the
1596           size of the representation's struct type.
1598 2011-08-12  Gary Funck  <gary@intrepid.com>
1600         Rework/simplify the UPC genericize pass.
1601         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1602           upc_build_pointer_type): New.
1603           (upc_set_block_factor): Adjust to new calling sequence.
1604           (upc_build_shared_var_addr): Delete.
1605         * c-family/c-common.c (complete_array_type): Adjust call
1606           to upc_set_block_factor().
1607         * c-family/c-upc.h (upc_apply_layout_qualifier,
1608           upc_build_pointer_type): New.
1609           (upc_build_shared_var_addr): Delete.
1610           (upc_set_block_factor): Adjust to new calling sequence.
1611         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1612         * c-decl.c (grokdeclarator): Call newly defined
1613           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1614         * c-decl.c (grokdeclarator): Split long UPC-related error
1615           messages into two lines.
1616         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1617           directly.  Revert that change to trunk. (upc_genericize() will
1618           handle lowering the expressions that take the address of a
1619           UPC variable).
1620         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1621           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1622           representation type.
1624 2011-08-10  Gary Funck  <gary@intrepid.com>
1626         Implement additional fixes for recent merge with trunk.
1627         * explow.c (promote_mode): Do not attempt to promote
1628           the mode for UPC pointer-to-shared types.
1629         * config/i386/i386.c (function_value_64): Ditto.
1631 2011-08-07  Gary Funck  <gary@intrepid.com>
1633         Merge trunk version 177548 into gupc branch.
1634         * config/i386/i386.c (ix86_promote_function_mode):
1635           Do not promote UPC pointers-to-shared to Pmode.
1636         * c-family/c-ommon.c (pointer_int_sum):
1637           Also check the pointer operand, rather than just
1638           its type, when making the decision to derive
1639           the equivalent unshared type.
1640         * tree.c (build2_stat): If the type of the result
1641           passed in as an argument is a UPC shared type,
1642           derive the unshared equivalent when calculating
1643           the result type of the node.
1645 2011-07-15  Nenad Vukicevic  <nenad@intrepid.com>
1647         * config/darwin.c: Disable var_tracking option
1648           on -O0 as it is supposed to run only when optimization
1649           is applied. See GCC bug 49743.
1651 2011-07-06  Gary Funck  <gary@intrepid.com>
1653         Re-implement the pass that lowers trees generated by
1654         the UPC front-end into GENERIC.  Previously this was
1655         done within the gimplification framework, but this
1656         required that gimplification be run before inlining
1657         and various other passes, which did not fit in well
1658         with the current design of the middle-end passes.
1659         Now, the lowering is done by a newly defined language
1660         specific genericize hook.  With this change, we are
1661         are able to undo some extensions made to the gimplify
1662         logic, and thus can revert several files to trunk.
1663         * c-decl.c: Add a check for UPC deprecated names which
1664           may appear as undefined function names.
1665         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1666           LTI_upc_getaddr): Remove definitions of unused UPC
1667           library function names.  These were defined back when
1668           the libfunc interface was used to call these routines.
1669         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1670           in UPC lowering (genericize) pass.
1671         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1672           (instrument_func): Delete this hook.  Now handled in
1673           upc_genericize().
1674         * tree-pass.h: Revert to trunk.
1675         * c-typeck.c (build_unary_op): Adjust reference to
1676           upc_genericize() in a comment.
1677         * gimplify.c (create_tmp_var_raw): Delete logic that
1678           was converting UPC shared types into unshared types
1679           to be used for temporaries.  Now handled in  upc_genericize().
1680           Replace with an assertion check.
1681           (prepare_gimple_addressable): Revert to trunk's definition.
1682           No longer needed as an externally called function.
1683           (flag_instrument_functions_exclude_p): Re-define as
1684           an externally called function.
1685           (gimplify_function_tree): Delete code that implemented
1686           call to UPC's language specific function instrumentation hook.
1687         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1688           (prepare_gimple_addressable): Delete extern definition;
1689           revert to trunk's definition.
1690         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1691           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1692         * c-family/c-gimplify.c: Revert to trunk.
1693         * cp/cp-gimplify.c: Revert to trunk.
1694         * cp/cp-tree.h: Revert to trunk.
1695         * explow.c: Revert to trunk.
1696         * langhooks.c: Revert to trunk.
1697         * libfuncs.h: Revert to trunk.
1698         * objc/objc-act.c: Revert to trunk.
1700 2011-06-30  Gary Funck  <gary@intrepid.com>
1702         * c-family/c.opt: Bring options definitions up-to-date
1703         with respect to changes made in the trunk.
1705 2011-06-29  Gary Funck  <gary@intrepid.com>
1707         Merge trunk version 175584 into gupc branch.
1709 2011-06-13  Gary Funck  <gary@intrepid.com>
1711         libcpp/
1712         * include/cpplib.h (enum c_lang):
1713         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1714         This keeps all the "C" variants together.
1715         * init.c (lang_defaults): Add an entry for UPC.
1717 2011-06-09  Gary Funck  <gary@intrepid.com>
1719         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1720         a 32-bit target, the size expression overflowed, the result was
1721         error_mark_node, and an ICE was triggered on an attempt to evaluate
1722         C_TYPE_VARIABLE_SIZE() on the error node.
1723         (upc_blocksizeof_expr, upc_blocksizeof_type,
1724         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1725         Make similar changes to avoid further processing of error_mark_node.
1727 2011-06-07  Gary Funck  <gary@intrepid.com>
1729         * sel-sched.c (move_op): Incorporate the following
1730         patch to eliminate ICE at -O3 on IA64/Altix.
1732 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1734         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1735         code_motion_path_driver returned 0 or 1.
1736         (sel_region_finish): Clear h_d_i_d.
1738 2011-06-02  Gary Funck  <gary@intrepid.com>
1740         Merge trunk version 174558 into gupc branch.
1742 2011-05-30  Gary Funck  <gary@intrepid.com>
1744         * configure.ac: Make the default order of the virtual
1745           address field in a UPC pointer-to-shared to be "first".
1746           This reverts to the previous setting, and is a short term
1747           measure to work around a bug found on the IA64,
1748           where vaddr=last led to incorrect code generation.
1749           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1750           in AC_DEFINE(), to agree with recent changes in files
1751           that reference this define.
1752           configure, config.in: Regenerate.
1754 2011-05-26  Gary Funck  <gary@intrepid.com>
1756         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1757           configure: Regenerate.
1758         * ../fixincludes/fixincl.x: Revert to trunk.
1759           This file is auto-generated, and should not be merged.
1761 2011-05-18  Gary Funck  <gary@intrepid.com>
1763         Merge trunk version 173845 into gupc branch.
1765 2011-05-17  Gary Funck  <gary@intrepid.com>
1767         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1768           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1769         * c-family/c-pragma.c: Remove conditional compilation
1770           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1771           Test 'compiling_upc' when compiling to determine if
1772           the "upc" and "pupc" pragmas should be registered.
1773         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1774           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1775           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1776           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1777           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1778           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1779           Move these target-dependent definitions from config/upc-conf.h
1780           to here.
1781         * configure.ac: Improve the logic for UPC-related options.
1782           Delete references to pre-processor definitions that have
1783           been moved to "upc/upc-pts.h".
1784         * configure, config.in: Regenerate.
1785         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1786           to trunk.  This substitution variable was used to
1787           configure the representation-specific versions of
1788           the tree rewrites that operate on UPC pointer-to-shared
1789           types and objects.
1790         * c-parser.c (c_parser_upc_forall_statement): Remove
1791           reference to UPC_FORALL_DEPTH_NAME, and call
1792           newly defined upc_rts_forall_depth_var() instead.
1793         * config/upc-config.h: Delete. Various definitions
1794           moved to "upc/upc-rts-names.h", "defaults.h", and
1795           "upc/upc-pts.h".
1796         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1797           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1798           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1799           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1800           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1801           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1802           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1803           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1804           New.  Document UPC target macros.
1805           doc/tm.texi: Regenerate.
1807 2011-05-07  Gary Funck  <gary@intrepid.com>
1809         * ../configure.ac: Disable build of libupc
1810           on non POSIX hosted systems.  Use AS_HELP_STRING
1811           to define messages.  Remove 'word-pair' as a
1812           possible --with-upc-pts UPC pointer-to-shared
1813           representation.
1814         * ../configure: Regenerate.
1815         * configure.ac: Use AS_HELP_STRING to define messages.
1816           Remove 'word-pair' as a possible --with-upc-pts
1817           UPC pointer-to-shared representation.
1818           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1819           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1820         * configure: Regenerate.
1821         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1822           definition.
1823         * ChangeLog.upc: Fix some typos.
1825 2011-05-07  Gary Funck  <gary@intrepid.com>
1827         * ../maintainer-scripts/gcc_release: Add "upc"
1828           as one of the released languages.
1830 2011-05-06  Gary Funck  <gary@intrepid.com>
1832         Eliminate compilation warnings, by fixing
1833         #include's and updating function prototypes.
1834         * c-family/c-cppbuiltin.c: Include c-upc.h.
1835         * optabs.c (gen_libfunc): Change type of 'suffix'
1836           parameter to conform with prototype.
1837         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1838           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1839           hook used by UPC.
1840         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1841           the prototype.
1842         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1843           argument values to cp_gimplify_expr.
1844         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1845           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
1846           pre-processor definitions that are no longer
1847           needed to build the 'upc' command (upc-cmd.c)
1848           because the linker specs. defined in libupc
1849           take care of linking in the needed libraries.
1850         * c-parser.c (c_parser_upc_forall_statement):
1851           initialize affinity_loc to avoid "maybe unused" warning.
1852           (c_parser_upc_sync_statement): Remove un-needed
1853           'ret' variable.  Cast return value from
1854           'upc_build_sync_stmt' to 'void' to avoid
1855           compile-time warning.
1856         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1857           integer constant, not a string.  Range is restricted
1858           to maximum positive 32-bit integer (2+ billion) to
1859           fit in with the use of 'int' in the front-end's
1860           switch handling logic.
1862 2011-05-06  Gary Funck  <gary@intrepid.com>
1864         Upgrade c-family source files to conform with modularity
1865         improvements.  Mainly, remove #include of c-tree.h in files
1866         under c-family, and define a new UPC-specific #include file,
1867         c-upc.h, and use it.
1868         * c-family/stub-upc.c: Remove #include of c-tree.h and
1869           upc/upc-act.h.  Replace with #include of c-common.h
1870           and c-upc.h.
1871           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1872           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1873           upc_localsizeof_expr, upc_localsizeof_type,
1874           upc_shared_type_p): Delete.
1875         * c-family/c-opts.c: Add #include of c-upc.h
1876         * c-family/c-common.c: Remove #include of c-tree.h and
1877           add #include of c-upc.h.
1878         * c-family/c-upc.h: New. Define API for UPC-specific functions
1879           (mostly implemented in upc/upc-act.c).
1880         * c-family/c-common.h (upc_cpp_builtins,
1881           upc_write_global_declarations): Remove extern definitions.
1882         * c-family/c-pragma.c: Remove #include of c-tree.h.
1883           Add #include of c-upc.h.
1884         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
1885           c-tree.h.
1886           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
1887           upc/upc-act.c, and define as a macro.
1888           (expand_affinity_test): Remove unused external definition.
1889           (build_upc_unshared_type): Add external definition.
1890           (upc_shared_type_p): Remove external definition.
1891         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1892         * dojump.c: Remove #include of c-tree.h.
1893         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1894           and move to tree.h.
1895           (count_upc_threads_refs, is_multiple_of_upc_threads,
1896           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1897           upc_build_shared_var_addr, upc_build_sync_stmt,
1898           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1899           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1900           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1901           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1902           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1903           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1904           set_upc_consistency_mode, get_upc_consistency_mode,
1905           push_upc_consistency_mode, pop_upc_consistency_mode,
1906           get_upc_pupc_mode):
1907           Move external definitions to c-family/c-upc.h.
1908           (upc_blocksizeof_type, upc_localsizeof_type,
1909           upc_elemsizeof_type): Remove external definitions;
1910           these functions were moved to c-parser.c.
1911         * c-decl.c: Add #include of c-upc.h.
1912         * c-typeck.c: Add #include of c-upc.h.
1913         * c-convert.c: Add #include of c-upc.h.
1914         * ChangeLog.upc: Fix typo.
1915         * Makefile.in: Add references to c-family/c-upc.h, everywhere
1916           there is a reference to c-family/c-objc.h.
1917           Remove extraneous reference to upc-act.h.
1918         * c-parser.c: Add #include of c-upc.h.
1919           (upc_blocksizeof_expr, upc_blocksizeof_type,
1920           upc_elemsizeof_expr, upc_elemsizeof_type,
1921           upc_localsizeof_expr, upc_localsizeof_type):
1922           Move from upc/upc-act.c.
1923         * tree.c (build_upc_unshared_type): New.
1924           Move upc_get_unshared_type from upc/upc-act.c and rename
1925           to build_upc_unshared_type.
1926           c-family/c-common.c (pointer_int_sum): refer to renamed
1927           build_upc_unshared_type function.
1928           c-convert.c (convert): Ditto.
1929           convert.c (convert_to_pointer): Ditto.
1930           c-typeck.c (build_unary_op, build_modify_expr,
1931           really_start_incremental_init): Ditto.
1932           gimplify.c (create_tmp_var_raw): Ditto.
1933           tree.c (build1_stat): Ditto.
1934           tree.h (upc_get_unshared_type): Rename to
1935           build_upc_unshared_type.
1937 2011-05-06  Gary Funck  <gary@intrepid.com>
1939         Merge trunk version 173471 into gupc branch.
1941 2011-05-05  Gary Funck  <gary@intrepid.com>
1943         Make changes that bring the GUPC branch more closely in sync.
1944         with the GCC trunk.  Revert any fixes that are not UPC-specific.
1945         Remove gratuitous re-formatting.
1946         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1947           This file should have been removed in a previous merge
1948           with the trunk.
1949         * ../configure.ac: Remove Cray Catamount/CNL support.
1950         * ../configure: Regenerate.
1951         * ../config.sub: Remove Cray Catamount/CNL support.
1952         * config.gcc: Remove Cray Catamount/CNL support.
1953         * ../maintainer-scripts/gcc_release: Revert to trunk.
1954         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1955           was missed in a previous merge with the trunk.
1956         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1957           procedure.
1958         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1959           in addition to ARRAY_TYPE.
1960         * c-typeck.c: Remove an extra newline character.
1961         * varasm.c: Revert a fix that improved an error message
1962           when TLS common data is unimplemented.
1963         * varasm.c: Revert a gcc_assert that had been added which
1964           checked for a null DECL_SIZE_UNIT field.
1965         * emultls.c: Revert to trunk. Remove possible fix.
1966         * Makefile.in: Revert extra blank line that is present
1967           in the trunk version.
1968         * Makefile.in: Revert a fix that handled long shell
1969           argument lists for plugin headers.
1970         * config/ia64/ia64.opt: Revert an option setting
1971           that increased the default TLS address range.
1972         * config/ia64/crtbegin.asm: Revert to trunk.
1973           Removes an extra newline character.
1974         * ChangeLog.upc: Spell check.
1976 2011-05-03  Gary Funck  <gary@intrepid.com>
1978         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1979           (c_apply_type_quals_to_decl): Ditto.
1980         * c-family/c-common.h: Ditto.
1981         * dojump.c: Ditto.
1982         * c-decl.c (merge_decls): Ditto.
1983         * c-typeck.c (qualify_type, default_conversion,
1984           build_component_ref, build_unary_op,
1985           c_build_qualified_type): Ditto.
1986         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1988 2011-04-29  Gary Funck  <gary@intrepid.com>
1990         * c-decl.c (finish_decl): Improve error diagnostics.
1991           (grokdeclarator): Ditto.
1992         * c-typeck.c (build_c_cast): Improve error diagnostics.
1993           (convert_for_assignment): Ditto.
1994           (build_binary_op): Ditto.
1995         * c-parser.c (c_parser_upc_forall_statement):
1996           Improve error diagnostics.
1997         * convert.c (convert_to_integer):  Improve error diagnostics.
1999 2011-04-24  Gary Funck  <gary@intrepid.com>
2001         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2002           occurred if there is an error in the barrier id
2003           expression.  Map error_mark_node into NULL.
2005 2011-04-22  Gary Funck  <gary@intrepid.com>
2007         Merge trunk version 172873 into gupc branch.
2009 2011-04-19  Gary Funck  <gary@intrepid.com>
2011         Merge trunk version 172359 into gupc branch.
2013 2011-04-14  Gary Funck  <gary@intrepid.com>
2015         * c-family/c.opt: Add UPC as a valid language for various
2016           switches where it is valid for "C", that were not updated
2017           in previous merges with trunk.
2019 2011-04-13  Gary Funck  <gary@intrepid.com>
2021         * c-family/c.opt (fupc-pre-include): New option definition.
2022         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2023           -fno-upc-pre-include is asserted.
2025 2011-04-07  Gary Funck  <gary@intrepid.com>
2027         Merge trunk version 172158 into gupc branch.
2028         to bring in the following fix.
2030 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2032         PR bootstrap/48403
2033         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2034         if old and new states differ.
2036 2011-04-06  Gary Funck  <gary@intrepid.com>
2038         Merge trunk version 171966 into gupc branch.
2040 2011-04-01  Gary Funck  <gary@intrepid.com>
2042         * tree.h (tree_base): Move UPC flag bits into bit fields
2043           located just before spare bits.  Decrement spare bits.
2044           Rename 'shared_flag' -> 'upc_shared_flag',
2045           'relaxed_flag' -> 'upc_relaxed_flag',
2046           'strict_flag' -> 'upc_strict_flag, and adjust macros
2047           that reference them accordingly.
2049 2011-04-01  Gary Funck  <gary@intrepid.com>
2051         * c-decl.c (grokdeclarator): Fix formatting of
2052           code that sets UPC block size on scalars.
2054 2011-04-01  Gary Funck  <gary@intrepid.com>
2056         * c-decl.c (grokdeclarator): Revert use of white space
2057           to match the trunk (to rationalize diffs).
2058         * c-typeck.c (convert_for_assignment): Ditto.
2059         * tree-ssa.c (useless_type_conversion_p): Ditto.
2061 2011-03-23  Gary Funck  <gary@intrepid.com>
2063         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2064           the GCC 4.6 release branch.
2066 2011-03-21  Gary Funck  <gary@intrepid.com>
2068         Merge trunk version 171202 into gupc branch.
2070 2011-03-20  Gary Funck  <gary@intrepid.com>
2072         * varasm.c: Call error() directly with a format specifier,
2073           rather than using sprintf() to format the message.
2074           This should make it easier to internationalize UPC's error messages.
2076 2011-03-20  Gary Funck  <gary@intrepid.com>
2078         * configure.ac: Fix the check for gnu ld when enabling
2079           UPC link script support.
2080           configure: Regenerate (also picks up changes from previous
2081           merge with trunk).
2083 2011-03-20  Gary Funck  <gary@intrepid.com>
2085         Move UPC start files, end files, and linker specs.
2086         into libupc.  This reduces the impact on common GCC
2087         configuration files, and ensures that these UPC-specific
2088         components are only built when the UPC language dialect is selected.
2089         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2090           linker specs. Fix typo in -fupc-debug message.
2091         * config/upc-conf.h, config/darwin.h: Move defines for
2092           UPC-related section begins/ends into libupc/config/default/
2093           upc-crt-config.h.
2094         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2095           UPC-related linker compiler specifications,
2096           accessed via %:include().
2097         * configure.ac, configure: Remove logic related to building
2098                 upc-crtbegin/end. Remove config. tests for numa and cpu
2099           affinity (previously used by the 'upc' driver); these
2100           settings are now propagated by target-specific compiler
2101           specs. built by libupc.  Regenerate autoconf.
2102         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2103           linker compiler specifications, accessed via %:include().
2104           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2105           'link_upc_spec'.
2106         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2107         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2108           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2109           config/ia64/linux.h, config/mips/t-iris,
2110           config/mips/iris6.h: Revert to trunk version 167307.
2111         libgcc/
2112         * configure, configure.ac, config.host, Makefile.in:
2113           Revert to trunk version 167307.
2115 2011-02-23  Gary Funck  <gary@intrepid.com>
2117         * c-decl.c (undeclared_variable): fix typo. Inadvertently
2118         removed negation on following 'if'.
2120 2011-02-22  Gary Funck  <gary@intrepid.com>
2122         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2123         to check for the usage of certain deprecated UPC keywords.
2124         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2125         * c-tree.h (undeclared_variable): Define prototype.
2127 2011-02-12  Gary Funck  <gary@intrepid.com>
2129         * c-typeck.c: (build_c_cast, convert_for_assignment)
2130           Diagnose an attempt to convert from an integer to
2131           a pointer-to-shared as an error.  Also, fix various
2132           error messages so that they use the preferred term
2133           pointer-to-shared instead of "shared pointer".
2135 2011-02-07  Gary Funck  <gary@intrepid.com>
2137         * c-typeck.c: (convert_for_assignment)
2138           Fix typo. in error message.
2140 2011-01-23  Gary Funck  <gary@intrepid.com>
2142         * c-typeck.c: (c_build_qualified_type)
2143           derive UPC block size by calling upc_get_block_size(),
2144           to ensure that the element type of an array of an array
2145           is derived correctly.
2147 2010-12-29  Gary Funck  <gary@intrepid.com>
2149         Merge trunk version 168314 into gupc branch.
2151 2010-12-15  Gary Funck  <gary@intrepid.com>
2153         Merge trunk version 167307 into gupc branch.
2155 2010-10-19  Gary Funck  <gary@intrepid.com>
2157         * c-typeck.c: Fix typo in previous fix
2158           which led to a mis-compare for equal block sizes.
2160 2010-10-18  Gary Funck  <gary@intrepid.com>
2162         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2163           diagnosed as an error
2164           The conversion from any type (shared or not) to
2165           a shared type is likely either meaningless or an error.  This update
2166           makes any conversion to a shared type, an error.
2168 2010-10-18  Gary Funck  <gary@intrepid.com>
2170         * c-typeck.c: Fix bug: passing int to shared pointer arg.
2171           generates spurious warning
2172           Add a #define procedure that does the same thing as
2173           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
2174           this procedure to diagnose passing an integer value to a
2175           pointer-to-shared as an error.
2177 2010-10-18  Gary Funck  <gary@intrepid.com>
2179         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2180           matching routine declaration.
2181           When checking for type compatibility, shared qualified types must
2182           have the same block factor.  This check was missing from
2183           comptypes_internal().  This update adds the check for blocking
2184           factor equality.
2186 2010-10-17  Gary Funck  <gary@intrepid.com>
2188         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2189           found (-O1 -g)
2190           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2192 2010-10-17  Gary Funck  <gary@intrepid.com>
2194         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2195           45869 - [4.5/4.6 Regression] type mismatch in shift expression
2196           produces ice with -O3 and -m32.
2197           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2199 2010-10-17  Gary Funck  <gary@intrepid.com>
2201         * c-common.c: Diagnose the application of the various "*sizeof"
2202           operations on generic pointer-to-shared as a compilation error.
2204 2010-10-17  Gary Funck  <gary@intrepid.com>
2206         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2207           message regarding a function parameter being declared with a shared
2208           qualifier.
2209           The parameter's 'name' value is not defined at this point, and
2210           cannot be used in the error message.  This update removes the
2211           reference to 'name', and eliminates the segfault.
2213 2010-10-16  Gary Funck  <gary@intrepid.com>
2215         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2216           The gcc/Makefile.in rules for install-plugin had to be re-written to
2217           break up a long list of header files that exceeded the command line
2218           limitation imposed by Irix.
2219           Access functions for TFmode types had to be implemented.
2220           Apparently, this is the mode used for the SGI/MIPS port to represent
2221           "long float".
2223 2010-10-14  Gary Funck  <gary@intrepid.com>
2225         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2226           via typedef chain should not be diagnosed as an error.
2227           If the block size that is given by the typedef is equal to the block
2228           size given explicitly in the variable declaration, then do not
2229           complain.  The easiest way to make this check was to create a
2230           temporary type that is a clone of the element type and then set its
2231           block size using the given layout qualifier.  Then compare the block
2232           size of the temporary (the declaration) to the block size specified
2233           in the typedef.  This complexity is needed, because the '[*]' block
2234           size needs to be calculated, and the '[]' needs to be mapped into a
2235           zero block size.
2237 2010-10-10  Gary Funck  <gary@intrepid.com>
2239         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2240           specified
2241           The compiler properly detected the presence of two or more layout
2242           qualifiers as an error, but then hit an assertion check, because the
2243           code that followed the error expected to see a qualifier and not a
2244           layout specifier.  The fix is simple: just return immediately after
2245           detecting the error.
2247 2010-10-10  Gary Funck  <gary@intrepid.com>
2249         * c-decl.c: Improve error diagnostics for various cases of UPC
2250           shared array type declarations.
2251           Add the check for this error: "In the dynamic translation
2252           environment, THREADS may not appear in declarations of shared arrays
2253           with indefinite block size".  Also, fix up a few of the other
2254           related error diagnostics.
2256 2010-10-09  Gary Funck  <gary@intrepid.com>
2258         * c-common.c: Fix bug: segfault on incomplete array definition.
2259           This turned out to be a bit complicated.   The logic in
2260           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2261           the THREADS identifier in the case where the blocking factor has
2262           been set to indefinite ([]).  This can happen when indefinite array
2263           declarations are processed for shared arrays.  At that time, the
2264           file scope has been closed and THREADS is no longer in scope.  Some
2265           more work is needed on upc_lang_layout_decl().  It has some
2266           duplication, and notably duplicates the two branches of the if
2267           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2268           caller of this routine (layout_decl()).
2269           The method of forcing a layout qualifier of [] in the indefinite
2270           declaration handler is odd a well.  The code that just does the
2271           setting of the block factor, needs to moved into its own routine
2272           that doesn't depend upon a declspec for '[]' to be passed in, just
2273           in order to set the blocking factor to some value (in this case, 0).
2274           Also, the logic for how that shared type is constructed is strange.
2275           First the type with 0 blocking factor is set.  Then the shared
2276           qualifier is removed from the type, and then added back later.  The
2277           intermediate type has a blocking factor set, but it has no shared
2278           qualifier.  Fixing this will require some thought.  It is tempting
2279           just to make indefinite shared arrays an error, rather than forcing
2280           the dimension to be '1'.
2281           This likely fixes a serious error in the previous update to
2282           upc_lang_layout_decl(), where it didn't have the logic to set
2283           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2284           the previous update would fail on many tests.
2286 2010-10-09  Gary Funck  <gary@intrepid.com>
2288         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2289           (decl) is null, which can happen if some layout error occurred
2290           upstream.
2292 2010-10-09  Gary Funck  <gary@intrepid.com>
2294         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2295           "variable-sized" when compiled in dynamic threads.
2296           This long-standing bug is easily fixed.  Just check
2297           for the situation that the non-constant sized type is shared and
2298           that it does not have a dimension that references a multiple of
2299           threads.  If this criteria is met, then issue a meaningful
2300           diagnostic.
2302 2010-10-01  Gary Funck  <gary@intrepid.com>
2304         * configure, configure.ac: Update manual page, and bug reporting
2305           URL.  Update "man" page to reflect debugging switches.
2306           Also, some general clean up.  Change the bug reporting
2307           URL to point to gccupc.org.
2309 2010-09-27  Gary Funck  <gary@intrepid.com>
2311         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2312           the UPC forall depth count variable is not found.
2313           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2314           The compiler will generate code that references this variable in
2315           order to implement nested upc_forall semantics.  If there is a
2316           compiler build or install problem, this variable may not be found.
2317           In this case, terminate with an internal_error().
2319 2010-09-26  Gary Funck  <gary@intrepid.com>
2321         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2322           mis-diagnosed as syntax error.
2323           Fix a failure exhibited by the Berkeley test case,
2324           bug873a.upc, which has the code:
2325                double d;
2326                upc_forall (;;;d) {...} The compiler did not properly handle
2327           the empty "condition" clause, and did not recover well when it was
2328           determined that the use of a double value, "d" above, was neither a
2329           pointer-to-shared nor an integer expression.  The update implements a
2330           fix for both issues.
2331           See also: gcc/c-parser.c gcc/upc/upc-act.c
2333 2010-09-23  Gary Funck  <gary@intrepid.com>
2335         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2336           incorporated into the referencing type.
2337           This was semi-fixed a few times before.  This update fixes a few
2338           more places where the layout qualifier wasn't being propagated
2339           through typedef's properly.  What made this a bit tricky is shown in
2340           the example cited in the bug report:
2341           typedef shared [5] int A_t; A_t A[5*THREADS];
2342           In the typedef, the blocksize is being applied to a shared *scalar*,
2343           and the code was applying the blocksize only to arrays.  This update
2344           handles shared scalars correctly.
2346 2010-09-22  Gary Funck  <gary@intrepid.com>
2348         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2349           upc_forall() semantics are not implemented
2350           The checkforall test in the Berkeley harness test suite indicated
2351           that GCC/UPC was not properly implementing nested upc_forall
2352           semantics.  Nested upc_forall statements (both statically or
2353           dynamically nested) must implement their affinity clause as if it
2354           were "continue"; thus all steps in the loop must execute without
2355           regard for affinity.  To implement these semantics a global depth
2356           counter, __upc_forall_depth, is maintained by the generated code
2357           that implements upc_forall.
2358           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2359           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2360           libupc/include/upc.h libupc/smp/upc_main.c
2362 2010-09-19  Gary Funck  <gary@intrepid.com>
2364         * c-decl.c: c-decl.c: zero out the layout specifier, after
2365           processing an array type.
2366           Fix the previous fix, that moved the setting of the type's layout
2367           qualifier to the outside of the array type processing loop.  What is
2368           missing from the fix is that the layout_qualifier variable needs to
2369           be cleared after setting the type's blocksize.
2371 2010-09-19  Gary Funck  <gary@intrepid.com>
2373         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2374           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2375           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2376           the actual maximum block size.  Therefore, the message was correct,
2377           but the underlying value that was being checked was wrong.  Change
2378           the values so that they agree with the actual implementation-defined
2379           limit.
2381 2010-09-11  Gary Funck  <gary@intrepid.com>
2383         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2384           multi-dimensional shared array with dynamic threads.
2385           This declaration caused an internal compiler error when compiled
2386           with dynamic threads:
2387               shared [*] int A[THREADS][16]; The bug was discovered when
2388           compiling the RTED_UPC test suite.
2389           The fix is to process layout qualifiers after the entire array type
2390           has been built.  Otherwise, we try to calculate the blocksize on a
2391           shared array type that has not had its "size depends upon the value
2392           of THREADS" flag set.
2393           Also, added a test case.
2394           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2396 2010-07-11  Gary Funck  <gary@intrepid.com>
2398         Fix a bug where a statement in c_build_qualified_type()
2399         in the trunk had been inadvertently deleted.
2400         This bug showed up in the IA64 port, because jmpbuf's
2401         on that architecture must be 16 byte aligned, and they were not.
2402         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2404 2010-07-08  Gary Funck  <gary@intrepid.com>
2406         Make changes so that other language compilers
2407         will build and bootstrap.
2408         * c-family/c-common.c (compiling_upc, flag_upc,
2409         flag_upc_instrument, flag_upc_instrument_functions,
2410         use_upc_dwarf2_extensions): Move to stub-upc.c and
2411         upc-lang.c.
2412         * c-family/c-common.h (use_upc_dwarf2_extensions,
2413         compiling_upc): Add extern definitions - needed
2414         to compile/build other language front ends.
2415         * c-family/c.opt: Fix the spelling of ObjC.
2416         It had been incorrectly spelled as Objc.
2417         * c-family/c.opt: Add UPC for the various switches
2418         that are valid for both C and ObjC.
2419         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2420         supported options switches when compiling assembly
2421         language.
2422         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2423         flag_upc_instrument, flag_upc_instrument_functions):
2424         Remove these definitions.  They have been moved
2425         to c-family/stub-upc.c.
2426         * upc/ChangeLog: Move relevant entries
2427         to ChangeLog.upc.
2428         * c-family/stub-upc.c (compiling_upc, flag_upc,
2429         flag_upc_instrument, flag_upc_instrument_functions,
2430         use_upc_dwarf2_extensions): Moved from c-common.c
2431         * upc/upc-lang.c (compiling_upc, flag_upc,
2432         flag_upc_instrument, flag_upc_instrument_functions,
2433         use_upc_dwarf2_extensions): Moved from c-common.c
2434         * objc/objc-act.c (objc_gimplify_expr): Add additional
2435         parameters to c_gimplify_expr() call, that are used
2436         by upc's tree rewrites.
2437         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2438         * gcc/cp/lex.c (init_reswords): If not compiling
2439         UPC, then mask off the UPC keywords.
2440         * cp/Make-lang.in (C_STUB_OBJS): Use this
2441         make macro to link with c-family/stub-objc.o
2442         and c-family/stub-upc.o.
2443         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2444         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2445         * objc/Make-lang.in: Link with c-family/stub-upc.o
2446         to avoid undefined references.
2447         c-parser.c: Fix line indentation.
2448         * libcpp/include/cpplib.h: Remove CL_UPC from
2449         the list of language kinds accepted by the
2450         C preprocessor.  This is not necessary because
2451         UPC is a derivative of C99, and does not need
2452         a different language kind.
2453         * c-fmaily/c-opts.c (c_common_handle_option):
2454         Call set_std_c99() when processing the
2455         "--lang upc" switch, instead of setting the
2456         language kind to CL_UPC.
2457         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2459 2010-07-03  Gary Funck  <gary@intrepid.com>
2461         Merge trunk version 161517 into gupc branch.
2462         * gcc/stub-upc.c: Move to gcc/c-family/.
2463         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2464         Add 'unused' attributes to avoid "set, but
2465         not referenced" warnings.
2466         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2467         Likewise.
2469 2010-03-01  Gary Funck  <gary@intrepid.com>
2471         Create gupc branch from trunk version 157149.
2473 2011-10-04  Gary Funck  <gary@intrepid.com>
2475         Merge trunk version 179421 into gupc branch.
2476         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
2477         argument to the call to check_qualified_type().
2479 2011-09-22  Gary Funck  <gary@intrepid.com>
2481         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
2482         information.
2483         (dump_upc_type_quals): New.
2485 2011-09-22  Gary Funck  <gary@intrepid.com>
2487         * upc/upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
2488         before calling TYPE_BLOCK_FACTOR().  This fits better with
2489         recent encoding of block factor values with a hash table.
2491 2011-09-15  Nenad Vukicevic  <nenad@intrepid.com>
2493         Add to FLAGS the flags needed to disable inlining of
2494         UPC run-time access routines.
2495         * testsuite/lib/target-supports.exp
2496         (add_options_for_upc_library_calls): New.
2498 2011-09-15  Gary Funck  <gary@intrepid.com>
2500         Fix ICE involving shared bit field accesses.
2501         * tree.c (build3_stat): Propagate TEEE_SHARED()
2502         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
2504 2011-09-15  Gary Funck  <gary@intrepid.com>
2506         Fix ICE involving shared bit field accesses.
2507         * upc/upc-genericize.c (upc_simplify_shared_ref): Improve
2508         "shared bit fields not yet implemented" error message
2509         by adding file/line number location.
2511 2011-09-13  Gary Funck  <gary@intrepid.com>
2513         Merge trunk version 178795 into gupc branch.
2514         Incorporates fix to PR bootstrap/50010 for x86-32.
2516 2011-09-13  Gary Funck  <gary@intrepid.com>
2518         * upc/upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
2519         * upc/upc-lang.c (upc_init_options): Ditto.
2520         * upc/upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
2521         upc_genericize_expr, upc_genericize_compound_expr): Ditto.
2522         * upc/upc-act.c (upc_parse_init, upc_build_pointer_type,
2523         upc_block_factor_insert, upc_pts_is_valid_p): Ditto.
2525 2011-09-08  Gary Funck  <gary@intrepid.com>
2527         Merge trunk version 178557 into gupc branch.
2529 2011-09-07  Gary Funck  <gary@intrepid.com>
2531         Ensure that UPC pointer-to-shared type alignment is
2532         propagated to the final type.  Revert to long-standing
2533         alignment policy: twice the size of a "C" pointer.
2534         * tree.c (build_pointer_type): Propagate the alignment
2535         of the UPC pointer-to-shared representation type
2536         into the newly built pointer type.
2538 2011-09-07  Gary Funck  <gary@intrepid.com>
2540         Ensure that UPC pointer-to-shared type alignment is
2541         propagated to the final type.  Revert to long-standing
2542         alignment policy: twice the size of a "C" pointer.
2543         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
2544         shared pointers have twice the alignment of a pointer.
2545         * upc/upc-act.c (upc_cpp_builtins): Unconditionally emit
2546         the definition of __UPC_PTS_ALIGN__.
2548 2011-09-02  Gary Funck  <gary@intrepid.com>
2550         Align UPC pointers-to-shared, only if the target enforces
2551         strict alignment.
2552         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Align a
2553         UPC pointer-to-shared type, only if the target requires
2554         strict alignment.
2555         * upc/upc-act.c (upc_cpp_builtins): Output pre-defined macro,
2556         __UPC_PTS_ALIGN__, only if the target requires strict alignment.
2558 2011-08-30  Gary Funck  <gary@intrepid.com>
2560         * tree.h (check_qualified_type): Change 'const_tree'
2561         argument types back to 'tree' to avoid complaints
2562         of assignment drops qualifiers for invocations of the
2563         newly implemented TYPE_BLOCK_FACTOR() macro, which
2564         invokes hash functions with 'tree' pointer values that
2565         are not const qualified.
2566         * tree.c (check_qualified_type, check_aligned_type): Ditto.
2567         * c-typeck.c (comptypes_internal): Ditto.
2569 2011-08-29  Gary Funck  <gary@intrepid.com>
2571         Fixes for regressions noted running "make check"
2572         versus GCC trunk.
2573         * fold-const.c (fold_unary_loc): Execute UPC-specific
2574         checks for a cast-of-a-cast, only if one of the
2575         operands is a UPC pointer-to-shared value.
2576         * opts.c (print_specific_help):  Fix a comparison
2577         in an assert that checks that there are enough
2578         bits reserved for the number of languages defined
2579         in the .opt files.
2581 2011-08-29  Gary Funck  <gary@intrepid.com>
2583         Implement a hash table to record UPC block factors.
2584         * c-family/stub-upc.c (upc_block_factor_insert,
2585         upc_block_factor_lookup): New dummy stub procedures.
2586         * c-family/c-common.c (c_sizeof_or_alignof_type):
2587         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2588         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
2589         to copy (hashed) UPC blocking factor.
2590         (set_type_quals): Likewise.
2591         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2592         TYPE_HAS_THREADS_FACTOR().
2593         (type_common.block_factor): Delete.
2594         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
2595         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
2596         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
2597         UPC blocking factors greater than one.
2598         * dwarf2out.c (modified_type_die): Re-implement
2599         logic that records UPC blocking factor in the generated
2600         DWARF2 debugging information.
2601         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2602         TYPE_HAS_THREADS_FACTOR().
2603         * c-decl.c (finish_decl, grokdeclarator):
2604         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2605         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
2606         used by UPC, and print UPC-specific information.
2608 2011-08-29  Gary Funck  <gary@intrepid.com>
2610         Implement a hash table to record UPC block factors.
2611         * upc/upc-act.c (upc_block_factor_for_type): New garbage-collected
2612         hash table.
2613         (upc_lang_init, upc_finish): Move to end of source file.
2614         (upc_lang_init): create  upc_block_factor_for_type hash table.
2615         (upc_block_factor_lookup, upc_block_factor_insert): New.
2616         (upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
2617         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2618         (upc_grok_layout_qualifier): convert blocking factor to sizetype
2619         before checking for equality to element type's blocking factor.
2621 2011-08-28  Gary Funck  <gary@intrepid.com>
2623         Re-work the type machinery to fully support and to unify support
2624         for the UPC layout qualifier (blocking factor).
2625         * c-family/stub-upc.c (upc_set_block_factor): Delete.
2626           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
2627           and update prototype.
2628         * c-family/c-common.c (complete_array_type): call newly
2629           defined c_build_qualified_type_1() instead of
2630           upc_set_block_factor().
2631         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
2632           upc_apply_layout_qualifier() and update prototype.
2633           (upc_set_block_factor): Delete prototype.
2634         * c-family/c-common.h (c_build_qualified_type): redefine
2635           as a pre-processor macro that invokes c_build_qualified_type_1()
2636           with a null UPC layout qualifier.
2637           (c_build_qualified_type_1): New.  Add layout qualifier argument
2638           to old c_build_qualified_type() prototype.
2639         * tree.c (set_type_quals, check_qualified_type):
2640           Add layout qualifier as argument.
2641           (check_aligned_type): Add check for UPC block factor equality.
2642           (get_qualified_type_1): Rename from get_qualified_type() and
2643           add layout qualifier as argument.
2644           (build_qualified_type_1): Rename from build_qualified_type() and
2645           add layout qualifier as argument.
2646         * tree.h (check_qualified_type): Add layout qualifier as argument
2647           to the prototype.
2648           (get_qualified_type): Re-define as a as a pre-processor macro
2649           that invokes get_qualified_type_1() with a null
2650           UPC layout qualifier.
2651           (get_qualified_type_1): Rename from get_qualified_type() and
2652           add layout qualifier as argument.
2653         * cp/tree.c (c_build_qualified_type_1): Rename from
2654           c_build_qualified_type() and add (unused) layout qualifier
2655           argument.
2656         * c-decl.c (finish_decl): re-format long error messages.
2657           (grokdeclarator): Re-work the logic so that it calls
2658           upc_grok_layout_qualifier() to handle the UPC layout
2659           qualifier, if present.
2660         * c-typeck.c (qualify_type, common_pointer_type,
2661           build_component_ref): Re-work the logic so that it calls
2662           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
2663           if present.
2664           (c_build_qualified_type_1): Rename from c_build_qualified_type()
2665           and add layout qualifier argument.
2666         * print_tree.c (print_node): Re-format a long line.
2668 2011-08-28  Gary Funck  <gary@intrepid.com>
2670         Re-work the type machinery to fully support and to unify support
2671         for the UPC layout qualifier (blocking factor).
2672         * upc/upc-genericize.c (upc_simplify_shared_ref): Call
2673         c_build_qualified_type_1() instead of upc_set_block_factor()
2674         to assert a zero blocking factor.
2675         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Call
2676         c_build_qualified_type_1() to build predefined shared
2677         qualified types, instead of build_variant_type_copy().
2678         * upc/upc-pts-packed.c (upc_pts_packed_init_type): Call
2679         c_build_qualified_type_1() to build predefined shared
2680         qualified types, instead of build_variant_type_copy().
2681         * upc/upc-act.c (upc_set_block_factor): Delete.
2682         (upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
2683         Rework logic so that it returns a blocking factor rather than
2684         a qualified type.  Add 'loc' argument and call error_at().
2685         Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
2686         the block size of the element type into the result type, and checks
2687         for errors due to an attempt to merge differing blocking factors.
2689 2011-08-26  Gary Funck  <gary@intrepid.com>
2691         Merge trunk version 177949 into gupc branch.
2692         * c-family/c-common.h (enum rid): Bump the number of type modifiers
2693           in the comment.
2694         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
2695           to add new rliterals column value.
2697 2011-08-26  Gary Funck  <gary@intrepid.com>
2699         * convert.c (convert_to_integer): Fix the check for the
2700           difference between two UPC pointers-to-shared values.
2702 2011-08-23  Nenad Vukicevic  <nenad@intrepid.com>
2704         * configure.ac: Fix the name for --with-upc-pts-packed-bits
2705           option. Support --with-upc-packed-bits as deprecated. Fix the code to
2706           correctly check packed bits.
2707         * configure: Re-generate.
2709 2011-08-16  Gary Funck  <gary@intrepid.com>
2711         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
2712           the barrier id expression is not an integer expression.
2714 2011-08-16  Gary Funck  <gary@intrepid.com>
2716         * upc/upc-act.c (upc_decl_init): Do not attempt to expand
2717           an error mark node.  Fixes ICE after error diagnostic.
2718         * upc/upc-cmd.c (main): detect missing option argument for
2719           options that require an argument, and print error diagnostic.
2720           (get_print_cmd): Re-direct error output to /dev/null to
2721           avoid issuing duplicate error messages.
2723 2011-08-12  Gary Funck  <gary@intrepid.com>
2725         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
2726           (revert to trunk).
2727         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
2728           Set mode of UPC pointer-to-shared rep. to an
2729           integral mode of size at least as large as the
2730           size of the representation's struct type.
2732 2011-08-12  Gary Funck  <gary@intrepid.com>
2734         Rework/simplify the UPC genericize pass.
2735         * c-family/stub-upc.c (upc_apply_layout_qualifier,
2736           upc_build_pointer_type): New.
2737           (upc_set_block_factor): Adjust to new calling sequence.
2738           (upc_build_shared_var_addr): Delete.
2739         * c-family/c-common.c (complete_array_type): Adjust call
2740           to upc_set_block_factor().
2741         * c-family/c-upc.h (upc_apply_layout_qualifier,
2742           upc_build_pointer_type): New.
2743           (upc_build_shared_var_addr): Delete.
2744           (upc_set_block_factor): Adjust to new calling sequence.
2745         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
2746         * c-decl.c (grokdeclarator): Call newly defined
2747           upc_apply_layout_qualifier() instead of upc_set_block_factor().
2748         * c-decl.c (grokdeclarator): Split long UPC-related error
2749           messages into two lines.
2750         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
2751           directly.  Revert that change to trunk. (upc_genericize() will
2752           handle lowering the expressions that take the address of a
2753           UPC variable).
2754         * config/i386/i386.c (ix86_promote_function_mode): For UPC
2755           pointers-to-shared, return the type mode of the UPC pointer-to-shared
2756           representation type.
2758 2011-08-12  Gary Funck  <gary@intrepid.com>
2760         Rework/simplify the UPC genericize pass.
2761         * upc/upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
2762         * upc/upc-act.h: Cosmetic change.
2763         * upc/config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
2764         * upc/upc-genericize.c (upc_expand_get):
2765           Add WANT_STABLE_VALUE parameter.
2766           (upc_build_shared_var_addr, upc_shared_addr_rep): New.
2767           (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
2768           create_unshared_var, lookup_unshared_var, map_unshared_var,
2769           unshared_var_addr, unshared_var_name,
2770           upc_free_unshared_var_table): Move from upc-act.c.
2771           (upc_expand_get, upc_expand_put): Change their source and/or
2772           destination parameters so that they are no longer addresses
2773           of the objects, but rather references to the objects themselves.
2774           (upc_simplify_shared_ref): Rewrite (simplify/generalize).
2775           (upc_shared_addr_rep): New.
2776           (upc_shared_addr):  Adjust call to upc_build_shared_var_addr(),
2777           and re-factor the logic.
2778           (upc_genericize_sync_stmt): Re-format comment.
2779           (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
2780           (upc_genericize_addr_expr): Re-factor the logic.
2781           (upc_genericize_indirect_ref, upc_genericize_field_ref):
2782           Adjust call to upc_expand_get() and re-factor the logic.
2783           (upc_genericize_modify_expr): Adjust call to upc_expand_put()
2784           and re-factor the logic.
2785           (upc_genericize_expr): Improve/fix comments.
2786           (upc_genericize_finish, upc_genericize_init): New.
2787         * upc/upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
2788           (upc_char_pts_type_node): Create new global type node.
2789           (upc_pts_struct_is_null_p): Generalize variable names to
2790           reflect the fact that the vaddr field can be either first/last.
2791           (upc_pts_struct_build_sum): Make corrections to comments.
2792           (upc_pts_struct_build_add_offset): Delete.
2793         * upc/upc-genericize.h (upc_genericize_finish, upc_genericize_init):
2794           New prototypes.
2795         * upc/upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
2796           (upc_char_pts_type_node): Create new global type node.
2797         * upc/Make-lang.in: Add dependencies to gtype-upc.h
2798           and gt-upc-upc-genericize.h.
2799         * upc/upc-act.c: Adjust includes to reflect moving the functions
2800           that handle the UPC unshared "shadow variables" into
2801           upc-genericize.c.  Improve/fix various comments.
2802         * upc/upc-act.c (upc_parse_init): Call upc_genericize_init().
2803           (upc_build_pointer_type): New.
2804           (upc_set_block_factor): Re-purpose.  Move the front-end
2805           related error checks into upc_apply_layout_qualifier().
2806           (upc_apply_layout_qualifier): New.
2807           (upc_write_global_declarations): Call upc_genericize_finish().
2809 2011-08-10  Gary Funck  <gary@intrepid.com>
2811         Implement additional fixes for recent merge with trunk.
2812         * explow.c (promote_mode): Do not attempt to promote
2813           the mode for UPC pointer-to-shared types.
2814         * config/i386/i386.c (function_value_64): Ditto.
2816 2011-08-07  Gary Funck  <gary@intrepid.com>
2818         Merge trunk version 177548 into gupc branch.
2819         * config/i386/i386.c (ix86_promote_function_mode):
2820           Do not promote UPC pointers-to-shared to Pmode.
2821         * c-family/c-ommon.c (pointer_int_sum):
2822           Also check the pointer operand, rather than just
2823           its type, when making the decision to derive
2824           the equivalent unshared type.
2825         * tree.c (build2_stat): If the type of the result
2826           passed in as an argument is a UPC shared type,
2827           derive the unshared equivalent when calculating
2828           the result type of the node.
2830 2011-07-15  Nenad Vukicevic  <nenad@intrepid.com>
2832         * config/darwin.c: Disable var_tracking option
2833           on -O0 as it is supposed to run only when optimization
2834           is applied. See GCC bug 49743.
2836 2011-07-11  Gary Funck  <gary@intrepid.com>
2838         * upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
2839         qualification was incorrectly derived from the source operand.
2840         (upc_genericize_fndecl): New.
2841         (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
2842         c_genericize() more than once in the event of nested procedures.
2843         (upc_genericize_real_imag_ref): Rename,
2844         was: upc_genericize_real_image_ref.
2845         (upc_expand_put): call internal_error() with meaningful message
2846         in lieu of abort().
2847         (upc_genericize_real_imag_ref): call internal_error() with
2848         meaningful message in lieu of gcc_unreachable().
2850 2011-07-06  Gary Funck  <gary@intrepid.com>
2852         Re-implement the pass that lowers trees generated by
2853         the UPC front-end into GENERIC.  Previously this was
2854         done within the gimplification framework, but this
2855         required that gimplification be run before inlining
2856         and various other passes, which did not fit in well
2857         with the current design of the middle-end passes.
2858         Now, the lowering is done by a newly defined language
2859         specific genericize hook.  With this change, we are
2860         are able to undo some extensions made to the gimplify
2861         logic, and thus can revert several files to trunk.
2862         * c-decl.c: Add a check for UPC deprecated names which
2863           may appear as undefined function names.
2864         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
2865           LTI_upc_getaddr): Remove definitions of unused UPC
2866           library function names.  These were defined back when
2867           the libfunc interface was used to call these routines.
2868         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
2869           in UPC lowering (genericize) pass.
2870         * langhooks.h (gimplify_expr): Revert to trunk's definition.
2871           (instrument_func): Delete this hook.  Now handled in
2872           upc_genericize().
2873         * tree-pass.h: Revert to trunk.
2874         * c-typeck.c (build_unary_op): Adjust reference to
2875           upc_genericize() in a comment.
2876         * gimplify.c (create_tmp_var_raw): Delete logic that
2877           was converting UPC shared types into unshared types
2878           to be used for temporaries.  Now handled in  upc_genericize().
2879           Replace with an assertion check.
2880           (prepare_gimple_addressable): Revert to trunk's definition.
2881           No longer needed as an externally called function.
2882           (flag_instrument_functions_exclude_p): Re-define as
2883           an externally called function.
2884           (gimplify_function_tree): Delete code that implemented
2885           call to UPC's language specific function instrumentation hook.
2886         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
2887           (prepare_gimple_addressable): Delete extern definition;
2888           revert to trunk's definition.
2889         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
2890           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
2891         * c-family/c-gimplify.c: Revert to trunk.
2892         * cp/cp-gimplify.c: Revert to trunk.
2893         * cp/cp-tree.h: Revert to trunk.
2894         * explow.c: Revert to trunk.
2895         * langhooks.c: Revert to trunk.
2896         * libfuncs.h: Revert to trunk.
2897         * objc/objc-act.c: Revert to trunk.
2899 2011-07-06  Gary Funck  <gary@intrepid.com>
2901         Improve/simplify the logic in upc_genericize.
2902         * upc/upc-genericize.c (upc_create_tmp_var): Delete the
2903           PREFIX argument.  Aways use "UPC" as the prefix.
2904           (upc_genericize_compound_expr): Add a WANT_VALUE argument.
2905           (upc_genericize_cond_expr): New.
2906           (upc_genericize_decl_expr): New.
2907           (upc_genericize_stmt): New.
2908           (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
2909           to upc_create_tmp_var().
2910           (upc_genericize_expr): Change the handling
2911           of the want_value flag passed in the DATA argument.
2912           Always assert this flag after processing EXPR_P.
2913           (upc_genericize_compound_expr): Adjust call
2914           to upc_genericize_compound_expr() and call
2915           upc_genericize_cond_expr() and upc_genericize_decl_expr().
2917 2011-07-06  Gary Funck  <gary@intrepid.com>
2919         Re-implement the pass that lowers trees generated by
2920         the UPC front-end into GENERIC.  Previously this was
2921         done within the gimplification framework, but this
2922         required that gimplification be run before inlining
2923         and various other passes, which did not fit in well
2924         with the current design of the middle-end passes.
2925         Now, the lowering is done by a newly defined language
2926         specific genericize hook.  With this change, we are
2927         are able to undo some extensions made to the gimplify
2928         logic, and thus can revert several files to trunk.
2929         * upc/upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
2930         * upc/upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
2931         * upc/Make-lang.in: Adjust to refer to upc-genericize.[cho].
2932         * upc/upc-lnag.c: refer to upc-genericize.h.
2933           (LANG_HOOKS_GENERICIZE): define as upc_genericize.
2934           (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
2935           (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
2936         * upc/upc-act.c: Minor code format fix.
2938 2011-06-30  Gary Funck  <gary@intrepid.com>
2940         * c-family/c.opt: Bring options definitions up-to-date
2941         with respect to changes made in the trunk.
2943 2011-06-29  Gary Funck  <gary@intrepid.com>
2945         Merge trunk version 175584 into gupc branch.
2947 2011-06-29  Gary Funck  <gary@intrepid.com>
2949         Merge trunk version 175584 into gupc branch.
2950         * upc/upc-act.c (upc_handle_option): Change reference to
2951         have_named_sections so that it refers to the
2952         targetm_common structure.
2954 2011-06-28  Gary Funck  <gary@intrepid.com>
2956         * upc/upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
2957         Remove extern definitions. Now declared as 'static'.
2958         * upc/upc-gimplify.c, upc/upc-lang.c,
2959         upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
2960         upc-cmd.c, upc-act.c: Improve/add comments, fix
2961         typos and spelling errors.
2963 2011-06-13  Gary Funck  <gary@intrepid.com>
2965         libcpp/
2966         * include/cpplib.h (enum c_lang):
2967         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
2968         This keeps all the "C" variants together.
2969         * init.c (lang_defaults): Add an entry for UPC.
2971 2011-06-10  Gary Funck  <gary@intrepid.com>
2973         * upc/upc-act.c (upc_set_block_factor): Handle the case where
2974         the UPC blocking factor expression overflowed.
2976 2011-06-09  Gary Funck  <gary@intrepid.com>
2978         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
2979         a 32-bit target, the size expression overflowed, the result was
2980         error_mark_node, and an ICE was triggered on an attempt to evaluate
2981         C_TYPE_VARIABLE_SIZE() on the error node.
2982         (upc_blocksizeof_expr, upc_blocksizeof_type,
2983         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
2984         Make similar changes to avoid further processing of error_mark_node.
2986 2011-06-07  Gary Funck  <gary@intrepid.com>
2988         * sel-sched.c (move_op): Incorporate the following
2989         patch to eliminate ICE at -O3 on IA64/Altix.
2991 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
2993         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
2994         code_motion_path_driver returned 0 or 1.
2995         (sel_region_finish): Clear h_d_i_d.
2997 2011-06-02  Gary Funck  <gary@intrepid.com>
2999         Merge trunk version 174558 into gupc branch.
3001 2011-06-02  Gary Funck  <gary@intrepid.com>
3003         Merge trunk version 174558 into gupc branch.
3004         * upc/upc-lang.c (upc_check_decl_init): Use recently defined
3005         'append_to_statement_list_force' function to add UPC
3006         initialization statements to the UPC initialization
3007         statement list ('upc_init_stmt_list').
3008         (upc_build_init_func): Use recently defined
3009         'append_to_statement_list_force' function to add
3010         statements listed in 'upc_init_stmt_list' onto the
3011         function body constructed to implement initialization
3012         of UPC declarations that require active initialization
3013         at program start up.  The previous methods of manipulating
3014         statement lists no longer worked, due to changes in the
3015         the statement list structure.
3017 2011-05-30  Gary Funck  <gary@intrepid.com>
3019         * configure.ac: Make the default order of the virtual
3020           address field in a UPC pointer-to-shared to be "first".
3021           This reverts to the previous setting, and is a short term
3022           measure to work around a bug found on the IA64,
3023           where vaddr=last led to incorrect code generation.
3024           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
3025           in AC_DEFINE(), to agree with recent changes in files
3026           that reference this define.
3027           configure, config.in: Regenerate.
3029 2011-05-26  Gary Funck  <gary@intrepid.com>
3031         * configure.ac: Fix typo when referring to $upc_vaddr_order.
3032           configure: Regenerate.
3033         * ../fixincludes/fixincl.x: Revert to trunk.
3034           This file is auto-generated, and should not be merged.
3036 2011-05-23  Gary Funck  <gary@intrepid.com>
3038         * upc/upc-pts-struct.c: Revert to code that aligned the
3039           internal pointer-to-shared representation to
3040           twice the alignment of a pointer.  This fixes
3041           an ICE that occurred when building the compiler
3042           on an IA64 target.
3044 2011-05-18  Gary Funck  <gary@intrepid.com>
3046         Merge trunk version 173845 into gupc branch.
3048 2011-05-17  Gary Funck  <gary@intrepid.com>
3050         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
3051           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
3052         * c-family/c-pragma.c: Remove conditional compilation
3053           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
3054           Test 'compiling_upc' when compiling to determine if
3055           the "upc" and "pupc" pragmas should be registered.
3056         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
3057           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
3058           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
3059           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
3060           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
3061           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
3062           Move these target-dependent definitions from config/upc-conf.h
3063           to here.
3064         * configure.ac: Improve the logic for UPC-related options.
3065           Delete references to pre-processor definitions that have
3066           been moved to "upc/upc-pts.h".
3067         * configure, config.in: Regenerate.
3068         * Makefile.in (UPC_PTS_REP): Remove definition and revert
3069           to trunk.  This substitution variable was used to
3070           configure the representation-specific versions of
3071           the tree rewrites that operate on UPC pointer-to-shared
3072           types and objects.
3073         * c-parser.c (c_parser_upc_forall_statement): Remove
3074           reference to UPC_FORALL_DEPTH_NAME, and call
3075           newly defined upc_rts_forall_depth_var() instead.
3076         * config/upc-config.h: Delete. Various definitions
3077           moved to "upc/upc-rts-names.h", "defaults.h", and
3078           "upc/upc-pts.h".
3079         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
3080           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
3081           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
3082           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
3083           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
3084           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
3085           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
3086           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
3087           New.  Document UPC target macros.
3088           doc/tm.texi: Regenerate.
3090 2011-05-17  Gary Funck  <gary@intrepid.com>
3092         * upc/upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
3093           upc_pts_build_cond_expr, upc_pts_build_constant,
3094           upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
3095           upc_pts_build_threadof, upc_pts_init_type): Remove extern
3096           definitions.
3097           (upc_pts_ops_t): New. Define handler table that will
3098           implement either the 'packed' or the 'struct' representation
3099           of a UPC pointer-to-shared value.
3100           (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
3101           refers to the packed and the struct UPC pointer-to-shared
3102           representation implementation.
3103           (upc_pts): New. Define handler table that is set up at initialization
3104           to refer to the handlers for the UPC pointer-to-shared
3105           representation (packed/struct) that has been configured.
3106           Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
3107           and configure the UPC pointer-to-shared definitions that
3108           are specific to the configured UPC pointer-to-shared
3109           representation.
3110         * upc/upc-act.h (upc_pts_is_valid_p): Rename extern definition from
3111           is_valid_pts_p to upc_pts_is_valid_p.
3112         * lang-specs.h: Reformat the UPC compilation specs.
3113           to improve readability.
3114         * upc/upc-rts-names.h: New. Define the names of UPC runtime
3115           library functions that implement UPC language statement
3116           semantics.  These definitions were moved from config/upc-conf.h
3117         * upc/upc-gimplify.c: Add include of "upc-rts-names.h".
3118           Refer to newly defined pointer manipulation routines
3119           by indirecting through the newly defined "pts" handler table.
3120           Re-format, re-indent.
3121         * upc/upc-lang.c: Add include of "upc-pts.h".  Fix a comment.
3122         * upc/config-lang.in: Remove logic that inserted "config/upc-conf.h"
3123           into the target include and file path.
3124         * upc/upc-pts-struct.c: Add include of "upc-rts-names.h".
3125           (upc_pts_struct_ops): Define the pointer manipulation
3126           handler table that implements operations on UPC
3127           pointers-to-shared, represented as a struct.
3128           Re-format and re-indent.
3129         * upc/upc-gasp.c: Add include of "upc-rts-names.h".
3130           Re-format and re-indent.
3131         * upc/upc-pts-packed.c: Add include of "upc-rts-names.h".
3132           (upc_pts_packed_ops): Define the pointer manipulation
3133           handler table that implements operations on UPC
3134           pointers-to-shared, represented as a packed integer.
3135           Re-format and re-indent.
3136         * upc/Make-lang.in: Compile both "upc-pts-packed.c" and
3137           "upc-pts-struct.c".  One/other will be selected at
3138           compilation time to implement operations on UPC
3139           on the UPC pointer-to-shared that has been configured.
3140           Add dependencies on "upc-rts-names.h".
3141         * upc/upc-cmd.c: Re-format and re-indent.
3142         * upc/upc-act.c: Add include of "upc-rts-names.h".
3143           (upc_pts): New. Add definition of the handler
3144           table that implements representation specific
3145           operations on trees that refer to UPC pointer-to-shared
3146           objects and types.  Re-format and re-indent.
3148 2011-05-07  Gary Funck  <gary@intrepid.com>
3150         * ../configure.ac: Disable build of libupc
3151           on non POSIX hosted systems.  Use AS_HELP_STRING
3152           to define messages.  Remove 'word-pair' as a
3153           possible --with-upc-pts UPC pointer-to-shared
3154           representation.
3155         * ../configure: Regenerate.
3156         * configure.ac: Use AS_HELP_STRING to define messages.
3157           Remove 'word-pair' as a possible --with-upc-pts
3158           UPC pointer-to-shared representation.
3159           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
3160           (UPC_MAX_BLOCK_SIZE): Correct the default value.
3161         * configure: Regenerate.
3162         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
3163           definition.
3164         * ChangeLog.upc: Fix some typos.
3166 2011-05-07  Gary Funck  <gary@intrepid.com>
3168         * ../maintainer-scripts/gcc_release: Add "upc"
3169           as one of the released languages.
3171 2011-05-06  Gary Funck  <gary@intrepid.com>
3173         Eliminate compilation warnings, by fixing
3174         #include's and updating function prototypes.
3175         * c-family/c-cppbuiltin.c: Include c-upc.h.
3176         * optabs.c (gen_libfunc): Change type of 'suffix'
3177           parameter to conform with prototype.
3178         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
3179           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
3180           hook used by UPC.
3181         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
3182           the prototype.
3183         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
3184           argument values to cp_gimplify_expr.
3185         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
3186           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
3187           pre-processor definitions that are no longer
3188           needed to build the 'upc' command (upc-cmd.c)
3189           because the linker specs. defined in libupc
3190           take care of linking in the needed libraries.
3191         * c-parser.c (c_parser_upc_forall_statement):
3192           initialize affinity_loc to avoid "maybe unused" warning.
3193           (c_parser_upc_sync_statement): Remove un-needed
3194           'ret' variable.  Cast return value from
3195           'upc_build_sync_stmt' to 'void' to avoid
3196           compile-time warning.
3197         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
3198           integer constant, not a string.  Range is restricted
3199           to maximum positive 32-bit integer (2+ billion) to
3200           fit in with the use of 'int' in the front-end's
3201           switch handling logic.
3203 2011-05-06  Gary Funck  <gary@intrepid.com>
3205         Upgrade c-family source files to conform with modularity
3206         improvements.  Mainly, remove #include of c-tree.h in files
3207         under c-family, and define a new UPC-specific #include file,
3208         c-upc.h, and use it.
3209         * c-family/stub-upc.c: Remove #include of c-tree.h and
3210           upc/upc-act.h.  Replace with #include of c-common.h
3211           and c-upc.h.
3212           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
3213           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
3214           upc_localsizeof_expr, upc_localsizeof_type,
3215           upc_shared_type_p): Delete.
3216         * c-family/c-opts.c: Add #include of c-upc.h
3217         * c-family/c-common.c: Remove #include of c-tree.h and
3218           add #include of c-upc.h.
3219         * c-family/c-upc.h: New. Define API for UPC-specific functions
3220           (mostly implemented in upc/upc-act.c).
3221         * c-family/c-common.h (upc_cpp_builtins,
3222           upc_write_global_declarations): Remove extern definitions.
3223         * c-family/c-pragma.c: Remove #include of c-tree.h.
3224           Add #include of c-upc.h.
3225         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
3226           c-tree.h.
3227           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
3228           upc/upc-act.c, and define as a macro.
3229           (expand_affinity_test): Remove unused external definition.
3230           (build_upc_unshared_type): Add external definition.
3231           (upc_shared_type_p): Remove external definition.
3232         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
3233         * dojump.c: Remove #include of c-tree.h.
3234         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
3235           and move to tree.h.
3236           (count_upc_threads_refs, is_multiple_of_upc_threads,
3237           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
3238           upc_build_shared_var_addr, upc_build_sync_stmt,
3239           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
3240           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
3241           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
3242           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
3243           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
3244           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
3245           set_upc_consistency_mode, get_upc_consistency_mode,
3246           push_upc_consistency_mode, pop_upc_consistency_mode,
3247           get_upc_pupc_mode):
3248           Move external definitions to c-family/c-upc.h.
3249           (upc_blocksizeof_type, upc_localsizeof_type,
3250           upc_elemsizeof_type): Remove external definitions;
3251           these functions were moved to c-parser.c.
3252         * c-decl.c: Add #include of c-upc.h.
3253         * c-typeck.c: Add #include of c-upc.h.
3254         * c-convert.c: Add #include of c-upc.h.
3255         * ChangeLog.upc: Fix typo.
3256         * Makefile.in: Add references to c-family/c-upc.h, everywhere
3257           there is a reference to c-family/c-objc.h.
3258           Remove extraneous reference to upc-act.h.
3259         * c-parser.c: Add #include of c-upc.h.
3260           (upc_blocksizeof_expr, upc_blocksizeof_type,
3261           upc_elemsizeof_expr, upc_elemsizeof_type,
3262           upc_localsizeof_expr, upc_localsizeof_type):
3263           Move from upc/upc-act.c.
3264         * tree.c (build_upc_unshared_type): New.
3265           Move upc_get_unshared_type from upc/upc-act.c and rename
3266           to build_upc_unshared_type.
3267           c-family/c-common.c (pointer_int_sum): refer to renamed
3268           build_upc_unshared_type function.
3269           c-convert.c (convert): Ditto.
3270           convert.c (convert_to_pointer): Ditto.
3271           c-typeck.c (build_unary_op, build_modify_expr,
3272           really_start_incremental_init): Ditto.
3273           gimplify.c (create_tmp_var_raw): Ditto.
3274           tree.c (build1_stat): Ditto.
3275           tree.h (upc_get_unshared_type): Rename to
3276           build_upc_unshared_type.
3278 2011-05-06  Gary Funck  <gary@intrepid.com>
3280         Merge trunk version 173471 into gupc branch.
3282 2011-05-06  Gary Funck  <gary@intrepid.com>
3284         Eliminate compilation warnings, by fixing
3285         #include's and updating function prototypes.
3286         * upc/upc-gimplify.c: Include bitmap.h.
3287           (upc_gimplify_real_image_ref): Mark various parameters
3288           as unused.  This is a stub procedure for now.
3289         * upc/upc-lang.c: Include c-family/c-upc.h.
3290           upc-gasp.c: Ditto.
3291         * upc/upc-cmd.c (no_start_files): Delete unused variable.
3292           The -nostartfiles switch is now handled by the linker spec.
3293         * ChangeLog: Spell check.
3295 2011-05-06  Gary Funck  <gary@intrepid.com>
3297         Upgrade c-family source files to conform with modularity
3298         improvements.  Mainly, remove #include of c-tree.h in files
3299         under c-family, and define a new UPC-specific #include file,
3300         c-upc.h, and use it.
3301         * upc/upc-act.h (upc_write_global_declarations,
3302           upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
3303           upc_num_threads, upc_diagnose_deprecated_stmt):
3304           Move external definitions to c-family/c-upc.h
3305           (upc_blocksizeof_expr, upc_blocksizeof_type,
3306           upc_elemsizeof_expr, upc_elemsizeof_type,
3307           upc_localsizeof_expr, upc_localsizeof_type):
3308           Remove external definitions; these functions
3309           were moved from upc-act.c to c-parser.c.
3310         * upc/upc-gimplify.c: Add #include of c-family/c-upc.h.
3311           upc-pts-packed.c: Ditto.
3312           upc-pts-struct.c: Ditto.
3313         * upc/config-lang.in: Update gtfiles to refer to c-upc.h
3314           and other files.
3315         * upc/upc-act.c: Add #include of c-family/c-upc.h.
3316           (upc_blocksize, upc_elemsizeof, upc_localsizeof):
3317           Make external so that it can be called from c-parser.c.
3318           (upc_blocksizeof_expr, upc_blocksizeof_type,
3319           upc_elemsizeof_expr, upc_elemsizeof_type,
3320           upc_localsizeof_expr, upc_localsizeof_type):
3321           Move from upc/upc-act.c to c-parser.c.
3322           (upc_set_block_factor): Fix typo in error message.
3323           (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
3324           Move to tree.h and define as a macro.
3325           (upc_get_unshared_type): Delete. renamed to
3326           build_upc_unshared_type and moved to tree.c.
3327         * upc/upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
3328           refer to renamed build_upc_unshared_type function.
3329           upc-act.c (create_unshared_var): Ditto.
3331 2011-05-05  Gary Funck  <gary@intrepid.com>
3333         Make changes that bring the GUPC branch more closely in sync.
3334         with the GCC trunk.  Revert any fixes that are not UPC-specific.
3335         Remove gratuitous re-formatting.
3336         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
3337           This file should have been removed in a previous merge
3338           with the trunk.
3339         * ../configure.ac: Remove Cray Catamount/CNL support.
3340         * ../configure: Regenerate.
3341         * ../config.sub: Remove Cray Catamount/CNL support.
3342         * config.gcc: Remove Cray Catamount/CNL support.
3343         * ../maintainer-scripts/gcc_release: Revert to trunk.
3344         * c-family/c-common.h: Define parse_optimize_options.  Its definition
3345           was missed in a previous merge with the trunk.
3346         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
3347           procedure.
3348         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
3349           in addition to ARRAY_TYPE.
3350         * c-typeck.c: Remove an extra newline character.
3351         * varasm.c: Revert a fix that improved an error message
3352           when TLS common data is unimplemented.
3353         * varasm.c: Revert a gcc_assert that had been added which
3354           checked for a null DECL_SIZE_UNIT field.
3355         * emultls.c: Revert to trunk. Remove possible fix.
3356         * Makefile.in: Revert extra blank line that is present
3357           in the trunk version.
3358         * Makefile.in: Revert a fix that handled long shell
3359           argument lists for plugin headers.
3360         * config/ia64/ia64.opt: Revert an option setting
3361           that increased the default TLS address range.
3362         * config/ia64/crtbegin.asm: Revert to trunk.
3363           Removes an extra newline character.
3364         * ChangeLog.upc: Spell check.
3366 2011-05-03  Gary Funck  <gary@intrepid.com>
3368         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
3369           (c_apply_type_quals_to_decl): Ditto.
3370         * c-family/c-common.h: Ditto.
3371         * dojump.c: Ditto.
3372         * c-decl.c (merge_decls): Ditto.
3373         * c-typeck.c (qualify_type, default_conversion,
3374           build_component_ref, build_unary_op,
3375           c_build_qualified_type): Ditto.
3376         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
3378 2011-05-03  Gary Funck  <gary@intrepid.com>
3380         * upc/upc-lang.c: Remove extraneous FIXME/TODO comments.
3381         * upc/upc-pts-packed.c (upc_pts_build_cvt): Ditto.
3382         * upc/upc-act.c (upc_set_block_factor): Ditto.
3384 2011-04-29  Gary Funck  <gary@intrepid.com>
3386         * c-decl.c (finish_decl): Improve error diagnostics.
3387           (grokdeclarator): Ditto.
3388         * c-typeck.c (build_c_cast): Improve error diagnostics.
3389           (convert_for_assignment): Ditto.
3390           (build_binary_op): Ditto.
3391         * c-parser.c (c_parser_upc_forall_statement):
3392           Improve error diagnostics.
3393         * convert.c (convert_to_integer):  Improve error diagnostics.
3395 2011-04-29  Gary Funck  <gary@intrepid.com>
3397         * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
3398           (upc_expand_put): Ditto.
3399           (upc_shared_addr): Ditto.
3400           (upc_gimplify_sync_stmt): Ditto.
3401           (upc_gimplify_field_ref): Ditto.
3402         * upc/upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
3403           (upc_pts_build_cvt): Ditto.
3404         * upc/upc-act.c (upc_handle_option): Improve error diagnostics.
3405           (upc_lang_init): Ditto.
3406           (upc_sizeof_type_check): Ditto.
3407           (upc_set_block_factor): Ditto.
3408           (upc_decl_init): Ditto.
3409           (upc_affinity_test): Ditto.
3410           (upc_num_threads): Ditto.
3411           (upc_diagnose_deprecated_stmt): Ditto.
3412           (upc_build_shared_var_addr): Ditto.
3413           (upc_pts_int_sum): Ditto.
3414           (upc_pts_diff): Ditto.
3416 2011-04-28  Gary Funck  <gary@intrepid.com>
3418         * upc/upc-act.c (create_unshared_var): call upc_get_unshared_type()
3419           instead of using TYPE_MAIN_VARIANT() to create an equivalent type
3420           that is not a UPC shared type.  This is sometimes necessary
3421           when the given shared type is derived from a typedef.
3423 2011-04-24  Gary Funck  <gary@intrepid.com>
3425         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
3426           occurred if there is an error in the barrier id
3427           expression.  Map error_mark_node into NULL.
3429 2011-04-24  Gary Funck  <gary@intrepid.com>
3431         * upc/upc-act.c (upc_handle_option): Fix incorrect error
3432           diagnostic messages when both -fupc-debug and
3433           -fupc-inline-lib are asserted.
3435 2011-04-24  Gary Funck  <gary@intrepid.com>
3437         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
3438           to the list of switches that accept arguments.
3439           (main): Check for switches that have a following
3440           argument inside the loop that copies arguments and
3441           adds '-x upc' or '-x none' as necessary.
3442           (main): Misc. clean ups and simplifications.
3444 2011-04-22  Gary Funck  <gary@intrepid.com>
3446         Merge trunk version 172873 into gupc branch.
3448 2011-04-22  Gary Funck  <gary@intrepid.com>
3450         Merge trunk version 172873 into gupc branch.
3451         * upc/upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
3452           on init_func() to prevent it from being removed from
3453           the call graph.
3455 2011-04-19  Gary Funck  <gary@intrepid.com>
3457         Merge trunk version 172359 into gupc branch.
3459 2011-04-19  Gary Funck  <gary@intrepid.com>
3461         Merge trunk version 172359 into gupc branch.
3462         * upc/upc-lang.c (upc_init_ts): New.
3463           (LANG_HOOKS_INIT_TS): use upc_init_ts.
3465 2011-04-19  Gary Funck  <gary@intrepid.com>
3467         Eliminate warnings when compiling upc-cmd.c.
3468         * upc/upc-cmd.c (file_exists): Remove.
3469           (arg_copy): Remove const qualifier.
3471 2011-04-14  Gary Funck  <gary@intrepid.com>
3473         * c-family/c.opt: Add UPC as a valid language for various
3474           switches where it is valid for "C", that were not updated
3475           in previous merges with trunk.
3477 2011-04-13  Gary Funck  <gary@intrepid.com>
3479         * c-family/c.opt (fupc-pre-include): New option definition.
3480         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
3481           -fno-upc-pre-include is asserted.
3483 2011-04-13  Gary Funck  <gary@intrepid.com>
3485         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
3486           to the list, and alphabetize.
3488 2011-04-13  Gary Funck  <gary@intrepid.com>
3490         * upc/upc-gimplify.c (upc_gimplify_real_image_ref): New.
3491           Currently, a not-yet-implemented stub.
3492           (upc_gimplify_lval): call upc_gimplify_real_image_ref to
3493           rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
3494           This will avoid an ICE when compiling regular "C"
3495           code that refers to those operators.
3497 2011-04-13  Gary Funck  <gary@intrepid.com>
3499         * upc/upc-cmd.c: Do not add "-isystem <libupc_path>" if
3500           -fno-upc-pre-include is asserted.
3502 2011-04-07  Gary Funck  <gary@intrepid.com>
3504         Merge trunk version 172158 into gupc branch.
3505         to bring in the following fix.
3507 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
3509         PR bootstrap/48403
3510         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3511         if old and new states differ.
3513 2011-04-06  Gary Funck  <gary@intrepid.com>
3515         Merge trunk version 171966 into gupc branch.
3517 2011-04-01  Gary Funck  <gary@intrepid.com>
3519         * tree.h (tree_base): Move UPC flag bits into bit fields
3520           located just before spare bits.  Decrement spare bits.
3521           Rename 'shared_flag' -> 'upc_shared_flag',
3522           'relaxed_flag' -> 'upc_relaxed_flag',
3523           'strict_flag' -> 'upc_strict_flag, and adjust macros
3524           that reference them accordingly.
3526 2011-04-01  Gary Funck  <gary@intrepid.com>
3528         * c-decl.c (grokdeclarator): Fix formatting of
3529           code that sets UPC block size on scalars.
3531 2011-04-01  Gary Funck  <gary@intrepid.com>
3533         * c-decl.c (grokdeclarator): Revert use of white space
3534           to match the trunk (to rationalize diffs).
3535         * c-typeck.c (convert_for_assignment): Ditto.
3536         * tree-ssa.c (useless_type_conversion_p): Ditto.
3538 2011-03-23  Gary Funck  <gary@intrepid.com>
3540         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
3541           the GCC 4.6 release branch.
3543 2011-03-22  Gary Funck  <gary@intrepid.com>
3545         * upc/upc-cmd.c: Move linker switches into libupc/libupc.spec.
3546           (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
3547           (find_ld_script) Remove.
3549 2011-03-21  Gary Funck  <gary@intrepid.com>
3551         Merge trunk version 171202 into gupc branch.
3553 2011-03-20  Gary Funck  <gary@intrepid.com>
3555         * varasm.c: Call error() directly with a format specifier,
3556           rather than using sprintf() to format the message.
3557           This should make it easier to internationalize UPC's error messages.
3559 2011-03-20  Gary Funck  <gary@intrepid.com>
3561         * configure.ac: Fix the check for gnu ld when enabling
3562           UPC link script support.
3563           configure: Regenerate (also picks up changes from previous
3564           merge with trunk).
3566 2011-03-20  Gary Funck  <gary@intrepid.com>
3568         Move UPC start files, end files, and linker specs.
3569         into libupc.  This reduces the impact on common GCC
3570         configuration files, and ensures that these UPC-specific
3571         components are only built when the UPC language dialect is selected.
3572         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
3573           linker specs. Fix typo in -fupc-debug message.
3574         * config/upc-conf.h, config/darwin.h: Move defines for
3575           UPC-related section begins/ends into libupc/config/default/
3576           upc-crt-config.h.
3577         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
3578           UPC-related linker compiler specifications,
3579           accessed via %:include().
3580         * configure.ac, configure: Remove logic related to building
3581           upc-crtbegin/end. Remove config. tests for numa and cpu
3582           affinity (previously used by the 'upc' driver); these
3583           settings are now propagated by target-specific compiler
3584           specs. built by libupc.  Regenerate autoconf.
3585         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
3586           linker compiler specifications, accessed via %:include().
3587           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
3588           'link_upc_spec'.
3589         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
3590         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
3591           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
3592           config/ia64/linux.h, config/mips/t-iris,
3593           config/mips/iris6.h: Revert to trunk version 167307.
3594         libgcc/
3595         * configure, configure.ac, config.host, Makefile.in:
3596           Revert to trunk version 167307.
3598 2011-03-20  Gary Funck  <gary@intrepid.com>
3600         * upc/upc-act.c: Call error() directly with a format specifier,
3601           rather than using sprintf() to format the message.
3602           This should make it easier to internationalize UPC's error messages.
3604 2011-03-20  Gary Funck  <gary@intrepid.com>
3606         Move UPC start files, end files, and linker specs.
3607         into libupc.  This reduces the impact on common GCC
3608         configuration files, and ensures that these UPC-specific
3609         components are only built when the UPC language dialect is selected.
3610         * upc/config-lang.in: Remove setting of 'upc_extra_parts', which
3611           was used to specify which upc-crtbegin and upc-crtend files
3612           need to built.  Remove extraneous (commented out)
3613           settings of 'cfiles'.  The listed configuration files
3614           have been reverted to trunk, and weren't referenced
3615           via cfiles in any event.
3616         * upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
3617           Simply test for the presence of the UPC link script
3618           in the current directory or the libupc directory.
3619           Add -B<path-to-libupc> to the switches passed to 'gcc';
3620           this is needed in order to find the upc-crtbegin
3621           and upc-crtend object files now built in libupc.
3622           Remove test for and inclusion of UPC_LINKER_SWITCHES.
3623           if extra switches are needed for a particular target
3624           (like SGI/Irix), they will be defined by the custom
3625           linker spec. built in libupc.  Remove test for
3626           HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
3627           will be added to the custom linker specs. built
3628           in libupc.
3629         * upc/upc-crtstuff.c: Move to libupc.
3631 2011-02-23  Gary Funck  <gary@intrepid.com>
3633         * c-decl.c (undeclared_variable): fix typo. Inadvertently
3634         removed negation on following 'if'.
3636 2011-02-22  Gary Funck  <gary@intrepid.com>
3638         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
3639         to check for the usage of certain deprecated UPC keywords.
3640         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
3641         * c-tree.h (undeclared_variable): Define prototype.
3643 2011-02-22  Gary Funck  <gary@intrepid.com>
3645         * upc/upc-act.c (upc_diagnose_deprecated_stmt): New.
3646           upc-act.h (upc_diagnose_deprecated_stmt): Define.
3647           Check usage of deprecated keywords and issue
3648           error message.
3650 2011-02-12  Gary Funck  <gary@intrepid.com>
3652         * c-typeck.c: (build_c_cast, convert_for_assignment)
3653           Diagnose an attempt to convert from an integer to
3654           a pointer-to-shared as an error.  Also, fix various
3655           error messages so that they use the preferred term
3656           pointer-to-shared instead of "shared pointer".
3658 2011-02-08  Gary Funck  <gary@intrepid.com>
3660         * upc/upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
3661           for struct-pts representation
3662           Analysis indicated that for something like (+ ptr -80) this was
3663           being represented as (+ ptr (- 80)) and further, when the
3664           calculations were propagated into the individual operations on the
3665           components of the 'struct' pointer, it would end up with something
3666           like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
3667           "long unsigned int" because of the addition to the pointer.  This
3668           caused the calculations involving the signed 'int' operand to be
3669           performed incorrectly.  This fix insures that the 'int' operand is
3670           signed.
3672 2011-02-08  Gary Funck  <gary@intrepid.com>
3674         * upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
3675           upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
3676           upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
3677           upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
3678           upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
3679           upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
3680         Update copyright notices.
3682 2011-02-07  Gary Funck  <gary@intrepid.com>
3684         * c-typeck.c: (convert_for_assignment)
3685           Fix typo. in error message.
3687 2011-01-23  Gary Funck  <gary@intrepid.com>
3689         * c-typeck.c: (c_build_qualified_type)
3690           derive UPC block size by calling upc_get_block_size(),
3691           to ensure that the element type of an array of an array
3692           is derived correctly.
3694 2011-01-09  Gary Funck  <gary@intrepid.com>
3696         Fix behavior of upc_localsizeof() when called in a dynamic
3697         threads compilation environment.  This bug, and the expected
3698         behavior is documented in this bug report:
3699         https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
3700         * upc/_act.c (upc_localsizeof): Re-implement.
3702 2010-12-29  Gary Funck  <gary@intrepid.com>
3704         Merge trunk version 168314 into gupc branch.
3706 2010-12-15  Gary Funck  <gary@intrepid.com>
3708         Merge trunk version 167307 into gupc branch.
3710 2010-12-15  Gary Funck  <gary@intrepid.com>
3712         Merge trunk version 167307 into gupc branch.
3713         * upc/_act.h: (upc_handle_option) add location and struct
3714         cl_option_handlers * parameters.
3715         (upc_finish_file) Remove.
3716         (upc_write_global_declarations) New, replaces upc_finish_file.
3717         * lang-spec.h: Disable multi-file compilation for .upc files.
3718         This fixes an issue where file-scoped static variables were
3719         diagnosed as multiply-defined.  Both "C" and "ObjC" also disable
3720         multi-file compilation.
3721         * upc/upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
3722         explicitly when deciding whether a UPC shared object is addressable.
3723         is_gimple_addressable() used to do this, but now checks for MEM_REF
3724         which does not apply to UPC shared objects.
3725         (upc_gimplify_lval, upc_gimplify_expr) Delete references to
3726         ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
3727         These are no longer defined.
3728         (upc_genericize) Add call to bitmap_obstack_initialize()
3729         and bitmap_obstack_release() around call to gimplify_function_tree().
3730         * upc/upc-lang.c: Add #include of "opts.h" and "options.h".
3731         (flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
3732         flag_upc_instrument_functions) Remove.  Use definitions
3733         generated by the options file.
3734         (upc_init_options) Use cl_decoded_option struct.
3735         (LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
3736         (finish_file) Delete.
3737         (upc_init_options) Call control_warning_option() to specify
3738         -Werror=pointer-arith as the default.  Remove call to
3739         enable_warning_as_error().
3740         * upc/upc-pts-struct.c: (upc_pts_init_type) Move test that
3741         UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
3742         rather than an #ifdef; this macro now depends upon a
3743         target size macro which must be evaluated at runtime.
3744         * upc/Make-lang.in: (cc1-dummy) Remove make target.
3745         (cc1upc-checksum.c) Generate directly from object files.
3746         * upc/upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
3747         references to these deprecated macro definitions.
3748         (GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
3749         (all_exec_args) Delete variable.
3750         (exec_args) Re-define as (const char *).
3751         (exec_arg_list) New.  Make copy of exec_args to pass to 'exec'.
3752         * upc/upc-act.c: (upc_handle_option) Update argument list to accept
3753         (cl_option_handlers *) argument.
3754         (upc_finish_file) Rename to upc_write_global_declarations.
3755         (upc_write_global_declarations) New.
3757 2010-10-19  Gary Funck  <gary@intrepid.com>
3759         * c-typeck.c: Fix typo in previous fix
3760           which led to a mis-compare for equal block sizes.
3762 2010-10-18  Gary Funck  <gary@intrepid.com>
3764         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
3765           diagnosed as an error
3766           The conversion from any type (shared or not) to
3767           a shared type is likely either meaningless or an error.  This update
3768           makes any conversion to a shared type, an error.
3770 2010-10-18  Gary Funck  <gary@intrepid.com>
3772         * c-typeck.c: Fix bug: passing int to shared pointer arg.
3773           generates spurious warning
3774           Add a #define procedure that does the same thing as
3775           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
3776           this procedure to diagnose passing an integer value to a
3777           pointer-to-shared as an error.
3779 2010-10-18  Gary Funck  <gary@intrepid.com>
3781         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
3782           matching routine declaration.
3783           When checking for type compatibility, shared qualified types must
3784           have the same block factor.  This check was missing from
3785           comptypes_internal().  This update adds the check for blocking
3786           factor equality.
3788 2010-10-17  Gary Funck  <gary@intrepid.com>
3790         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
3791           found (-O1 -g)
3792           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
3794 2010-10-17  Gary Funck  <gary@intrepid.com>
3796         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
3797           45869 - [4.5/4.6 Regression] type mismatch in shift expression
3798           produces ice with -O3 and -m32.
3799           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
3801 2010-10-17  Gary Funck  <gary@intrepid.com>
3803         * c-common.c: Diagnose the application of the various "*sizeof"
3804           operations on generic pointer-to-shared as a compilation error.
3806 2010-10-17  Gary Funck  <gary@intrepid.com>
3808         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
3809           message regarding a function parameter being declared with a shared
3810           qualifier.
3811           The parameter's 'name' value is not defined at this point, and
3812           cannot be used in the error message.  This update removes the
3813           reference to 'name', and eliminates the segfault.
3815 2010-10-17  Gary Funck  <gary@intrepid.com>
3817         * upc/upc-act.c: Issue a compilation error on attempts to perform
3818           arithmetic on generic pointer-to-shared values.
3819           (The rest of this update is a small code clean up.)
3821 2010-10-17  Gary Funck  <gary@intrepid.com>
3823         * upc/upc-lang.c: For UPC only, issue errors for arithmetic and related
3824           operations on void types.
3825           This update simulates the effect of -Werror=pointer-arith, thus
3826           causing arithmetic on void types, sizeof(void) and so on to be
3827           considered compilation errors.  This meets the expectations of some
3828           harness tests and the RTED/CTED test suites.  GCC is more
3829           permissive, but since this is for UPC only, we can fairly safely
3830           define this new policy.
3832 2010-10-16  Gary Funck  <gary@intrepid.com>
3834         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
3835           The gcc/Makefile.in rules for install-plugin had to be re-written to
3836           break up a long list of header files that exceeded the command line
3837           limitation imposed by Irix.
3838           Access functions for TFmode types had to be implemented.
3839           Apparently, this is the mode used for the SGI/MIPS port to represent
3840           "long float".
3842 2010-10-16  Gary Funck  <gary@intrepid.com>
3844         * upc/upc-act.c: Fix bug: Static initialization of shared
3845           arrays is unsupported -- issue an error message.
3846           Currently, static initialization of a shared array is not
3847           implemented correctly.
3848           We do not plan to fix this for a while, therefore the compiler will
3849           issue an error message indicating that this is an unsupported
3850           operation.
3852 2010-10-14  Gary Funck  <gary@intrepid.com>
3854         * c-decl.c: Fix bug: Multiple equal blocking factors specified
3855           via typedef chain should not be diagnosed as an error.
3856           If the block size that is given by the typedef is equal to the block
3857           size given explicitly in the variable declaration, then do not
3858           complain.  The easiest way to make this check was to create a
3859           temporary type that is a clone of the element type and then set its
3860           block size using the given layout qualifier.  Then compare the block
3861           size of the temporary (the declaration) to the block size specified
3862           in the typedef.  This complexity is needed, because the '[*]' block
3863           size needs to be calculated, and the '[]' needs to be mapped into a
3864           zero block size.
3866 2010-10-13  Gary Funck  <gary@intrepid.com>
3868         * upc/upc-act.c: Fix bug: negative layout qualifiers not diagnosed
3869           as an error.
3870           The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
3871           it was not diagnosed as an error.  With this fix, negative block
3872           sizes will generate a translation error.
3874 2010-10-10  Gary Funck  <gary@intrepid.com>
3876         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
3877           specified
3878           The compiler properly detected the presence of two or more layout
3879           qualifiers as an error, but then hit an assertion check, because the
3880           code that followed the error expected to see a qualifier and not a
3881           layout specifier.  The fix is simple: just return immediately after
3882           detecting the error.
3884 2010-10-10  Gary Funck  <gary@intrepid.com>
3886         * c-decl.c: Improve error diagnostics for various cases of UPC
3887           shared array type declarations.
3888           Add the check for this error: "In the dynamic translation
3889           environment, THREADS may not appear in declarations of shared arrays
3890           with indefinite block size".  Also, fix up a few of the other
3891           related error diagnostics.
3893 2010-10-10  Gary Funck  <gary@intrepid.com>
3895         * upc/upc-act.c: Fix bug: ICE: Attempt to take the difference of
3896           shared and non-shared pointers
3897           The compiler detected the error, and then tried to return
3898           error_mark_node.  This apparently is not acceptable, as there is an
3899           explicit assertion check to prevent this from happening in
3900           build_binary_op.  Return the more user-friendly size_one_node
3901           instead.
3903 2010-10-09  Gary Funck  <gary@intrepid.com>
3905         * c-common.c: Fix bug: segfault on incomplete array definition.
3906           This turned out to be a bit complicated.   The logic in
3907           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3908           the THREADS identifier in the case where the blocking factor has
3909           been set to indefinite ([]).  This can happen when indefinite array
3910           declarations are processed for shared arrays.  At that time, the
3911           file scope has been closed and THREADS is no longer in scope.  Some
3912           more work is needed on upc_lang_layout_decl().  It has some
3913           duplication, and notably duplicates the two branches of the if
3914           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3915           caller of this routine (layout_decl()).
3916           The method of forcing a layout qualifier of [] in the indefinite
3917           declaration handler is odd a well.  The code that just does the
3918           setting of the block factor, needs to moved into its own routine
3919           that doesn't depend upon a declspec for '[]' to be passed in, just
3920           in order to set the blocking factor to some value (in this case, 0).
3921           Also, the logic for how that shared type is constructed is strange.
3922           First the type with 0 blocking factor is set.  Then the shared
3923           qualifier is removed from the type, and then added back later.  The
3924           intermediate type has a blocking factor set, but it has no shared
3925           qualifier.  Fixing this will require some thought.  It is tempting
3926           just to make indefinite shared arrays an error, rather than forcing
3927           the dimension to be '1'.
3928           This likely fixes a serious error in the previous update to
3929           upc_lang_layout_decl(), where it didn't have the logic to set
3930           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3931           the previous update would fail on many tests.
3933 2010-10-09  Gary Funck  <gary@intrepid.com>
3935         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
3936           (decl) is null, which can happen if some layout error occurred
3937           upstream.
3939 2010-10-09  Gary Funck  <gary@intrepid.com>
3941         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
3942           "variable-sized" when compiled in dynamic threads.
3943           This long-standing bug is easily fixed.  Just check
3944           for the situation that the non-constant sized type is shared and
3945           that it does not have a dimension that references a multiple of
3946           threads.  If this criteria is met, then issue a meaningful
3947           diagnostic.
3949 2010-10-09  Gary Funck  <gary@intrepid.com>
3951         * upc/upc-act.c: Fix bug: segfault on incomplete array definition.
3952           This turned out to be a bit complicated.   The logic in
3953           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3954           the THREADS identifier in the case where the blocking factor has
3955           been set to indefinite ([]).  This can happen when indefinite array
3956           declarations are processed for shared arrays.  At that time, the
3957           file scope has been closed and THREADS is no longer in scope.  Some
3958           more work is needed on upc_lang_layout_decl().  It has some
3959           duplication, and notably duplicates the two branches of the if
3960           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3961           caller of this routine (layout_decl()).
3962           The method of forcing a layout qualifier of [] in the indefinite
3963           declaration handler is odd a well.  The code that just does the
3964           setting of the block factor, needs to moved into its own routine
3965           that doesn't depend upon a declspec for '[]' to be passed in, just
3966           in order to set the blocking factor to some value (in this case, 0).
3967           Also, the logic for how that shared type is constructed is strange.
3968           First the type with 0 blocking factor is set.  Then the shared
3969           qualifier is removed from the type, and then added back later.  The
3970           intermediate type has a blocking factor set, but it has no shared
3971           qualifier.  Fixing this will require some thought.  It is tempting
3972           just to make indefinite shared arrays an error, rather than forcing
3973           the dimension to be '1'.
3974           This likely fixes a serious error in the previous update to
3975           upc_lang_layout_decl(), where it didn't have the logic to set
3976           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3977           the previous update would fail on many tests.
3978           See also: gcc/c-common.c gcc/upc/upc-act.c
3980 2010-10-01  Gary Funck  <gary@intrepid.com>
3982         * configure, configure.ac: Update manual page, and bug reporting
3983           URL.
3984           Update "man" page to reflect debugging switches.  Also, some general
3985           clean up.  Change the bug reporting URL to point to gccupc.org.
3987 2010-10-01  Gary Funck  <gary@intrepid.com>
3989         * upc/upc-manpage.html, upc.1: Update manual page, and bug reporting
3990           URL.
3991           Update "man" page to reflect debugging switches.  Also, some general
3992           clean up.  Change the bug reporting URL to point to gccupc.org.
3993           See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
3994           gcc/upc/upc.1
3996 2010-10-01  Gary Funck  <gary@intrepid.com>
3998         * upc/upc-act.c: Do not zap all qualifier bits when constructing a
3999           non-shared result node.
4000           This fix was suggested by Paul H. in the following Berkeley Bugzilla
4001           report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
4002           use of "!" rather than "~" zapped all the type qualifier bits rather
4003           than just those that are related to the "shared" qualifier.  This
4004           fix clears only the relevant bits.
4006 2010-09-27  Gary Funck  <gary@intrepid.com>
4008         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
4009           the UPC forall depth count variable is not found.
4010           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
4011           The compiler will generate code that references this variable in
4012           order to implement nested upc_forall semantics.  If there is a
4013           compiler build or install problem, this variable may not be found.
4014           In this case, terminate with an internal_error().
4016 2010-09-26  Gary Funck  <gary@intrepid.com>
4018         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
4019           mis-diagnosed as syntax error.
4020           Fix a failure exhibited by the Berkeley test case,
4021           bug873a.upc, which has the code:
4022                double d;
4023                upc_forall (;;;d) {...} The compiler did not properly handle
4024           the empty "condition" clause, and did not recover well when it was
4025           determined that the use of a double value, "d" above, was neither a
4026           pointer-to-shared nor an integer expression.  The update implements a
4027           fix for both issues.
4028           See also: gcc/c-parser.c gcc/upc/upc-act.c
4030 2010-09-26  Gary Funck  <gary@intrepid.com>
4032         * upc/upc-act.c: Fix bug: upc_forall with empty clauses
4033           mis-diagnosed as syntax error.
4034           A failure was exhibited by the Berkeley test case,
4035           bug873a.upc, which has the code:
4036                double d;
4037                upc_forall (;;;d) {...} The compiler did not properly handle
4038           the empty "condition" clause, and did not recover well when it was
4039           determined that the use of a double value, "d" above, was neither a
4040           pointer-to-shared nor an integer expression.  The update implements a
4041           fix for both issues.
4042           See also: gcc/c-parser.c gcc/upc/upc-act.c
4044 2010-09-25  Gary Funck  <gary@intrepid.com>
4046         * upc/upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
4047           gimple check when calculating affinity for upc_forall.
4048           Intrepid test, test10.upc, failed to compile due a mis-match between
4049           the COMPONENT_REF node and the internal 'thread' field.  Changed the
4050           code to make the types agree, and added a conversion to sizetype if
4051           necessary.
4053 2010-09-23  Gary Funck  <gary@intrepid.com>
4055         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
4056           incorporated into the referencing type.
4057           This was semi-fixed a few times before.  This update fixes a few
4058           more places where the layout qualifier wasn't being propagated
4059           through typedef's properly.  What made this a bit tricky is shown in
4060           the example cited in the bug report:
4061           typedef shared [5] int A_t; A_t A[5*THREADS];
4062           In the typedef, the blocksize is being applied to a shared *scalar*,
4063           and the code was applying the blocksize only to arrays.  This update
4064           handles shared scalars correctly.
4066 2010-09-23  Gary Funck  <gary@intrepid.com>
4068         * upc/upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
4069           with static threads and size not a multiple of threads.
4070           Add an extra check for an attempt to apply a '[*]' layout qualifier
4071           to a shared array that does not specify a size that is a multiple of
4072           THREADS, when compiled in a static THREADS compilation environment.
4074 2010-09-22  Gary Funck  <gary@intrepid.com>
4076         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
4077           upc_forall() semantics are not implemented
4078           The checkforall test in the Berkeley harness test suite indicated
4079           that GCC/UPC was not properly implementing nested upc_forall
4080           semantics.  Nested upc_forall statements (both statically or
4081           dynamically nested) must implement their affinity clause as if it
4082           were "continue"; thus all steps in the loop must execute without
4083           regard for affinity.  To implement these semantics a global depth
4084           counter, __upc_forall_depth, is maintained by the generated code
4085           that implements upc_forall.
4086           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
4087           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
4088           libupc/include/upc.h libupc/smp/upc_main.c
4090 2010-09-22  Gary Funck  <gary@intrepid.com>
4092         * upc/upc-act.c, upc/upc-act.h: Fix bug: Nested upc_forall() semantics
4093           are not implemented
4094           The checkforall test in the Berkeley harness test suite indicated
4095           that GCC/UPC was not properly implementing nested upc_forall
4096           semantics.  Nested upc_forall statements (both statically or
4097           dynamically nested) must implement their affinity clause as if it
4098           were "continue"; thus all steps in the loop must execute without
4099           regard for affinity.  To implement these semantics a global depth
4100           counter, __upc_forall_depth, is maintained by the generated code
4101           that implements upc_forall.
4102           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
4103           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
4104           libupc/include/upc.h libupc/smp/upc_main.c
4106 2010-09-19  Gary Funck  <gary@intrepid.com>
4108         * c-decl.c: c-decl.c: zero out the layout specifier, after
4109           processing an array type.
4110           Fix the previous fix, that moved the setting of the type's layout
4111           qualifier to the outside of the array type processing loop.  What is
4112           missing from the fix is that the layout_qualifier variable needs to
4113           be cleared after setting the type's blocksize.
4115 2010-09-19  Gary Funck  <gary@intrepid.com>
4117         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
4118           given blocksize is greater than UPC_MAX_BLOCKSIZE.
4119           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
4120           the actual maximum block size.  Therefore, the message was correct,
4121           but the underlying value that was being checked was wrong.  Change
4122           the values so that they agree with the actual implementation-defined
4123           limit.
4125 2010-09-18  Gary Funck  <gary@intrepid.com>
4127         * upc/upc-act.c, upc/upc-pts-packed.c, upc/upc-pts-struct.c:
4128           Implement -fupc-debug switch.
4130 2010-09-11  Gary Funck  <gary@intrepid.com>
4132         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
4133           multi-dimensional shared array with dynamic threads.
4134           This declaration caused an internal compiler error when compiled
4135           with dynamic threads:
4136               shared [*] int A[THREADS][16]; The bug was discovered when
4137           compiling the RTED_UPC test suite.
4138           The fix is to process layout qualifiers after the entire array type
4139           has been built.  Otherwise, we try to calculate the blocksize on a
4140           shared array type that has not had its "size depends upon the value
4141           of THREADS" flag set.
4142           Also, added a test case.
4143           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
4145 2010-07-11  Gary Funck  <gary@intrepid.com>
4147         Fix a bug where a statement in c_build_qualified_type()
4148         in the trunk had been inadvertently deleted.
4149         This bug showed up in the IA64 port, because jmpbuf's
4150         on that architecture must be 16 byte aligned, and they were not.
4151         c-typeck.c (c_build_qualified_type): Revive the deleted line.
4153 2010-07-08  Gary Funck  <gary@intrepid.com>
4155         Make changes so that other language compilers
4156         will build and bootstrap.
4157         * c-family/c-common.c (compiling_upc, flag_upc,
4158         flag_upc_instrument, flag_upc_instrument_functions,
4159         use_upc_dwarf2_extensions): Move to stub-upc.c and
4160         upc-lang.c.
4161         * c-family/c-common.h (use_upc_dwarf2_extensions,
4162         compiling_upc): Add extern definitions - needed
4163         to compile/build other language front ends.
4164         * c-family/c.opt: Fix the spelling of ObjC.
4165         It had been incorrectly spelled as Objc.
4166         * c-family/c.opt: Add UPC for the various switches
4167         that are valid for both C and ObjC.
4168         * c-fmaily/c-opts.c: Add CL_UPC to the list of
4169         supported options switches when compiling assembly
4170         language.
4171         * lto/lto-lang.c (use_upc_dwarf2_extensions,
4172         flag_upc_instrument, flag_upc_instrument_functions):
4173         Remove these definitions.  They have been moved
4174         to c-family/stub-upc.c.
4175         * upc/ChangeLog: Move relevant entries
4176         to ChangeLog.upc.
4177         * c-family/stub-upc.c (compiling_upc, flag_upc,
4178         flag_upc_instrument, flag_upc_instrument_functions,
4179         use_upc_dwarf2_extensions): Moved from c-common.c
4180         * upc/upc-lang.c (compiling_upc, flag_upc,
4181         flag_upc_instrument, flag_upc_instrument_functions,
4182         use_upc_dwarf2_extensions): Moved from c-common.c
4183         * objc/objc-act.c (objc_gimplify_expr): Add additional
4184         parameters to c_gimplify_expr() call, that are used
4185         by upc's tree rewrites.
4186         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
4187         * gcc/cp/lex.c (init_reswords): If not compiling
4188         UPC, then mask off the UPC keywords.
4189         * cp/Make-lang.in (C_STUB_OBJS): Use this
4190         make macro to link with c-family/stub-objc.o
4191         and c-family/stub-upc.o.
4192         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
4193         * java/Make-lang.in (C_STUB_OBJS): Likewise.
4194         * objc/Make-lang.in: Link with c-family/stub-upc.o
4195         to avoid undefined references.
4196         c-parser.c: Fix line indentation.
4197         * libcpp/include/cpplib.h: Remove CL_UPC from
4198         the list of language kinds accepted by the
4199         C preprocessor.  This is not necessary because
4200         UPC is a derivative of C99, and does not need
4201         a different language kind.
4202         * c-fmaily/c-opts.c (c_common_handle_option):
4203         Call set_std_c99() when processing the
4204         "--lang upc" switch, instead of setting the
4205         language kind to CL_UPC.
4206         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
4208 2010-07-03  Gary Funck  <gary@intrepid.com>
4210         Merge trunk version 161517 into gupc branch.
4211         * gcc/stub-upc.c: Move to gcc/c-family/.
4212         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
4213         Add 'unused' attributes to avoid "set, but
4214         not referenced" warnings.
4215         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
4216         Likewise.
4218 2010-07-03  Gary Funck  <gary@intrepid.com>
4220         Merge trunk version 161517 into gupc branch.
4221         * upc/config-lang.in: Update references to files
4222           moved into c-family/.
4223         * upc/Make-lang.in: Likewise.
4224         * upc/upc-act.c: Likewise.
4225         * upc/upc-gasp.c: Likewise.
4226         * upc/upc-gimplify.c: Likewise.
4227         * upc/upc-lang.c: Likewise.
4228         * upc/upc-pts-packed.c: Likewise.
4229         * upc/upc-pts-struct.c: Likewise.
4230         * upc/upc-act.c: (upc_handle_option) add parameters to
4231           effect pass through call to c_common_handle_option.
4232         * upc/upc-act.h: (upc_handle_option) Likewise.
4233         * upc/upc-act.c: (map_unshared_var) used typed ggc allocation.
4234         * upc/upc-act.c: (upc_build_init_func) add call to
4235           to mark_decl_referenced(), to ensure that UPC shared
4236           variable initializer function is not removed from
4237           the call tree graph.
4239 2010-03-01  Gary Funck  <gary@intrepid.com>
4241         Create gupc branch from trunk version 157149.