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