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