Merge trunk version 206575 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blob3cdfdbf8f4324bb36276ad8524f6620f558a8c71
1 2014-01-13 Gary Funck  <gary@intrepid.com>
3         Merge trunk version 206575 into gupc branch.
5 2014-01-10 Gary Funck  <gary@intrepid.com>
7         Update copyright notices.
9 2014-01-06 Gary Funck  <gary@intrepid.com>
11         Merge trunk version 206354 into gupc branch.
13 2014-01-04  Gary Funck  <gary@intrepid.com>
15         Integrate GUPC into cc1.
16         * upc/: Remove directory.  Re-distribute files.
17         * c/c-upc-lang.c: Move upc/upc-lang.c here.
18         * c/c-upc-lang.h: New.
19         * c-family/c-upc.c: Move upc/upc-act.c here.
20         * c-family/c-upc-gasp.c: Move upc/upc-gasp.c here.
21         * c-family/c-upc-gasp.h: Move upc/upc-gasp.h here.
22         * c-family/c-upc.h: Move upc/upc-act.h here.
23         * c-family/c-upc-low.c: Move upc/upc-genericize.c here.
24         * c-family/c-upc-low.h: Move upc/upc-genericize.h here.
25         * c-family/c-upc-pts.h: Split upc/upc-pts.h here.
26         * c-family/c-upc-pts-ops.c: Split upc/upc-pts.c here.
27         * c-family/c-upc-pts-ops.h: Split upc/upc-pts.h here.
28         * c-family/c-upc-pts-packed.c: Move upc/upc-pts-packed.c here.
29         * c-family/c-upc-pts-struct.c: Move upc/upc-pts-struct.c here.
30         * c-family/c-upc-rts-names.h: Move upc/upc-rts-names.h here.
31         * c-family/stub-upc.c: Remove.
32         * c/gupcspec.c: Move upc/gupcspec.c here.
33         * doc/gupc.texi: Move upc/gupc.texi here.
34         * c/c-objc-common.h: Revert to trunk.
35         * cp/lex.c: Revert to trunk.
36         * cp/Make-lang.in: Revert to trunk.
37         * expr.h: Revert to trunk.
38         * flags.h: Revert to trunk.
39         * fortran/Make-lang.in: Revert to trunk.
40         * java/Make-lang.in: Revert to trunk.
41         * lto/Make-lang.in: Revert to trunk.
42         * objc/Make-lang.in: Revert to trunk.
43         * stor-layout.c: Delete custom hook routines, use
44         newly defined declaration layout language hooks.
45         * stor-layout.h: Revert to trunk.
46         * ../configure.ac: Remove check for UPC language dialect.
47         * ../configure: Re-generate.
48         * Makefile.in (C_COMMON_OBJS): Add UPC-related object files.
49         * c/Make-lang.in: Compile UPC-related files.  Build gupc driver.
50         * c/c-decl.c: Call c_genericize() directly rather than
51         lang_hooks.genericize().  Adjust for flag_upc and name changes.
52         * c/c-lang.c (LANG_HOOKS_UPC_TOGGLE_KEYWORDS,
53         LANG_HOOKS_UPC_PTS_STRUCT_INIT_TYPE, LANG_HOOKS_UPC_BUILD_INIT_FUNC,
54         LANG_HOOKS_LAYOUT_DECL_P, LANG_HOOKS_LAYOUT_DECL):
55         Define UPC-specific hooks.
56         * c/c-objc-common.c (upc_types_compatible_p): Move to here.
57         (c_types_compatible_p): Call upc_types_compatible_p().
58         * c/c-parser.c (upc_affinity_test): Move to here. 
59         (upc_build_sync_stmt): Move to here.
60         * c/c-typeck.c: #include c-family/c-upc-low.h.
61         * c/config-lang.in (gtfiles): Add UPC gt files.
62         * c-family/c-common.c: Add #include c-upc.h.
63         (c_common_get_alias_set): Move UPC-related alias check to here.
64         (upc_num_threads): Move to here.
65         (c_common_init_ts): Mark UPC-specific statement tree definitions.
66         * c-family/c-common.def (UPC_FORALL_STMT, UPC_SYNC_STMT):
67         Define UPC-specific statements.
68         * c-family/c-common.h (RID_FIRST_UPC_QUAL, RID_LAST_UPC_QUAL,
69         RID_FIRST_UPC_KW, RID_LAST_UPC_KW, UPC_IS_KEYWORD): New.
70         (clk_upc, clk_upcxx, c_dialect_upc, compiling_upc): Delete.
71         (use_upc_dwarf2_extensions, flag_upc): Move to c-family/c.opts.
72         (upc_num_threads): Declare prototype.
73         (UPC_SYNC_OP, UPC_SYNC_ID, UPC_SYNC_NOTIFY_OP, UPC_SYNC_WAIT_OP,
74         UPC_SYNC_BARRIER_OP): Move definitions here.
75         * c-family/c-cppbuiltin.c: Remove #include c-upc.h and
76         add #include c-upc-pts.h.
77         (upc_cpp_builtins): Move to here.  Define as static.
78         (c_cpp_builtin): Change call to c_dialect_upc () into
79         test of flag_upc.
80         * c-family/c-gimplify.c: #include c-upc-low.h.
81         (c_common_genericize): Rename c_genericize() to this and make static.
82         (c_genericize): Call upc_genericize() if flag_upc is set and
83         then call c_common_genericize().
84         * c-family/c-opts.c: #include c-upc-low.h and c-upc-pts.h.
85         (c_family_lang_mask): Remove CL_UPC.
86         (c_common_option_lang_mask): Remove CL_UPC from lang_flags.
87         (upc_init_options): Move to here, make it static.
88         (c_common_init_options): Add early check for flag_upc, if found
89         call upc_init_options().
90         (upc_handle_option): Move to here and make static.
91         (c_common_handle_option): Check for UPC-related options
92         and call upc_handle_option().  Remove references to
93         OPT_lang_upc and clk_upc.  Check flag_upc instead of
94         calling c_dialect_upc().
95         * c-family/c-pragma.c: #include langhooks.h.
96         (handle_pragma_upc): Remove warning if flag_upc not set;
97         flag_upc now serves the function of compiling_upc().
98         Add call to lang_hooks.upc.toggle_keywords() to
99         implement enable/disable of UPC keywords.
100         (init_pragma): Check flag_upc instead of compiling_upc.
101         * c-family/c-pragma.h (deny_pragma_upc, get_upc_consistency_mode,
102         permit_pragma_upc, pop_upc_consistency_mode,
103         pragma_upc_permitted_p, push_upc_consistency_mode,
104         set_upc_consistency_mode): Move prototypes to here.
105         * c-family/c.opt: Remove all references to "UPC" language dialect.
106         Add -fupc option. Delete -fupc-link option.
107         Add -fupc-threads= option and deprecate -fupc-threads-.
108         * configure.ac: Remove check for UPC language dialect.
109         * configure: Re-generate.
110         * explow.c (tree_expr_size): Move to tree.c.
111         * gcc.c: Change specs to refer to -fupc instead of -lang-upc
112         and -fupc-link.
113         * hooks.c (hook_bool_tree_tree_false): Declare prototype.
114         * langhooks.c (lhd_do_nothing_b, lhd_do_nothing_t_t): New.
115         * langhooks.h (lang_hooks_for_upc): Define hooks for UPC.
116         (layout_decl_p, layout_decl): Define language-specific
117         declaration  layout hooks.
118         (genericize): Remove this language hook.
119         * langhooks-def.h: Define UPC default language hooks.
120         Define language-specific declaration layout default hooks.
121         * langhooks.c (lhd_do_nothing_b): New.
122         * tree-core.h (shared_flag): Rename from upc_shared_flag.
123         (strict_flag): Rename from upc_strict_flag.
124         (relaxed_flag): Rename from upc_relaxed_flag.
125         (threads_factor_flag): New. Was a lang. flag.
126         (block_factor_0): New. Was a lang. flag.
127         (block_factor_x): New. Was a lang. flag.
128         (spare1): Decrement spare bits from 8 down to 5.
129         * tree.c (block_factor_for_type): Move to here.
130         (tree_expr_size): Move to here from explow.c.
131         (block_factor_lookup): Move to here.
132         (block_factor_insert): Move to here.
133         (upc_get_block_factor): Move to here.
134         * tree.h: refer to block_factor_* instead of upc_block_factor_*.
135         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
136         TYPE_HAS_THREADS_FACTOR): Refer to tree base flag bits instead
137         of lang. flag bits.
138         (tree_expr_size): Move prototype from explow.h.
140 2013-12-30 Gary Funck  <gary@intrepid.com>
142         Merge trunk version 206243 into gupc branch.
144 2013-12-23 Gary Funck  <gary@intrepid.com>
146         Merge trunk version 206179 into gupc branch.
148 2013-12-22 Gary Funck  <gary@intrepid.com>
150         * upc/upc-act.c (upc_cpp_builtins): Bump UPC_VERSION
151         to reflect UPC specification version 1.3 compliance.
153 2013-12-16 Gary Funck  <gary@intrepid.com>
155         Merge trunk version 206010 into gupc branch.
157 2013-12-09 Gary Funck  <gary@intrepid.com>
159         Merge trunk version 205801 into gupc branch.
161 2013-12-03 Meador Inge  <meadori@codesourcery.com>
163         * tree-core.h (tree_type_common): Change tree_type_common to use
164         user-provided GC marking.
165         (gt_ggc_mx, gt_pch_nx): New prototypes.
166         * tree.c (gt_ggc_mx, gt_pch_nx): New functions.
168 2013-12-03 Gary Funck  <gary@intrepid.com>
170         Revert:
172         2011-10-10  Gary Funck  <gary@intrepid.com>
174         * tree.c (check_qualified_type, check_aligned_type):
175         Call tree_int_cst_equal() to compare UPC blocking factors
176         if the corresponding tree pointers are not equal.
177         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
179 2013-12-03 Gary Funck  <gary@intrepid.com>
181         * c-family/c.opt: Fix typo introduced in 2013-06-03
182         merge with trunk.
184 2013-12-02 Gary Funck  <gary@intrepid.com>
186         Merge trunk version 205582 into gupc branch.
188 2013-11-26  Meador Inge  <meadori@codesourcery.com>
190         * upc/upc-genericize.c (upc_expand_get): Ensure that temporaries
191         are declared via a DECL_EXPR.
193 2013-11-25 Gary Funck  <gary@intrepid.com>
195         Merge trunk version 205346 into gupc branch.
197 2013-11-18 Gary Funck  <gary@intrepid.com>
199         Merge trunk version 204942 into gupc branch.
201 2013-11-15 Gary Funck  <gary@intrepid.com>
203         Merge trunk version 204894 into gupc branch.
205 2013-11-15 Gary Funck  <gary@intrepid.com>
207         Merge trunk version 204659 into gupc branch.
209 2013-11-04 Gary Funck  <gary@intrepid.com>
211         Merge trunk version 204345 into gupc branch.
213 2013-10-31 Gary Funck  <gary@intrepid.com>
215         Released GUPC 4.9.0.1 based on version 203902.
216         This release version was committed on 2013-10-21.
217         * DEV-PHASE: Bump to 4.9.0.2.
218         * DATESTAMP: Bump date stamp.
220 2013-10-28 Gary Funck  <gary@intrepid.com>
222         Merge trunk version 204119 into gupc branch.
224 2013-10-21 Gary Funck  <gary@intrepid.com>
226         Merge trunk version 203886 into gupc branch.
228 2013-10-14 Gary Funck  <gary@intrepid.com>
230         Merge trunk version 203514 into gupc branch.
232 2013-10-07 Gary Funck  <gary@intrepid.com>
234         Merge trunk version 203240 into gupc branch.
236 2013-10-01 Gary Funck  <gary@intrepid.com>
238         Implement pointer-to-shared -> integer conversions.
239         Required per UPC 1.3 Specification.
240         * c/c-typeck.c (build_c_cast): Remove logic that diagnosed
241         PTS->int conversions as an error.  Rewrite into a CONVERT_EXPR
242         for later processing by upc_genericize().
244 2013-10-01 Gary Funck  <gary@intrepid.com>
246         Implement pointer-to-shared -> integer conversions.
247         Required per UPC 1.3 Specification.
248         * upc/upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
249         (upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().
251 2013-09-30 Gary Funck  <gary@intrepid.com>
253         Merge trunk version 203026 into gupc branch.
255 2013-09-23 Gary Funck  <gary@intrepid.com>
257         Merge trunk version 202825 into gupc branch.
259 2013-09-18 Gary Funck  <gary@intrepid.com>
261         Merge trunk version 202725 into gupc branch.
263 2013-09-16 Gary Funck  <gary@intrepid.com>
265         Merge trunk version 202619 into gupc branch.
267 2013-09-09 Gary Funck  <gary@intrepid.com>
269         Merge trunk version 202382 into gupc branch.
271 2013-09-02 Gary Funck  <gary@intrepid.com>
273         Merge trunk version 202159 into gupc branch.
275 2013-08-26 Gary Funck  <gary@intrepid.com>
277         Merge trunk version 202008 into gupc branch.
279 2013-08-19 Gary Funck  <gary@intrepid.com>
281         Merge trunk version 201832 into gupc branch.
283 2013-08-05 Gary Funck  <gary@intrepid.com>
285         Merge trunk version 201483 into gupc branch.
287 2013-07-29 Gary Funck  <gary@intrepid.com>
289         Merge trunk version 201301 into gupc branch.
291 2013-07-22 Gary Funck  <gary@intrepid.com>
293         Merge trunk version 201119 into gupc branch.
295 2013-07-15 Gary Funck  <gary@intrepid.com>
297         Merge trunk version 200955 into gupc branch.
299 2013-07-08 Gary Funck  <gary@intrepid.com>
301         Merge trunk version 200775 into gupc branch.
303 2013-07-01 Gary Funck  <gary@intrepid.com>
305         Merge trunk version 200575 into gupc branch.
307 2013-06-24 Gary Funck  <gary@intrepid.com>
309         Merge trunk version 200361 into gupc branch.
311 2013-06-19 Gary Funck  <gary@intrepid.com>
313         Merge trunk version 200149 into gupc branch.
315 2013-06-19 Gary Funck  <gary@intrepid.com>
317         Merge trunk version 200149 into gupc branch.
318         * upc/upc-act.c (upc_create_static_var): New.
319         (upc_build_init_func): Call upc_create_static_var() to
320         create a static variable, __upc_init_func_addr, which
321         is initialized to the address of the UPC
322         shared data initialization function.  This change is
323         needed to avoid writing to the output assembly language
324         file too early.
325         (upc_build_sync_stmt): Delete unused variable, sync_expr_type.
327 2013-06-03 Gary Funck  <gary@intrepid.com>
329         Merge trunk version 199596 into gupc branch.
331 2013-05-27 Gary Funck  <gary@intrepid.com>
333         Merge trunk version 199350 into gupc branch.
335 2013-05-20 Gary Funck  <gary@intrepid.com>
337         Merge trunk version 199093 into gupc branch.
339 2013-05-14 Gary Funck  <gary@intrepid.com>
341         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt):
342         When checking whether the phase of a PTS should be reset,
343         if the source type is an array type, then bypass
344         the check for equal type sizes.
345         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
347 2013-05-13 Gary Funck  <gary@intrepid.com>
349         Merge trunk version 198815 into gupc branch.
351 2013-05-06 Gary Funck  <gary@intrepid.com>
353         Merge trunk version 198622 into gupc branch.
355 2013-04-29 Gary Funck  <gary@intrepid.com>
357         Merge trunk version 198433 into gupc branch.
359 2013-04-15 Gary Funck  <gary@intrepid.com>
361         Merge trunk version 197958 into gupc branch.
363 2013-04-08 Gary Funck  <gary@intrepid.com>
365         Merge trunk version 197571 into gupc branch.
367 2013-04-04 Gary Funck  <gary@intrepid.com>
369         Per the UPC 1.3 specification, the type of the
370         optional barrier/notify/wait expression is not constrained to
371         'int'. Instead, any type that is assignment compatible
372         with an 'int' type is permitted.
373         * c/c-parser.c (c_parser_upc_sync_statement): Do not check
374         the optional expression type here.  Let upc_build_sync_stmt()
375         handle it.
376         * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
377         * c/c-typeck.c (c_cvt_expr_for_assign): New.  Also, call
378         error_at() in lieu of error() when the source location is known.
379         * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
380         to check/convert the optional synchronization statement
381         expression.
383 2013-04-02 Gary Funck  <gary@intrepid.com>
385         Merge trunk version 197340 into gupc branch.
387 2013-04-02 Gary Funck  <gary@intrepid.com>
389         Revert revision 178346 (2011-08-30)
390         which changed the prototype of check_qualified_type and related
391         functions so that their parameters were just 'tree' and not
392         'const_tree'.  This seemed necessary at the time because of a
393         change to TYPE_BLOCK_FACTOR(), which in turn called function
394         that hashed the type node pointer.  The hash functions did
395         not accept "const void *" pointers.  Implement a work around
396         that removes this restriction.
397         * c/c-typeck.c: Revert.
398         * tree.c: Revert.
399         * tree.h: Revert.  Change prototype of upc_block_factor_lookup()
400         to accept a 'const_tree' pointer to a type node.
401         * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
402         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
403         input argument and convert this to 'tree' for use with hash function.
405 2013-04-02 Gary Funck  <gary@intrepid.com>
407         Revert revision 178346 (2011-08-30)
408         which changed the prototype of check_qualified_type and related
409         functions so that their parameters were just 'tree' and not
410         'const_tree'.  This seemed necessary at the time because of a
411         change to TYPE_BLOCK_FACTOR(), which in turn called a function
412         that hashed the type node pointer.  The hash functions did
413         not accept "const void *" pointers.  Implement a work around
414         that removes this restriction.
415         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
416         input argument and convert this to 'tree' for use with hash function.
418 2013-03-25 Gary Funck  <gary@intrepid.com>
420         Merge trunk version 197029 into gupc branch.
422 2013-03-21 Gary Funck  <gary@intrepid.com>
424         Released GUPC 4.8.0.3 based on version 196601.
425         This release version was committed on 2013-03-11.
426         * DATESTAMP: Bump date stamp.
428 2013-03-18 Gary Funck  <gary@intrepid.com>
430         Merge trunk version 196771 into gupc branch.
431         * DEV-PHASE: Bump release identifier to 4.9.0-1.
433 2013-03-11 Gary Funck  <gary@intrepid.com>
435         Merge trunk version 196592 into gupc branch.
437 2013-03-04 Gary Funck  <gary@intrepid.com>
439         Merge trunk version 196422 into gupc branch.
441 2013-02-25 Gary Funck  <gary@intrepid.com>
443         Merge trunk version 196253 into gupc branch.
445 2013-02-18 Gary Funck  <gary@intrepid.com>
447         Merge trunk version 196115 into gupc branch.
449 2013-02-11 Gary Funck  <gary@intrepid.com>
451         Merge trunk version 195937 into gupc branch.
453 2013-02-04 Gary Funck  <gary@intrepid.com>
455         Merge trunk version 195707 into gupc branch.
457 2013-01-28 Gary Funck  <gary@intrepid.com>
459         Merge trunk version 195502 into gupc branch.
461 2013-01-21 Gary Funck  <gary@intrepid.com>
463         Merge trunk version 195330 into gupc branch.
465 2013-01-14 Gary Funck  <gary@intrepid.com>
467         Merge trunk version 195164 into gupc branch.
469 2013-01-07 Gary Funck  <gary@intrepid.com>
471         Merge trunk version 194962 into gupc branch.
473 2012-12-24 Gary Funck  <gary@intrepid.com>
475         Merge trunk version 194709 into gupc branch.
477 2012-12-17 Gary Funck  <gary@intrepid.com>
479         Merge trunk version 194552 into gupc branch.
481 2012-12-10 Gary Funck  <gary@intrepid.com>
483         Merge trunk version 194351 into gupc branch.
485 2012-12-03 Gary Funck  <gary@intrepid.com>
487         Merge trunk version 194076 into gupc branch.
489 2012-11-30  Gary Funck  <gary@intrepid.com>
491         Released GUPC 4.8.0.2 based on version 193446.
492         Date of release: 2012-11-12.
493         * DEV-PHASE: Bump release identifier to 4.8.0-3.
494         * DATESTAMP: Bump date stamp.
496 2012-11-26 Gary Funck  <gary@intrepid.com>
498         Merge trunk version 193807 into gupc branch.
500 2012-11-20 Gary Funck  <gary@intrepid.com>
502         Merge trunk version 193672 into gupc branch.
504 2012-11-19 Gary Funck  <gary@intrepid.com>
506         Merge trunk version 193617 into gupc branch.
508 2012-11-15 Gary Funck  <gary@intrepid.com>
510         Merge trunk version 193426 into gupc branch.
512 2012-11-12  Gary Funck  <gary@intrepid.com>
514         Released GUPC 4.8.0.1 based on version 192948.
515         Date of release: 2012-10-29.
516         * DEV-PHASE: Bump release identifier to 4.8.0-2.
517         * DATESTAMP: Bump date stamp.
519 2012-11-05 Gary Funck  <gary@intrepid.com>
521         Merge trunk version 193152 into gupc branch.
523 2012-10-29 Gary Funck  <gary@intrepid.com>
525         Merge trunk version 192909 into gupc branch.
527 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
529         Remove unused --upc-pthreads-per-process compile switch.
530         * c-family/c.opt: Remove --upc-pthreads-per-process switch
531         that compiler/runtime do not use.
532         * c-family/c-opts.c (c_common_handle_option): Remove support for
533         --upc-pthreads-per-process switch.
534         * c-family/c-common.c: Ditto.
535         * c-family/c-common.h: Ditto.
537 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
539         Remove unused --upc-pthreads-per-process compile switch. 
540         * upc/upc-act.c (upc_handle_option): Ditto.
541         (upc_cpp_builtins): Ditto.
542         * upc/upc-lang.c (upc_init_options): Ditto.
544 2012-10-27 Gary Funck  <gary@intrepid.com>
546         * defaults.h: fix typos and formatting in UPC-related entries.
548 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
550         Place shared initialization code into the .text
551         section instead of a separate .upc_init section.
552         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
553         (UPC_INIT_BEGIN_NAME): Delete.
554         (UPC_INIT_END_NAME): Delete.
555         * doc/tm.texi.in: Ditto.
556         * doc/tm.texi: Ditto.
558 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
560         Place shared initialization code into the .text
561         section instead of a separate .upc_init section.
562         * upc/upc-act.c (upc_build_init_func): Remove settings
563         of the section for shared initialization code.
565 2012-10-22 Gary Funck  <gary@intrepid.com>
567         Merge trunk version 192673 into gupc branch.
569 2012-10-15 Gary Funck  <gary@intrepid.com>
571         Merge trunk version 192449 into gupc branch.
573 2012-10-08 Gary Funck  <gary@intrepid.com>
575         Merge trunk version 192198 into gupc branch.
577 2012-10-01 Gary Funck  <gary@intrepid.com>
579         Merge trunk version 191931 into gupc branch.
581 2012-09-26  Gary Funck  <gary@intrepid.com>
583         Implement support for various UPC version 1.3 specification
584         additions and changes. Deprecate support for upc_local_alloc.
585         Add support for upc_tick (wall-clock timer) library.
586         Add support for collective de-allocation functions:
587         upc_all_free and upc_all_lock_free.
588         Consult libgupc/ChangeLog,
589         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
591 2012-09-26  Gary Funck  <gary@intrepid.com>
593         * upc/upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.
595 2012-09-24 Gary Funck  <gary@intrepid.com>
597         Merge trunk version 191658 into gupc branch.
599 2012-09-17  Gary Funck  <gary@intrepid.com>
601         Merge trunk version 191376 into gupc branch.
603 2012-09-10  Gary Funck  <gary@intrepid.com>
605         Merge trunk version 191141 into gupc branch.
607 2012-08-29  Nenad Vukicevic  <nenad@intrepid.com>
609         * upc/gupc.texi: Add description for -fupc-pre-include.
611 2012-08-27  Gary Funck  <gary@intrepid.com>
613         Merge trunk version 190707 into gupc branch.
614         * tree.h (struct tree_base): Adjust various
615         UPC tree and type flags to refer to the
616         newly introduced u.bits field.
618 2012-08-20  Gary Funck  <gary@intrepid.com>
620         Merge trunk version 190524 into gupc branch.
621         Incorporates a fix in genoutput.c (to properly use
622         CONST_CAST) that led to build failures with
623         older versions of g++.
625 2012-08-16  Gary Funck  <gary@intrepid.com>
627         Merge trunk version 190437 into gupc branch.
628         Incorporates a fix for a build failure on the PPC
629         due to passing incorrect switches to the assembler.
630         Also, first merged trunk revision that compiles GCC
631         with the C++ compiler in the first stage.
633 2012-08-16  Gary Funck  <gary@intrepid.com>
635         * upc/upc-pts-struct.c (upc_pts_struct_is_null_p):
636         Adjust VEC_index() calls to use C++ syntax.
637         This is required as part of the move to compile
638         GCC with the C++ compiler.
640 2012-08-13  Gary Funck  <gary@intrepid.com>
642         Merge trunk version 190336 into gupc branch.
644 2012-08-09  Gary Funck  <gary@intrepid.com>
646         * c-family/c-common.c (c_fully_fold_internal): Do not fold
647         offsetof-like expressions when they are applied to UPC
648         shared types.
650 2012-08-07  Gary Funck  <gary@intrepid.com>
652         * upc/upc-genericize.c: Delete un-used include of optabs.h.
653         Fixes a parallel make failure due to un-noticed dependency.
655 2012-08-06  Gary Funck  <gary@intrepid.com>
657         Merge trunk version 190173 into gupc branch.
659 2012-08-01  Gary Funck  <gary@intrepid.com>
661         Merge trunk version 190063 into gupc branch.
662         Incorporates fix for build failure on IA64.
664 2012-07-30  Gary Funck  <gary@intrepid.com>
666         Merge trunk version 189954 into gupc branch.
668 2012-07-27  Gary Funck  <gary@intrepid.com>
670         Merge trunk version 189856 into gupc branch.
671         Incorporates fix for bootstrap with a sub-set of language
672         specific source directories present.
673         * optabs.c: Revert to trunk.  Rather than defining opcodes
674         as a way of defining get/put runtime library function names,
675         generate them directly in gcc/upc/upc-genericize.c.
676         * optabs.h: Ditto.
677         * genopinit.c: Ditto.
679 2012-07-27  Gary Funck  <gary@intrepid.com>
681         * upc/upc-genericize.c (upc_expand_get, upc_expand_put):
682         Rather than referring to UPC-specific opcodes to find
683         the name of the get/put library function name, generate
684         the name directly.
685         (get_lc_mode_name): New.
687 2012-07-25  Gary Funck  <gary@intrepid.com>
689         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
690         Fix regression: field-by-field comparison of UPC
691         pointer-to-shared (vaddr, thread) only works
692         (with the current logic) for the == and != operators.
694 2012-07-24  Gary Funck  <gary@intrepid.com>
696         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
697         Fix warning about use of const_tree.
699 2012-07-24  Gary Funck  <gary@intrepid.com>
701         Per UPC spec. 6.4.2p6, ignore the value of the
702         phase of a pointer-to-shared, when comparing for
703         equal or not equal.
704         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
705         Use bit-wise comparison only if the UPC pointer-to-shared
706         target type has a block size <= 1 and the representation
707         has vaddr first or the comparison is for equality/inequality.
708         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
709         Use (vaddr, thread) comparison only if the UPC pointer-to-shared
710         has a block size <= 1 or the comparison is for equality/inequality.
712 2012-07-23  Gary Funck  <gary@intrepid.com>
714         Merge trunk version 189777 into gupc branch.
716 2012-07-16  Gary Funck  <gary@intrepid.com>
718         Merge trunk version 189545 into gupc branch.
720 2012-07-12  Gary Funck  <gary@intrepid.com>
722         Merge trunk version 189366 into gupc branch.
724 2012-07-05  Gary Funck  <gary@intrepid.com>
726         Merge trunk version 189274 into gupc branch.
727         Incorporates graphite build infrastructure changes.
729 2012-07-04  Gary Funck  <gary@intrepid.com>
731         Merge trunk version 189080 into gupc branch.
732         * Makefile.in: Adjust for move of C front-end files.
733         * c/Make-lang.in: Ditto.
735 2012-07-04  Gary Funck  <gary@intrepid.com>
737         * upc/config-lang.in: Adjust for move of C front-end files.
738         * upc/upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
739         * upc/upc-gasp.c: Ditto.
740         * upc/upc-genericize.c: Ditto.
741         * upc/upc-lang.c: Ditto.
742         * upc/upc-pts-struct.c: Ditto.
744 2012-07-03  Gary Funck  <gary@intrepid.com>
746         Merge trunk version 189078 into gupc branch.
748 2012-06-25  Gary Funck  <gary@intrepid.com>
750         Merge trunk version 188931 into gupc branch.
752 2012-06-18  Gary Funck  <gary@intrepid.com>
754         Merge trunk version 188721 into gupc branch.
756 2012-06-11  Gary Funck  <gary@intrepid.com>
758         Merge trunk version 188380 into gupc branch.
760 2012-06-04  Gary Funck  <gary@intrepid.com>
762         Merge trunk version 188168 into gupc branch.
764 2012-05-29  Gary Funck  <gary@intrepid.com>
766         Merge trunk version 187927 into gupc branch.
768 2012-05-19  Gary Funck  <gary@intrepid.com>
770         * upc/upc-act.c (upc_lang_layout_decl): Ignore declarations of
771         an array of shared type declarations if the size of the
772         array is zero.  This avoids a segfault when processing
773         the UPC blocking factor.
775 2012-05-18  Gary Funck  <gary@intrepid.com>
777         Merge trunk version 187666 into gupc branch.
778         Incorporates fix for ICE in tree vectorization pass
779         when processing strided loads.
781 2012-05-17  Gary Funck  <gary@intrepid.com>
783         Merge trunk version 187578 into gupc branch.
785 2012-05-09  Gary Funck  <gary@intrepid.com>
787         Merge trunk version 187347 into gupc branch.
788         Incorporates fix for segfault in tree vectorization pass.
790 2012-05-08  Nenad Vukicevic  <nenad@intrepid.com>
792         * upc/gupcspec.c (lang_specific_driver): Improve handling of
793         "-x" switches: (a) add "-x upc" switch for C source files if
794         no -x switch was seen before OR "-x none" was seen, (b) add
795         "-x none" for files other then C files if "-x upc" was
796         previously added. Cleanup warnings on unused variables
797         and integer conversion. Print verbose info regardless of the
798         command line being the same.
800 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
802         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
803         Appropriate libraries and include files are added on the
804         command line to make it possible to compile with the driver
805         from the build tree.
807 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
809         * upc/gupc.texi: Simplify the description of the optimization
810         options.
812 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
814         * upc/Make-lang.in: Remove build of xgupc.
815         * upc/gupcspec.c (get_libgupc_path): Delete.
816         (lang_specific_driver): Remove support for building xgupc.
817         Removed code tried to add -B, -L, -isystem to the command
818         line if xgupc driver is invoked from the development tree.
820 2012-05-04  Gary Funck  <gary@intrepid.com>
822         * upc/upc-act.c (upc_num_threads): When THREADS is specified
823         statically, convert the value to a signed size type,
824         so that (for example) the thread affinity test in a
825         upc_forall() statement will work as expected for negative
826         integer index values.
828 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
830         * upc/Make-lang.in: Add year 2012 to the copyright.
832 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
834         * upc/gupc.c: Delete. The old GUPC driver.
835         * upc/gupcspec.c: Add. The new GUPC driver tailored
836         after fortran/gfortranspec.c driver. Options "-n", "-inst",
837         and "-inst-functions' are not supported by the new driver.
838         Support for building gupc and xgupc remains the same.
839         * upc/Make-lang.in (xgupc): Changes to compile gupcspec.c
840         instead of gupc.c
841         (gupc): Ditto.
842         * upc/gupc.texi: Remove '-n', '-inst', and '-inst-functions'
843         options.
845 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
847         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
848         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
849         a function returns a pointer-to-shared in memory instead
850         of in registers.
851         (rs6000_pass_by_reference): Ditto.
853 2012-04-28  Gary Funck  <gary@intrepid.com>
855         * c-decl.c (grokdeclarator): Set 'type' to error node
856         after detecting "shared auto variable" error to avoid
857         downstream complications.
858         * upc/upc-act.c: Fix a couple of spelling errors in comments.
860 2012-04-26  Gary Funck  <gary@intrepid.com>
862         * c-family/c-pragma.c (handle_pragma_upc):
863         Fix typo in warning message.
865 2012-04-17  Nenad Vukicevic  <nenad@intrepid.com>
867         * upc/gupc.texi: Fix the warning for usage of 'insertcopying'
868         before 'copying'. Minor changes to to copyright years and
869         manual info.
871 2012-04-17  Gary Funck  <gary@intrepid.com>
873         Merge trunk version 186486 into gupc branch.
875 2012-04-17  Gary Funck  <gary@intrepid.com>
877         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
878         value of the pupc mode.  Fixes a compile-time warning.
879         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
880         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
881         Improve source formatting.
883 2012-04-16  Gary Funck  <gary@intrepid.com>
885         * upc/upc-genericize.c: Adjust copyright.
886         (upc_genericize_fndecl): Adjust call graph
887         union member reference to use the newly introduced
888         'symbol' field in order to refer to 'decl'.
890 2012-04-09  Gary Funck  <gary@intrepid.com>
892         Merge trunk version 186243 into gupc branch.
893         Incorporates a powerpc 'ffi' fix.
895 2012-03-16  Gary Funck  <gary@intrepid.com>
897         Merge trunk version 185454 into gupc branch.
898         Incorporates a libgcc fix for builds on Darwin.
900 2012-03-13  Gary Funck  <gary@intrepid.com>
902         Merge trunk version 185278 into gupc branch.
903         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
904         call build_pointer_type() to apply UPC-specific qualifiers.
905         * top-level/configure.ac: factor the checking for posix hostst
906         out of the libgomp section so that it can also be used by libgupc.
907         * top-level/configure: Re-generate.
908         * DEV-PHASE: bump to 4.8.0-1.
910 2012-03-12  Gary Funck  <gary@intrepid.com>
912         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
913         the mode for a pointer for upc-pointer-to-shared types.
915 2012-03-04  Gary Funck  <gary@intrepid.com>
917         Merge trunk version 184900 into gupc branch.
919 2012-02-17  Gary Funck  <gary@intrepid.com>
921         Released GUPC 4.7.0.2 based on version 183992.
922         * DEV-PHASE: Bump release identifier to 4.7.0-3.
923         * DATESTAMP: Bump date stamp.
925 2012-02-07  Nenad Vukicevic  <nenad@intrepid.com>
927         * upc/gupc.texi: Added entries for the directory.
929 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
931         * upc/gupc-manpage.html: Removed. HTML files are generated from
932         the texi source.
934 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
936         * upc/gupc.texi (-x upc): Add files ending with '.c' to the list
937         of files compiled as UPC source.
939 2012-02-04  Nenad Vukicevic  <nenad@intrepid.com>
941         * upc/Make-lang.in (doc/gupc.info): Fix dependencies for creating
942         gupc.info document.
944 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
946         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
947         code generation (same as #pragma pupc off).
948         (set_pupc_mode): New. Set/restore profiling mode.
949         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
950         (set_pupc_mode): New. Prototype.
951         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
952         profiling code for shared variables initialization routines.
954 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
956         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
957         profiling code for shared variables initialization routines.
959 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
961         * upc/Make-lang.in: Various changes related to generating
962         man/info pages from texi source file.
963         (upc.install-common): Fix for removing the upc command
964         link before install if suffix was applied.
965         (upc.install-pdf): New.
966         (upc.install-html): Change for the build from texi.
967         (upc.install-man): Change for the build from texi.
968         * upc/gupc.1: Removed.
969         * upc/gupc.texi: New. Created texi source for man/info
970         generation.
972 2012-01-31  Gary Funck  <gary@intrepid.com>
974         Merge trunk version 183751 into gupc branch.
975         Incorporates fix for bootstrap failure on openSUSE 12.1.
977 2012-01-30  Nenad Vukicevic  <nenad@intrepid.com>
979         * upc/Make-lang.in: Fix the --program-suffix configuration
980         option.  GUPC executables are now installed with appropriate
981         suffixes and GUPC driver execs 'gcc' with the right suffix.
983 2012-01-24  Nenad Vukicevic  <nenad@intrepid.com>
985         * upc/upc-lang.c (upc_init_options): Disable section anchors
986         for UPC language.
988 2012-01-14  Gary Funck  <gary@intrepid.com>
990         * upc/upc-genericize.c (upc_genericize_expr): Update input_location
991         while traversing the program tree.
992         (upc_expand_get, upc_expand_put): For profiling,  derive
993         the source code location from the incoming 'loc' parameter.
995 2012-01-10  Gary Funck  <gary@intrepid.com>
997         Merge trunk version 183072 into gupc branch.
998         Incorporates libcpp __BASE_FILE__ fix.
1000 2012-01-09  Gary Funck  <gary@intrepid.com>
1002         * upc/upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
1003         is_gimple_non_addressable.
1005 2012-01-06  Nenad Vukicevic <nenad@intrepid.com>
1007         * upc/Make-lang.in: Add appropriate linker flags when linking
1008         gupc drivers.
1010 2012-01-06  Nenad Vukicevic <nenad@intrepid.com>
1012         * upc/Make-lang.in: Add appropriate linker flags when linking
1013         gupc drivers.
1015 2011-12-31  Gary Funck  <gary@intrepid.com>
1017         Fix gupc driver to avoid segfault when processing
1018         invalid use of a switch that expects an argument.
1019         * upc/gupc.c (get_libgupc_path): Add check for non-NULL value of
1020         libgupc_archive before attempting to access libgupc_archive[0].
1021         (main): Do not issue error if lib_dir is NULL.  Instead, only
1022         process lib_dir if it is non-NULL.
1024 2011-12-31  Gary Funck  <gary@intrepid.com>
1026         Improve -fupc-debug support.
1027         * upc/upc-genericize.c (upc_expand_get, upc_expand_put,
1028         upc_genericize_sync_stmt): Add check for flag_upc_debug.
1029         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
1030         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
1031         * upc/upc-act.c (upc_cpp_builtins): Disable inlining of the
1032         runtime if flag_upc_debug is asserted.
1034 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
1036         * top-level/Makefile.def (flags_to_pass): Added GUPC
1037         defines. Fixes the make error when upc is not specified as one
1038         of the languages to build.
1039         * top-level/Makefile.in: Re-generate.
1041 2011-11-22  Gary Funck  <gary@intrepid.com>
1043         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
1044         * dwarf2out.c (gen_compile_unit_die): Check for
1045         the "GNU UPC" language string in lieu of "GCC UPC".
1046         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
1048 2011-11-22  Gary Funck  <gary@intrepid.com>
1050         * upc/upc-act.c (upc_cpp_builtins): Generate new pre-defined
1051         macro: __GUPC__.
1053 2011-11-18  Gary Funck  <gary@intrepid.com>
1055         Merge trunk version 181552 into gupc branch.
1056         Incorporates libgcc/libunwind fix for IA64.
1058 2011-11-19  Gary Funck  <gary@intrepid.com>
1060         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1061         Add check for UPC when defining the language type value
1062         in a traceback entry.
1064 2011-11-19  Gary Funck  <gary@intrepid.com>
1066         * upc/config-lang.in: Remove checks for supported targets.
1067         This is now done at a higher level.
1069 2011-11-18  Gary Funck  <gary@intrepid.com>
1071         Merge trunk version 181493 into gupc branch.
1072         Incorporates final fix for PR target/49992.
1074 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
1076         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
1077         change that converted relative include paths into absolute
1078         ones, as it does not work with older version of make (3.80).
1080 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
1082         Apply patch for Darwin build - PR49992.
1083         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
1084         * gcc/configure.ac: Ditto.
1085         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
1086         * gcc/ada/gcc-interface/Makefile.in: Ditto.
1087         * top-level/configure: Re-generate.
1088         * gcc/configure: Re-genrate.
1090 2011-10-26  Gary Funck  <gary@intrepid.com>
1092         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1093         "libupc" to "libgupc".
1094         * top-level/configure.ac: Implement support for cross-builds, and
1095           adjust for rename of libupc to libgupc.
1096         * top-level/Makefile.tpl: Ditto.
1097         * top-level/Makefile.def: Ditto.
1098         * top-level/configure: Re-generate.
1099         * top-level/Makefile.in: Re-generate.
1100         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
1101         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
1102         * doc/tm.texi: Re-generate.
1103         * tree-pretty-print.c (dump_block_node): Delete unused variable.
1104         * gcc.c: Adjust for rename of libupc to libgupc.
1105         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
1106         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
1107         Change "xupc" to "xgupc".
1108         * configure.ac: Change "GCC UPC" to "GNU UPC".
1109         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
1110         so that they are absolute paths.  This is needed because
1111         the upc-crtstuff builds are in the libgupc library build
1112         directories which are not at the same level as libgcc.
1113         * config/darwin.h: Adjust for rename of libupc to libgupc.
1115 2011-10-26  Gary Funck  <gary@intrepid.com>
1117         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1118         "libupc" to "libgupc".
1119         * upc/gupc.c: Rename from upc-cmd.c and adjust for rename
1120         of libupc to libgupc.
1121         * upc/upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
1122         * upc/config-lang.in: Adjust for rename of libupc to libgupc.
1123         * upc/gupc.1: Rename from upc.1.  Change "GCC UPC" references
1124         to "GNU UPC".  Adjust for rename of libupc to libgupc.
1125         Improve formatting.
1126         * upc/gupc-manpage.html: Rename from upc-manpage.html.  Re-generate.
1127         * upc/Make-lang.in: Change "upc" to "gupc".  Change "xupc" to "xgupc".
1128         Adjust for rename of libupc to libgupc.  Install target symlink from
1129         "upc" to "gupc".  Install target/version-specific hard links to "gupc".
1131 2011-10-20  Gary Funck  <gary@intrepid.com>
1133         Merge trunk version 180276 into gupc branch.
1134         Incorporates fix for PR bootstrap/50709.
1136 2011-10-20  Gary Funck  <gary@intrepid.com>
1138         Merge trunk version 180246 into gupc branch.
1140 2011-10-19  Gary Funck  <gary@intrepid.com>
1142         Merge trunk version 180233 into gupc branch.
1143         Incorporates fix for PR debug/49310 (var tracking).
1145 2011-10-17  Gary Funck  <gary@intrepid.com>
1147         Fix a regression caused by the previous commit.
1148         * upc/upc-genericize.c (upc_genericize_walk):
1149         Renamed from: upc_genericize_stmt.
1150         (upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
1151         re-walk the tree after simplification, by calling
1152         upc_genericize_walk().
1153         (upc_genericize_array_ref): expand the newly constructed
1154         indirect reference by calling upc_genericize_indirect_ref().
1156 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
1158         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
1159         only four (O0 static/dynamic, O3 static/dynamic).
1160         Detect -fupc-threads-0 as an option for dynamic threads
1161         compile environment.
1163 2011-10-10  Gary Funck  <gary@intrepid.com>
1165         * tree.c (check_qualified_type, check_aligned_type):
1166         Call tree_int_cst_equal() to compare UPC blocking factors
1167         if the corresponding tree pointers are not equal.
1168         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
1170 2011-10-10  Gary Funck  <gary@intrepid.com>
1172         * upc/upc-genericize.c (upc_simplify_shared_ref): When simplifying
1173         the base address always convert to (shared [] char *).
1174         This ensures that &a[i].field1 ends up with the required
1175         zero block size, for example.
1177 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
1179         Add configuration checks for struct/packed builds so we can
1180         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
1181         * testsuite/lib/target-supports.exp
1182         (check_effective_target_upc_struct_pts): New.
1183         (check_effective_target_upc_packed_pts): New.
1185 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1187         Add to FLAGS the flags needed to disable inlining of
1188         UPC run-time access routines.
1189         * testsuite/lib/target-supports.exp
1190         (add_options_for_upc_library_calls): New.
1192 2011-09-15  Gary Funck  <gary@intrepid.com>
1194         Fix ICE involving shared bit field accesses.
1195         * tree.c (build3_stat): Propagate TEEE_SHARED()
1196         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1198 2011-09-13  Gary Funck  <gary@intrepid.com>
1200         Merge trunk version 178795 into gupc branch.
1201         Incorporates fix to PR bootstrap/50010 for x86-32.
1203 2011-09-08  Gary Funck  <gary@intrepid.com>
1205         Merge trunk version 178557 into gupc branch.
1207 2011-09-07  Gary Funck  <gary@intrepid.com>
1209         Ensure that UPC pointer-to-shared type alignment is
1210         propagated to the final type.  Revert to long-standing
1211         alignment policy: twice the size of a "C" pointer.
1212         * tree.c (build_pointer_type): Propagate the alignment
1213         of the UPC pointer-to-shared representation type
1214         into the newly built pointer type.
1216 2011-08-30  Gary Funck  <gary@intrepid.com>
1218         * tree.h (check_qualified_type): Change 'const_tree'
1219         argument types back to 'tree' to avoid complaints
1220         of assignment drops qualifiers for invocations of the
1221         newly implemented TYPE_BLOCK_FACTOR() macro, which
1222         invokes hash functions with 'tree' pointer values that
1223         are not const qualified.
1224         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1225         * c-typeck.c (comptypes_internal): Ditto.
1227 2011-08-29  Gary Funck  <gary@intrepid.com>
1229         Fixes for regressions noted running "make check"
1230         versus GCC trunk.
1231         * fold-const.c (fold_unary_loc): Execute UPC-specific
1232         checks for a cast-of-a-cast, only if one of the
1233         operands is a UPC pointer-to-shared value.
1234         * opts.c (print_specific_help):  Fix a comparison
1235         in an assert that checks that there are enough
1236         bits reserved for the number of languages defined
1237         in the .opt files.
1239 2011-08-29  Gary Funck  <gary@intrepid.com>
1241         Implement a hash table to record UPC block factors.
1242         * c-family/stub-upc.c (upc_block_factor_insert,
1243         upc_block_factor_lookup): New dummy stub procedures.
1244         * c-family/c-common.c (c_sizeof_or_alignof_type):
1245         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1246         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1247         to copy (hashed) UPC blocking factor.
1248         (set_type_quals): Likewise.
1249         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1250         TYPE_HAS_THREADS_FACTOR().
1251         (type_common.block_factor): Delete.
1252         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1253         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1254         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1255         UPC blocking factors greater than one.
1256         * dwarf2out.c (modified_type_die): Re-implement
1257         logic that records UPC blocking factor in the generated
1258         DWARF2 debugging information.
1259         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1260         TYPE_HAS_THREADS_FACTOR().
1261         * c-decl.c (finish_decl, grokdeclarator):
1262         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1263         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1264         used by UPC, and print UPC-specific information.
1266 2011-08-28  Gary Funck  <gary@intrepid.com>
1268         Re-work the type machinery to fully support and to unify support
1269         for the UPC layout qualifier (blocking factor).
1270         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1271           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1272           and update prototype.
1273         * c-family/c-common.c (complete_array_type): call newly
1274           defined c_build_qualified_type_1() instead of
1275           upc_set_block_factor().
1276         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1277           upc_apply_layout_qualifier() and update prototype.
1278           (upc_set_block_factor): Delete prototype.
1279         * c-family/c-common.h (c_build_qualified_type): redefine
1280           as a pre-processor macro that invokes c_build_qualified_type_1()
1281           with a null UPC layout qualifier.
1282           (c_build_qualified_type_1): New.  Add layout qualifier argument
1283           to old c_build_qualified_type() prototype.
1284         * tree.c (set_type_quals, check_qualified_type):
1285           Add layout qualifier as argument.
1286           (check_aligned_type): Add check for UPC block factor equality.
1287           (get_qualified_type_1): Rename from get_qualified_type() and
1288           add layout qualifier as argument.
1289           (build_qualified_type_1): Rename from build_qualified_type() and
1290           add layout qualifier as argument.
1291         * tree.h (check_qualified_type): Add layout qualifier as argument
1292           to the prototype.
1293           (get_qualified_type): Re-define as a as a pre-processor macro
1294           that invokes get_qualified_type_1() with a null
1295           UPC layout qualifier.
1296           (get_qualified_type_1): Rename from get_qualified_type() and
1297           add layout qualifier as argument.
1298         * cp/tree.c (c_build_qualified_type_1): Rename from
1299           c_build_qualified_type() and add (unused) layout qualifier
1300           argument.
1301         * c-decl.c (finish_decl): re-format long error messages.
1302           (grokdeclarator): Re-work the logic so that it calls
1303           upc_grok_layout_qualifier() to handle the UPC layout
1304           qualifier, if present.
1305         * c-typeck.c (qualify_type, common_pointer_type,
1306           build_component_ref): Re-work the logic so that it calls
1307           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1308           if present.
1309           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1310           and add layout qualifier argument.
1311         * print_tree.c (print_node): Re-format a long line.
1313 2011-08-26  Gary Funck  <gary@intrepid.com>
1315         Merge trunk version 177949 into gupc branch.
1316         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1317           in the comment.
1318         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1319           to add new rliterals column value.
1321 2011-08-26  Gary Funck  <gary@intrepid.com>
1323         * convert.c (convert_to_integer): Fix the check for the
1324           difference between two UPC pointers-to-shared values.
1326 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1328         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1329           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1330           correctly check packed bits.
1331         * configure: Re-generate.
1333 2011-08-16  Gary Funck  <gary@intrepid.com>
1335         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1336           the barrier id expression is not an integer expression.
1338 2011-08-12  Gary Funck  <gary@intrepid.com>
1340         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1341           (revert to trunk).
1342         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1343           Set mode of UPC pointer-to-shared rep. to an
1344           integral mode of size at least as large as the
1345           size of the representation's struct type.
1347 2011-08-12  Gary Funck  <gary@intrepid.com>
1349         Rework/simplify the UPC genericize pass.
1350         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1351           upc_build_pointer_type): New.
1352           (upc_set_block_factor): Adjust to new calling sequence.
1353           (upc_build_shared_var_addr): Delete.
1354         * c-family/c-common.c (complete_array_type): Adjust call
1355           to upc_set_block_factor().
1356         * c-family/c-upc.h (upc_apply_layout_qualifier,
1357           upc_build_pointer_type): New.
1358           (upc_build_shared_var_addr): Delete.
1359           (upc_set_block_factor): Adjust to new calling sequence.
1360         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1361         * c-decl.c (grokdeclarator): Call newly defined
1362           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1363         * c-decl.c (grokdeclarator): Split long UPC-related error
1364           messages into two lines.
1365         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1366           directly.  Revert that change to trunk. (upc_genericize() will
1367           handle lowering the expressions that take the address of a
1368           UPC variable).
1369         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1370           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1371           representation type.
1373 2011-08-10  Gary Funck  <gary@intrepid.com>
1375         Implement additional fixes for recent merge with trunk.
1376         * explow.c (promote_mode): Do not attempt to promote
1377           the mode for UPC pointer-to-shared types.
1378         * config/i386/i386.c (function_value_64): Ditto.
1380 2011-08-07  Gary Funck  <gary@intrepid.com>
1382         Merge trunk version 177548 into gupc branch.
1383         * config/i386/i386.c (ix86_promote_function_mode):
1384           Do not promote UPC pointers-to-shared to Pmode.
1385         * c-family/c-ommon.c (pointer_int_sum):
1386           Also check the pointer operand, rather than just
1387           its type, when making the decision to derive
1388           the equivalent unshared type.
1389         * tree.c (build2_stat): If the type of the result
1390           passed in as an argument is a UPC shared type,
1391           derive the unshared equivalent when calculating
1392           the result type of the node.
1394 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1396         * config/darwin.c: Disable var_tracking option
1397           on -O0 as it is supposed to run only when optimization
1398           is applied. See GCC bug 49743.
1400 2011-07-06  Gary Funck  <gary@intrepid.com>
1402         Re-implement the pass that lowers trees generated by
1403         the UPC front-end into GENERIC.  Previously this was
1404         done within the gimplification framework, but this
1405         required that gimplification be run before inlining
1406         and various other passes, which did not fit in well
1407         with the current design of the middle-end passes.
1408         Now, the lowering is done by a newly defined language
1409         specific genericize hook.  With this change, we are
1410         are able to undo some extensions made to the gimplify
1411         logic, and thus can revert several files to trunk.
1412         * c-decl.c: Add a check for UPC deprecated names which
1413           may appear as undefined function names.
1414         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1415           LTI_upc_getaddr): Remove definitions of unused UPC
1416           library function names.  These were defined back when
1417           the libfunc interface was used to call these routines.
1418         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1419           in UPC lowering (genericize) pass.
1420         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1421           (instrument_func): Delete this hook.  Now handled in
1422           upc_genericize().
1423         * tree-pass.h: Revert to trunk.
1424         * c-typeck.c (build_unary_op): Adjust reference to
1425           upc_genericize() in a comment.
1426         * gimplify.c (create_tmp_var_raw): Delete logic that
1427           was converting UPC shared types into unshared types
1428           to be used for temporaries.  Now handled in  upc_genericize().
1429           Replace with an assertion check.
1430           (prepare_gimple_addressable): Revert to trunk's definition.
1431           No longer needed as an externally called function.
1432           (flag_instrument_functions_exclude_p): Re-define as
1433           an externally called function.
1434           (gimplify_function_tree): Delete code that implemented
1435           call to UPC's language specific function instrumentation hook.
1436         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1437           (prepare_gimple_addressable): Delete extern definition;
1438           revert to trunk's definition.
1439         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1440           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1441         * c-family/c-gimplify.c: Revert to trunk.
1442         * cp/cp-gimplify.c: Revert to trunk.
1443         * cp/cp-tree.h: Revert to trunk.
1444         * explow.c: Revert to trunk.
1445         * langhooks.c: Revert to trunk.
1446         * libfuncs.h: Revert to trunk.
1447         * objc/objc-act.c: Revert to trunk.
1449 2011-06-30  Gary Funck  <gary@intrepid.com>
1451         * c-family/c.opt: Bring options definitions up-to-date
1452         with respect to changes made in the trunk.
1454 2011-06-29  Gary Funck  <gary@intrepid.com>
1456         Merge trunk version 175584 into gupc branch.
1458 2011-06-13  Gary Funck  <gary@intrepid.com>
1460         libcpp/
1461         * include/cpplib.h (enum c_lang):
1462         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1463         This keeps all the "C" variants together.
1464         * init.c (lang_defaults): Add an entry for UPC.
1466 2011-06-09  Gary Funck  <gary@intrepid.com>
1468         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1469         a 32-bit target, the size expression overflowed, the result was
1470         error_mark_node, and an ICE was triggered on an attempt to evaluate
1471         C_TYPE_VARIABLE_SIZE() on the error node.
1472         (upc_blocksizeof_expr, upc_blocksizeof_type,
1473         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1474         Make similar changes to avoid further processing of error_mark_node.
1476 2011-06-07  Gary Funck  <gary@intrepid.com>
1478         * sel-sched.c (move_op): Incorporate the following
1479         patch to eliminate ICE at -O3 on IA64/Altix.
1481 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1483         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1484         code_motion_path_driver returned 0 or 1.
1485         (sel_region_finish): Clear h_d_i_d.
1487 2011-06-02  Gary Funck  <gary@intrepid.com>
1489         Merge trunk version 174558 into gupc branch.
1491 2011-05-30  Gary Funck  <gary@intrepid.com>
1493         * configure.ac: Make the default order of the virtual
1494           address field in a UPC pointer-to-shared to be "first".
1495           This reverts to the previous setting, and is a short term
1496           measure to work around a bug found on the IA64,
1497           where vaddr=last led to incorrect code generation.
1498           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1499           in AC_DEFINE(), to agree with recent changes in files
1500           that reference this define.
1501           configure, config.in: Regenerate.
1503 2011-05-26  Gary Funck  <gary@intrepid.com>
1505         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1506           configure: Regenerate.
1507         * ../fixincludes/fixincl.x: Revert to trunk.
1508           This file is auto-generated, and should not be merged.
1510 2011-05-18  Gary Funck  <gary@intrepid.com>
1512         Merge trunk version 173845 into gupc branch.
1514 2011-05-17  Gary Funck  <gary@intrepid.com>
1516         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1517           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1518         * c-family/c-pragma.c: Remove conditional compilation
1519           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1520           Test 'compiling_upc' when compiling to determine if
1521           the "upc" and "pupc" pragmas should be registered.
1522         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1523           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1524           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1525           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1526           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1527           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1528           Move these target-dependent definitions from config/upc-conf.h
1529           to here.
1530         * configure.ac: Improve the logic for UPC-related options.
1531           Delete references to pre-processor definitions that have
1532           been moved to "upc/upc-pts.h".
1533         * configure, config.in: Regenerate.
1534         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1535           to trunk.  This substitution variable was used to
1536           configure the representation-specific versions of
1537           the tree rewrites that operate on UPC pointer-to-shared
1538           types and objects.
1539         * c-parser.c (c_parser_upc_forall_statement): Remove
1540           reference to UPC_FORALL_DEPTH_NAME, and call
1541           newly defined upc_rts_forall_depth_var() instead.
1542         * config/upc-config.h: Delete. Various definitions
1543           moved to "upc/upc-rts-names.h", "defaults.h", and
1544           "upc/upc-pts.h".
1545         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1546           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1547           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1548           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1549           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1550           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1551           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1552           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1553           New.  Document UPC target macros.
1554           doc/tm.texi: Regenerate.
1556 2011-05-07  Gary Funck  <gary@intrepid.com>
1558         * ../configure.ac: Disable build of libupc
1559           on non POSIX hosted systems.  Use AS_HELP_STRING
1560           to define messages.  Remove 'word-pair' as a
1561           possible --with-upc-pts UPC pointer-to-shared
1562           representation.
1563         * ../configure: Regenerate.
1564         * configure.ac: Use AS_HELP_STRING to define messages.
1565           Remove 'word-pair' as a possible --with-upc-pts
1566           UPC pointer-to-shared representation.
1567           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1568           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1569         * configure: Regenerate.
1570         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1571           definition.
1572         * ChangeLog.upc: Fix some typos.
1574 2011-05-07  Gary Funck  <gary@intrepid.com>
1576         * ../maintainer-scripts/gcc_release: Add "upc"
1577           as one of the released languages.
1579 2011-05-06  Gary Funck  <gary@intrepid.com>
1581         Eliminate compilation warnings, by fixing
1582         #include's and updating function prototypes.
1583         * c-family/c-cppbuiltin.c: Include c-upc.h.
1584         * optabs.c (gen_libfunc): Change type of 'suffix'
1585           parameter to conform with prototype.
1586         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1587           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1588           hook used by UPC.
1589         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1590           the prototype.
1591         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1592           argument values to cp_gimplify_expr.
1593         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1594           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
1595           pre-processor definitions that are no longer
1596           needed to build the 'upc' command (upc-cmd.c)
1597           because the linker specs. defined in libupc
1598           take care of linking in the needed libraries.
1599         * c-parser.c (c_parser_upc_forall_statement):
1600           initialize affinity_loc to avoid "maybe unused" warning.
1601           (c_parser_upc_sync_statement): Remove un-needed
1602           'ret' variable.  Cast return value from
1603           'upc_build_sync_stmt' to 'void' to avoid
1604           compile-time warning.
1605         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1606           integer constant, not a string.  Range is restricted
1607           to maximum positive 32-bit integer (2+ billion) to
1608           fit in with the use of 'int' in the front-end's
1609           switch handling logic.
1611 2011-05-06  Gary Funck  <gary@intrepid.com>
1613         Upgrade c-family source files to conform with modularity
1614         improvements.  Mainly, remove #include of c-tree.h in files
1615         under c-family, and define a new UPC-specific #include file,
1616         c-upc.h, and use it.
1617         * c-family/stub-upc.c: Remove #include of c-tree.h and
1618           upc/upc-act.h.  Replace with #include of c-common.h
1619           and c-upc.h.
1620           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1621           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1622           upc_localsizeof_expr, upc_localsizeof_type,
1623           upc_shared_type_p): Delete.
1624         * c-family/c-opts.c: Add #include of c-upc.h
1625         * c-family/c-common.c: Remove #include of c-tree.h and
1626           add #include of c-upc.h.
1627         * c-family/c-upc.h: New. Define API for UPC-specific functions
1628           (mostly implemented in upc/upc-act.c).
1629         * c-family/c-common.h (upc_cpp_builtins,
1630           upc_write_global_declarations): Remove extern definitions.
1631         * c-family/c-pragma.c: Remove #include of c-tree.h.
1632           Add #include of c-upc.h.
1633         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
1634           c-tree.h.
1635           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
1636           upc/upc-act.c, and define as a macro.
1637           (expand_affinity_test): Remove unused external definition.
1638           (build_upc_unshared_type): Add external definition.
1639           (upc_shared_type_p): Remove external definition.
1640         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1641         * dojump.c: Remove #include of c-tree.h.
1642         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1643           and move to tree.h.
1644           (count_upc_threads_refs, is_multiple_of_upc_threads,
1645           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1646           upc_build_shared_var_addr, upc_build_sync_stmt,
1647           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1648           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1649           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1650           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1651           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1652           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1653           set_upc_consistency_mode, get_upc_consistency_mode,
1654           push_upc_consistency_mode, pop_upc_consistency_mode,
1655           get_upc_pupc_mode):
1656           Move external definitions to c-family/c-upc.h.
1657           (upc_blocksizeof_type, upc_localsizeof_type,
1658           upc_elemsizeof_type): Remove external definitions;
1659           these functions were moved to c-parser.c.
1660         * c-decl.c: Add #include of c-upc.h.
1661         * c-typeck.c: Add #include of c-upc.h.
1662         * c-convert.c: Add #include of c-upc.h.
1663         * ChangeLog.upc: Fix typo.
1664         * Makefile.in: Add references to c-family/c-upc.h, everywhere
1665           there is a reference to c-family/c-objc.h.
1666           Remove extraneous reference to upc-act.h.
1667         * c-parser.c: Add #include of c-upc.h.
1668           (upc_blocksizeof_expr, upc_blocksizeof_type,
1669           upc_elemsizeof_expr, upc_elemsizeof_type,
1670           upc_localsizeof_expr, upc_localsizeof_type):
1671           Move from upc/upc-act.c.
1672         * tree.c (build_upc_unshared_type): New.
1673           Move upc_get_unshared_type from upc/upc-act.c and rename
1674           to build_upc_unshared_type.
1675           c-family/c-common.c (pointer_int_sum): refer to renamed
1676           build_upc_unshared_type function.
1677           c-convert.c (convert): Ditto.
1678           convert.c (convert_to_pointer): Ditto.
1679           c-typeck.c (build_unary_op, build_modify_expr,
1680           really_start_incremental_init): Ditto.
1681           gimplify.c (create_tmp_var_raw): Ditto.
1682           tree.c (build1_stat): Ditto.
1683           tree.h (upc_get_unshared_type): Rename to
1684           build_upc_unshared_type.
1686 2011-05-06  Gary Funck  <gary@intrepid.com>
1688         Merge trunk version 173471 into gupc branch.
1690 2011-05-05  Gary Funck  <gary@intrepid.com>
1692         Make changes that bring the GUPC branch more closely in sync.
1693         with the GCC trunk.  Revert any fixes that are not UPC-specific.
1694         Remove gratuitous re-formatting.
1695         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1696           This file should have been removed in a previous merge
1697           with the trunk.
1698         * ../configure.ac: Remove Cray Catamount/CNL support.
1699         * ../configure: Regenerate.
1700         * ../config.sub: Remove Cray Catamount/CNL support.
1701         * config.gcc: Remove Cray Catamount/CNL support.
1702         * ../maintainer-scripts/gcc_release: Revert to trunk.
1703         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1704           was missed in a previous merge with the trunk.
1705         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1706           procedure.
1707         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1708           in addition to ARRAY_TYPE.
1709         * c-typeck.c: Remove an extra newline character.
1710         * varasm.c: Revert a fix that improved an error message
1711           when TLS common data is unimplemented.
1712         * varasm.c: Revert a gcc_assert that had been added which
1713           checked for a null DECL_SIZE_UNIT field.
1714         * emultls.c: Revert to trunk. Remove possible fix.
1715         * Makefile.in: Revert extra blank line that is present
1716           in the trunk version.
1717         * Makefile.in: Revert a fix that handled long shell
1718           argument lists for plugin headers.
1719         * config/ia64/ia64.opt: Revert an option setting
1720           that increased the default TLS address range.
1721         * config/ia64/crtbegin.asm: Revert to trunk.
1722           Removes an extra newline character.
1723         * ChangeLog.upc: Spell check.
1725 2011-05-03  Gary Funck  <gary@intrepid.com>
1727         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1728           (c_apply_type_quals_to_decl): Ditto.
1729         * c-family/c-common.h: Ditto.
1730         * dojump.c: Ditto.
1731         * c-decl.c (merge_decls): Ditto.
1732         * c-typeck.c (qualify_type, default_conversion,
1733           build_component_ref, build_unary_op,
1734           c_build_qualified_type): Ditto.
1735         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1737 2011-04-29  Gary Funck  <gary@intrepid.com>
1739         * c-decl.c (finish_decl): Improve error diagnostics.
1740           (grokdeclarator): Ditto.
1741         * c-typeck.c (build_c_cast): Improve error diagnostics.
1742           (convert_for_assignment): Ditto.
1743           (build_binary_op): Ditto.
1744         * c-parser.c (c_parser_upc_forall_statement):
1745           Improve error diagnostics.
1746         * convert.c (convert_to_integer):  Improve error diagnostics.
1748 2011-04-24  Gary Funck  <gary@intrepid.com>
1750         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1751           occurred if there is an error in the barrier id
1752           expression.  Map error_mark_node into NULL.
1754 2011-04-22  Gary Funck  <gary@intrepid.com>
1756         Merge trunk version 172873 into gupc branch.
1758 2011-04-19  Gary Funck  <gary@intrepid.com>
1760         Merge trunk version 172359 into gupc branch.
1762 2011-04-14  Gary Funck  <gary@intrepid.com>
1764         * c-family/c.opt: Add UPC as a valid language for various
1765           switches where it is valid for "C", that were not updated
1766           in previous merges with trunk.
1768 2011-04-13  Gary Funck  <gary@intrepid.com>
1770         * c-family/c.opt (fupc-pre-include): New option definition.
1771         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1772           -fno-upc-pre-include is asserted.
1774 2011-04-07  Gary Funck  <gary@intrepid.com>
1776         Merge trunk version 172158 into gupc branch.
1777         to bring in the following fix.
1779 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1781         PR bootstrap/48403
1782         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1783         if old and new states differ.
1785 2011-04-06  Gary Funck  <gary@intrepid.com>
1787         Merge trunk version 171966 into gupc branch.
1789 2011-04-01  Gary Funck  <gary@intrepid.com>
1791         * tree.h (tree_base): Move UPC flag bits into bit fields
1792           located just before spare bits.  Decrement spare bits.
1793           Rename 'shared_flag' -> 'upc_shared_flag',
1794           'relaxed_flag' -> 'upc_relaxed_flag',
1795           'strict_flag' -> 'upc_strict_flag, and adjust macros
1796           that reference them accordingly.
1798 2011-04-01  Gary Funck  <gary@intrepid.com>
1800         * c-decl.c (grokdeclarator): Fix formatting of
1801           code that sets UPC block size on scalars.
1803 2011-04-01  Gary Funck  <gary@intrepid.com>
1805         * c-decl.c (grokdeclarator): Revert use of white space
1806           to match the trunk (to rationalize diffs).
1807         * c-typeck.c (convert_for_assignment): Ditto.
1808         * tree-ssa.c (useless_type_conversion_p): Ditto.
1810 2011-03-23  Gary Funck  <gary@intrepid.com>
1812         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1813           the GCC 4.6 release branch.
1815 2011-03-21  Gary Funck  <gary@intrepid.com>
1817         Merge trunk version 171202 into gupc branch.
1819 2011-03-20  Gary Funck  <gary@intrepid.com>
1821         * varasm.c: Call error() directly with a format specifier,
1822           rather than using sprintf() to format the message.
1823           This should make it easier to internationalize UPC's error messages.
1825 2011-03-20  Gary Funck  <gary@intrepid.com>
1827         * configure.ac: Fix the check for gnu ld when enabling
1828           UPC link script support.
1829           configure: Regenerate (also picks up changes from previous
1830           merge with trunk).
1832 2011-03-20  Gary Funck  <gary@intrepid.com>
1834         Move UPC start files, end files, and linker specs.
1835         into libupc.  This reduces the impact on common GCC
1836         configuration files, and ensures that these UPC-specific
1837         components are only built when the UPC language dialect is selected.
1838         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1839           linker specs. Fix typo in -fupc-debug message.
1840         * config/upc-conf.h, config/darwin.h: Move defines for
1841           UPC-related section begins/ends into libupc/config/default/
1842           upc-crt-config.h.
1843         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1844           UPC-related linker compiler specifications,
1845           accessed via %:include().
1846         * configure.ac, configure: Remove logic related to building
1847                 upc-crtbegin/end. Remove config. tests for numa and cpu
1848           affinity (previously used by the 'upc' driver); these
1849           settings are now propagated by target-specific compiler
1850           specs. built by libupc.  Regenerate autoconf.
1851         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1852           linker compiler specifications, accessed via %:include().
1853           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1854           'link_upc_spec'.
1855         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1856         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1857           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1858           config/ia64/linux.h, config/mips/t-iris,
1859           config/mips/iris6.h: Revert to trunk version 167307.
1860         libgcc/
1861         * configure, configure.ac, config.host, Makefile.in:
1862           Revert to trunk version 167307.
1864 2011-02-23  Gary Funck  <gary@intrepid.com>
1866         * c-decl.c (undeclared_variable): fix typo. Inadvertently
1867         removed negation on following 'if'.
1869 2011-02-22  Gary Funck  <gary@intrepid.com>
1871         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1872         to check for the usage of certain deprecated UPC keywords.
1873         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1874         * c-tree.h (undeclared_variable): Define prototype.
1876 2011-02-12  Gary Funck  <gary@intrepid.com>
1878         * c-typeck.c: (build_c_cast, convert_for_assignment)
1879           Diagnose an attempt to convert from an integer to
1880           a pointer-to-shared as an error.  Also, fix various
1881           error messages so that they use the preferred term
1882           pointer-to-shared instead of "shared pointer".
1884 2011-02-07  Gary Funck  <gary@intrepid.com>
1886         * c-typeck.c: (convert_for_assignment)
1887           Fix typo. in error message.
1889 2011-01-23  Gary Funck  <gary@intrepid.com>
1891         * c-typeck.c: (c_build_qualified_type)
1892           derive UPC block size by calling upc_get_block_size(),
1893           to ensure that the element type of an array of an array
1894           is derived correctly.
1896 2010-12-29  Gary Funck  <gary@intrepid.com>
1898         Merge trunk version 168314 into gupc branch.
1900 2010-12-15  Gary Funck  <gary@intrepid.com>
1902         Merge trunk version 167307 into gupc branch.
1904 2010-10-19  Gary Funck  <gary@intrepid.com>
1906         * c-typeck.c: Fix typo in previous fix
1907           which led to a mis-compare for equal block sizes.
1909 2010-10-18  Gary Funck  <gary@intrepid.com>
1911         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1912           diagnosed as an error
1913           The conversion from any type (shared or not) to
1914           a shared type is likely either meaningless or an error.  This update
1915           makes any conversion to a shared type, an error.
1917 2010-10-18  Gary Funck  <gary@intrepid.com>
1919         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1920           generates spurious warning
1921           Add a #define procedure that does the same thing as
1922           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1923           this procedure to diagnose passing an integer value to a
1924           pointer-to-shared as an error.
1926 2010-10-18  Gary Funck  <gary@intrepid.com>
1928         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1929           matching routine declaration.
1930           When checking for type compatibility, shared qualified types must
1931           have the same block factor.  This check was missing from
1932           comptypes_internal().  This update adds the check for blocking
1933           factor equality.
1935 2010-10-17  Gary Funck  <gary@intrepid.com>
1937         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1938           found (-O1 -g)
1939           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1941 2010-10-17  Gary Funck  <gary@intrepid.com>
1943         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1944           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1945           produces ice with -O3 and -m32.
1946           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1948 2010-10-17  Gary Funck  <gary@intrepid.com>
1950         * c-common.c: Diagnose the application of the various "*sizeof"
1951           operations on generic pointer-to-shared as a compilation error.
1953 2010-10-17  Gary Funck  <gary@intrepid.com>
1955         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1956           message regarding a function parameter being declared with a shared
1957           qualifier.
1958           The parameter's 'name' value is not defined at this point, and
1959           cannot be used in the error message.  This update removes the
1960           reference to 'name', and eliminates the segfault.
1962 2010-10-16  Gary Funck  <gary@intrepid.com>
1964         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1965           The gcc/Makefile.in rules for install-plugin had to be re-written to
1966           break up a long list of header files that exceeded the command line
1967           limitation imposed by Irix.
1968           Access functions for TFmode types had to be implemented.
1969           Apparently, this is the mode used for the SGI/MIPS port to represent
1970           "long float".
1972 2010-10-14  Gary Funck  <gary@intrepid.com>
1974         * c-decl.c: Fix bug: Multiple equal blocking factors specified
1975           via typedef chain should not be diagnosed as an error.
1976           If the block size that is given by the typedef is equal to the block
1977           size given explicitly in the variable declaration, then do not
1978           complain.  The easiest way to make this check was to create a
1979           temporary type that is a clone of the element type and then set its
1980           block size using the given layout qualifier.  Then compare the block
1981           size of the temporary (the declaration) to the block size specified
1982           in the typedef.  This complexity is needed, because the '[*]' block
1983           size needs to be calculated, and the '[]' needs to be mapped into a
1984           zero block size.
1986 2010-10-10  Gary Funck  <gary@intrepid.com>
1988         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1989           specified
1990           The compiler properly detected the presence of two or more layout
1991           qualifiers as an error, but then hit an assertion check, because the
1992           code that followed the error expected to see a qualifier and not a
1993           layout specifier.  The fix is simple: just return immediately after
1994           detecting the error.
1996 2010-10-10  Gary Funck  <gary@intrepid.com>
1998         * c-decl.c: Improve error diagnostics for various cases of UPC
1999           shared array type declarations.
2000           Add the check for this error: "In the dynamic translation
2001           environment, THREADS may not appear in declarations of shared arrays
2002           with indefinite block size".  Also, fix up a few of the other
2003           related error diagnostics.
2005 2010-10-09  Gary Funck  <gary@intrepid.com>
2007         * c-common.c: Fix bug: segfault on incomplete array definition.
2008           This turned out to be a bit complicated.   The logic in
2009           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2010           the THREADS identifier in the case where the blocking factor has
2011           been set to indefinite ([]).  This can happen when indefinite array
2012           declarations are processed for shared arrays.  At that time, the
2013           file scope has been closed and THREADS is no longer in scope.  Some
2014           more work is needed on upc_lang_layout_decl().  It has some
2015           duplication, and notably duplicates the two branches of the if
2016           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2017           caller of this routine (layout_decl()).
2018           The method of forcing a layout qualifier of [] in the indefinite
2019           declaration handler is odd a well.  The code that just does the
2020           setting of the block factor, needs to moved into its own routine
2021           that doesn't depend upon a declspec for '[]' to be passed in, just
2022           in order to set the blocking factor to some value (in this case, 0).
2023           Also, the logic for how that shared type is constructed is strange.
2024           First the type with 0 blocking factor is set.  Then the shared
2025           qualifier is removed from the type, and then added back later.  The
2026           intermediate type has a blocking factor set, but it has no shared
2027           qualifier.  Fixing this will require some thought.  It is tempting
2028           just to make indefinite shared arrays an error, rather than forcing
2029           the dimension to be '1'.
2030           This likely fixes a serious error in the previous update to
2031           upc_lang_layout_decl(), where it didn't have the logic to set
2032           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2033           the previous update would fail on many tests.
2035 2010-10-09  Gary Funck  <gary@intrepid.com>
2037         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2038           (decl) is null, which can happen if some layout error occurred
2039           upstream.
2041 2010-10-09  Gary Funck  <gary@intrepid.com>
2043         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2044           "variable-sized" when compiled in dynamic threads.
2045           This long-standing bug is easily fixed.  Just check
2046           for the situation that the non-constant sized type is shared and
2047           that it does not have a dimension that references a multiple of
2048           threads.  If this criteria is met, then issue a meaningful
2049           diagnostic.
2051 2010-10-01  Gary Funck  <gary@intrepid.com>
2053         * configure, configure.ac: Update manual page, and bug reporting
2054           URL.  Update "man" page to reflect debugging switches.
2055           Also, some general clean up.  Change the bug reporting
2056           URL to point to gccupc.org.
2058 2010-09-27  Gary Funck  <gary@intrepid.com>
2060         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2061           the UPC forall depth count variable is not found.
2062           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2063           The compiler will generate code that references this variable in
2064           order to implement nested upc_forall semantics.  If there is a
2065           compiler build or install problem, this variable may not be found.
2066           In this case, terminate with an internal_error().
2068 2010-09-26  Gary Funck  <gary@intrepid.com>
2070         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2071           mis-diagnosed as syntax error.
2072           Fix a failure exhibited by the Berkeley test case,
2073           bug873a.upc, which has the code:
2074                double d;
2075                upc_forall (;;;d) {...} The compiler did not properly handle
2076           the empty "condition" clause, and did not recover well when it was
2077           determined that the use of a double value, "d" above, was neither a
2078           pointer-to-shared nor an integer expression.  The update implements a
2079           fix for both issues.
2080           See also: gcc/c-parser.c gcc/upc/upc-act.c
2082 2010-09-23  Gary Funck  <gary@intrepid.com>
2084         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2085           incorporated into the referencing type.
2086           This was semi-fixed a few times before.  This update fixes a few
2087           more places where the layout qualifier wasn't being propagated
2088           through typedef's properly.  What made this a bit tricky is shown in
2089           the example cited in the bug report:
2090           typedef shared [5] int A_t; A_t A[5*THREADS];
2091           In the typedef, the blocksize is being applied to a shared *scalar*,
2092           and the code was applying the blocksize only to arrays.  This update
2093           handles shared scalars correctly.
2095 2010-09-22  Gary Funck  <gary@intrepid.com>
2097         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2098           upc_forall() semantics are not implemented
2099           The checkforall test in the Berkeley harness test suite indicated
2100           that GCC/UPC was not properly implementing nested upc_forall
2101           semantics.  Nested upc_forall statements (both statically or
2102           dynamically nested) must implement their affinity clause as if it
2103           were "continue"; thus all steps in the loop must execute without
2104           regard for affinity.  To implement these semantics a global depth
2105           counter, __upc_forall_depth, is maintained by the generated code
2106           that implements upc_forall.
2107           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2108           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2109           libupc/include/upc.h libupc/smp/upc_main.c
2111 2010-09-19  Gary Funck  <gary@intrepid.com>
2113         * c-decl.c: c-decl.c: zero out the layout specifier, after
2114           processing an array type.
2115           Fix the previous fix, that moved the setting of the type's layout
2116           qualifier to the outside of the array type processing loop.  What is
2117           missing from the fix is that the layout_qualifier variable needs to
2118           be cleared after setting the type's blocksize.
2120 2010-09-19  Gary Funck  <gary@intrepid.com>
2122         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2123           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2124           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2125           the actual maximum block size.  Therefore, the message was correct,
2126           but the underlying value that was being checked was wrong.  Change
2127           the values so that they agree with the actual implementation-defined
2128           limit.
2130 2010-09-11  Gary Funck  <gary@intrepid.com>
2132         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2133           multi-dimensional shared array with dynamic threads.
2134           This declaration caused an internal compiler error when compiled
2135           with dynamic threads:
2136               shared [*] int A[THREADS][16]; The bug was discovered when
2137           compiling the RTED_UPC test suite.
2138           The fix is to process layout qualifiers after the entire array type
2139           has been built.  Otherwise, we try to calculate the blocksize on a
2140           shared array type that has not had its "size depends upon the value
2141           of THREADS" flag set.
2142           Also, added a test case.
2143           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2145 2010-07-11  Gary Funck  <gary@intrepid.com>
2147         Fix a bug where a statement in c_build_qualified_type()
2148         in the trunk had been inadvertently deleted.
2149         This bug showed up in the IA64 port, because jmpbuf's
2150         on that architecture must be 16 byte aligned, and they were not.
2151         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2153 2010-07-08  Gary Funck  <gary@intrepid.com>
2155         Make changes so that other language compilers
2156         will build and bootstrap.
2157         * c-family/c-common.c (compiling_upc, flag_upc,
2158         flag_upc_instrument, flag_upc_instrument_functions,
2159         use_upc_dwarf2_extensions): Move to stub-upc.c and
2160         upc-lang.c.
2161         * c-family/c-common.h (use_upc_dwarf2_extensions,
2162         compiling_upc): Add extern definitions - needed
2163         to compile/build other language front ends.
2164         * c-family/c.opt: Fix the spelling of ObjC.
2165         It had been incorrectly spelled as Objc.
2166         * c-family/c.opt: Add UPC for the various switches
2167         that are valid for both C and ObjC.
2168         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2169         supported options switches when compiling assembly
2170         language.
2171         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2172         flag_upc_instrument, flag_upc_instrument_functions):
2173         Remove these definitions.  They have been moved
2174         to c-family/stub-upc.c.
2175         * upc/ChangeLog: Move relevant entries
2176         to ChangeLog.upc.
2177         * c-family/stub-upc.c (compiling_upc, flag_upc,
2178         flag_upc_instrument, flag_upc_instrument_functions,
2179         use_upc_dwarf2_extensions): Moved from c-common.c
2180         * upc/upc-lang.c (compiling_upc, flag_upc,
2181         flag_upc_instrument, flag_upc_instrument_functions,
2182         use_upc_dwarf2_extensions): Moved from c-common.c
2183         * objc/objc-act.c (objc_gimplify_expr): Add additional
2184         parameters to c_gimplify_expr() call, that are used
2185         by upc's tree rewrites.
2186         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2187         * gcc/cp/lex.c (init_reswords): If not compiling
2188         UPC, then mask off the UPC keywords.
2189         * cp/Make-lang.in (C_STUB_OBJS): Use this
2190         make macro to link with c-family/stub-objc.o
2191         and c-family/stub-upc.o.
2192         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2193         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2194         * objc/Make-lang.in: Link with c-family/stub-upc.o
2195         to avoid undefined references.
2196         c-parser.c: Fix line indentation.
2197         * libcpp/include/cpplib.h: Remove CL_UPC from
2198         the list of language kinds accepted by the
2199         C preprocessor.  This is not necessary because
2200         UPC is a derivative of C99, and does not need
2201         a different language kind.
2202         * c-fmaily/c-opts.c (c_common_handle_option):
2203         Call set_std_c99() when processing the
2204         "--lang upc" switch, instead of setting the
2205         language kind to CL_UPC.
2206         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2208 2010-07-03  Gary Funck  <gary@intrepid.com>
2210         Merge trunk version 161517 into gupc branch.
2211         * gcc/stub-upc.c: Move to gcc/c-family/.
2212         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2213         Add 'unused' attributes to avoid "set, but
2214         not referenced" warnings.
2215         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2216         Likewise.
2218 2010-03-01 Gary Funck  <gary@intrepid.com>
2220         Create gupc branch from trunk version 157149.
2222 2011-10-04  Gary Funck  <gary@intrepid.com>
2224         Merge trunk version 179421 into gupc branch.
2225         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
2226         argument to the call to check_qualified_type().
2228 2011-09-22  Gary Funck  <gary@intrepid.com>
2230         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
2231         information.
2232         (dump_upc_type_quals): New.
2234 2011-09-22  Gary Funck  <gary@intrepid.com>
2236         * upc/upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
2237         before calling TYPE_BLOCK_FACTOR().  This fits better with
2238         recent encoding of block factor values with a hash table.
2240 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
2242         Add to FLAGS the flags needed to disable inlining of
2243         UPC run-time access routines.
2244         * testsuite/lib/target-supports.exp
2245         (add_options_for_upc_library_calls): New.
2247 2011-09-15  Gary Funck  <gary@intrepid.com>
2249         Fix ICE involving shared bit field accesses.
2250         * tree.c (build3_stat): Propagate TEEE_SHARED()
2251         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
2253 2011-09-15  Gary Funck  <gary@intrepid.com>
2255         Fix ICE involving shared bit field accesses.
2256         * upc/upc-genericize.c (upc_simplify_shared_ref): Improve
2257         "shared bit fields not yet implemented" error message
2258         by adding file/line number location.
2260 2011-09-13  Gary Funck  <gary@intrepid.com>
2262         Merge trunk version 178795 into gupc branch.
2263         Incorporates fix to PR bootstrap/50010 for x86-32.
2265 2011-09-13  Gary Funck  <gary@intrepid.com>
2267         * upc/upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
2268         * upc/upc-lang.c (upc_init_options): Ditto.
2269         * upc/upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
2270         upc_genericize_expr, upc_genericize_compound_expr): Ditto.
2271         * upc/upc-act.c (upc_parse_init, upc_build_pointer_type,
2272         upc_block_factor_insert, upc_pts_is_valid_p): Ditto.
2274 2011-09-08  Gary Funck  <gary@intrepid.com>
2276         Merge trunk version 178557 into gupc branch.
2278 2011-09-07  Gary Funck  <gary@intrepid.com>
2280         Ensure that UPC pointer-to-shared type alignment is
2281         propagated to the final type.  Revert to long-standing
2282         alignment policy: twice the size of a "C" pointer.
2283         * tree.c (build_pointer_type): Propagate the alignment
2284         of the UPC pointer-to-shared representation type
2285         into the newly built pointer type.
2287 2011-09-07  Gary Funck  <gary@intrepid.com>
2289         Ensure that UPC pointer-to-shared type alignment is
2290         propagated to the final type.  Revert to long-standing
2291         alignment policy: twice the size of a "C" pointer.
2292         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
2293         shared pointers have twice the alignment of a pointer.
2294         * upc/upc-act.c (upc_cpp_builtins): Unconditionally emit
2295         the definition of __UPC_PTS_ALIGN__.
2297 2011-09-02  Gary Funck  <gary@intrepid.com>
2299         Align UPC pointers-to-shared, only if the target enforces
2300         strict alignment.
2301         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Align a
2302         UPC pointer-to-shared type, only if the target requires
2303         strict alignment.
2304         * upc/upc-act.c (upc_cpp_builtins): Output pre-defined macro,
2305         __UPC_PTS_ALIGN__, only if the target requires strict alignment.
2307 2011-08-30  Gary Funck  <gary@intrepid.com>
2309         * tree.h (check_qualified_type): Change 'const_tree'
2310         argument types back to 'tree' to avoid complaints
2311         of assignment drops qualifiers for invocations of the
2312         newly implemented TYPE_BLOCK_FACTOR() macro, which
2313         invokes hash functions with 'tree' pointer values that
2314         are not const qualified.
2315         * tree.c (check_qualified_type, check_aligned_type): Ditto.
2316         * c-typeck.c (comptypes_internal): Ditto.
2318 2011-08-29  Gary Funck  <gary@intrepid.com>
2320         Fixes for regressions noted running "make check"
2321         versus GCC trunk.
2322         * fold-const.c (fold_unary_loc): Execute UPC-specific
2323         checks for a cast-of-a-cast, only if one of the
2324         operands is a UPC pointer-to-shared value.
2325         * opts.c (print_specific_help):  Fix a comparison
2326         in an assert that checks that there are enough
2327         bits reserved for the number of languages defined
2328         in the .opt files.
2330 2011-08-29  Gary Funck  <gary@intrepid.com>
2332         Implement a hash table to record UPC block factors.
2333         * c-family/stub-upc.c (upc_block_factor_insert,
2334         upc_block_factor_lookup): New dummy stub procedures.
2335         * c-family/c-common.c (c_sizeof_or_alignof_type):
2336         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2337         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
2338         to copy (hashed) UPC blocking factor.
2339         (set_type_quals): Likewise.
2340         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2341         TYPE_HAS_THREADS_FACTOR().
2342         (type_common.block_factor): Delete.
2343         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
2344         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
2345         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
2346         UPC blocking factors greater than one.
2347         * dwarf2out.c (modified_type_die): Re-implement
2348         logic that records UPC blocking factor in the generated
2349         DWARF2 debugging information.
2350         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2351         TYPE_HAS_THREADS_FACTOR().
2352         * c-decl.c (finish_decl, grokdeclarator):
2353         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2354         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
2355         used by UPC, and print UPC-specific information.
2357 2011-08-29  Gary Funck  <gary@intrepid.com>
2359         Implement a hash table to record UPC block factors.
2360         * upc/upc-act.c (upc_block_factor_for_type): New garbage-collected
2361         hash table.
2362         (upc_lang_init, upc_finish): Move to end of source file.
2363         (upc_lang_init): create  upc_block_factor_for_type hash table.
2364         (upc_block_factor_lookup, upc_block_factor_insert): New.
2365         (upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
2366         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2367         (upc_grok_layout_qualifier): convert blocking factor to sizetype
2368         before checking for equality to element type's blocking factor.
2370 2011-08-28  Gary Funck  <gary@intrepid.com>
2372         Re-work the type machinery to fully support and to unify support
2373         for the UPC layout qualifier (blocking factor).
2374         * c-family/stub-upc.c (upc_set_block_factor): Delete.
2375           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
2376           and update prototype.
2377         * c-family/c-common.c (complete_array_type): call newly
2378           defined c_build_qualified_type_1() instead of
2379           upc_set_block_factor().
2380         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
2381           upc_apply_layout_qualifier() and update prototype.
2382           (upc_set_block_factor): Delete prototype.
2383         * c-family/c-common.h (c_build_qualified_type): redefine
2384           as a pre-processor macro that invokes c_build_qualified_type_1()
2385           with a null UPC layout qualifier.
2386           (c_build_qualified_type_1): New.  Add layout qualifier argument
2387           to old c_build_qualified_type() prototype.
2388         * tree.c (set_type_quals, check_qualified_type):
2389           Add layout qualifier as argument.
2390           (check_aligned_type): Add check for UPC block factor equality.
2391           (get_qualified_type_1): Rename from get_qualified_type() and
2392           add layout qualifier as argument.
2393           (build_qualified_type_1): Rename from build_qualified_type() and
2394           add layout qualifier as argument.
2395         * tree.h (check_qualified_type): Add layout qualifier as argument
2396           to the prototype.
2397           (get_qualified_type): Re-define as a as a pre-processor macro
2398           that invokes get_qualified_type_1() with a null
2399           UPC layout qualifier.
2400           (get_qualified_type_1): Rename from get_qualified_type() and
2401           add layout qualifier as argument.
2402         * cp/tree.c (c_build_qualified_type_1): Rename from
2403           c_build_qualified_type() and add (unused) layout qualifier
2404           argument.
2405         * c-decl.c (finish_decl): re-format long error messages.
2406           (grokdeclarator): Re-work the logic so that it calls
2407           upc_grok_layout_qualifier() to handle the UPC layout
2408           qualifier, if present.
2409         * c-typeck.c (qualify_type, common_pointer_type,
2410           build_component_ref): Re-work the logic so that it calls
2411           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
2412           if present.
2413           (c_build_qualified_type_1): Rename from c_build_qualified_type()
2414           and add layout qualifier argument.
2415         * print_tree.c (print_node): Re-format a long line.
2417 2011-08-28  Gary Funck  <gary@intrepid.com>
2419         Re-work the type machinery to fully support and to unify support
2420         for the UPC layout qualifier (blocking factor).
2421         * upc/upc-genericize.c (upc_simplify_shared_ref): Call
2422         c_build_qualified_type_1() instead of upc_set_block_factor()
2423         to assert a zero blocking factor.
2424         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Call
2425         c_build_qualified_type_1() to build predefined shared
2426         qualified types, instead of build_variant_type_copy().
2427         * upc/upc-pts-packed.c (upc_pts_packed_init_type): Call
2428         c_build_qualified_type_1() to build predefined shared
2429         qualified types, instead of build_variant_type_copy().
2430         * upc/upc-act.c (upc_set_block_factor): Delete.
2431         (upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
2432         Rework logic so that it returns a blocking factor rather than
2433         a qualified type.  Add 'loc' argument and call error_at().
2434         Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
2435         the block size of the element type into the result type, and checks
2436         for errors due to an attempt to merge differing blocking factors.
2438 2011-08-26  Gary Funck  <gary@intrepid.com>
2440         Merge trunk version 177949 into gupc branch.
2441         * c-family/c-common.h (enum rid): Bump the number of type modifiers
2442           in the comment.
2443         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
2444           to add new rliterals column value.
2446 2011-08-26  Gary Funck  <gary@intrepid.com>
2448         * convert.c (convert_to_integer): Fix the check for the
2449           difference between two UPC pointers-to-shared values.
2451 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
2453         * configure.ac: Fix the name for --with-upc-pts-packed-bits
2454           option. Support --with-upc-packed-bits as deprecated. Fix the code to
2455           correctly check packed bits.
2456         * configure: Re-generate.
2458 2011-08-16  Gary Funck  <gary@intrepid.com>
2460         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
2461           the barrier id expression is not an integer expression.
2463 2011-08-16  Gary Funck  <gary@intrepid.com>
2465         * upc/upc-act.c (upc_decl_init): Do not attempt to expand
2466           an error mark node.  Fixes ICE after error diagnostic.
2467         * upc/upc-cmd.c (main): detect missing option argument for
2468           options that require an argument, and print error diagnostic.
2469           (get_print_cmd): Re-direct error output to /dev/null to
2470           avoid issuing duplicate error messages.
2472 2011-08-12  Gary Funck  <gary@intrepid.com>
2474         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
2475           (revert to trunk).
2476         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
2477           Set mode of UPC pointer-to-shared rep. to an
2478           integral mode of size at least as large as the
2479           size of the representation's struct type.
2481 2011-08-12  Gary Funck  <gary@intrepid.com>
2483         Rework/simplify the UPC genericize pass.
2484         * c-family/stub-upc.c (upc_apply_layout_qualifier,
2485           upc_build_pointer_type): New.
2486           (upc_set_block_factor): Adjust to new calling sequence.
2487           (upc_build_shared_var_addr): Delete.
2488         * c-family/c-common.c (complete_array_type): Adjust call
2489           to upc_set_block_factor().
2490         * c-family/c-upc.h (upc_apply_layout_qualifier,
2491           upc_build_pointer_type): New.
2492           (upc_build_shared_var_addr): Delete.
2493           (upc_set_block_factor): Adjust to new calling sequence.
2494         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
2495         * c-decl.c (grokdeclarator): Call newly defined
2496           upc_apply_layout_qualifier() instead of upc_set_block_factor().
2497         * c-decl.c (grokdeclarator): Split long UPC-related error
2498           messages into two lines.
2499         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
2500           directly.  Revert that change to trunk. (upc_genericize() will
2501           handle lowering the expressions that take the address of a
2502           UPC variable).
2503         * config/i386/i386.c (ix86_promote_function_mode): For UPC
2504           pointers-to-shared, return the type mode of the UPC pointer-to-shared
2505           representation type.
2507 2011-08-12  Gary Funck  <gary@intrepid.com>
2509         Rework/simplify the UPC genericize pass.
2510         * upc/upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
2511         * upc/upc-act.h: Cosmetic change.
2512         * upc/config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
2513         * upc/upc-genericize.c (upc_expand_get):
2514           Add WANT_STABLE_VALUE parameter.
2515           (upc_build_shared_var_addr, upc_shared_addr_rep): New.
2516           (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
2517           create_unshared_var, lookup_unshared_var, map_unshared_var,
2518           unshared_var_addr, unshared_var_name,
2519           upc_free_unshared_var_table): Move from upc-act.c.
2520           (upc_expand_get, upc_expand_put): Change their source and/or
2521           destination parameters so that they are no longer addresses
2522           of the objects, but rather references to the objects themselves.
2523           (upc_simplify_shared_ref): Rewrite (simplify/generalize).
2524           (upc_shared_addr_rep): New.
2525           (upc_shared_addr):  Adjust call to upc_build_shared_var_addr(),
2526           and re-factor the logic.
2527           (upc_genericize_sync_stmt): Re-format comment.
2528           (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
2529           (upc_genericize_addr_expr): Re-factor the logic.
2530           (upc_genericize_indirect_ref, upc_genericize_field_ref):
2531           Adjust call to upc_expand_get() and re-factor the logic.
2532           (upc_genericize_modify_expr): Adjust call to upc_expand_put()
2533           and re-factor the logic.
2534           (upc_genericize_expr): Improve/fix comments.
2535           (upc_genericize_finish, upc_genericize_init): New.
2536         * upc/upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
2537           (upc_char_pts_type_node): Create new global type node.
2538           (upc_pts_struct_is_null_p): Generalize variable names to
2539           reflect the fact that the vaddr field can be either first/last.
2540           (upc_pts_struct_build_sum): Make corrections to comments.
2541           (upc_pts_struct_build_add_offset): Delete.
2542         * upc/upc-genericize.h (upc_genericize_finish, upc_genericize_init):
2543           New prototypes.
2544         * upc/upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
2545           (upc_char_pts_type_node): Create new global type node.
2546         * upc/Make-lang.in: Add dependencies to gtype-upc.h
2547           and gt-upc-upc-genericize.h.
2548         * upc/upc-act.c: Adjust includes to reflect moving the functions
2549           that handle the UPC unshared "shadow variables" into
2550           upc-genericize.c.  Improve/fix various comments.
2551         * upc/upc-act.c (upc_parse_init): Call upc_genericize_init().
2552           (upc_build_pointer_type): New.
2553           (upc_set_block_factor): Re-purpose.  Move the front-end
2554           related error checks into upc_apply_layout_qualifier().
2555           (upc_apply_layout_qualifier): New.
2556           (upc_write_global_declarations): Call upc_genericize_finish().
2558 2011-08-10  Gary Funck  <gary@intrepid.com>
2560         Implement additional fixes for recent merge with trunk.
2561         * explow.c (promote_mode): Do not attempt to promote
2562           the mode for UPC pointer-to-shared types.
2563         * config/i386/i386.c (function_value_64): Ditto.
2565 2011-08-07  Gary Funck  <gary@intrepid.com>
2567         Merge trunk version 177548 into gupc branch.
2568         * config/i386/i386.c (ix86_promote_function_mode):
2569           Do not promote UPC pointers-to-shared to Pmode.
2570         * c-family/c-ommon.c (pointer_int_sum):
2571           Also check the pointer operand, rather than just
2572           its type, when making the decision to derive
2573           the equivalent unshared type.
2574         * tree.c (build2_stat): If the type of the result
2575           passed in as an argument is a UPC shared type,
2576           derive the unshared equivalent when calculating
2577           the result type of the node.
2579 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
2581         * config/darwin.c: Disable var_tracking option
2582           on -O0 as it is supposed to run only when optimization
2583           is applied. See GCC bug 49743.
2585 2011-07-11  Gary Funck  <gary@intrepid.com>
2587         * upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
2588         qualification was incorrectly derived from the source operand.
2589         (upc_genericize_fndecl): New.
2590         (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
2591         c_genericize() more than once in the event of nested procedures.
2592         (upc_genericize_real_imag_ref): Rename,
2593         was: upc_genericize_real_image_ref.
2594         (upc_expand_put): call internal_error() with meaningful message
2595         in lieu of abort().
2596         (upc_genericize_real_imag_ref): call internal_error() with
2597         meaningful message in lieu of gcc_unreachable().
2599 2011-07-06  Gary Funck  <gary@intrepid.com>
2601         Re-implement the pass that lowers trees generated by
2602         the UPC front-end into GENERIC.  Previously this was
2603         done within the gimplification framework, but this
2604         required that gimplification be run before inlining
2605         and various other passes, which did not fit in well
2606         with the current design of the middle-end passes.
2607         Now, the lowering is done by a newly defined language
2608         specific genericize hook.  With this change, we are
2609         are able to undo some extensions made to the gimplify
2610         logic, and thus can revert several files to trunk.
2611         * c-decl.c: Add a check for UPC deprecated names which
2612           may appear as undefined function names.
2613         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
2614           LTI_upc_getaddr): Remove definitions of unused UPC
2615           library function names.  These were defined back when
2616           the libfunc interface was used to call these routines.
2617         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
2618           in UPC lowering (genericize) pass.
2619         * langhooks.h (gimplify_expr): Revert to trunk's definition.
2620           (instrument_func): Delete this hook.  Now handled in
2621           upc_genericize().
2622         * tree-pass.h: Revert to trunk.
2623         * c-typeck.c (build_unary_op): Adjust reference to
2624           upc_genericize() in a comment.
2625         * gimplify.c (create_tmp_var_raw): Delete logic that
2626           was converting UPC shared types into unshared types
2627           to be used for temporaries.  Now handled in  upc_genericize().
2628           Replace with an assertion check.
2629           (prepare_gimple_addressable): Revert to trunk's definition.
2630           No longer needed as an externally called function.
2631           (flag_instrument_functions_exclude_p): Re-define as
2632           an externally called function.
2633           (gimplify_function_tree): Delete code that implemented
2634           call to UPC's language specific function instrumentation hook.
2635         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
2636           (prepare_gimple_addressable): Delete extern definition;
2637           revert to trunk's definition.
2638         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
2639           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
2640         * c-family/c-gimplify.c: Revert to trunk.
2641         * cp/cp-gimplify.c: Revert to trunk.
2642         * cp/cp-tree.h: Revert to trunk.
2643         * explow.c: Revert to trunk.
2644         * langhooks.c: Revert to trunk.
2645         * libfuncs.h: Revert to trunk.
2646         * objc/objc-act.c: Revert to trunk.
2648 2011-07-06  Gary Funck  <gary@intrepid.com>
2650         Improve/simplify the logic in upc_genericize.
2651         * upc/upc-genericize.c (upc_create_tmp_var): Delete the
2652           PREFIX argument.  Aways use "UPC" as the prefix.
2653           (upc_genericize_compound_expr): Add a WANT_VALUE argument.
2654           (upc_genericize_cond_expr): New.
2655           (upc_genericize_decl_expr): New.
2656           (upc_genericize_stmt): New.
2657           (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
2658           to upc_create_tmp_var().
2659           (upc_genericize_expr): Change the handling
2660           of the want_value flag passed in the DATA argument.
2661           Always assert this flag after processing EXPR_P.
2662           (upc_genericize_compound_expr): Adjust call
2663           to upc_genericize_compound_expr() and call
2664           upc_genericize_cond_expr() and upc_genericize_decl_expr().
2666 2011-07-06  Gary Funck  <gary@intrepid.com>
2668         Re-implement the pass that lowers trees generated by
2669         the UPC front-end into GENERIC.  Previously this was
2670         done within the gimplification framework, but this
2671         required that gimplification be run before inlining
2672         and various other passes, which did not fit in well
2673         with the current design of the middle-end passes.
2674         Now, the lowering is done by a newly defined language
2675         specific genericize hook.  With this change, we are
2676         are able to undo some extensions made to the gimplify
2677         logic, and thus can revert several files to trunk.
2678         * upc/upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
2679         * upc/upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
2680         * upc/Make-lang.in: Adjust to refer to upc-genericize.[cho].
2681         * upc/upc-lnag.c: refer to upc-genericize.h.
2682           (LANG_HOOKS_GENERICIZE): define as upc_genericize.
2683           (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
2684           (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
2685         * upc/upc-act.c: Minor code format fix.
2687 2011-06-30  Gary Funck  <gary@intrepid.com>
2689         * c-family/c.opt: Bring options definitions up-to-date
2690         with respect to changes made in the trunk.
2692 2011-06-29  Gary Funck  <gary@intrepid.com>
2694         Merge trunk version 175584 into gupc branch.
2696 2011-06-29  Gary Funck  <gary@intrepid.com>
2698         Merge trunk version 175584 into gupc branch.
2699         * upc/upc-act.c (upc_handle_option): Change reference to
2700         have_named_sections so that it refers to the
2701         targetm_common structure.
2703 2011-06-28  Gary Funck  <gary@intrepid.com>
2705         * upc/upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
2706         Remove extern definitions. Now declared as 'static'.
2707         * upc/upc-gimplify.c, upc/upc-lang.c,
2708         upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
2709         upc-cmd.c, upc-act.c: Improve/add comments, fix
2710         typos and spelling errors.
2712 2011-06-13  Gary Funck  <gary@intrepid.com>
2714         libcpp/
2715         * include/cpplib.h (enum c_lang):
2716         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
2717         This keeps all the "C" variants together.
2718         * init.c (lang_defaults): Add an entry for UPC.
2720 2011-06-10  Gary Funck  <gary@intrepid.com>
2722         * upc/upc-act.c (upc_set_block_factor): Handle the case where
2723         the UPC blocking factor expression overflowed.
2725 2011-06-09  Gary Funck  <gary@intrepid.com>
2727         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
2728         a 32-bit target, the size expression overflowed, the result was
2729         error_mark_node, and an ICE was triggered on an attempt to evaluate
2730         C_TYPE_VARIABLE_SIZE() on the error node.
2731         (upc_blocksizeof_expr, upc_blocksizeof_type,
2732         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
2733         Make similar changes to avoid further processing of error_mark_node.
2735 2011-06-07  Gary Funck  <gary@intrepid.com>
2737         * sel-sched.c (move_op): Incorporate the following
2738         patch to eliminate ICE at -O3 on IA64/Altix.
2740 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
2742         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
2743         code_motion_path_driver returned 0 or 1.
2744         (sel_region_finish): Clear h_d_i_d.
2746 2011-06-02  Gary Funck  <gary@intrepid.com>
2748         Merge trunk version 174558 into gupc branch.
2750 2011-06-02  Gary Funck  <gary@intrepid.com>
2752         Merge trunk version 174558 into gupc branch.
2753         * upc/upc-lang.c (upc_check_decl_init): Use recently defined
2754         'append_to_statement_list_force' function to add UPC
2755         initialization statements to the UPC initialization
2756         statement list ('upc_init_stmt_list').
2757         (upc_build_init_func): Use recently defined
2758         'append_to_statement_list_force' function to add
2759         statements listed in 'upc_init_stmt_list' onto the
2760         function body constructed to implement initialization
2761         of UPC declarations that require active initialization
2762         at program start up.  The previous methods of manipulating
2763         statement lists no longer worked, due to changes in the
2764         the statement list structure.
2766 2011-05-30  Gary Funck  <gary@intrepid.com>
2768         * configure.ac: Make the default order of the virtual
2769           address field in a UPC pointer-to-shared to be "first".
2770           This reverts to the previous setting, and is a short term
2771           measure to work around a bug found on the IA64,
2772           where vaddr=last led to incorrect code generation.
2773           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
2774           in AC_DEFINE(), to agree with recent changes in files
2775           that reference this define.
2776           configure, config.in: Regenerate.
2778 2011-05-26  Gary Funck  <gary@intrepid.com>
2780         * configure.ac: Fix typo when referring to $upc_vaddr_order.
2781           configure: Regenerate.
2782         * ../fixincludes/fixincl.x: Revert to trunk.
2783           This file is auto-generated, and should not be merged.
2785 2011-05-23  Gary Funck  <gary@intrepid.com>
2787         * upc/upc-pts-struct.c: Revert to code that aligned the
2788           internal pointer-to-shared representation to
2789           twice the alignment of a pointer.  This fixes
2790           an ICE that occurred when building the compiler
2791           on an IA64 target.
2793 2011-05-18  Gary Funck  <gary@intrepid.com>
2795         Merge trunk version 173845 into gupc branch.
2797 2011-05-17  Gary Funck  <gary@intrepid.com>
2799         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
2800           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
2801         * c-family/c-pragma.c: Remove conditional compilation
2802           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
2803           Test 'compiling_upc' when compiling to determine if
2804           the "upc" and "pupc" pragmas should be registered.
2805         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2806           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2807           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2808           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2809           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2810           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
2811           Move these target-dependent definitions from config/upc-conf.h
2812           to here.
2813         * configure.ac: Improve the logic for UPC-related options.
2814           Delete references to pre-processor definitions that have
2815           been moved to "upc/upc-pts.h".
2816         * configure, config.in: Regenerate.
2817         * Makefile.in (UPC_PTS_REP): Remove definition and revert
2818           to trunk.  This substitution variable was used to
2819           configure the representation-specific versions of
2820           the tree rewrites that operate on UPC pointer-to-shared
2821           types and objects.
2822         * c-parser.c (c_parser_upc_forall_statement): Remove
2823           reference to UPC_FORALL_DEPTH_NAME, and call
2824           newly defined upc_rts_forall_depth_var() instead.
2825         * config/upc-config.h: Delete. Various definitions
2826           moved to "upc/upc-rts-names.h", "defaults.h", and
2827           "upc/upc-pts.h".
2828         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
2829           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
2830           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2831           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2832           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2833           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2834           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2835           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
2836           New.  Document UPC target macros.
2837           doc/tm.texi: Regenerate.
2839 2011-05-17  Gary Funck  <gary@intrepid.com>
2841         * upc/upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
2842           upc_pts_build_cond_expr, upc_pts_build_constant,
2843           upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
2844           upc_pts_build_threadof, upc_pts_init_type): Remove extern
2845           definitions.
2846           (upc_pts_ops_t): New. Define handler table that will
2847           implement either the 'packed' or the 'struct' representation
2848           of a UPC pointer-to-shared value.
2849           (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
2850           refers to the packed and the struct UPC pointer-to-shared
2851           representation implementation.
2852           (upc_pts): New. Define handler table that is set up at initialization
2853           to refer to the handlers for the UPC pointer-to-shared
2854           representation (packed/struct) that has been configured.
2855           Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
2856           and configure the UPC pointer-to-shared definitions that
2857           are specific to the configured UPC pointer-to-shared
2858           representation.
2859         * upc/upc-act.h (upc_pts_is_valid_p): Rename extern definition from
2860           is_valid_pts_p to upc_pts_is_valid_p.
2861         * lang-specs.h: Reformat the UPC compilation specs.
2862           to improve readability.
2863         * upc/upc-rts-names.h: New. Define the names of UPC runtime
2864           library functions that implement UPC language statement
2865           semantics.  These definitions were moved from config/upc-conf.h
2866         * upc/upc-gimplify.c: Add include of "upc-rts-names.h".
2867           Refer to newly defined pointer manipulation routines
2868           by indirecting through the newly defined "pts" handler table.
2869           Re-format, re-indent.
2870         * upc/upc-lang.c: Add include of "upc-pts.h".  Fix a comment.
2871         * upc/config-lang.in: Remove logic that inserted "config/upc-conf.h"
2872           into the target include and file path.
2873         * upc/upc-pts-struct.c: Add include of "upc-rts-names.h".
2874           (upc_pts_struct_ops): Define the pointer manipulation
2875           handler table that implements operations on UPC
2876           pointers-to-shared, represented as a struct.
2877           Re-format and re-indent.
2878         * upc/upc-gasp.c: Add include of "upc-rts-names.h".
2879           Re-format and re-indent.
2880         * upc/upc-pts-packed.c: Add include of "upc-rts-names.h".
2881           (upc_pts_packed_ops): Define the pointer manipulation
2882           handler table that implements operations on UPC
2883           pointers-to-shared, represented as a packed integer.
2884           Re-format and re-indent.
2885         * upc/Make-lang.in: Compile both "upc-pts-packed.c" and
2886           "upc-pts-struct.c".  One/other will be selected at
2887           compilation time to implement operations on UPC
2888           on the UPC pointer-to-shared that has been configured.
2889           Add dependencies on "upc-rts-names.h".
2890         * upc/upc-cmd.c: Re-format and re-indent.
2891         * upc/upc-act.c: Add include of "upc-rts-names.h".
2892           (upc_pts): New. Add definition of the handler
2893           table that implements representation specific
2894           operations on trees that refer to UPC pointer-to-shared
2895           objects and types.  Re-format and re-indent.
2897 2011-05-07  Gary Funck  <gary@intrepid.com>
2899         * ../configure.ac: Disable build of libupc
2900           on non POSIX hosted systems.  Use AS_HELP_STRING
2901           to define messages.  Remove 'word-pair' as a
2902           possible --with-upc-pts UPC pointer-to-shared
2903           representation.
2904         * ../configure: Regenerate.
2905         * configure.ac: Use AS_HELP_STRING to define messages.
2906           Remove 'word-pair' as a possible --with-upc-pts
2907           UPC pointer-to-shared representation.
2908           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
2909           (UPC_MAX_BLOCK_SIZE): Correct the default value.
2910         * configure: Regenerate.
2911         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
2912           definition.
2913         * ChangeLog.upc: Fix some typos.
2915 2011-05-07  Gary Funck  <gary@intrepid.com>
2917         * ../maintainer-scripts/gcc_release: Add "upc"
2918           as one of the released languages.
2920 2011-05-06  Gary Funck  <gary@intrepid.com>
2922         Eliminate compilation warnings, by fixing
2923         #include's and updating function prototypes.
2924         * c-family/c-cppbuiltin.c: Include c-upc.h.
2925         * optabs.c (gen_libfunc): Change type of 'suffix'
2926           parameter to conform with prototype.
2927         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2928           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2929           hook used by UPC.
2930         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2931           the prototype.
2932         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2933           argument values to cp_gimplify_expr.
2934         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2935           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
2936           pre-processor definitions that are no longer
2937           needed to build the 'upc' command (upc-cmd.c)
2938           because the linker specs. defined in libupc
2939           take care of linking in the needed libraries.
2940         * c-parser.c (c_parser_upc_forall_statement):
2941           initialize affinity_loc to avoid "maybe unused" warning.
2942           (c_parser_upc_sync_statement): Remove un-needed
2943           'ret' variable.  Cast return value from
2944           'upc_build_sync_stmt' to 'void' to avoid
2945           compile-time warning.
2946         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2947           integer constant, not a string.  Range is restricted
2948           to maximum positive 32-bit integer (2+ billion) to
2949           fit in with the use of 'int' in the front-end's
2950           switch handling logic.
2952 2011-05-06  Gary Funck  <gary@intrepid.com>
2954         Upgrade c-family source files to conform with modularity
2955         improvements.  Mainly, remove #include of c-tree.h in files
2956         under c-family, and define a new UPC-specific #include file,
2957         c-upc.h, and use it.
2958         * c-family/stub-upc.c: Remove #include of c-tree.h and
2959           upc/upc-act.h.  Replace with #include of c-common.h
2960           and c-upc.h.
2961           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2962           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2963           upc_localsizeof_expr, upc_localsizeof_type,
2964           upc_shared_type_p): Delete.
2965         * c-family/c-opts.c: Add #include of c-upc.h
2966         * c-family/c-common.c: Remove #include of c-tree.h and
2967           add #include of c-upc.h.
2968         * c-family/c-upc.h: New. Define API for UPC-specific functions
2969           (mostly implemented in upc/upc-act.c).
2970         * c-family/c-common.h (upc_cpp_builtins,
2971           upc_write_global_declarations): Remove extern definitions.
2972         * c-family/c-pragma.c: Remove #include of c-tree.h.
2973           Add #include of c-upc.h.
2974         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
2975           c-tree.h.
2976           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
2977           upc/upc-act.c, and define as a macro.
2978           (expand_affinity_test): Remove unused external definition.
2979           (build_upc_unshared_type): Add external definition.
2980           (upc_shared_type_p): Remove external definition.
2981         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2982         * dojump.c: Remove #include of c-tree.h.
2983         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2984           and move to tree.h.
2985           (count_upc_threads_refs, is_multiple_of_upc_threads,
2986           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2987           upc_build_shared_var_addr, upc_build_sync_stmt,
2988           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2989           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2990           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2991           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2992           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2993           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2994           set_upc_consistency_mode, get_upc_consistency_mode,
2995           push_upc_consistency_mode, pop_upc_consistency_mode,
2996           get_upc_pupc_mode):
2997           Move external definitions to c-family/c-upc.h.
2998           (upc_blocksizeof_type, upc_localsizeof_type,
2999           upc_elemsizeof_type): Remove external definitions;
3000           these functions were moved to c-parser.c.
3001         * c-decl.c: Add #include of c-upc.h.
3002         * c-typeck.c: Add #include of c-upc.h.
3003         * c-convert.c: Add #include of c-upc.h.
3004         * ChangeLog.upc: Fix typo.
3005         * Makefile.in: Add references to c-family/c-upc.h, everywhere
3006           there is a reference to c-family/c-objc.h.
3007           Remove extraneous reference to upc-act.h.
3008         * c-parser.c: Add #include of c-upc.h.
3009           (upc_blocksizeof_expr, upc_blocksizeof_type,
3010           upc_elemsizeof_expr, upc_elemsizeof_type,
3011           upc_localsizeof_expr, upc_localsizeof_type):
3012           Move from upc/upc-act.c.
3013         * tree.c (build_upc_unshared_type): New.
3014           Move upc_get_unshared_type from upc/upc-act.c and rename
3015           to build_upc_unshared_type.
3016           c-family/c-common.c (pointer_int_sum): refer to renamed
3017           build_upc_unshared_type function.
3018           c-convert.c (convert): Ditto.
3019           convert.c (convert_to_pointer): Ditto.
3020           c-typeck.c (build_unary_op, build_modify_expr,
3021           really_start_incremental_init): Ditto.
3022           gimplify.c (create_tmp_var_raw): Ditto.
3023           tree.c (build1_stat): Ditto.
3024           tree.h (upc_get_unshared_type): Rename to
3025           build_upc_unshared_type.
3027 2011-05-06  Gary Funck  <gary@intrepid.com>
3029         Merge trunk version 173471 into gupc branch.
3031 2011-05-06  Gary Funck  <gary@intrepid.com>
3033         Eliminate compilation warnings, by fixing
3034         #include's and updating function prototypes.
3035         * upc/upc-gimplify.c: Include bitmap.h.
3036           (upc_gimplify_real_image_ref): Mark various parameters
3037           as unused.  This is a stub procedure for now.
3038         * upc/upc-lang.c: Include c-family/c-upc.h.
3039           upc-gasp.c: Ditto.
3040         * upc/upc-cmd.c (no_start_files): Delete unused variable.
3041           The -nostartfiles switch is now handled by the linker spec.
3042         * ChangeLog: Spell check.
3044 2011-05-06  Gary Funck  <gary@intrepid.com>
3046         Upgrade c-family source files to conform with modularity
3047         improvements.  Mainly, remove #include of c-tree.h in files
3048         under c-family, and define a new UPC-specific #include file,
3049         c-upc.h, and use it.
3050         * upc/upc-act.h (upc_write_global_declarations,
3051           upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
3052           upc_num_threads, upc_diagnose_deprecated_stmt):
3053           Move external definitions to c-family/c-upc.h
3054           (upc_blocksizeof_expr, upc_blocksizeof_type,
3055           upc_elemsizeof_expr, upc_elemsizeof_type,
3056           upc_localsizeof_expr, upc_localsizeof_type):
3057           Remove external definitions; these functions
3058           were moved from upc-act.c to c-parser.c.
3059         * upc/upc-gimplify.c: Add #include of c-family/c-upc.h.
3060           upc-pts-packed.c: Ditto.
3061           upc-pts-struct.c: Ditto.
3062         * upc/config-lang.in: Update gtfiles to refer to c-upc.h
3063           and other files.
3064         * upc/upc-act.c: Add #include of c-family/c-upc.h.
3065           (upc_blocksize, upc_elemsizeof, upc_localsizeof):
3066           Make external so that it can be called from c-parser.c.
3067           (upc_blocksizeof_expr, upc_blocksizeof_type,
3068           upc_elemsizeof_expr, upc_elemsizeof_type,
3069           upc_localsizeof_expr, upc_localsizeof_type):
3070           Move from upc/upc-act.c to c-parser.c.
3071           (upc_set_block_factor): Fix typo in error message.
3072           (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
3073           Move to tree.h and define as a macro.
3074           (upc_get_unshared_type): Delete. renamed to
3075           build_upc_unshared_type and moved to tree.c.
3076         * upc/upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
3077           refer to renamed build_upc_unshared_type function.
3078           upc-act.c (create_unshared_var): Ditto.
3080 2011-05-05  Gary Funck  <gary@intrepid.com>
3082         Make changes that bring the GUPC branch more closely in sync.
3083         with the GCC trunk.  Revert any fixes that are not UPC-specific.
3084         Remove gratuitous re-formatting.
3085         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
3086           This file should have been removed in a previous merge
3087           with the trunk.
3088         * ../configure.ac: Remove Cray Catamount/CNL support.
3089         * ../configure: Regenerate.
3090         * ../config.sub: Remove Cray Catamount/CNL support.
3091         * config.gcc: Remove Cray Catamount/CNL support.
3092         * ../maintainer-scripts/gcc_release: Revert to trunk.
3093         * c-family/c-common.h: Define parse_optimize_options.  Its definition
3094           was missed in a previous merge with the trunk.
3095         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
3096           procedure.
3097         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
3098           in addition to ARRAY_TYPE.
3099         * c-typeck.c: Remove an extra newline character.
3100         * varasm.c: Revert a fix that improved an error message
3101           when TLS common data is unimplemented.
3102         * varasm.c: Revert a gcc_assert that had been added which
3103           checked for a null DECL_SIZE_UNIT field.
3104         * emultls.c: Revert to trunk. Remove possible fix.
3105         * Makefile.in: Revert extra blank line that is present
3106           in the trunk version.
3107         * Makefile.in: Revert a fix that handled long shell
3108           argument lists for plugin headers.
3109         * config/ia64/ia64.opt: Revert an option setting
3110           that increased the default TLS address range.
3111         * config/ia64/crtbegin.asm: Revert to trunk.
3112           Removes an extra newline character.
3113         * ChangeLog.upc: Spell check.
3115 2011-05-03  Gary Funck  <gary@intrepid.com>
3117         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
3118           (c_apply_type_quals_to_decl): Ditto.
3119         * c-family/c-common.h: Ditto.
3120         * dojump.c: Ditto.
3121         * c-decl.c (merge_decls): Ditto.
3122         * c-typeck.c (qualify_type, default_conversion,
3123           build_component_ref, build_unary_op,
3124           c_build_qualified_type): Ditto.
3125         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
3127 2011-05-03  Gary Funck  <gary@intrepid.com>
3129         * upc/upc-lang.c: Remove extraneous FIXME/TODO comments.
3130         * upc/upc-pts-packed.c (upc_pts_build_cvt): Ditto.
3131         * upc/upc-act.c (upc_set_block_factor): Ditto.
3133 2011-04-29  Gary Funck  <gary@intrepid.com>
3135         * c-decl.c (finish_decl): Improve error diagnostics.
3136           (grokdeclarator): Ditto.
3137         * c-typeck.c (build_c_cast): Improve error diagnostics.
3138           (convert_for_assignment): Ditto.
3139           (build_binary_op): Ditto.
3140         * c-parser.c (c_parser_upc_forall_statement):
3141           Improve error diagnostics.
3142         * convert.c (convert_to_integer):  Improve error diagnostics.
3144 2011-04-29  Gary Funck  <gary@intrepid.com>
3146         * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
3147           (upc_expand_put): Ditto.
3148           (upc_shared_addr): Ditto.
3149           (upc_gimplify_sync_stmt): Ditto.
3150           (upc_gimplify_field_ref): Ditto.
3151         * upc/upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
3152           (upc_pts_build_cvt): Ditto.
3153         * upc/upc-act.c (upc_handle_option): Improve error diagnostics.
3154           (upc_lang_init): Ditto.
3155           (upc_sizeof_type_check): Ditto.
3156           (upc_set_block_factor): Ditto.
3157           (upc_decl_init): Ditto.
3158           (upc_affinity_test): Ditto.
3159           (upc_num_threads): Ditto.
3160           (upc_diagnose_deprecated_stmt): Ditto.
3161           (upc_build_shared_var_addr): Ditto.
3162           (upc_pts_int_sum): Ditto.
3163           (upc_pts_diff): Ditto.
3165 2011-04-28  Gary Funck  <gary@intrepid.com>
3167         * upc/upc-act.c (create_unshared_var): call upc_get_unshared_type()
3168           instead of using TYPE_MAIN_VARIANT() to create an equivalent type
3169           that is not a UPC shared type.  This is sometimes necessary
3170           when the given shared type is derived from a typedef.
3172 2011-04-24  Gary Funck  <gary@intrepid.com>
3174         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
3175           occurred if there is an error in the barrier id
3176           expression.  Map error_mark_node into NULL.
3178 2011-04-24  Gary Funck  <gary@intrepid.com>
3180         * upc/upc-act.c (upc_handle_option): Fix incorrect error
3181           diagnostic messages when both -fupc-debug and
3182           -fupc-inline-lib are asserted.
3184 2011-04-24  Gary Funck  <gary@intrepid.com>
3186         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
3187           to the list of switches that accept arguments.
3188           (main): Check for switches that have a following
3189           argument inside the loop that copies arguments and
3190           adds '-x upc' or '-x none' as necessary.
3191           (main): Misc. clean ups and simplifications.
3193 2011-04-22  Gary Funck  <gary@intrepid.com>
3195         Merge trunk version 172873 into gupc branch.
3197 2011-04-22  Gary Funck  <gary@intrepid.com>
3199         Merge trunk version 172873 into gupc branch.
3200         * upc/upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
3201           on init_func() to prevent it from being removed from
3202           the call graph.
3204 2011-04-19  Gary Funck  <gary@intrepid.com>
3206         Merge trunk version 172359 into gupc branch.
3208 2011-04-19  Gary Funck  <gary@intrepid.com>
3210         Merge trunk version 172359 into gupc branch.
3211         * upc/upc-lang.c (upc_init_ts): New.
3212           (LANG_HOOKS_INIT_TS): use upc_init_ts.
3214 2011-04-19  Gary Funck  <gary@intrepid.com>
3216         Eliminate warnings when compiling upc-cmd.c.
3217         * upc/upc-cmd.c (file_exists): Remove.
3218           (arg_copy): Remove const qualifier.
3220 2011-04-14  Gary Funck  <gary@intrepid.com>
3222         * c-family/c.opt: Add UPC as a valid language for various
3223           switches where it is valid for "C", that were not updated
3224           in previous merges with trunk.
3226 2011-04-13  Gary Funck  <gary@intrepid.com>
3228         * c-family/c.opt (fupc-pre-include): New option definition.
3229         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
3230           -fno-upc-pre-include is asserted.
3232 2011-04-13  Gary Funck  <gary@intrepid.com>
3234         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
3235           to the list, and alphabetize.
3237 2011-04-13  Gary Funck  <gary@intrepid.com>
3239         * upc/upc-gimplify.c (upc_gimplify_real_image_ref): New.
3240           Currently, a not-yet-implemented stub.
3241           (upc_gimplify_lval): call upc_gimplify_real_image_ref to
3242           rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
3243           This will avoid an ICE when compiling regular "C"
3244           code that refers to those operators.
3246 2011-04-13  Gary Funck  <gary@intrepid.com>
3248         * upc/upc-cmd.c: Do not add "-isystem <libupc_path>" if
3249           -fno-upc-pre-include is asserted.
3251 2011-04-07  Gary Funck  <gary@intrepid.com>
3253         Merge trunk version 172158 into gupc branch.
3254         to bring in the following fix.
3256 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
3258         PR bootstrap/48403
3259         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3260         if old and new states differ.
3262 2011-04-06  Gary Funck  <gary@intrepid.com>
3264         Merge trunk version 171966 into gupc branch.
3266 2011-04-01  Gary Funck  <gary@intrepid.com>
3268         * tree.h (tree_base): Move UPC flag bits into bit fields
3269           located just before spare bits.  Decrement spare bits.
3270           Rename 'shared_flag' -> 'upc_shared_flag',
3271           'relaxed_flag' -> 'upc_relaxed_flag',
3272           'strict_flag' -> 'upc_strict_flag, and adjust macros
3273           that reference them accordingly.
3275 2011-04-01  Gary Funck  <gary@intrepid.com>
3277         * c-decl.c (grokdeclarator): Fix formatting of
3278           code that sets UPC block size on scalars.
3280 2011-04-01  Gary Funck  <gary@intrepid.com>
3282         * c-decl.c (grokdeclarator): Revert use of white space
3283           to match the trunk (to rationalize diffs).
3284         * c-typeck.c (convert_for_assignment): Ditto.
3285         * tree-ssa.c (useless_type_conversion_p): Ditto.
3287 2011-03-23  Gary Funck  <gary@intrepid.com>
3289         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
3290           the GCC 4.6 release branch.
3292 2011-03-22  Gary Funck  <gary@intrepid.com>
3294         * upc/upc-cmd.c: Move linker switches into libupc/libupc.spec.
3295           (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
3296           (find_ld_script) Remove.
3298 2011-03-21  Gary Funck  <gary@intrepid.com>
3300         Merge trunk version 171202 into gupc branch.
3302 2011-03-20  Gary Funck  <gary@intrepid.com>
3304         * varasm.c: Call error() directly with a format specifier,
3305           rather than using sprintf() to format the message.
3306           This should make it easier to internationalize UPC's error messages.
3308 2011-03-20  Gary Funck  <gary@intrepid.com>
3310         * configure.ac: Fix the check for gnu ld when enabling
3311           UPC link script support.
3312           configure: Regenerate (also picks up changes from previous
3313           merge with trunk).
3315 2011-03-20  Gary Funck  <gary@intrepid.com>
3317         Move UPC start files, end files, and linker specs.
3318         into libupc.  This reduces the impact on common GCC
3319         configuration files, and ensures that these UPC-specific
3320         components are only built when the UPC language dialect is selected.
3321         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
3322           linker specs. Fix typo in -fupc-debug message.
3323         * config/upc-conf.h, config/darwin.h: Move defines for
3324           UPC-related section begins/ends into libupc/config/default/
3325           upc-crt-config.h.
3326         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
3327           UPC-related linker compiler specifications,
3328           accessed via %:include().
3329         * configure.ac, configure: Remove logic related to building
3330           upc-crtbegin/end. Remove config. tests for numa and cpu
3331           affinity (previously used by the 'upc' driver); these
3332           settings are now propagated by target-specific compiler
3333           specs. built by libupc.  Regenerate autoconf.
3334         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
3335           linker compiler specifications, accessed via %:include().
3336           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
3337           'link_upc_spec'.
3338         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
3339         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
3340           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
3341           config/ia64/linux.h, config/mips/t-iris,
3342           config/mips/iris6.h: Revert to trunk version 167307.
3343         libgcc/
3344         * configure, configure.ac, config.host, Makefile.in:
3345           Revert to trunk version 167307.
3347 2011-03-20  Gary Funck  <gary@intrepid.com>
3349         * upc/upc-act.c: Call error() directly with a format specifier,
3350           rather than using sprintf() to format the message.
3351           This should make it easier to internationalize UPC's error messages.
3353 2011-03-20  Gary Funck  <gary@intrepid.com>
3355         Move UPC start files, end files, and linker specs.
3356         into libupc.  This reduces the impact on common GCC
3357         configuration files, and ensures that these UPC-specific
3358         components are only built when the UPC language dialect is selected.
3359         * upc/config-lang.in: Remove setting of 'upc_extra_parts', which
3360           was used to specify which upc-crtbegin and upc-crtend files
3361           need to built.  Remove extraneous (commented out)
3362           settings of 'cfiles'.  The listed configuration files
3363           have been reverted to trunk, and weren't referenced
3364           via cfiles in any event.
3365         * upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
3366           Simply test for the presence of the UPC link script
3367           in the current directory or the libupc directory.
3368           Add -B<path-to-libupc> to the switches passed to 'gcc';
3369           this is needed in order to find the upc-crtbegin
3370           and upc-crtend object files now built in libupc.
3371           Remove test for and inclusion of UPC_LINKER_SWITCHES.
3372           if extra switches are needed for a particular target
3373           (like SGI/Irix), they will be defined by the custom
3374           linker spec. built in libupc.  Remove test for
3375           HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
3376           will be added to the custom linker specs. built
3377           in libupc.
3378         * upc/upc-crtstuff.c: Move to libupc.
3380 2011-02-23  Gary Funck  <gary@intrepid.com>
3382         * c-decl.c (undeclared_variable): fix typo. Inadvertently
3383         removed negation on following 'if'.
3385 2011-02-22  Gary Funck  <gary@intrepid.com>
3387         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
3388         to check for the usage of certain deprecated UPC keywords.
3389         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
3390         * c-tree.h (undeclared_variable): Define prototype.
3392 2011-02-22  Gary Funck  <gary@intrepid.com>
3394         * upc/upc-act.c (upc_diagnose_deprecated_stmt): New.
3395           upc-act.h (upc_diagnose_deprecated_stmt): Define.
3396           Check usage of deprecated keywords and issue
3397           error message.
3399 2011-02-12  Gary Funck  <gary@intrepid.com>
3401         * c-typeck.c: (build_c_cast, convert_for_assignment)
3402           Diagnose an attempt to convert from an integer to
3403           a pointer-to-shared as an error.  Also, fix various
3404           error messages so that they use the preferred term
3405           pointer-to-shared instead of "shared pointer".
3407 2011-02-08  Gary Funck  <gary@intrepid.com>
3409         * upc/upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
3410           for struct-pts representation
3411           Analysis indicated that for something like (+ ptr -80) this was
3412           being represented as (+ ptr (- 80)) and further, when the
3413           calculations were propagated into the individual operations on the
3414           components of the 'struct' pointer, it would end up with something
3415           like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
3416           "long unsigned int" because of the addition to the pointer.  This
3417           caused the calculations involving the signed 'int' operand to be
3418           performed incorrectly.  This fix insures that the 'int' operand is
3419           signed.
3421 2011-02-08  Gary Funck  <gary@intrepid.com>
3423         * upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
3424           upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
3425           upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
3426           upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
3427           upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
3428           upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
3429         Update copyright notices.
3431 2011-02-07  Gary Funck  <gary@intrepid.com>
3433         * c-typeck.c: (convert_for_assignment)
3434           Fix typo. in error message.
3436 2011-01-23  Gary Funck  <gary@intrepid.com>
3438         * c-typeck.c: (c_build_qualified_type)
3439           derive UPC block size by calling upc_get_block_size(),
3440           to ensure that the element type of an array of an array
3441           is derived correctly.
3443 2011-01-09  Gary Funck  <gary@intrepid.com>
3445         Fix behavior of upc_localsizeof() when called in a dynamic
3446         threads compilation environment.  This bug, and the expected
3447         behavior is documented in this bug report:
3448         https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
3449         * upc/_act.c (upc_localsizeof): Re-implement.
3451 2010-12-29  Gary Funck  <gary@intrepid.com>
3453         Merge trunk version 168314 into gupc branch.
3455 2010-12-15  Gary Funck  <gary@intrepid.com>
3457         Merge trunk version 167307 into gupc branch.
3459 2010-12-15  Gary Funck  <gary@intrepid.com>
3461         Merge trunk version 167307 into gupc branch.
3462         * upc/_act.h: (upc_handle_option) add location and struct
3463         cl_option_handlers * parameters.
3464         (upc_finish_file) Remove.
3465         (upc_write_global_declarations) New, replaces upc_finish_file.
3466         * lang-spec.h: Disable multi-file compilation for .upc files.
3467         This fixes an issue where file-scoped static variables were
3468         diagnosed as multiply-defined.  Both "C" and "ObjC" also disable
3469         multi-file compilation.
3470         * upc/upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
3471         explicitly when deciding whether a UPC shared object is addressable.
3472         is_gimple_addressable() used to do this, but now checks for MEM_REF
3473         which does not apply to UPC shared objects.
3474         (upc_gimplify_lval, upc_gimplify_expr) Delete references to
3475         ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
3476         These are no longer defined.
3477         (upc_genericize) Add call to bitmap_obstack_initialize()
3478         and bitmap_obstack_release() around call to gimplify_function_tree().
3479         * upc/upc-lang.c: Add #include of "opts.h" and "options.h".
3480         (flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
3481         flag_upc_instrument_functions) Remove.  Use definitions
3482         generated by the options file.
3483         (upc_init_options) Use cl_decoded_option struct.
3484         (LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
3485         (finish_file) Delete.
3486         (upc_init_options) Call control_warning_option() to specify
3487         -Werror=pointer-arith as the default.  Remove call to
3488         enable_warning_as_error().
3489         * upc/upc-pts-struct.c: (upc_pts_init_type) Move test that
3490         UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
3491         rather than an #ifdef; this macro now depends upon a
3492         target size macro which must be evaluated at runtime.
3493         * upc/Make-lang.in: (cc1-dummy) Remove make target.
3494         (cc1upc-checksum.c) Generate directly from object files.
3495         * upc/upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
3496         references to these deprecated macro definitions.
3497         (GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
3498         (all_exec_args) Delete variable.
3499         (exec_args) Re-define as (const char *).
3500         (exec_arg_list) New.  Make copy of exec_args to pass to 'exec'.
3501         * upc/upc-act.c: (upc_handle_option) Update argument list to accept
3502         (cl_option_handlers *) argument.
3503         (upc_finish_file) Rename to upc_write_global_declarations.
3504         (upc_write_global_declarations) New.
3506 2010-10-19  Gary Funck  <gary@intrepid.com>
3508         * c-typeck.c: Fix typo in previous fix
3509           which led to a mis-compare for equal block sizes.
3511 2010-10-18  Gary Funck  <gary@intrepid.com>
3513         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
3514           diagnosed as an error
3515           The conversion from any type (shared or not) to
3516           a shared type is likely either meaningless or an error.  This update
3517           makes any conversion to a shared type, an error.
3519 2010-10-18  Gary Funck  <gary@intrepid.com>
3521         * c-typeck.c: Fix bug: passing int to shared pointer arg.
3522           generates spurious warning
3523           Add a #define procedure that does the same thing as
3524           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
3525           this procedure to diagnose passing an integer value to a
3526           pointer-to-shared as an error.
3528 2010-10-18  Gary Funck  <gary@intrepid.com>
3530         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
3531           matching routine declaration.
3532           When checking for type compatibility, shared qualified types must
3533           have the same block factor.  This check was missing from
3534           comptypes_internal().  This update adds the check for blocking
3535           factor equality.
3537 2010-10-17  Gary Funck  <gary@intrepid.com>
3539         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
3540           found (-O1 -g)
3541           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
3543 2010-10-17  Gary Funck  <gary@intrepid.com>
3545         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
3546           45869 - [4.5/4.6 Regression] type mismatch in shift expression
3547           produces ice with -O3 and -m32.
3548           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
3550 2010-10-17  Gary Funck  <gary@intrepid.com>
3552         * c-common.c: Diagnose the application of the various "*sizeof"
3553           operations on generic pointer-to-shared as a compilation error.
3555 2010-10-17  Gary Funck  <gary@intrepid.com>
3557         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
3558           message regarding a function parameter being declared with a shared
3559           qualifier.
3560           The parameter's 'name' value is not defined at this point, and
3561           cannot be used in the error message.  This update removes the
3562           reference to 'name', and eliminates the segfault.
3564 2010-10-17  Gary Funck  <gary@intrepid.com>
3566         * upc/upc-act.c: Issue a compilation error on attempts to perform
3567           arithmetic on generic pointer-to-shared values.
3568           (The rest of this update is a small code clean up.)
3570 2010-10-17  Gary Funck  <gary@intrepid.com>
3572         * upc/upc-lang.c: For UPC only, issue errors for arithmetic and related
3573           operations on void types.
3574           This update simulates the effect of -Werror=pointer-arith, thus
3575           causing arithmetic on void types, sizeof(void) and so on to be
3576           considered compilation errors.  This meets the expectations of some
3577           harness tests and the RTED/CTED test suites.  GCC is more
3578           permissive, but since this is for UPC only, we can fairly safely
3579           define this new policy.
3581 2010-10-16  Gary Funck  <gary@intrepid.com>
3583         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
3584           The gcc/Makefile.in rules for install-plugin had to be re-written to
3585           break up a long list of header files that exceeded the command line
3586           limitation imposed by Irix.
3587           Access functions for TFmode types had to be implemented.
3588           Apparently, this is the mode used for the SGI/MIPS port to represent
3589           "long float".
3591 2010-10-16  Gary Funck  <gary@intrepid.com>
3593         * upc/upc-act.c: Fix bug: Static initialization of shared
3594           arrays is unsupported -- issue an error message.
3595           Currently, static initialization of a shared array is not
3596           implemented correctly.
3597           We do not plan to fix this for a while, therefore the compiler will
3598           issue an error message indicating that this is an unsupported
3599           operation.
3601 2010-10-14  Gary Funck  <gary@intrepid.com>
3603         * c-decl.c: Fix bug: Multiple equal blocking factors specified
3604           via typedef chain should not be diagnosed as an error.
3605           If the block size that is given by the typedef is equal to the block
3606           size given explicitly in the variable declaration, then do not
3607           complain.  The easiest way to make this check was to create a
3608           temporary type that is a clone of the element type and then set its
3609           block size using the given layout qualifier.  Then compare the block
3610           size of the temporary (the declaration) to the block size specified
3611           in the typedef.  This complexity is needed, because the '[*]' block
3612           size needs to be calculated, and the '[]' needs to be mapped into a
3613           zero block size.
3615 2010-10-13  Gary Funck  <gary@intrepid.com>
3617         * upc/upc-act.c: Fix bug: negative layout qualifiers not diagnosed
3618           as an error.
3619           The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
3620           it was not diagnosed as an error.  With this fix, negative block
3621           sizes will generate a translation error.
3623 2010-10-10  Gary Funck  <gary@intrepid.com>
3625         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
3626           specified
3627           The compiler properly detected the presence of two or more layout
3628           qualifiers as an error, but then hit an assertion check, because the
3629           code that followed the error expected to see a qualifier and not a
3630           layout specifier.  The fix is simple: just return immediately after
3631           detecting the error.
3633 2010-10-10  Gary Funck  <gary@intrepid.com>
3635         * c-decl.c: Improve error diagnostics for various cases of UPC
3636           shared array type declarations.
3637           Add the check for this error: "In the dynamic translation
3638           environment, THREADS may not appear in declarations of shared arrays
3639           with indefinite block size".  Also, fix up a few of the other
3640           related error diagnostics.
3642 2010-10-10  Gary Funck  <gary@intrepid.com>
3644         * upc/upc-act.c: Fix bug: ICE: Attempt to take the difference of
3645           shared and non-shared pointers
3646           The compiler detected the error, and then tried to return
3647           error_mark_node.  This apparently is not acceptable, as there is an
3648           explicit assertion check to prevent this from happening in
3649           build_binary_op.  Return the more user-friendly size_one_node
3650           instead.
3652 2010-10-09  Gary Funck  <gary@intrepid.com>
3654         * c-common.c: Fix bug: segfault on incomplete array definition.
3655           This turned out to be a bit complicated.   The logic in
3656           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3657           the THREADS identifier in the case where the blocking factor has
3658           been set to indefinite ([]).  This can happen when indefinite array
3659           declarations are processed for shared arrays.  At that time, the
3660           file scope has been closed and THREADS is no longer in scope.  Some
3661           more work is needed on upc_lang_layout_decl().  It has some
3662           duplication, and notably duplicates the two branches of the if
3663           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3664           caller of this routine (layout_decl()).
3665           The method of forcing a layout qualifier of [] in the indefinite
3666           declaration handler is odd a well.  The code that just does the
3667           setting of the block factor, needs to moved into its own routine
3668           that doesn't depend upon a declspec for '[]' to be passed in, just
3669           in order to set the blocking factor to some value (in this case, 0).
3670           Also, the logic for how that shared type is constructed is strange.
3671           First the type with 0 blocking factor is set.  Then the shared
3672           qualifier is removed from the type, and then added back later.  The
3673           intermediate type has a blocking factor set, but it has no shared
3674           qualifier.  Fixing this will require some thought.  It is tempting
3675           just to make indefinite shared arrays an error, rather than forcing
3676           the dimension to be '1'.
3677           This likely fixes a serious error in the previous update to
3678           upc_lang_layout_decl(), where it didn't have the logic to set
3679           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3680           the previous update would fail on many tests.
3682 2010-10-09  Gary Funck  <gary@intrepid.com>
3684         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
3685           (decl) is null, which can happen if some layout error occurred
3686           upstream.
3688 2010-10-09  Gary Funck  <gary@intrepid.com>
3690         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
3691           "variable-sized" when compiled in dynamic threads.
3692           This long-standing bug is easily fixed.  Just check
3693           for the situation that the non-constant sized type is shared and
3694           that it does not have a dimension that references a multiple of
3695           threads.  If this criteria is met, then issue a meaningful
3696           diagnostic.
3698 2010-10-09  Gary Funck  <gary@intrepid.com>
3700         * upc/upc-act.c: Fix bug: segfault on incomplete array definition.
3701           This turned out to be a bit complicated.   The logic in
3702           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3703           the THREADS identifier in the case where the blocking factor has
3704           been set to indefinite ([]).  This can happen when indefinite array
3705           declarations are processed for shared arrays.  At that time, the
3706           file scope has been closed and THREADS is no longer in scope.  Some
3707           more work is needed on upc_lang_layout_decl().  It has some
3708           duplication, and notably duplicates the two branches of the if
3709           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3710           caller of this routine (layout_decl()).
3711           The method of forcing a layout qualifier of [] in the indefinite
3712           declaration handler is odd a well.  The code that just does the
3713           setting of the block factor, needs to moved into its own routine
3714           that doesn't depend upon a declspec for '[]' to be passed in, just
3715           in order to set the blocking factor to some value (in this case, 0).
3716           Also, the logic for how that shared type is constructed is strange.
3717           First the type with 0 blocking factor is set.  Then the shared
3718           qualifier is removed from the type, and then added back later.  The
3719           intermediate type has a blocking factor set, but it has no shared
3720           qualifier.  Fixing this will require some thought.  It is tempting
3721           just to make indefinite shared arrays an error, rather than forcing
3722           the dimension to be '1'.
3723           This likely fixes a serious error in the previous update to
3724           upc_lang_layout_decl(), where it didn't have the logic to set
3725           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3726           the previous update would fail on many tests.
3727           See also: gcc/c-common.c gcc/upc/upc-act.c
3729 2010-10-01  Gary Funck  <gary@intrepid.com>
3731         * configure, configure.ac: Update manual page, and bug reporting
3732           URL.
3733           Update "man" page to reflect debugging switches.  Also, some general
3734           clean up.  Change the bug reporting URL to point to gccupc.org.
3736 2010-10-01  Gary Funck  <gary@intrepid.com>
3738         * upc/upc-manpage.html, upc.1: Update manual page, and bug reporting
3739           URL.
3740           Update "man" page to reflect debugging switches.  Also, some general
3741           clean up.  Change the bug reporting URL to point to gccupc.org.
3742           See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
3743           gcc/upc/upc.1
3745 2010-10-01  Gary Funck  <gary@intrepid.com>
3747         * upc/upc-act.c: Do not zap all qualifier bits when constructing a
3748           non-shared result node.
3749           This fix was suggested by Paul H. in the following Berkeley Bugzilla
3750           report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
3751           use of "!" rather than "~" zapped all the type qualifier bits rather
3752           than just those that are related to the "shared" qualifier.  This
3753           fix clears only the relevant bits.
3755 2010-09-27  Gary Funck  <gary@intrepid.com>
3757         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
3758           the UPC forall depth count variable is not found.
3759           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
3760           The compiler will generate code that references this variable in
3761           order to implement nested upc_forall semantics.  If there is a
3762           compiler build or install problem, this variable may not be found.
3763           In this case, terminate with an internal_error().
3765 2010-09-26  Gary Funck  <gary@intrepid.com>
3767         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
3768           mis-diagnosed as syntax error.
3769           Fix a failure exhibited by the Berkeley test case,
3770           bug873a.upc, which has the code:
3771                double d;
3772                upc_forall (;;;d) {...} The compiler did not properly handle
3773           the empty "condition" clause, and did not recover well when it was
3774           determined that the use of a double value, "d" above, was neither a
3775           pointer-to-shared nor an integer expression.  The update implements a
3776           fix for both issues.
3777           See also: gcc/c-parser.c gcc/upc/upc-act.c
3779 2010-09-26  Gary Funck  <gary@intrepid.com>
3781         * upc/upc-act.c: Fix bug: upc_forall with empty clauses
3782           mis-diagnosed as syntax error.
3783           A failure was exhibited by the Berkeley test case,
3784           bug873a.upc, which has the code:
3785                double d;
3786                upc_forall (;;;d) {...} The compiler did not properly handle
3787           the empty "condition" clause, and did not recover well when it was
3788           determined that the use of a double value, "d" above, was neither a
3789           pointer-to-shared nor an integer expression.  The update implements a
3790           fix for both issues.
3791           See also: gcc/c-parser.c gcc/upc/upc-act.c
3793 2010-09-25  Gary Funck  <gary@intrepid.com>
3795         * upc/upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
3796           gimple check when calculating affinity for upc_forall.
3797           Intrepid test, test10.upc, failed to compile due a mis-match between
3798           the COMPONENT_REF node and the internal 'thread' field.  Changed the
3799           code to make the types agree, and added a conversion to sizetype if
3800           necessary.
3802 2010-09-23  Gary Funck  <gary@intrepid.com>
3804         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
3805           incorporated into the referencing type.
3806           This was semi-fixed a few times before.  This update fixes a few
3807           more places where the layout qualifier wasn't being propagated
3808           through typedef's properly.  What made this a bit tricky is shown in
3809           the example cited in the bug report:
3810           typedef shared [5] int A_t; A_t A[5*THREADS];
3811           In the typedef, the blocksize is being applied to a shared *scalar*,
3812           and the code was applying the blocksize only to arrays.  This update
3813           handles shared scalars correctly.
3815 2010-09-23  Gary Funck  <gary@intrepid.com>
3817         * upc/upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
3818           with static threads and size not a multiple of threads.
3819           Add an extra check for an attempt to apply a '[*]' layout qualifier
3820           to a shared array that does not specify a size that is a multiple of
3821           THREADS, when compiled in a static THREADS compilation environment.
3823 2010-09-22  Gary Funck  <gary@intrepid.com>
3825         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
3826           upc_forall() semantics are not implemented
3827           The checkforall test in the Berkeley harness test suite indicated
3828           that GCC/UPC was not properly implementing nested upc_forall
3829           semantics.  Nested upc_forall statements (both statically or
3830           dynamically nested) must implement their affinity clause as if it
3831           were "continue"; thus all steps in the loop must execute without
3832           regard for affinity.  To implement these semantics a global depth
3833           counter, __upc_forall_depth, is maintained by the generated code
3834           that implements upc_forall.
3835           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3836           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3837           libupc/include/upc.h libupc/smp/upc_main.c
3839 2010-09-22  Gary Funck  <gary@intrepid.com>
3841         * upc/upc-act.c, upc/upc-act.h: Fix bug: Nested upc_forall() semantics
3842           are not implemented
3843           The checkforall test in the Berkeley harness test suite indicated
3844           that GCC/UPC was not properly implementing nested upc_forall
3845           semantics.  Nested upc_forall statements (both statically or
3846           dynamically nested) must implement their affinity clause as if it
3847           were "continue"; thus all steps in the loop must execute without
3848           regard for affinity.  To implement these semantics a global depth
3849           counter, __upc_forall_depth, is maintained by the generated code
3850           that implements upc_forall.
3851           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3852           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3853           libupc/include/upc.h libupc/smp/upc_main.c
3855 2010-09-19  Gary Funck  <gary@intrepid.com>
3857         * c-decl.c: c-decl.c: zero out the layout specifier, after
3858           processing an array type.
3859           Fix the previous fix, that moved the setting of the type's layout
3860           qualifier to the outside of the array type processing loop.  What is
3861           missing from the fix is that the layout_qualifier variable needs to
3862           be cleared after setting the type's blocksize.
3864 2010-09-19  Gary Funck  <gary@intrepid.com>
3866         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
3867           given blocksize is greater than UPC_MAX_BLOCKSIZE.
3868           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
3869           the actual maximum block size.  Therefore, the message was correct,
3870           but the underlying value that was being checked was wrong.  Change
3871           the values so that they agree with the actual implementation-defined
3872           limit.
3874 2010-09-18  Gary Funck  <gary@intrepid.com>
3876         * upc/upc-act.c, upc/upc-pts-packed.c, upc/upc-pts-struct.c:
3877           Implement -fupc-debug switch.
3879 2010-09-11  Gary Funck  <gary@intrepid.com>
3881         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
3882           multi-dimensional shared array with dynamic threads.
3883           This declaration caused an internal compiler error when compiled
3884           with dynamic threads:
3885               shared [*] int A[THREADS][16]; The bug was discovered when
3886           compiling the RTED_UPC test suite.
3887           The fix is to process layout qualifiers after the entire array type
3888           has been built.  Otherwise, we try to calculate the blocksize on a
3889           shared array type that has not had its "size depends upon the value
3890           of THREADS" flag set.
3891           Also, added a test case.
3892           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
3894 2010-07-11  Gary Funck  <gary@intrepid.com>
3896         Fix a bug where a statement in c_build_qualified_type()
3897         in the trunk had been inadvertently deleted.
3898         This bug showed up in the IA64 port, because jmpbuf's
3899         on that architecture must be 16 byte aligned, and they were not.
3900         c-typeck.c (c_build_qualified_type): Revive the deleted line.
3902 2010-07-08  Gary Funck  <gary@intrepid.com>
3904         Make changes so that other language compilers
3905         will build and bootstrap.
3906         * c-family/c-common.c (compiling_upc, flag_upc,
3907         flag_upc_instrument, flag_upc_instrument_functions,
3908         use_upc_dwarf2_extensions): Move to stub-upc.c and
3909         upc-lang.c.
3910         * c-family/c-common.h (use_upc_dwarf2_extensions,
3911         compiling_upc): Add extern definitions - needed
3912         to compile/build other language front ends.
3913         * c-family/c.opt: Fix the spelling of ObjC.
3914         It had been incorrectly spelled as Objc.
3915         * c-family/c.opt: Add UPC for the various switches
3916         that are valid for both C and ObjC.
3917         * c-fmaily/c-opts.c: Add CL_UPC to the list of
3918         supported options switches when compiling assembly
3919         language.
3920         * lto/lto-lang.c (use_upc_dwarf2_extensions,
3921         flag_upc_instrument, flag_upc_instrument_functions):
3922         Remove these definitions.  They have been moved
3923         to c-family/stub-upc.c.
3924         * upc/ChangeLog: Move relevant entries
3925         to ChangeLog.upc.
3926         * c-family/stub-upc.c (compiling_upc, flag_upc,
3927         flag_upc_instrument, flag_upc_instrument_functions,
3928         use_upc_dwarf2_extensions): Moved from c-common.c
3929         * upc/upc-lang.c (compiling_upc, flag_upc,
3930         flag_upc_instrument, flag_upc_instrument_functions,
3931         use_upc_dwarf2_extensions): Moved from c-common.c
3932         * objc/objc-act.c (objc_gimplify_expr): Add additional
3933         parameters to c_gimplify_expr() call, that are used
3934         by upc's tree rewrites.
3935         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
3936         * gcc/cp/lex.c (init_reswords): If not compiling
3937         UPC, then mask off the UPC keywords.
3938         * cp/Make-lang.in (C_STUB_OBJS): Use this
3939         make macro to link with c-family/stub-objc.o
3940         and c-family/stub-upc.o.
3941         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
3942         * java/Make-lang.in (C_STUB_OBJS): Likewise.
3943         * objc/Make-lang.in: Link with c-family/stub-upc.o
3944         to avoid undefined references.
3945         c-parser.c: Fix line indentation.
3946         * libcpp/include/cpplib.h: Remove CL_UPC from
3947         the list of language kinds accepted by the
3948         C preprocessor.  This is not necessary because
3949         UPC is a derivative of C99, and does not need
3950         a different language kind.
3951         * c-fmaily/c-opts.c (c_common_handle_option):
3952         Call set_std_c99() when processing the
3953         "--lang upc" switch, instead of setting the
3954         language kind to CL_UPC.
3955         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
3957 2010-07-03  Gary Funck  <gary@intrepid.com>
3959         Merge trunk version 161517 into gupc branch.
3960         * gcc/stub-upc.c: Move to gcc/c-family/.
3961         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
3962         Add 'unused' attributes to avoid "set, but
3963         not referenced" warnings.
3964         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
3965         Likewise.
3967 2010-07-03  Gary Funck  <gary@intrepid.com>
3969         Merge trunk version 161517 into gupc branch.
3970         * upc/config-lang.in: Update references to files
3971           moved into c-family/.
3972         * upc/Make-lang.in: Likewise.
3973         * upc/upc-act.c: Likewise.
3974         * upc/upc-gasp.c: Likewise.
3975         * upc/upc-gimplify.c: Likewise.
3976         * upc/upc-lang.c: Likewise.
3977         * upc/upc-pts-packed.c: Likewise.
3978         * upc/upc-pts-struct.c: Likewise.
3979         * upc/upc-act.c: (upc_handle_option) add parameters to
3980           effect pass through call to c_common_handle_option.
3981         * upc/upc-act.h: (upc_handle_option) Likewise.
3982         * upc/upc-act.c: (map_unshared_var) used typed ggc allocation.
3983         * upc/upc-act.c: (upc_build_init_func) add call to
3984           to mark_decl_referenced(), to ensure that UPC shared
3985           variable initializer function is not removed from
3986           the call tree graph.
3988 2010-03-01 Gary Funck  <gary@intrepid.com>
3990         Create gupc branch from trunk version 157149.