1 2014-03-10 Gary Funck <gary@intrepid.com>
3 Merge trunk version 208447 into gupc branch.
5 2014-03-03 Gary Funck <gary@intrepid.com>
7 Merge trunk version 208270 into gupc branch.
9 2014-02-24 Gary Funck <gary@intrepid.com>
11 Merge trunk version 208066 into gupc branch.
13 2014-02-17 Gary Funck <gary@intrepid.com>
15 Merge trunk version 207818 into gupc branch.
17 2014-02-10 Gary Funck <gary@intrepid.com>
19 Merge trunk version 207649 into gupc branch.
21 2014-02-03 Gary Funck <gary@intrepid.com>
23 Merge trunk version 207415 into gupc branch.
25 2014-01-30 Gary Funck <gary@intrepid.com>
27 Merge trunk version 207297 into gupc branch.
29 2014-01-28 Gary Funck <gary@intrepid.com>
31 * c/gupcspec.c (match_suffix): Remove use of PARAMS.
33 2014-01-20 Gary Funck <gary@intrepid.com>
35 Merge trunk version 206847 into gupc branch.
37 2014-01-20 Gary Funck <gary@intrepid.com>
39 Merge trunk version 206792 into gupc branch.
41 2014-01-17 Nenad Vukicevic <nenad@intrepid.com>
43 * c-family/c-cppbuiltin.c (upc_cpp_builtins): Remove pre-defines
44 for __UPC_CASTABLE__, __UPC_COLLECTIVE__, __UPC_TICK__ and
45 __UPC_PUPC__ as they are library and not compiler features.
47 2014-01-13 Gary Funck <gary@intrepid.com>
49 Merge trunk version 206575 into gupc branch.
51 2014-01-10 Gary Funck <gary@intrepid.com>
53 Update copyright notices.
55 2014-01-06 Gary Funck <gary@intrepid.com>
57 Merge trunk version 206354 into gupc branch.
59 2014-01-04 Gary Funck <gary@intrepid.com>
61 Integrate GUPC into cc1.
62 * upc/: Remove directory. Re-distribute files.
63 * c/c-upc-lang.c: Move upc/upc-lang.c here.
64 * c/c-upc-lang.h: New.
65 * c-family/c-upc.c: Move upc/upc-act.c here.
66 * c-family/c-upc-gasp.c: Move upc/upc-gasp.c here.
67 * c-family/c-upc-gasp.h: Move upc/upc-gasp.h here.
68 * c-family/c-upc.h: Move upc/upc-act.h here.
69 * c-family/c-upc-low.c: Move upc/upc-genericize.c here.
70 * c-family/c-upc-low.h: Move upc/upc-genericize.h here.
71 * c-family/c-upc-pts.h: Split upc/upc-pts.h here.
72 * c-family/c-upc-pts-ops.c: Split upc/upc-pts.c here.
73 * c-family/c-upc-pts-ops.h: Split upc/upc-pts.h here.
74 * c-family/c-upc-pts-packed.c: Move upc/upc-pts-packed.c here.
75 * c-family/c-upc-pts-struct.c: Move upc/upc-pts-struct.c here.
76 * c-family/c-upc-rts-names.h: Move upc/upc-rts-names.h here.
77 * c-family/stub-upc.c: Remove.
78 * c/gupcspec.c: Move upc/gupcspec.c here.
79 * doc/gupc.texi: Move upc/gupc.texi here.
80 * c/c-objc-common.h: Revert to trunk.
81 * cp/lex.c: Revert to trunk.
82 * cp/Make-lang.in: Revert to trunk.
83 * expr.h: Revert to trunk.
84 * flags.h: Revert to trunk.
85 * fortran/Make-lang.in: Revert to trunk.
86 * java/Make-lang.in: Revert to trunk.
87 * lto/Make-lang.in: Revert to trunk.
88 * objc/Make-lang.in: Revert to trunk.
89 * stor-layout.c: Delete custom hook routines, use
90 newly defined declaration layout language hooks.
91 * stor-layout.h: Revert to trunk.
92 * ../configure.ac: Remove check for UPC language dialect.
93 * ../configure: Re-generate.
94 * Makefile.in (C_COMMON_OBJS): Add UPC-related object files.
95 * c/Make-lang.in: Compile UPC-related files. Build gupc driver.
96 * c/c-decl.c: Call c_genericize() directly rather than
97 lang_hooks.genericize(). Adjust for flag_upc and name changes.
98 * c/c-lang.c (LANG_HOOKS_UPC_TOGGLE_KEYWORDS,
99 LANG_HOOKS_UPC_PTS_STRUCT_INIT_TYPE, LANG_HOOKS_UPC_BUILD_INIT_FUNC,
100 LANG_HOOKS_LAYOUT_DECL_P, LANG_HOOKS_LAYOUT_DECL):
101 Define UPC-specific hooks.
102 * c/c-objc-common.c (upc_types_compatible_p): Move to here.
103 (c_types_compatible_p): Call upc_types_compatible_p().
104 * c/c-parser.c (upc_affinity_test): Move to here.
105 (upc_build_sync_stmt): Move to here.
106 * c/c-typeck.c: #include c-family/c-upc-low.h.
107 * c/config-lang.in (gtfiles): Add UPC gt files.
108 * c-family/c-common.c: Add #include c-upc.h.
109 (c_common_get_alias_set): Move UPC-related alias check to here.
110 (upc_num_threads): Move to here.
111 (c_common_init_ts): Mark UPC-specific statement tree definitions.
112 * c-family/c-common.def (UPC_FORALL_STMT, UPC_SYNC_STMT):
113 Define UPC-specific statements.
114 * c-family/c-common.h (RID_FIRST_UPC_QUAL, RID_LAST_UPC_QUAL,
115 RID_FIRST_UPC_KW, RID_LAST_UPC_KW, UPC_IS_KEYWORD): New.
116 (clk_upc, clk_upcxx, c_dialect_upc, compiling_upc): Delete.
117 (use_upc_dwarf2_extensions, flag_upc): Move to c-family/c.opts.
118 (upc_num_threads): Declare prototype.
119 (UPC_SYNC_OP, UPC_SYNC_ID, UPC_SYNC_NOTIFY_OP, UPC_SYNC_WAIT_OP,
120 UPC_SYNC_BARRIER_OP): Move definitions here.
121 * c-family/c-cppbuiltin.c: Remove #include c-upc.h and
122 add #include c-upc-pts.h.
123 (upc_cpp_builtins): Move to here. Define as static.
124 (c_cpp_builtin): Change call to c_dialect_upc () into
126 * c-family/c-gimplify.c: #include c-upc-low.h.
127 (c_common_genericize): Rename c_genericize() to this and make static.
128 (c_genericize): Call upc_genericize() if flag_upc is set and
129 then call c_common_genericize().
130 * c-family/c-opts.c: #include c-upc-low.h and c-upc-pts.h.
131 (c_family_lang_mask): Remove CL_UPC.
132 (c_common_option_lang_mask): Remove CL_UPC from lang_flags.
133 (upc_init_options): Move to here, make it static.
134 (c_common_init_options): Add early check for flag_upc, if found
135 call upc_init_options().
136 (upc_handle_option): Move to here and make static.
137 (c_common_handle_option): Check for UPC-related options
138 and call upc_handle_option(). Remove references to
139 OPT_lang_upc and clk_upc. Check flag_upc instead of
140 calling c_dialect_upc().
141 * c-family/c-pragma.c: #include langhooks.h.
142 (handle_pragma_upc): Remove warning if flag_upc not set;
143 flag_upc now serves the function of compiling_upc().
144 Add call to lang_hooks.upc.toggle_keywords() to
145 implement enable/disable of UPC keywords.
146 (init_pragma): Check flag_upc instead of compiling_upc.
147 * c-family/c-pragma.h (deny_pragma_upc, get_upc_consistency_mode,
148 permit_pragma_upc, pop_upc_consistency_mode,
149 pragma_upc_permitted_p, push_upc_consistency_mode,
150 set_upc_consistency_mode): Move prototypes to here.
151 * c-family/c.opt: Remove all references to "UPC" language dialect.
152 Add -fupc option. Delete -fupc-link option.
153 Add -fupc-threads= option and deprecate -fupc-threads-.
154 * configure.ac: Remove check for UPC language dialect.
155 * configure: Re-generate.
156 * explow.c (tree_expr_size): Move to tree.c.
157 * gcc.c: Change specs to refer to -fupc instead of -lang-upc
159 * hooks.c (hook_bool_tree_tree_false): Declare prototype.
160 * langhooks.c (lhd_do_nothing_b, lhd_do_nothing_t_t): New.
161 * langhooks.h (lang_hooks_for_upc): Define hooks for UPC.
162 (layout_decl_p, layout_decl): Define language-specific
163 declaration layout hooks.
164 (genericize): Remove this language hook.
165 * langhooks-def.h: Define UPC default language hooks.
166 Define language-specific declaration layout default hooks.
167 * langhooks.c (lhd_do_nothing_b): New.
168 * tree-core.h (shared_flag): Rename from upc_shared_flag.
169 (strict_flag): Rename from upc_strict_flag.
170 (relaxed_flag): Rename from upc_relaxed_flag.
171 (threads_factor_flag): New. Was a lang. flag.
172 (block_factor_0): New. Was a lang. flag.
173 (block_factor_x): New. Was a lang. flag.
174 (spare1): Decrement spare bits from 8 down to 5.
175 * tree.c (block_factor_for_type): Move to here.
176 (tree_expr_size): Move to here from explow.c.
177 (block_factor_lookup): Move to here.
178 (block_factor_insert): Move to here.
179 (upc_get_block_factor): Move to here.
180 * tree.h: refer to block_factor_* instead of upc_block_factor_*.
181 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
182 TYPE_HAS_THREADS_FACTOR): Refer to tree base flag bits instead
184 (tree_expr_size): Move prototype from explow.h.
186 2013-12-30 Gary Funck <gary@intrepid.com>
188 Merge trunk version 206243 into gupc branch.
190 2013-12-23 Gary Funck <gary@intrepid.com>
192 Merge trunk version 206179 into gupc branch.
194 2013-12-22 Gary Funck <gary@intrepid.com>
196 * upc/upc-act.c (upc_cpp_builtins): Bump UPC_VERSION
197 to reflect UPC specification version 1.3 compliance.
199 2013-12-16 Gary Funck <gary@intrepid.com>
201 Merge trunk version 206010 into gupc branch.
203 2013-12-09 Gary Funck <gary@intrepid.com>
205 Merge trunk version 205801 into gupc branch.
207 2013-12-03 Meador Inge <meadori@codesourcery.com>
209 * tree-core.h (tree_type_common): Change tree_type_common to use
210 user-provided GC marking.
211 (gt_ggc_mx, gt_pch_nx): New prototypes.
212 * tree.c (gt_ggc_mx, gt_pch_nx): New functions.
214 2013-12-03 Gary Funck <gary@intrepid.com>
218 2011-10-10 Gary Funck <gary@intrepid.com>
220 * tree.c (check_qualified_type, check_aligned_type):
221 Call tree_int_cst_equal() to compare UPC blocking factors
222 if the corresponding tree pointers are not equal.
223 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
225 2013-12-03 Gary Funck <gary@intrepid.com>
227 * c-family/c.opt: Fix typo introduced in 2013-06-03
230 2013-12-02 Gary Funck <gary@intrepid.com>
232 Merge trunk version 205582 into gupc branch.
234 2013-11-26 Meador Inge <meadori@codesourcery.com>
236 * upc/upc-genericize.c (upc_expand_get): Ensure that temporaries
237 are declared via a DECL_EXPR.
239 2013-11-25 Gary Funck <gary@intrepid.com>
241 Merge trunk version 205346 into gupc branch.
243 2013-11-18 Gary Funck <gary@intrepid.com>
245 Merge trunk version 204942 into gupc branch.
247 2013-11-15 Gary Funck <gary@intrepid.com>
249 Merge trunk version 204894 into gupc branch.
251 2013-11-15 Gary Funck <gary@intrepid.com>
253 Merge trunk version 204659 into gupc branch.
255 2013-11-04 Gary Funck <gary@intrepid.com>
257 Merge trunk version 204345 into gupc branch.
259 2013-10-31 Gary Funck <gary@intrepid.com>
261 Released GUPC 4.9.0.1 based on version 203902.
262 This release version was committed on 2013-10-21.
263 * DEV-PHASE: Bump to 4.9.0.2.
264 * DATESTAMP: Bump date stamp.
266 2013-10-28 Gary Funck <gary@intrepid.com>
268 Merge trunk version 204119 into gupc branch.
270 2013-10-21 Gary Funck <gary@intrepid.com>
272 Merge trunk version 203886 into gupc branch.
274 2013-10-14 Gary Funck <gary@intrepid.com>
276 Merge trunk version 203514 into gupc branch.
278 2013-10-07 Gary Funck <gary@intrepid.com>
280 Merge trunk version 203240 into gupc branch.
282 2013-10-01 Gary Funck <gary@intrepid.com>
284 Implement pointer-to-shared -> integer conversions.
285 Required per UPC 1.3 Specification.
286 * c/c-typeck.c (build_c_cast): Remove logic that diagnosed
287 PTS->int conversions as an error. Rewrite into a CONVERT_EXPR
288 for later processing by upc_genericize().
290 2013-10-01 Gary Funck <gary@intrepid.com>
292 Implement pointer-to-shared -> integer conversions.
293 Required per UPC 1.3 Specification.
294 * upc/upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
295 (upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().
297 2013-09-30 Gary Funck <gary@intrepid.com>
299 Merge trunk version 203026 into gupc branch.
301 2013-09-23 Gary Funck <gary@intrepid.com>
303 Merge trunk version 202825 into gupc branch.
305 2013-09-18 Gary Funck <gary@intrepid.com>
307 Merge trunk version 202725 into gupc branch.
309 2013-09-16 Gary Funck <gary@intrepid.com>
311 Merge trunk version 202619 into gupc branch.
313 2013-09-09 Gary Funck <gary@intrepid.com>
315 Merge trunk version 202382 into gupc branch.
317 2013-09-02 Gary Funck <gary@intrepid.com>
319 Merge trunk version 202159 into gupc branch.
321 2013-08-26 Gary Funck <gary@intrepid.com>
323 Merge trunk version 202008 into gupc branch.
325 2013-08-19 Gary Funck <gary@intrepid.com>
327 Merge trunk version 201832 into gupc branch.
329 2013-08-05 Gary Funck <gary@intrepid.com>
331 Merge trunk version 201483 into gupc branch.
333 2013-07-29 Gary Funck <gary@intrepid.com>
335 Merge trunk version 201301 into gupc branch.
337 2013-07-22 Gary Funck <gary@intrepid.com>
339 Merge trunk version 201119 into gupc branch.
341 2013-07-15 Gary Funck <gary@intrepid.com>
343 Merge trunk version 200955 into gupc branch.
345 2013-07-08 Gary Funck <gary@intrepid.com>
347 Merge trunk version 200775 into gupc branch.
349 2013-07-01 Gary Funck <gary@intrepid.com>
351 Merge trunk version 200575 into gupc branch.
353 2013-06-24 Gary Funck <gary@intrepid.com>
355 Merge trunk version 200361 into gupc branch.
357 2013-06-19 Gary Funck <gary@intrepid.com>
359 Merge trunk version 200149 into gupc branch.
361 2013-06-19 Gary Funck <gary@intrepid.com>
363 Merge trunk version 200149 into gupc branch.
364 * upc/upc-act.c (upc_create_static_var): New.
365 (upc_build_init_func): Call upc_create_static_var() to
366 create a static variable, __upc_init_func_addr, which
367 is initialized to the address of the UPC
368 shared data initialization function. This change is
369 needed to avoid writing to the output assembly language
371 (upc_build_sync_stmt): Delete unused variable, sync_expr_type.
373 2013-06-03 Gary Funck <gary@intrepid.com>
375 Merge trunk version 199596 into gupc branch.
377 2013-05-27 Gary Funck <gary@intrepid.com>
379 Merge trunk version 199350 into gupc branch.
381 2013-05-20 Gary Funck <gary@intrepid.com>
383 Merge trunk version 199093 into gupc branch.
385 2013-05-14 Gary Funck <gary@intrepid.com>
387 * upc/upc-pts-packed.c (upc_pts_packed_build_cvt):
388 When checking whether the phase of a PTS should be reset,
389 if the source type is an array type, then bypass
390 the check for equal type sizes.
391 * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
393 2013-05-13 Gary Funck <gary@intrepid.com>
395 Merge trunk version 198815 into gupc branch.
397 2013-05-06 Gary Funck <gary@intrepid.com>
399 Merge trunk version 198622 into gupc branch.
401 2013-04-29 Gary Funck <gary@intrepid.com>
403 Merge trunk version 198433 into gupc branch.
405 2013-04-15 Gary Funck <gary@intrepid.com>
407 Merge trunk version 197958 into gupc branch.
409 2013-04-08 Gary Funck <gary@intrepid.com>
411 Merge trunk version 197571 into gupc branch.
413 2013-04-04 Gary Funck <gary@intrepid.com>
415 Per the UPC 1.3 specification, the type of the
416 optional barrier/notify/wait expression is not constrained to
417 'int'. Instead, any type that is assignment compatible
418 with an 'int' type is permitted.
419 * c/c-parser.c (c_parser_upc_sync_statement): Do not check
420 the optional expression type here. Let upc_build_sync_stmt()
422 * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
423 * c/c-typeck.c (c_cvt_expr_for_assign): New. Also, call
424 error_at() in lieu of error() when the source location is known.
425 * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
426 to check/convert the optional synchronization statement
429 2013-04-02 Gary Funck <gary@intrepid.com>
431 Merge trunk version 197340 into gupc branch.
433 2013-04-02 Gary Funck <gary@intrepid.com>
435 Revert revision 178346 (2011-08-30)
436 which changed the prototype of check_qualified_type and related
437 functions so that their parameters were just 'tree' and not
438 'const_tree'. This seemed necessary at the time because of a
439 change to TYPE_BLOCK_FACTOR(), which in turn called function
440 that hashed the type node pointer. The hash functions did
441 not accept "const void *" pointers. Implement a work around
442 that removes this restriction.
443 * c/c-typeck.c: Revert.
445 * tree.h: Revert. Change prototype of upc_block_factor_lookup()
446 to accept a 'const_tree' pointer to a type node.
447 * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
448 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
449 input argument and convert this to 'tree' for use with hash function.
451 2013-04-02 Gary Funck <gary@intrepid.com>
453 Revert revision 178346 (2011-08-30)
454 which changed the prototype of check_qualified_type and related
455 functions so that their parameters were just 'tree' and not
456 'const_tree'. This seemed necessary at the time because of a
457 change to TYPE_BLOCK_FACTOR(), which in turn called a function
458 that hashed the type node pointer. The hash functions did
459 not accept "const void *" pointers. Implement a work around
460 that removes this restriction.
461 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
462 input argument and convert this to 'tree' for use with hash function.
464 2013-03-25 Gary Funck <gary@intrepid.com>
466 Merge trunk version 197029 into gupc branch.
468 2013-03-21 Gary Funck <gary@intrepid.com>
470 Released GUPC 4.8.0.3 based on version 196601.
471 This release version was committed on 2013-03-11.
472 * DATESTAMP: Bump date stamp.
474 2013-03-18 Gary Funck <gary@intrepid.com>
476 Merge trunk version 196771 into gupc branch.
477 * DEV-PHASE: Bump release identifier to 4.9.0-1.
479 2013-03-11 Gary Funck <gary@intrepid.com>
481 Merge trunk version 196592 into gupc branch.
483 2013-03-04 Gary Funck <gary@intrepid.com>
485 Merge trunk version 196422 into gupc branch.
487 2013-02-25 Gary Funck <gary@intrepid.com>
489 Merge trunk version 196253 into gupc branch.
491 2013-02-18 Gary Funck <gary@intrepid.com>
493 Merge trunk version 196115 into gupc branch.
495 2013-02-11 Gary Funck <gary@intrepid.com>
497 Merge trunk version 195937 into gupc branch.
499 2013-02-04 Gary Funck <gary@intrepid.com>
501 Merge trunk version 195707 into gupc branch.
503 2013-01-28 Gary Funck <gary@intrepid.com>
505 Merge trunk version 195502 into gupc branch.
507 2013-01-21 Gary Funck <gary@intrepid.com>
509 Merge trunk version 195330 into gupc branch.
511 2013-01-14 Gary Funck <gary@intrepid.com>
513 Merge trunk version 195164 into gupc branch.
515 2013-01-07 Gary Funck <gary@intrepid.com>
517 Merge trunk version 194962 into gupc branch.
519 2012-12-24 Gary Funck <gary@intrepid.com>
521 Merge trunk version 194709 into gupc branch.
523 2012-12-17 Gary Funck <gary@intrepid.com>
525 Merge trunk version 194552 into gupc branch.
527 2012-12-10 Gary Funck <gary@intrepid.com>
529 Merge trunk version 194351 into gupc branch.
531 2012-12-03 Gary Funck <gary@intrepid.com>
533 Merge trunk version 194076 into gupc branch.
535 2012-11-30 Gary Funck <gary@intrepid.com>
537 Released GUPC 4.8.0.2 based on version 193446.
538 Date of release: 2012-11-12.
539 * DEV-PHASE: Bump release identifier to 4.8.0-3.
540 * DATESTAMP: Bump date stamp.
542 2012-11-26 Gary Funck <gary@intrepid.com>
544 Merge trunk version 193807 into gupc branch.
546 2012-11-20 Gary Funck <gary@intrepid.com>
548 Merge trunk version 193672 into gupc branch.
550 2012-11-19 Gary Funck <gary@intrepid.com>
552 Merge trunk version 193617 into gupc branch.
554 2012-11-15 Gary Funck <gary@intrepid.com>
556 Merge trunk version 193426 into gupc branch.
558 2012-11-12 Gary Funck <gary@intrepid.com>
560 Released GUPC 4.8.0.1 based on version 192948.
561 Date of release: 2012-10-29.
562 * DEV-PHASE: Bump release identifier to 4.8.0-2.
563 * DATESTAMP: Bump date stamp.
565 2012-11-05 Gary Funck <gary@intrepid.com>
567 Merge trunk version 193152 into gupc branch.
569 2012-10-29 Gary Funck <gary@intrepid.com>
571 Merge trunk version 192909 into gupc branch.
573 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
575 Remove unused --upc-pthreads-per-process compile switch.
576 * c-family/c.opt: Remove --upc-pthreads-per-process switch
577 that compiler/runtime do not use.
578 * c-family/c-opts.c (c_common_handle_option): Remove support for
579 --upc-pthreads-per-process switch.
580 * c-family/c-common.c: Ditto.
581 * c-family/c-common.h: Ditto.
583 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
585 Remove unused --upc-pthreads-per-process compile switch.
586 * upc/upc-act.c (upc_handle_option): Ditto.
587 (upc_cpp_builtins): Ditto.
588 * upc/upc-lang.c (upc_init_options): Ditto.
590 2012-10-27 Gary Funck <gary@intrepid.com>
592 * defaults.h: fix typos and formatting in UPC-related entries.
594 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
596 Place shared initialization code into the .text
597 section instead of a separate .upc_init section.
598 * defaults.h (UPC_INIT_SECTION_NAME): Delete.
599 (UPC_INIT_BEGIN_NAME): Delete.
600 (UPC_INIT_END_NAME): Delete.
601 * doc/tm.texi.in: Ditto.
602 * doc/tm.texi: Ditto.
604 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
606 Place shared initialization code into the .text
607 section instead of a separate .upc_init section.
608 * upc/upc-act.c (upc_build_init_func): Remove settings
609 of the section for shared initialization code.
611 2012-10-22 Gary Funck <gary@intrepid.com>
613 Merge trunk version 192673 into gupc branch.
615 2012-10-15 Gary Funck <gary@intrepid.com>
617 Merge trunk version 192449 into gupc branch.
619 2012-10-08 Gary Funck <gary@intrepid.com>
621 Merge trunk version 192198 into gupc branch.
623 2012-10-01 Gary Funck <gary@intrepid.com>
625 Merge trunk version 191931 into gupc branch.
627 2012-09-26 Gary Funck <gary@intrepid.com>
629 Implement support for various UPC version 1.3 specification
630 additions and changes. Deprecate support for upc_local_alloc.
631 Add support for upc_tick (wall-clock timer) library.
632 Add support for collective de-allocation functions:
633 upc_all_free and upc_all_lock_free.
634 Consult libgupc/ChangeLog,
635 libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
637 2012-09-26 Gary Funck <gary@intrepid.com>
639 * upc/upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.
641 2012-09-24 Gary Funck <gary@intrepid.com>
643 Merge trunk version 191658 into gupc branch.
645 2012-09-17 Gary Funck <gary@intrepid.com>
647 Merge trunk version 191376 into gupc branch.
649 2012-09-10 Gary Funck <gary@intrepid.com>
651 Merge trunk version 191141 into gupc branch.
653 2012-08-29 Nenad Vukicevic <nenad@intrepid.com>
655 * upc/gupc.texi: Add description for -fupc-pre-include.
657 2012-08-27 Gary Funck <gary@intrepid.com>
659 Merge trunk version 190707 into gupc branch.
660 * tree.h (struct tree_base): Adjust various
661 UPC tree and type flags to refer to the
662 newly introduced u.bits field.
664 2012-08-20 Gary Funck <gary@intrepid.com>
666 Merge trunk version 190524 into gupc branch.
667 Incorporates a fix in genoutput.c (to properly use
668 CONST_CAST) that led to build failures with
669 older versions of g++.
671 2012-08-16 Gary Funck <gary@intrepid.com>
673 Merge trunk version 190437 into gupc branch.
674 Incorporates a fix for a build failure on the PPC
675 due to passing incorrect switches to the assembler.
676 Also, first merged trunk revision that compiles GCC
677 with the C++ compiler in the first stage.
679 2012-08-16 Gary Funck <gary@intrepid.com>
681 * upc/upc-pts-struct.c (upc_pts_struct_is_null_p):
682 Adjust VEC_index() calls to use C++ syntax.
683 This is required as part of the move to compile
684 GCC with the C++ compiler.
686 2012-08-13 Gary Funck <gary@intrepid.com>
688 Merge trunk version 190336 into gupc branch.
690 2012-08-09 Gary Funck <gary@intrepid.com>
692 * c-family/c-common.c (c_fully_fold_internal): Do not fold
693 offsetof-like expressions when they are applied to UPC
696 2012-08-07 Gary Funck <gary@intrepid.com>
698 * upc/upc-genericize.c: Delete un-used include of optabs.h.
699 Fixes a parallel make failure due to un-noticed dependency.
701 2012-08-06 Gary Funck <gary@intrepid.com>
703 Merge trunk version 190173 into gupc branch.
705 2012-08-01 Gary Funck <gary@intrepid.com>
707 Merge trunk version 190063 into gupc branch.
708 Incorporates fix for build failure on IA64.
710 2012-07-30 Gary Funck <gary@intrepid.com>
712 Merge trunk version 189954 into gupc branch.
714 2012-07-27 Gary Funck <gary@intrepid.com>
716 Merge trunk version 189856 into gupc branch.
717 Incorporates fix for bootstrap with a sub-set of language
718 specific source directories present.
719 * optabs.c: Revert to trunk. Rather than defining opcodes
720 as a way of defining get/put runtime library function names,
721 generate them directly in gcc/upc/upc-genericize.c.
723 * genopinit.c: Ditto.
725 2012-07-27 Gary Funck <gary@intrepid.com>
727 * upc/upc-genericize.c (upc_expand_get, upc_expand_put):
728 Rather than referring to UPC-specific opcodes to find
729 the name of the get/put library function name, generate
731 (get_lc_mode_name): New.
733 2012-07-25 Gary Funck <gary@intrepid.com>
735 * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
736 Fix regression: field-by-field comparison of UPC
737 pointer-to-shared (vaddr, thread) only works
738 (with the current logic) for the == and != operators.
740 2012-07-24 Gary Funck <gary@intrepid.com>
742 * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
743 Fix warning about use of const_tree.
745 2012-07-24 Gary Funck <gary@intrepid.com>
747 Per UPC spec. 6.4.2p6, ignore the value of the
748 phase of a pointer-to-shared, when comparing for
750 * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
751 Use bit-wise comparison only if the UPC pointer-to-shared
752 target type has a block size <= 1 and the representation
753 has vaddr first or the comparison is for equality/inequality.
754 * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
755 Use (vaddr, thread) comparison only if the UPC pointer-to-shared
756 has a block size <= 1 or the comparison is for equality/inequality.
758 2012-07-23 Gary Funck <gary@intrepid.com>
760 Merge trunk version 189777 into gupc branch.
762 2012-07-16 Gary Funck <gary@intrepid.com>
764 Merge trunk version 189545 into gupc branch.
766 2012-07-12 Gary Funck <gary@intrepid.com>
768 Merge trunk version 189366 into gupc branch.
770 2012-07-05 Gary Funck <gary@intrepid.com>
772 Merge trunk version 189274 into gupc branch.
773 Incorporates graphite build infrastructure changes.
775 2012-07-04 Gary Funck <gary@intrepid.com>
777 Merge trunk version 189080 into gupc branch.
778 * Makefile.in: Adjust for move of C front-end files.
779 * c/Make-lang.in: Ditto.
781 2012-07-04 Gary Funck <gary@intrepid.com>
783 * upc/config-lang.in: Adjust for move of C front-end files.
784 * upc/upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
785 * upc/upc-gasp.c: Ditto.
786 * upc/upc-genericize.c: Ditto.
787 * upc/upc-lang.c: Ditto.
788 * upc/upc-pts-struct.c: Ditto.
790 2012-07-03 Gary Funck <gary@intrepid.com>
792 Merge trunk version 189078 into gupc branch.
794 2012-06-25 Gary Funck <gary@intrepid.com>
796 Merge trunk version 188931 into gupc branch.
798 2012-06-18 Gary Funck <gary@intrepid.com>
800 Merge trunk version 188721 into gupc branch.
802 2012-06-11 Gary Funck <gary@intrepid.com>
804 Merge trunk version 188380 into gupc branch.
806 2012-06-04 Gary Funck <gary@intrepid.com>
808 Merge trunk version 188168 into gupc branch.
810 2012-05-29 Gary Funck <gary@intrepid.com>
812 Merge trunk version 187927 into gupc branch.
814 2012-05-19 Gary Funck <gary@intrepid.com>
816 * upc/upc-act.c (upc_lang_layout_decl): Ignore declarations of
817 an array of shared type declarations if the size of the
818 array is zero. This avoids a segfault when processing
819 the UPC blocking factor.
821 2012-05-18 Gary Funck <gary@intrepid.com>
823 Merge trunk version 187666 into gupc branch.
824 Incorporates fix for ICE in tree vectorization pass
825 when processing strided loads.
827 2012-05-17 Gary Funck <gary@intrepid.com>
829 Merge trunk version 187578 into gupc branch.
831 2012-05-09 Gary Funck <gary@intrepid.com>
833 Merge trunk version 187347 into gupc branch.
834 Incorporates fix for segfault in tree vectorization pass.
836 2012-05-08 Nenad Vukicevic <nenad@intrepid.com>
838 * upc/gupcspec.c (lang_specific_driver): Improve handling of
839 "-x" switches: (a) add "-x upc" switch for C source files if
840 no -x switch was seen before OR "-x none" was seen, (b) add
841 "-x none" for files other then C files if "-x upc" was
842 previously added. Cleanup warnings on unused variables
843 and integer conversion. Print verbose info regardless of the
844 command line being the same.
846 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
848 * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
849 Appropriate libraries and include files are added on the
850 command line to make it possible to compile with the driver
853 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
855 * upc/gupc.texi: Simplify the description of the optimization
858 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
860 * upc/Make-lang.in: Remove build of xgupc.
861 * upc/gupcspec.c (get_libgupc_path): Delete.
862 (lang_specific_driver): Remove support for building xgupc.
863 Removed code tried to add -B, -L, -isystem to the command
864 line if xgupc driver is invoked from the development tree.
866 2012-05-04 Gary Funck <gary@intrepid.com>
868 * upc/upc-act.c (upc_num_threads): When THREADS is specified
869 statically, convert the value to a signed size type,
870 so that (for example) the thread affinity test in a
871 upc_forall() statement will work as expected for negative
872 integer index values.
874 2012-04-30 Nenad Vukicevic <nenad@intrepid.com>
876 * upc/Make-lang.in: Add year 2012 to the copyright.
878 2012-04-30 Nenad Vukicevic <nenad@intrepid.com>
880 * upc/gupc.c: Delete. The old GUPC driver.
881 * upc/gupcspec.c: Add. The new GUPC driver tailored
882 after fortran/gfortranspec.c driver. Options "-n", "-inst",
883 and "-inst-functions' are not supported by the new driver.
884 Support for building gupc and xgupc remains the same.
885 * upc/Make-lang.in (xgupc): Changes to compile gupcspec.c
888 * upc/gupc.texi: Remove '-n', '-inst', and '-inst-functions'
891 2012-04-29 Nenad Vukicevic <nenad@intrepid.com>
893 * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
894 PPC ABI. In the UPC 'struct' pointer-to-shared representation,
895 a function returns a pointer-to-shared in memory instead
897 (rs6000_pass_by_reference): Ditto.
899 2012-04-28 Gary Funck <gary@intrepid.com>
901 * c-decl.c (grokdeclarator): Set 'type' to error node
902 after detecting "shared auto variable" error to avoid
903 downstream complications.
904 * upc/upc-act.c: Fix a couple of spelling errors in comments.
906 2012-04-26 Gary Funck <gary@intrepid.com>
908 * c-family/c-pragma.c (handle_pragma_upc):
909 Fix typo in warning message.
911 2012-04-17 Nenad Vukicevic <nenad@intrepid.com>
913 * upc/gupc.texi: Fix the warning for usage of 'insertcopying'
914 before 'copying'. Minor changes to to copyright years and
917 2012-04-17 Gary Funck <gary@intrepid.com>
919 Merge trunk version 186486 into gupc branch.
921 2012-04-17 Gary Funck <gary@intrepid.com>
923 * c-family/c-pragma.c (disable_pupc_mode): Return the previous
924 value of the pupc mode. Fixes a compile-time warning.
925 * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
926 disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
927 Improve source formatting.
929 2012-04-16 Gary Funck <gary@intrepid.com>
931 * upc/upc-genericize.c: Adjust copyright.
932 (upc_genericize_fndecl): Adjust call graph
933 union member reference to use the newly introduced
934 'symbol' field in order to refer to 'decl'.
936 2012-04-09 Gary Funck <gary@intrepid.com>
938 Merge trunk version 186243 into gupc branch.
939 Incorporates a powerpc 'ffi' fix.
941 2012-03-16 Gary Funck <gary@intrepid.com>
943 Merge trunk version 185454 into gupc branch.
944 Incorporates a libgcc fix for builds on Darwin.
946 2012-03-13 Gary Funck <gary@intrepid.com>
948 Merge trunk version 185278 into gupc branch.
949 * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
950 call build_pointer_type() to apply UPC-specific qualifiers.
951 * top-level/configure.ac: factor the checking for posix hostst
952 out of the libgomp section so that it can also be used by libgupc.
953 * top-level/configure: Re-generate.
954 * DEV-PHASE: bump to 4.8.0-1.
956 2012-03-12 Gary Funck <gary@intrepid.com>
958 * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
959 the mode for a pointer for upc-pointer-to-shared types.
961 2012-03-04 Gary Funck <gary@intrepid.com>
963 Merge trunk version 184900 into gupc branch.
965 2012-02-17 Gary Funck <gary@intrepid.com>
967 Released GUPC 4.7.0.2 based on version 183992.
968 * DEV-PHASE: Bump release identifier to 4.7.0-3.
969 * DATESTAMP: Bump date stamp.
971 2012-02-07 Nenad Vukicevic <nenad@intrepid.com>
973 * upc/gupc.texi: Added entries for the directory.
975 2012-02-05 Nenad Vukicevic <nenad@intrepid.com>
977 * upc/gupc-manpage.html: Removed. HTML files are generated from
980 2012-02-05 Nenad Vukicevic <nenad@intrepid.com>
982 * upc/gupc.texi (-x upc): Add files ending with '.c' to the list
983 of files compiled as UPC source.
985 2012-02-04 Nenad Vukicevic <nenad@intrepid.com>
987 * upc/Make-lang.in (doc/gupc.info): Fix dependencies for creating
990 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
992 * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
993 code generation (same as #pragma pupc off).
994 (set_pupc_mode): New. Set/restore profiling mode.
995 * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
996 (set_pupc_mode): New. Prototype.
997 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
998 profiling code for shared variables initialization routines.
1000 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
1002 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1003 profiling code for shared variables initialization routines.
1005 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
1007 * upc/Make-lang.in: Various changes related to generating
1008 man/info pages from texi source file.
1009 (upc.install-common): Fix for removing the upc command
1010 link before install if suffix was applied.
1011 (upc.install-pdf): New.
1012 (upc.install-html): Change for the build from texi.
1013 (upc.install-man): Change for the build from texi.
1014 * upc/gupc.1: Removed.
1015 * upc/gupc.texi: New. Created texi source for man/info
1018 2012-01-31 Gary Funck <gary@intrepid.com>
1020 Merge trunk version 183751 into gupc branch.
1021 Incorporates fix for bootstrap failure on openSUSE 12.1.
1023 2012-01-30 Nenad Vukicevic <nenad@intrepid.com>
1025 * upc/Make-lang.in: Fix the --program-suffix configuration
1026 option. GUPC executables are now installed with appropriate
1027 suffixes and GUPC driver execs 'gcc' with the right suffix.
1029 2012-01-24 Nenad Vukicevic <nenad@intrepid.com>
1031 * upc/upc-lang.c (upc_init_options): Disable section anchors
1034 2012-01-14 Gary Funck <gary@intrepid.com>
1036 * upc/upc-genericize.c (upc_genericize_expr): Update input_location
1037 while traversing the program tree.
1038 (upc_expand_get, upc_expand_put): For profiling, derive
1039 the source code location from the incoming 'loc' parameter.
1041 2012-01-10 Gary Funck <gary@intrepid.com>
1043 Merge trunk version 183072 into gupc branch.
1044 Incorporates libcpp __BASE_FILE__ fix.
1046 2012-01-09 Gary Funck <gary@intrepid.com>
1048 * upc/upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
1049 is_gimple_non_addressable.
1051 2012-01-06 Nenad Vukicevic <nenad@intrepid.com>
1053 * upc/Make-lang.in: Add appropriate linker flags when linking
1056 2012-01-06 Nenad Vukicevic <nenad@intrepid.com>
1058 * upc/Make-lang.in: Add appropriate linker flags when linking
1061 2011-12-31 Gary Funck <gary@intrepid.com>
1063 Fix gupc driver to avoid segfault when processing
1064 invalid use of a switch that expects an argument.
1065 * upc/gupc.c (get_libgupc_path): Add check for non-NULL value of
1066 libgupc_archive before attempting to access libgupc_archive[0].
1067 (main): Do not issue error if lib_dir is NULL. Instead, only
1068 process lib_dir if it is non-NULL.
1070 2011-12-31 Gary Funck <gary@intrepid.com>
1072 Improve -fupc-debug support.
1073 * upc/upc-genericize.c (upc_expand_get, upc_expand_put,
1074 upc_genericize_sync_stmt): Add check for flag_upc_debug.
1075 * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
1076 * upc/upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
1077 * upc/upc-act.c (upc_cpp_builtins): Disable inlining of the
1078 runtime if flag_upc_debug is asserted.
1080 2011-12-20 Nenad Vukicevic <nenad@intrepid.com>
1082 * top-level/Makefile.def (flags_to_pass): Added GUPC
1083 defines. Fixes the make error when upc is not specified as one
1084 of the languages to build.
1085 * top-level/Makefile.in: Re-generate.
1087 2011-11-22 Gary Funck <gary@intrepid.com>
1089 * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
1090 * dwarf2out.c (gen_compile_unit_die): Check for
1091 the "GNU UPC" language string in lieu of "GCC UPC".
1092 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
1094 2011-11-22 Gary Funck <gary@intrepid.com>
1096 * upc/upc-act.c (upc_cpp_builtins): Generate new pre-defined
1099 2011-11-18 Gary Funck <gary@intrepid.com>
1101 Merge trunk version 181552 into gupc branch.
1102 Incorporates libgcc/libunwind fix for IA64.
1104 2011-11-19 Gary Funck <gary@intrepid.com>
1106 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1107 Add check for UPC when defining the language type value
1108 in a traceback entry.
1110 2011-11-19 Gary Funck <gary@intrepid.com>
1112 * upc/config-lang.in: Remove checks for supported targets.
1113 This is now done at a higher level.
1115 2011-11-18 Gary Funck <gary@intrepid.com>
1117 Merge trunk version 181493 into gupc branch.
1118 Incorporates final fix for PR target/49992.
1120 2011-11-09 Nenad Vukicevic <nenad@intrepid.com>
1122 * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
1123 change that converted relative include paths into absolute
1124 ones, as it does not work with older version of make (3.80).
1126 2011-10-27 Nenad Vukicevic <nenad@intrepid.com>
1128 Apply patch for Darwin build - PR49992.
1129 * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
1130 * gcc/configure.ac: Ditto.
1131 * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
1132 * gcc/ada/gcc-interface/Makefile.in: Ditto.
1133 * top-level/configure: Re-generate.
1134 * gcc/configure: Re-genrate.
1136 2011-10-26 Gary Funck <gary@intrepid.com>
1138 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1139 "libupc" to "libgupc".
1140 * top-level/configure.ac: Implement support for cross-builds, and
1141 adjust for rename of libupc to libgupc.
1142 * top-level/Makefile.tpl: Ditto.
1143 * top-level/Makefile.def: Ditto.
1144 * top-level/configure: Re-generate.
1145 * top-level/Makefile.in: Re-generate.
1146 * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
1147 * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
1148 * doc/tm.texi: Re-generate.
1149 * tree-pretty-print.c (dump_block_node): Delete unused variable.
1150 * gcc.c: Adjust for rename of libupc to libgupc.
1151 * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
1152 Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
1153 Change "xupc" to "xgupc".
1154 * configure.ac: Change "GCC UPC" to "GNU UPC".
1155 * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
1156 so that they are absolute paths. This is needed because
1157 the upc-crtstuff builds are in the libgupc library build
1158 directories which are not at the same level as libgcc.
1159 * config/darwin.h: Adjust for rename of libupc to libgupc.
1161 2011-10-26 Gary Funck <gary@intrepid.com>
1163 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1164 "libupc" to "libgupc".
1165 * upc/gupc.c: Rename from upc-cmd.c and adjust for rename
1166 of libupc to libgupc.
1167 * upc/upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
1168 * upc/config-lang.in: Adjust for rename of libupc to libgupc.
1169 * upc/gupc.1: Rename from upc.1. Change "GCC UPC" references
1170 to "GNU UPC". Adjust for rename of libupc to libgupc.
1172 * upc/gupc-manpage.html: Rename from upc-manpage.html. Re-generate.
1173 * upc/Make-lang.in: Change "upc" to "gupc". Change "xupc" to "xgupc".
1174 Adjust for rename of libupc to libgupc. Install target symlink from
1175 "upc" to "gupc". Install target/version-specific hard links to "gupc".
1177 2011-10-20 Gary Funck <gary@intrepid.com>
1179 Merge trunk version 180276 into gupc branch.
1180 Incorporates fix for PR bootstrap/50709.
1182 2011-10-20 Gary Funck <gary@intrepid.com>
1184 Merge trunk version 180246 into gupc branch.
1186 2011-10-19 Gary Funck <gary@intrepid.com>
1188 Merge trunk version 180233 into gupc branch.
1189 Incorporates fix for PR debug/49310 (var tracking).
1191 2011-10-17 Gary Funck <gary@intrepid.com>
1193 Fix a regression caused by the previous commit.
1194 * upc/upc-genericize.c (upc_genericize_walk):
1195 Renamed from: upc_genericize_stmt.
1196 (upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
1197 re-walk the tree after simplification, by calling
1198 upc_genericize_walk().
1199 (upc_genericize_array_ref): expand the newly constructed
1200 indirect reference by calling upc_genericize_indirect_ref().
1202 2011-10-11 Nenad Vukicevic <nenad@intrepid.com>
1204 * testsuite/lib/upc-dg.exp: Limit number of torture runs to
1205 only four (O0 static/dynamic, O3 static/dynamic).
1206 Detect -fupc-threads-0 as an option for dynamic threads
1207 compile environment.
1209 2011-10-10 Gary Funck <gary@intrepid.com>
1211 * tree.c (check_qualified_type, check_aligned_type):
1212 Call tree_int_cst_equal() to compare UPC blocking factors
1213 if the corresponding tree pointers are not equal.
1214 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
1216 2011-10-10 Gary Funck <gary@intrepid.com>
1218 * upc/upc-genericize.c (upc_simplify_shared_ref): When simplifying
1219 the base address always convert to (shared [] char *).
1220 This ensures that &a[i].field1 ends up with the required
1221 zero block size, for example.
1223 2011-10-07 Nenad Vukicevic <nenad@intrepid.com>
1225 Add configuration checks for struct/packed builds so we can
1226 use upc_struct_pts/upc_packed_pts selectors in the testsuite.
1227 * testsuite/lib/target-supports.exp
1228 (check_effective_target_upc_struct_pts): New.
1229 (check_effective_target_upc_packed_pts): New.
1231 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
1233 Add to FLAGS the flags needed to disable inlining of
1234 UPC run-time access routines.
1235 * testsuite/lib/target-supports.exp
1236 (add_options_for_upc_library_calls): New.
1238 2011-09-15 Gary Funck <gary@intrepid.com>
1240 Fix ICE involving shared bit field accesses.
1241 * tree.c (build3_stat): Propagate TEEE_SHARED()
1242 and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1244 2011-09-13 Gary Funck <gary@intrepid.com>
1246 Merge trunk version 178795 into gupc branch.
1247 Incorporates fix to PR bootstrap/50010 for x86-32.
1249 2011-09-08 Gary Funck <gary@intrepid.com>
1251 Merge trunk version 178557 into gupc branch.
1253 2011-09-07 Gary Funck <gary@intrepid.com>
1255 Ensure that UPC pointer-to-shared type alignment is
1256 propagated to the final type. Revert to long-standing
1257 alignment policy: twice the size of a "C" pointer.
1258 * tree.c (build_pointer_type): Propagate the alignment
1259 of the UPC pointer-to-shared representation type
1260 into the newly built pointer type.
1262 2011-08-30 Gary Funck <gary@intrepid.com>
1264 * tree.h (check_qualified_type): Change 'const_tree'
1265 argument types back to 'tree' to avoid complaints
1266 of assignment drops qualifiers for invocations of the
1267 newly implemented TYPE_BLOCK_FACTOR() macro, which
1268 invokes hash functions with 'tree' pointer values that
1269 are not const qualified.
1270 * tree.c (check_qualified_type, check_aligned_type): Ditto.
1271 * c-typeck.c (comptypes_internal): Ditto.
1273 2011-08-29 Gary Funck <gary@intrepid.com>
1275 Fixes for regressions noted running "make check"
1277 * fold-const.c (fold_unary_loc): Execute UPC-specific
1278 checks for a cast-of-a-cast, only if one of the
1279 operands is a UPC pointer-to-shared value.
1280 * opts.c (print_specific_help): Fix a comparison
1281 in an assert that checks that there are enough
1282 bits reserved for the number of languages defined
1285 2011-08-29 Gary Funck <gary@intrepid.com>
1287 Implement a hash table to record UPC block factors.
1288 * c-family/stub-upc.c (upc_block_factor_insert,
1289 upc_block_factor_lookup): New dummy stub procedures.
1290 * c-family/c-common.c (c_sizeof_or_alignof_type):
1291 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1292 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1293 to copy (hashed) UPC blocking factor.
1294 (set_type_quals): Likewise.
1295 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1296 TYPE_HAS_THREADS_FACTOR().
1297 (type_common.block_factor): Delete.
1298 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1299 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1300 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1301 UPC blocking factors greater than one.
1302 * dwarf2out.c (modified_type_die): Re-implement
1303 logic that records UPC blocking factor in the generated
1304 DWARF2 debugging information.
1305 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1306 TYPE_HAS_THREADS_FACTOR().
1307 * c-decl.c (finish_decl, grokdeclarator):
1308 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1309 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1310 used by UPC, and print UPC-specific information.
1312 2011-08-28 Gary Funck <gary@intrepid.com>
1314 Re-work the type machinery to fully support and to unify support
1315 for the UPC layout qualifier (blocking factor).
1316 * c-family/stub-upc.c (upc_set_block_factor): Delete.
1317 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1318 and update prototype.
1319 * c-family/c-common.c (complete_array_type): call newly
1320 defined c_build_qualified_type_1() instead of
1321 upc_set_block_factor().
1322 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1323 upc_apply_layout_qualifier() and update prototype.
1324 (upc_set_block_factor): Delete prototype.
1325 * c-family/c-common.h (c_build_qualified_type): redefine
1326 as a pre-processor macro that invokes c_build_qualified_type_1()
1327 with a null UPC layout qualifier.
1328 (c_build_qualified_type_1): New. Add layout qualifier argument
1329 to old c_build_qualified_type() prototype.
1330 * tree.c (set_type_quals, check_qualified_type):
1331 Add layout qualifier as argument.
1332 (check_aligned_type): Add check for UPC block factor equality.
1333 (get_qualified_type_1): Rename from get_qualified_type() and
1334 add layout qualifier as argument.
1335 (build_qualified_type_1): Rename from build_qualified_type() and
1336 add layout qualifier as argument.
1337 * tree.h (check_qualified_type): Add layout qualifier as argument
1339 (get_qualified_type): Re-define as a as a pre-processor macro
1340 that invokes get_qualified_type_1() with a null
1341 UPC layout qualifier.
1342 (get_qualified_type_1): Rename from get_qualified_type() and
1343 add layout qualifier as argument.
1344 * cp/tree.c (c_build_qualified_type_1): Rename from
1345 c_build_qualified_type() and add (unused) layout qualifier
1347 * c-decl.c (finish_decl): re-format long error messages.
1348 (grokdeclarator): Re-work the logic so that it calls
1349 upc_grok_layout_qualifier() to handle the UPC layout
1350 qualifier, if present.
1351 * c-typeck.c (qualify_type, common_pointer_type,
1352 build_component_ref): Re-work the logic so that it calls
1353 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1355 (c_build_qualified_type_1): Rename from c_build_qualified_type()
1356 and add layout qualifier argument.
1357 * print_tree.c (print_node): Re-format a long line.
1359 2011-08-26 Gary Funck <gary@intrepid.com>
1361 Merge trunk version 177949 into gupc branch.
1362 * c-family/c-common.h (enum rid): Bump the number of type modifiers
1364 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1365 to add new rliterals column value.
1367 2011-08-26 Gary Funck <gary@intrepid.com>
1369 * convert.c (convert_to_integer): Fix the check for the
1370 difference between two UPC pointers-to-shared values.
1372 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
1374 * configure.ac: Fix the name for --with-upc-pts-packed-bits
1375 option. Support --with-upc-packed-bits as deprecated. Fix the code to
1376 correctly check packed bits.
1377 * configure: Re-generate.
1379 2011-08-16 Gary Funck <gary@intrepid.com>
1381 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1382 the barrier id expression is not an integer expression.
1384 2011-08-12 Gary Funck <gary@intrepid.com>
1386 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1388 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1389 Set mode of UPC pointer-to-shared rep. to an
1390 integral mode of size at least as large as the
1391 size of the representation's struct type.
1393 2011-08-12 Gary Funck <gary@intrepid.com>
1395 Rework/simplify the UPC genericize pass.
1396 * c-family/stub-upc.c (upc_apply_layout_qualifier,
1397 upc_build_pointer_type): New.
1398 (upc_set_block_factor): Adjust to new calling sequence.
1399 (upc_build_shared_var_addr): Delete.
1400 * c-family/c-common.c (complete_array_type): Adjust call
1401 to upc_set_block_factor().
1402 * c-family/c-upc.h (upc_apply_layout_qualifier,
1403 upc_build_pointer_type): New.
1404 (upc_build_shared_var_addr): Delete.
1405 (upc_set_block_factor): Adjust to new calling sequence.
1406 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1407 * c-decl.c (grokdeclarator): Call newly defined
1408 upc_apply_layout_qualifier() instead of upc_set_block_factor().
1409 * c-decl.c (grokdeclarator): Split long UPC-related error
1410 messages into two lines.
1411 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1412 directly. Revert that change to trunk. (upc_genericize() will
1413 handle lowering the expressions that take the address of a
1415 * config/i386/i386.c (ix86_promote_function_mode): For UPC
1416 pointers-to-shared, return the type mode of the UPC pointer-to-shared
1417 representation type.
1419 2011-08-10 Gary Funck <gary@intrepid.com>
1421 Implement additional fixes for recent merge with trunk.
1422 * explow.c (promote_mode): Do not attempt to promote
1423 the mode for UPC pointer-to-shared types.
1424 * config/i386/i386.c (function_value_64): Ditto.
1426 2011-08-07 Gary Funck <gary@intrepid.com>
1428 Merge trunk version 177548 into gupc branch.
1429 * config/i386/i386.c (ix86_promote_function_mode):
1430 Do not promote UPC pointers-to-shared to Pmode.
1431 * c-family/c-ommon.c (pointer_int_sum):
1432 Also check the pointer operand, rather than just
1433 its type, when making the decision to derive
1434 the equivalent unshared type.
1435 * tree.c (build2_stat): If the type of the result
1436 passed in as an argument is a UPC shared type,
1437 derive the unshared equivalent when calculating
1438 the result type of the node.
1440 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
1442 * config/darwin.c: Disable var_tracking option
1443 on -O0 as it is supposed to run only when optimization
1444 is applied. See GCC bug 49743.
1446 2011-07-06 Gary Funck <gary@intrepid.com>
1448 Re-implement the pass that lowers trees generated by
1449 the UPC front-end into GENERIC. Previously this was
1450 done within the gimplification framework, but this
1451 required that gimplification be run before inlining
1452 and various other passes, which did not fit in well
1453 with the current design of the middle-end passes.
1454 Now, the lowering is done by a newly defined language
1455 specific genericize hook. With this change, we are
1456 are able to undo some extensions made to the gimplify
1457 logic, and thus can revert several files to trunk.
1458 * c-decl.c: Add a check for UPC deprecated names which
1459 may appear as undefined function names.
1460 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1461 LTI_upc_getaddr): Remove definitions of unused UPC
1462 library function names. These were defined back when
1463 the libfunc interface was used to call these routines.
1464 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1465 in UPC lowering (genericize) pass.
1466 * langhooks.h (gimplify_expr): Revert to trunk's definition.
1467 (instrument_func): Delete this hook. Now handled in
1469 * tree-pass.h: Revert to trunk.
1470 * c-typeck.c (build_unary_op): Adjust reference to
1471 upc_genericize() in a comment.
1472 * gimplify.c (create_tmp_var_raw): Delete logic that
1473 was converting UPC shared types into unshared types
1474 to be used for temporaries. Now handled in upc_genericize().
1475 Replace with an assertion check.
1476 (prepare_gimple_addressable): Revert to trunk's definition.
1477 No longer needed as an externally called function.
1478 (flag_instrument_functions_exclude_p): Re-define as
1479 an externally called function.
1480 (gimplify_function_tree): Delete code that implemented
1481 call to UPC's language specific function instrumentation hook.
1482 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1483 (prepare_gimple_addressable): Delete extern definition;
1484 revert to trunk's definition.
1485 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1486 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1487 * c-family/c-gimplify.c: Revert to trunk.
1488 * cp/cp-gimplify.c: Revert to trunk.
1489 * cp/cp-tree.h: Revert to trunk.
1490 * explow.c: Revert to trunk.
1491 * langhooks.c: Revert to trunk.
1492 * libfuncs.h: Revert to trunk.
1493 * objc/objc-act.c: Revert to trunk.
1495 2011-06-30 Gary Funck <gary@intrepid.com>
1497 * c-family/c.opt: Bring options definitions up-to-date
1498 with respect to changes made in the trunk.
1500 2011-06-29 Gary Funck <gary@intrepid.com>
1502 Merge trunk version 175584 into gupc branch.
1504 2011-06-13 Gary Funck <gary@intrepid.com>
1507 * include/cpplib.h (enum c_lang):
1508 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1509 This keeps all the "C" variants together.
1510 * init.c (lang_defaults): Add an entry for UPC.
1512 2011-06-09 Gary Funck <gary@intrepid.com>
1514 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1515 a 32-bit target, the size expression overflowed, the result was
1516 error_mark_node, and an ICE was triggered on an attempt to evaluate
1517 C_TYPE_VARIABLE_SIZE() on the error node.
1518 (upc_blocksizeof_expr, upc_blocksizeof_type,
1519 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1520 Make similar changes to avoid further processing of error_mark_node.
1522 2011-06-07 Gary Funck <gary@intrepid.com>
1524 * sel-sched.c (move_op): Incorporate the following
1525 patch to eliminate ICE at -O3 on IA64/Altix.
1527 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
1529 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1530 code_motion_path_driver returned 0 or 1.
1531 (sel_region_finish): Clear h_d_i_d.
1533 2011-06-02 Gary Funck <gary@intrepid.com>
1535 Merge trunk version 174558 into gupc branch.
1537 2011-05-30 Gary Funck <gary@intrepid.com>
1539 * configure.ac: Make the default order of the virtual
1540 address field in a UPC pointer-to-shared to be "first".
1541 This reverts to the previous setting, and is a short term
1542 measure to work around a bug found on the IA64,
1543 where vaddr=last led to incorrect code generation.
1544 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1545 in AC_DEFINE(), to agree with recent changes in files
1546 that reference this define.
1547 configure, config.in: Regenerate.
1549 2011-05-26 Gary Funck <gary@intrepid.com>
1551 * configure.ac: Fix typo when referring to $upc_vaddr_order.
1552 configure: Regenerate.
1553 * ../fixincludes/fixincl.x: Revert to trunk.
1554 This file is auto-generated, and should not be merged.
1556 2011-05-18 Gary Funck <gary@intrepid.com>
1558 Merge trunk version 173845 into gupc branch.
1560 2011-05-17 Gary Funck <gary@intrepid.com>
1562 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1563 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1564 * c-family/c-pragma.c: Remove conditional compilation
1565 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1566 Test 'compiling_upc' when compiling to determine if
1567 the "upc" and "pupc" pragmas should be registered.
1568 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1569 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1570 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1571 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1572 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1573 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1574 Move these target-dependent definitions from config/upc-conf.h
1576 * configure.ac: Improve the logic for UPC-related options.
1577 Delete references to pre-processor definitions that have
1578 been moved to "upc/upc-pts.h".
1579 * configure, config.in: Regenerate.
1580 * Makefile.in (UPC_PTS_REP): Remove definition and revert
1581 to trunk. This substitution variable was used to
1582 configure the representation-specific versions of
1583 the tree rewrites that operate on UPC pointer-to-shared
1585 * c-parser.c (c_parser_upc_forall_statement): Remove
1586 reference to UPC_FORALL_DEPTH_NAME, and call
1587 newly defined upc_rts_forall_depth_var() instead.
1588 * config/upc-config.h: Delete. Various definitions
1589 moved to "upc/upc-rts-names.h", "defaults.h", and
1591 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1592 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1593 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1594 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1595 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1596 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1597 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1598 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1599 New. Document UPC target macros.
1600 doc/tm.texi: Regenerate.
1602 2011-05-07 Gary Funck <gary@intrepid.com>
1604 * ../configure.ac: Disable build of libupc
1605 on non POSIX hosted systems. Use AS_HELP_STRING
1606 to define messages. Remove 'word-pair' as a
1607 possible --with-upc-pts UPC pointer-to-shared
1609 * ../configure: Regenerate.
1610 * configure.ac: Use AS_HELP_STRING to define messages.
1611 Remove 'word-pair' as a possible --with-upc-pts
1612 UPC pointer-to-shared representation.
1613 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1614 (UPC_MAX_BLOCK_SIZE): Correct the default value.
1615 * configure: Regenerate.
1616 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1618 * ChangeLog.upc: Fix some typos.
1620 2011-05-07 Gary Funck <gary@intrepid.com>
1622 * ../maintainer-scripts/gcc_release: Add "upc"
1623 as one of the released languages.
1625 2011-05-06 Gary Funck <gary@intrepid.com>
1627 Eliminate compilation warnings, by fixing
1628 #include's and updating function prototypes.
1629 * c-family/c-cppbuiltin.c: Include c-upc.h.
1630 * optabs.c (gen_libfunc): Change type of 'suffix'
1631 parameter to conform with prototype.
1632 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1633 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1635 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1637 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1638 argument values to cp_gimplify_expr.
1639 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1640 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
1641 pre-processor definitions that are no longer
1642 needed to build the 'upc' command (upc-cmd.c)
1643 because the linker specs. defined in libupc
1644 take care of linking in the needed libraries.
1645 * c-parser.c (c_parser_upc_forall_statement):
1646 initialize affinity_loc to avoid "maybe unused" warning.
1647 (c_parser_upc_sync_statement): Remove un-needed
1648 'ret' variable. Cast return value from
1649 'upc_build_sync_stmt' to 'void' to avoid
1650 compile-time warning.
1651 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1652 integer constant, not a string. Range is restricted
1653 to maximum positive 32-bit integer (2+ billion) to
1654 fit in with the use of 'int' in the front-end's
1655 switch handling logic.
1657 2011-05-06 Gary Funck <gary@intrepid.com>
1659 Upgrade c-family source files to conform with modularity
1660 improvements. Mainly, remove #include of c-tree.h in files
1661 under c-family, and define a new UPC-specific #include file,
1662 c-upc.h, and use it.
1663 * c-family/stub-upc.c: Remove #include of c-tree.h and
1664 upc/upc-act.h. Replace with #include of c-common.h
1666 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1667 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1668 upc_localsizeof_expr, upc_localsizeof_type,
1669 upc_shared_type_p): Delete.
1670 * c-family/c-opts.c: Add #include of c-upc.h
1671 * c-family/c-common.c: Remove #include of c-tree.h and
1672 add #include of c-upc.h.
1673 * c-family/c-upc.h: New. Define API for UPC-specific functions
1674 (mostly implemented in upc/upc-act.c).
1675 * c-family/c-common.h (upc_cpp_builtins,
1676 upc_write_global_declarations): Remove extern definitions.
1677 * c-family/c-pragma.c: Remove #include of c-tree.h.
1678 Add #include of c-upc.h.
1679 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
1681 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
1682 upc/upc-act.c, and define as a macro.
1683 (expand_affinity_test): Remove unused external definition.
1684 (build_upc_unshared_type): Add external definition.
1685 (upc_shared_type_p): Remove external definition.
1686 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1687 * dojump.c: Remove #include of c-tree.h.
1688 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1690 (count_upc_threads_refs, is_multiple_of_upc_threads,
1691 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1692 upc_build_shared_var_addr, upc_build_sync_stmt,
1693 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1694 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1695 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1696 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1697 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1698 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1699 set_upc_consistency_mode, get_upc_consistency_mode,
1700 push_upc_consistency_mode, pop_upc_consistency_mode,
1702 Move external definitions to c-family/c-upc.h.
1703 (upc_blocksizeof_type, upc_localsizeof_type,
1704 upc_elemsizeof_type): Remove external definitions;
1705 these functions were moved to c-parser.c.
1706 * c-decl.c: Add #include of c-upc.h.
1707 * c-typeck.c: Add #include of c-upc.h.
1708 * c-convert.c: Add #include of c-upc.h.
1709 * ChangeLog.upc: Fix typo.
1710 * Makefile.in: Add references to c-family/c-upc.h, everywhere
1711 there is a reference to c-family/c-objc.h.
1712 Remove extraneous reference to upc-act.h.
1713 * c-parser.c: Add #include of c-upc.h.
1714 (upc_blocksizeof_expr, upc_blocksizeof_type,
1715 upc_elemsizeof_expr, upc_elemsizeof_type,
1716 upc_localsizeof_expr, upc_localsizeof_type):
1717 Move from upc/upc-act.c.
1718 * tree.c (build_upc_unshared_type): New.
1719 Move upc_get_unshared_type from upc/upc-act.c and rename
1720 to build_upc_unshared_type.
1721 c-family/c-common.c (pointer_int_sum): refer to renamed
1722 build_upc_unshared_type function.
1723 c-convert.c (convert): Ditto.
1724 convert.c (convert_to_pointer): Ditto.
1725 c-typeck.c (build_unary_op, build_modify_expr,
1726 really_start_incremental_init): Ditto.
1727 gimplify.c (create_tmp_var_raw): Ditto.
1728 tree.c (build1_stat): Ditto.
1729 tree.h (upc_get_unshared_type): Rename to
1730 build_upc_unshared_type.
1732 2011-05-06 Gary Funck <gary@intrepid.com>
1734 Merge trunk version 173471 into gupc branch.
1736 2011-05-05 Gary Funck <gary@intrepid.com>
1738 Make changes that bring the GUPC branch more closely in sync.
1739 with the GCC trunk. Revert any fixes that are not UPC-specific.
1740 Remove gratuitous re-formatting.
1741 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1742 This file should have been removed in a previous merge
1744 * ../configure.ac: Remove Cray Catamount/CNL support.
1745 * ../configure: Regenerate.
1746 * ../config.sub: Remove Cray Catamount/CNL support.
1747 * config.gcc: Remove Cray Catamount/CNL support.
1748 * ../maintainer-scripts/gcc_release: Revert to trunk.
1749 * c-family/c-common.h: Define parse_optimize_options. Its definition
1750 was missed in a previous merge with the trunk.
1751 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1753 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1754 in addition to ARRAY_TYPE.
1755 * c-typeck.c: Remove an extra newline character.
1756 * varasm.c: Revert a fix that improved an error message
1757 when TLS common data is unimplemented.
1758 * varasm.c: Revert a gcc_assert that had been added which
1759 checked for a null DECL_SIZE_UNIT field.
1760 * emultls.c: Revert to trunk. Remove possible fix.
1761 * Makefile.in: Revert extra blank line that is present
1762 in the trunk version.
1763 * Makefile.in: Revert a fix that handled long shell
1764 argument lists for plugin headers.
1765 * config/ia64/ia64.opt: Revert an option setting
1766 that increased the default TLS address range.
1767 * config/ia64/crtbegin.asm: Revert to trunk.
1768 Removes an extra newline character.
1769 * ChangeLog.upc: Spell check.
1771 2011-05-03 Gary Funck <gary@intrepid.com>
1773 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1774 (c_apply_type_quals_to_decl): Ditto.
1775 * c-family/c-common.h: Ditto.
1777 * c-decl.c (merge_decls): Ditto.
1778 * c-typeck.c (qualify_type, default_conversion,
1779 build_component_ref, build_unary_op,
1780 c_build_qualified_type): Ditto.
1781 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1783 2011-04-29 Gary Funck <gary@intrepid.com>
1785 * c-decl.c (finish_decl): Improve error diagnostics.
1786 (grokdeclarator): Ditto.
1787 * c-typeck.c (build_c_cast): Improve error diagnostics.
1788 (convert_for_assignment): Ditto.
1789 (build_binary_op): Ditto.
1790 * c-parser.c (c_parser_upc_forall_statement):
1791 Improve error diagnostics.
1792 * convert.c (convert_to_integer): Improve error diagnostics.
1794 2011-04-24 Gary Funck <gary@intrepid.com>
1796 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1797 occurred if there is an error in the barrier id
1798 expression. Map error_mark_node into NULL.
1800 2011-04-22 Gary Funck <gary@intrepid.com>
1802 Merge trunk version 172873 into gupc branch.
1804 2011-04-19 Gary Funck <gary@intrepid.com>
1806 Merge trunk version 172359 into gupc branch.
1808 2011-04-14 Gary Funck <gary@intrepid.com>
1810 * c-family/c.opt: Add UPC as a valid language for various
1811 switches where it is valid for "C", that were not updated
1812 in previous merges with trunk.
1814 2011-04-13 Gary Funck <gary@intrepid.com>
1816 * c-family/c.opt (fupc-pre-include): New option definition.
1817 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1818 -fno-upc-pre-include is asserted.
1820 2011-04-07 Gary Funck <gary@intrepid.com>
1822 Merge trunk version 172158 into gupc branch.
1823 to bring in the following fix.
1825 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
1828 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1829 if old and new states differ.
1831 2011-04-06 Gary Funck <gary@intrepid.com>
1833 Merge trunk version 171966 into gupc branch.
1835 2011-04-01 Gary Funck <gary@intrepid.com>
1837 * tree.h (tree_base): Move UPC flag bits into bit fields
1838 located just before spare bits. Decrement spare bits.
1839 Rename 'shared_flag' -> 'upc_shared_flag',
1840 'relaxed_flag' -> 'upc_relaxed_flag',
1841 'strict_flag' -> 'upc_strict_flag, and adjust macros
1842 that reference them accordingly.
1844 2011-04-01 Gary Funck <gary@intrepid.com>
1846 * c-decl.c (grokdeclarator): Fix formatting of
1847 code that sets UPC block size on scalars.
1849 2011-04-01 Gary Funck <gary@intrepid.com>
1851 * c-decl.c (grokdeclarator): Revert use of white space
1852 to match the trunk (to rationalize diffs).
1853 * c-typeck.c (convert_for_assignment): Ditto.
1854 * tree-ssa.c (useless_type_conversion_p): Ditto.
1856 2011-03-23 Gary Funck <gary@intrepid.com>
1858 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1859 the GCC 4.6 release branch.
1861 2011-03-21 Gary Funck <gary@intrepid.com>
1863 Merge trunk version 171202 into gupc branch.
1865 2011-03-20 Gary Funck <gary@intrepid.com>
1867 * varasm.c: Call error() directly with a format specifier,
1868 rather than using sprintf() to format the message.
1869 This should make it easier to internationalize UPC's error messages.
1871 2011-03-20 Gary Funck <gary@intrepid.com>
1873 * configure.ac: Fix the check for gnu ld when enabling
1874 UPC link script support.
1875 configure: Regenerate (also picks up changes from previous
1878 2011-03-20 Gary Funck <gary@intrepid.com>
1880 Move UPC start files, end files, and linker specs.
1881 into libupc. This reduces the impact on common GCC
1882 configuration files, and ensures that these UPC-specific
1883 components are only built when the UPC language dialect is selected.
1884 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1885 linker specs. Fix typo in -fupc-debug message.
1886 * config/upc-conf.h, config/darwin.h: Move defines for
1887 UPC-related section begins/ends into libupc/config/default/
1889 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1890 UPC-related linker compiler specifications,
1891 accessed via %:include().
1892 * configure.ac, configure: Remove logic related to building
1893 upc-crtbegin/end. Remove config. tests for numa and cpu
1894 affinity (previously used by the 'upc' driver); these
1895 settings are now propagated by target-specific compiler
1896 specs. built by libupc. Regenerate autoconf.
1897 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1898 linker compiler specifications, accessed via %:include().
1899 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1901 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1902 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1903 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1904 config/ia64/linux.h, config/mips/t-iris,
1905 config/mips/iris6.h: Revert to trunk version 167307.
1907 * configure, configure.ac, config.host, Makefile.in:
1908 Revert to trunk version 167307.
1910 2011-02-23 Gary Funck <gary@intrepid.com>
1912 * c-decl.c (undeclared_variable): fix typo. Inadvertently
1913 removed negation on following 'if'.
1915 2011-02-22 Gary Funck <gary@intrepid.com>
1917 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1918 to check for the usage of certain deprecated UPC keywords.
1919 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1920 * c-tree.h (undeclared_variable): Define prototype.
1922 2011-02-12 Gary Funck <gary@intrepid.com>
1924 * c-typeck.c: (build_c_cast, convert_for_assignment)
1925 Diagnose an attempt to convert from an integer to
1926 a pointer-to-shared as an error. Also, fix various
1927 error messages so that they use the preferred term
1928 pointer-to-shared instead of "shared pointer".
1930 2011-02-07 Gary Funck <gary@intrepid.com>
1932 * c-typeck.c: (convert_for_assignment)
1933 Fix typo. in error message.
1935 2011-01-23 Gary Funck <gary@intrepid.com>
1937 * c-typeck.c: (c_build_qualified_type)
1938 derive UPC block size by calling upc_get_block_size(),
1939 to ensure that the element type of an array of an array
1940 is derived correctly.
1942 2010-12-29 Gary Funck <gary@intrepid.com>
1944 Merge trunk version 168314 into gupc branch.
1946 2010-12-15 Gary Funck <gary@intrepid.com>
1948 Merge trunk version 167307 into gupc branch.
1950 2010-10-19 Gary Funck <gary@intrepid.com>
1952 * c-typeck.c: Fix typo in previous fix
1953 which led to a mis-compare for equal block sizes.
1955 2010-10-18 Gary Funck <gary@intrepid.com>
1957 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1958 diagnosed as an error
1959 The conversion from any type (shared or not) to
1960 a shared type is likely either meaningless or an error. This update
1961 makes any conversion to a shared type, an error.
1963 2010-10-18 Gary Funck <gary@intrepid.com>
1965 * c-typeck.c: Fix bug: passing int to shared pointer arg.
1966 generates spurious warning
1967 Add a #define procedure that does the same thing as
1968 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
1969 this procedure to diagnose passing an integer value to a
1970 pointer-to-shared as an error.
1972 2010-10-18 Gary Funck <gary@intrepid.com>
1974 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1975 matching routine declaration.
1976 When checking for type compatibility, shared qualified types must
1977 have the same block factor. This check was missing from
1978 comptypes_internal(). This update adds the check for blocking
1981 2010-10-17 Gary Funck <gary@intrepid.com>
1983 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1985 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1987 2010-10-17 Gary Funck <gary@intrepid.com>
1989 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1990 45869 - [4.5/4.6 Regression] type mismatch in shift expression
1991 produces ice with -O3 and -m32.
1992 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1994 2010-10-17 Gary Funck <gary@intrepid.com>
1996 * c-common.c: Diagnose the application of the various "*sizeof"
1997 operations on generic pointer-to-shared as a compilation error.
1999 2010-10-17 Gary Funck <gary@intrepid.com>
2001 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2002 message regarding a function parameter being declared with a shared
2004 The parameter's 'name' value is not defined at this point, and
2005 cannot be used in the error message. This update removes the
2006 reference to 'name', and eliminates the segfault.
2008 2010-10-16 Gary Funck <gary@intrepid.com>
2010 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2011 The gcc/Makefile.in rules for install-plugin had to be re-written to
2012 break up a long list of header files that exceeded the command line
2013 limitation imposed by Irix.
2014 Access functions for TFmode types had to be implemented.
2015 Apparently, this is the mode used for the SGI/MIPS port to represent
2018 2010-10-14 Gary Funck <gary@intrepid.com>
2020 * c-decl.c: Fix bug: Multiple equal blocking factors specified
2021 via typedef chain should not be diagnosed as an error.
2022 If the block size that is given by the typedef is equal to the block
2023 size given explicitly in the variable declaration, then do not
2024 complain. The easiest way to make this check was to create a
2025 temporary type that is a clone of the element type and then set its
2026 block size using the given layout qualifier. Then compare the block
2027 size of the temporary (the declaration) to the block size specified
2028 in the typedef. This complexity is needed, because the '[*]' block
2029 size needs to be calculated, and the '[]' needs to be mapped into a
2032 2010-10-10 Gary Funck <gary@intrepid.com>
2034 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2036 The compiler properly detected the presence of two or more layout
2037 qualifiers as an error, but then hit an assertion check, because the
2038 code that followed the error expected to see a qualifier and not a
2039 layout specifier. The fix is simple: just return immediately after
2040 detecting the error.
2042 2010-10-10 Gary Funck <gary@intrepid.com>
2044 * c-decl.c: Improve error diagnostics for various cases of UPC
2045 shared array type declarations.
2046 Add the check for this error: "In the dynamic translation
2047 environment, THREADS may not appear in declarations of shared arrays
2048 with indefinite block size". Also, fix up a few of the other
2049 related error diagnostics.
2051 2010-10-09 Gary Funck <gary@intrepid.com>
2053 * c-common.c: Fix bug: segfault on incomplete array definition.
2054 This turned out to be a bit complicated. The logic in
2055 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2056 the THREADS identifier in the case where the blocking factor has
2057 been set to indefinite ([]). This can happen when indefinite array
2058 declarations are processed for shared arrays. At that time, the
2059 file scope has been closed and THREADS is no longer in scope. Some
2060 more work is needed on upc_lang_layout_decl(). It has some
2061 duplication, and notably duplicates the two branches of the if
2062 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2063 caller of this routine (layout_decl()).
2064 The method of forcing a layout qualifier of [] in the indefinite
2065 declaration handler is odd a well. The code that just does the
2066 setting of the block factor, needs to moved into its own routine
2067 that doesn't depend upon a declspec for '[]' to be passed in, just
2068 in order to set the blocking factor to some value (in this case, 0).
2069 Also, the logic for how that shared type is constructed is strange.
2070 First the type with 0 blocking factor is set. Then the shared
2071 qualifier is removed from the type, and then added back later. The
2072 intermediate type has a blocking factor set, but it has no shared
2073 qualifier. Fixing this will require some thought. It is tempting
2074 just to make indefinite shared arrays an error, rather than forcing
2075 the dimension to be '1'.
2076 This likely fixes a serious error in the previous update to
2077 upc_lang_layout_decl(), where it didn't have the logic to set
2078 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
2079 the previous update would fail on many tests.
2081 2010-10-09 Gary Funck <gary@intrepid.com>
2083 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2084 (decl) is null, which can happen if some layout error occurred
2087 2010-10-09 Gary Funck <gary@intrepid.com>
2089 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2090 "variable-sized" when compiled in dynamic threads.
2091 This long-standing bug is easily fixed. Just check
2092 for the situation that the non-constant sized type is shared and
2093 that it does not have a dimension that references a multiple of
2094 threads. If this criteria is met, then issue a meaningful
2097 2010-10-01 Gary Funck <gary@intrepid.com>
2099 * configure, configure.ac: Update manual page, and bug reporting
2100 URL. Update "man" page to reflect debugging switches.
2101 Also, some general clean up. Change the bug reporting
2102 URL to point to gccupc.org.
2104 2010-09-27 Gary Funck <gary@intrepid.com>
2106 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2107 the UPC forall depth count variable is not found.
2108 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2109 The compiler will generate code that references this variable in
2110 order to implement nested upc_forall semantics. If there is a
2111 compiler build or install problem, this variable may not be found.
2112 In this case, terminate with an internal_error().
2114 2010-09-26 Gary Funck <gary@intrepid.com>
2116 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2117 mis-diagnosed as syntax error.
2118 Fix a failure exhibited by the Berkeley test case,
2119 bug873a.upc, which has the code:
2121 upc_forall (;;;d) {...} The compiler did not properly handle
2122 the empty "condition" clause, and did not recover well when it was
2123 determined that the use of a double value, "d" above, was neither a
2124 pointer-to-shared nor an integer expression. The update implements a
2125 fix for both issues.
2126 See also: gcc/c-parser.c gcc/upc/upc-act.c
2128 2010-09-23 Gary Funck <gary@intrepid.com>
2130 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2131 incorporated into the referencing type.
2132 This was semi-fixed a few times before. This update fixes a few
2133 more places where the layout qualifier wasn't being propagated
2134 through typedef's properly. What made this a bit tricky is shown in
2135 the example cited in the bug report:
2136 typedef shared [5] int A_t; A_t A[5*THREADS];
2137 In the typedef, the blocksize is being applied to a shared *scalar*,
2138 and the code was applying the blocksize only to arrays. This update
2139 handles shared scalars correctly.
2141 2010-09-22 Gary Funck <gary@intrepid.com>
2143 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2144 upc_forall() semantics are not implemented
2145 The checkforall test in the Berkeley harness test suite indicated
2146 that GCC/UPC was not properly implementing nested upc_forall
2147 semantics. Nested upc_forall statements (both statically or
2148 dynamically nested) must implement their affinity clause as if it
2149 were "continue"; thus all steps in the loop must execute without
2150 regard for affinity. To implement these semantics a global depth
2151 counter, __upc_forall_depth, is maintained by the generated code
2152 that implements upc_forall.
2153 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2154 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2155 libupc/include/upc.h libupc/smp/upc_main.c
2157 2010-09-19 Gary Funck <gary@intrepid.com>
2159 * c-decl.c: c-decl.c: zero out the layout specifier, after
2160 processing an array type.
2161 Fix the previous fix, that moved the setting of the type's layout
2162 qualifier to the outside of the array type processing loop. What is
2163 missing from the fix is that the layout_qualifier variable needs to
2164 be cleared after setting the type's blocksize.
2166 2010-09-19 Gary Funck <gary@intrepid.com>
2168 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2169 given blocksize is greater than UPC_MAX_BLOCKSIZE.
2170 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2171 the actual maximum block size. Therefore, the message was correct,
2172 but the underlying value that was being checked was wrong. Change
2173 the values so that they agree with the actual implementation-defined
2176 2010-09-11 Gary Funck <gary@intrepid.com>
2178 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2179 multi-dimensional shared array with dynamic threads.
2180 This declaration caused an internal compiler error when compiled
2181 with dynamic threads:
2182 shared [*] int A[THREADS][16]; The bug was discovered when
2183 compiling the RTED_UPC test suite.
2184 The fix is to process layout qualifiers after the entire array type
2185 has been built. Otherwise, we try to calculate the blocksize on a
2186 shared array type that has not had its "size depends upon the value
2187 of THREADS" flag set.
2188 Also, added a test case.
2189 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2191 2010-07-11 Gary Funck <gary@intrepid.com>
2193 Fix a bug where a statement in c_build_qualified_type()
2194 in the trunk had been inadvertently deleted.
2195 This bug showed up in the IA64 port, because jmpbuf's
2196 on that architecture must be 16 byte aligned, and they were not.
2197 c-typeck.c (c_build_qualified_type): Revive the deleted line.
2199 2010-07-08 Gary Funck <gary@intrepid.com>
2201 Make changes so that other language compilers
2202 will build and bootstrap.
2203 * c-family/c-common.c (compiling_upc, flag_upc,
2204 flag_upc_instrument, flag_upc_instrument_functions,
2205 use_upc_dwarf2_extensions): Move to stub-upc.c and
2207 * c-family/c-common.h (use_upc_dwarf2_extensions,
2208 compiling_upc): Add extern definitions - needed
2209 to compile/build other language front ends.
2210 * c-family/c.opt: Fix the spelling of ObjC.
2211 It had been incorrectly spelled as Objc.
2212 * c-family/c.opt: Add UPC for the various switches
2213 that are valid for both C and ObjC.
2214 * c-fmaily/c-opts.c: Add CL_UPC to the list of
2215 supported options switches when compiling assembly
2217 * lto/lto-lang.c (use_upc_dwarf2_extensions,
2218 flag_upc_instrument, flag_upc_instrument_functions):
2219 Remove these definitions. They have been moved
2220 to c-family/stub-upc.c.
2221 * upc/ChangeLog: Move relevant entries
2223 * c-family/stub-upc.c (compiling_upc, flag_upc,
2224 flag_upc_instrument, flag_upc_instrument_functions,
2225 use_upc_dwarf2_extensions): Moved from c-common.c
2226 * upc/upc-lang.c (compiling_upc, flag_upc,
2227 flag_upc_instrument, flag_upc_instrument_functions,
2228 use_upc_dwarf2_extensions): Moved from c-common.c
2229 * objc/objc-act.c (objc_gimplify_expr): Add additional
2230 parameters to c_gimplify_expr() call, that are used
2231 by upc's tree rewrites.
2232 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2233 * gcc/cp/lex.c (init_reswords): If not compiling
2234 UPC, then mask off the UPC keywords.
2235 * cp/Make-lang.in (C_STUB_OBJS): Use this
2236 make macro to link with c-family/stub-objc.o
2237 and c-family/stub-upc.o.
2238 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2239 * java/Make-lang.in (C_STUB_OBJS): Likewise.
2240 * objc/Make-lang.in: Link with c-family/stub-upc.o
2241 to avoid undefined references.
2242 c-parser.c: Fix line indentation.
2243 * libcpp/include/cpplib.h: Remove CL_UPC from
2244 the list of language kinds accepted by the
2245 C preprocessor. This is not necessary because
2246 UPC is a derivative of C99, and does not need
2247 a different language kind.
2248 * c-fmaily/c-opts.c (c_common_handle_option):
2249 Call set_std_c99() when processing the
2250 "--lang upc" switch, instead of setting the
2251 language kind to CL_UPC.
2252 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2254 2010-07-03 Gary Funck <gary@intrepid.com>
2256 Merge trunk version 161517 into gupc branch.
2257 * gcc/stub-upc.c: Move to gcc/c-family/.
2258 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2259 Add 'unused' attributes to avoid "set, but
2260 not referenced" warnings.
2261 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2264 2010-03-01 Gary Funck <gary@intrepid.com>
2266 Create gupc branch from trunk version 157149.
2268 2011-10-04 Gary Funck <gary@intrepid.com>
2270 Merge trunk version 179421 into gupc branch.
2271 * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
2272 argument to the call to check_qualified_type().
2274 2011-09-22 Gary Funck <gary@intrepid.com>
2276 * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
2278 (dump_upc_type_quals): New.
2280 2011-09-22 Gary Funck <gary@intrepid.com>
2282 * upc/upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
2283 before calling TYPE_BLOCK_FACTOR(). This fits better with
2284 recent encoding of block factor values with a hash table.
2286 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
2288 Add to FLAGS the flags needed to disable inlining of
2289 UPC run-time access routines.
2290 * testsuite/lib/target-supports.exp
2291 (add_options_for_upc_library_calls): New.
2293 2011-09-15 Gary Funck <gary@intrepid.com>
2295 Fix ICE involving shared bit field accesses.
2296 * tree.c (build3_stat): Propagate TEEE_SHARED()
2297 TREE_STRICT() and TREE_RELAXED() flags, if applicable.
2299 2011-09-15 Gary Funck <gary@intrepid.com>
2301 Fix ICE involving shared bit field accesses.
2302 * upc/upc-genericize.c (upc_simplify_shared_ref): Improve
2303 "shared bit fields not yet implemented" error message
2304 by adding file/line number location.
2306 2011-09-13 Gary Funck <gary@intrepid.com>
2308 Merge trunk version 178795 into gupc branch.
2309 Incorporates fix to PR bootstrap/50010 for x86-32.
2311 2011-09-13 Gary Funck <gary@intrepid.com>
2313 * upc/upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
2314 * upc/upc-lang.c (upc_init_options): Ditto.
2315 * upc/upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
2316 upc_genericize_expr, upc_genericize_compound_expr): Ditto.
2317 * upc/upc-act.c (upc_parse_init, upc_build_pointer_type,
2318 upc_block_factor_insert, upc_pts_is_valid_p): Ditto.
2320 2011-09-08 Gary Funck <gary@intrepid.com>
2322 Merge trunk version 178557 into gupc branch.
2324 2011-09-07 Gary Funck <gary@intrepid.com>
2326 Ensure that UPC pointer-to-shared type alignment is
2327 propagated to the final type. Revert to long-standing
2328 alignment policy: twice the size of a "C" pointer.
2329 * tree.c (build_pointer_type): Propagate the alignment
2330 of the UPC pointer-to-shared representation type
2331 into the newly built pointer type.
2333 2011-09-07 Gary Funck <gary@intrepid.com>
2335 Ensure that UPC pointer-to-shared type alignment is
2336 propagated to the final type. Revert to long-standing
2337 alignment policy: twice the size of a "C" pointer.
2338 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
2339 shared pointers have twice the alignment of a pointer.
2340 * upc/upc-act.c (upc_cpp_builtins): Unconditionally emit
2341 the definition of __UPC_PTS_ALIGN__.
2343 2011-09-02 Gary Funck <gary@intrepid.com>
2345 Align UPC pointers-to-shared, only if the target enforces
2347 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Align a
2348 UPC pointer-to-shared type, only if the target requires
2350 * upc/upc-act.c (upc_cpp_builtins): Output pre-defined macro,
2351 __UPC_PTS_ALIGN__, only if the target requires strict alignment.
2353 2011-08-30 Gary Funck <gary@intrepid.com>
2355 * tree.h (check_qualified_type): Change 'const_tree'
2356 argument types back to 'tree' to avoid complaints
2357 of assignment drops qualifiers for invocations of the
2358 newly implemented TYPE_BLOCK_FACTOR() macro, which
2359 invokes hash functions with 'tree' pointer values that
2360 are not const qualified.
2361 * tree.c (check_qualified_type, check_aligned_type): Ditto.
2362 * c-typeck.c (comptypes_internal): Ditto.
2364 2011-08-29 Gary Funck <gary@intrepid.com>
2366 Fixes for regressions noted running "make check"
2368 * fold-const.c (fold_unary_loc): Execute UPC-specific
2369 checks for a cast-of-a-cast, only if one of the
2370 operands is a UPC pointer-to-shared value.
2371 * opts.c (print_specific_help): Fix a comparison
2372 in an assert that checks that there are enough
2373 bits reserved for the number of languages defined
2376 2011-08-29 Gary Funck <gary@intrepid.com>
2378 Implement a hash table to record UPC block factors.
2379 * c-family/stub-upc.c (upc_block_factor_insert,
2380 upc_block_factor_lookup): New dummy stub procedures.
2381 * c-family/c-common.c (c_sizeof_or_alignof_type):
2382 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2383 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
2384 to copy (hashed) UPC blocking factor.
2385 (set_type_quals): Likewise.
2386 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2387 TYPE_HAS_THREADS_FACTOR().
2388 (type_common.block_factor): Delete.
2389 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
2390 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
2391 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
2392 UPC blocking factors greater than one.
2393 * dwarf2out.c (modified_type_die): Re-implement
2394 logic that records UPC blocking factor in the generated
2395 DWARF2 debugging information.
2396 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2397 TYPE_HAS_THREADS_FACTOR().
2398 * c-decl.c (finish_decl, grokdeclarator):
2399 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2400 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
2401 used by UPC, and print UPC-specific information.
2403 2011-08-29 Gary Funck <gary@intrepid.com>
2405 Implement a hash table to record UPC block factors.
2406 * upc/upc-act.c (upc_block_factor_for_type): New garbage-collected
2408 (upc_lang_init, upc_finish): Move to end of source file.
2409 (upc_lang_init): create upc_block_factor_for_type hash table.
2410 (upc_block_factor_lookup, upc_block_factor_insert): New.
2411 (upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
2412 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2413 (upc_grok_layout_qualifier): convert blocking factor to sizetype
2414 before checking for equality to element type's blocking factor.
2416 2011-08-28 Gary Funck <gary@intrepid.com>
2418 Re-work the type machinery to fully support and to unify support
2419 for the UPC layout qualifier (blocking factor).
2420 * c-family/stub-upc.c (upc_set_block_factor): Delete.
2421 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
2422 and update prototype.
2423 * c-family/c-common.c (complete_array_type): call newly
2424 defined c_build_qualified_type_1() instead of
2425 upc_set_block_factor().
2426 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
2427 upc_apply_layout_qualifier() and update prototype.
2428 (upc_set_block_factor): Delete prototype.
2429 * c-family/c-common.h (c_build_qualified_type): redefine
2430 as a pre-processor macro that invokes c_build_qualified_type_1()
2431 with a null UPC layout qualifier.
2432 (c_build_qualified_type_1): New. Add layout qualifier argument
2433 to old c_build_qualified_type() prototype.
2434 * tree.c (set_type_quals, check_qualified_type):
2435 Add layout qualifier as argument.
2436 (check_aligned_type): Add check for UPC block factor equality.
2437 (get_qualified_type_1): Rename from get_qualified_type() and
2438 add layout qualifier as argument.
2439 (build_qualified_type_1): Rename from build_qualified_type() and
2440 add layout qualifier as argument.
2441 * tree.h (check_qualified_type): Add layout qualifier as argument
2443 (get_qualified_type): Re-define as a as a pre-processor macro
2444 that invokes get_qualified_type_1() with a null
2445 UPC layout qualifier.
2446 (get_qualified_type_1): Rename from get_qualified_type() and
2447 add layout qualifier as argument.
2448 * cp/tree.c (c_build_qualified_type_1): Rename from
2449 c_build_qualified_type() and add (unused) layout qualifier
2451 * c-decl.c (finish_decl): re-format long error messages.
2452 (grokdeclarator): Re-work the logic so that it calls
2453 upc_grok_layout_qualifier() to handle the UPC layout
2454 qualifier, if present.
2455 * c-typeck.c (qualify_type, common_pointer_type,
2456 build_component_ref): Re-work the logic so that it calls
2457 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
2459 (c_build_qualified_type_1): Rename from c_build_qualified_type()
2460 and add layout qualifier argument.
2461 * print_tree.c (print_node): Re-format a long line.
2463 2011-08-28 Gary Funck <gary@intrepid.com>
2465 Re-work the type machinery to fully support and to unify support
2466 for the UPC layout qualifier (blocking factor).
2467 * upc/upc-genericize.c (upc_simplify_shared_ref): Call
2468 c_build_qualified_type_1() instead of upc_set_block_factor()
2469 to assert a zero blocking factor.
2470 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Call
2471 c_build_qualified_type_1() to build predefined shared
2472 qualified types, instead of build_variant_type_copy().
2473 * upc/upc-pts-packed.c (upc_pts_packed_init_type): Call
2474 c_build_qualified_type_1() to build predefined shared
2475 qualified types, instead of build_variant_type_copy().
2476 * upc/upc-act.c (upc_set_block_factor): Delete.
2477 (upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
2478 Rework logic so that it returns a blocking factor rather than
2479 a qualified type. Add 'loc' argument and call error_at().
2480 Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
2481 the block size of the element type into the result type, and checks
2482 for errors due to an attempt to merge differing blocking factors.
2484 2011-08-26 Gary Funck <gary@intrepid.com>
2486 Merge trunk version 177949 into gupc branch.
2487 * c-family/c-common.h (enum rid): Bump the number of type modifiers
2489 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
2490 to add new rliterals column value.
2492 2011-08-26 Gary Funck <gary@intrepid.com>
2494 * convert.c (convert_to_integer): Fix the check for the
2495 difference between two UPC pointers-to-shared values.
2497 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
2499 * configure.ac: Fix the name for --with-upc-pts-packed-bits
2500 option. Support --with-upc-packed-bits as deprecated. Fix the code to
2501 correctly check packed bits.
2502 * configure: Re-generate.
2504 2011-08-16 Gary Funck <gary@intrepid.com>
2506 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
2507 the barrier id expression is not an integer expression.
2509 2011-08-16 Gary Funck <gary@intrepid.com>
2511 * upc/upc-act.c (upc_decl_init): Do not attempt to expand
2512 an error mark node. Fixes ICE after error diagnostic.
2513 * upc/upc-cmd.c (main): detect missing option argument for
2514 options that require an argument, and print error diagnostic.
2515 (get_print_cmd): Re-direct error output to /dev/null to
2516 avoid issuing duplicate error messages.
2518 2011-08-12 Gary Funck <gary@intrepid.com>
2520 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
2522 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
2523 Set mode of UPC pointer-to-shared rep. to an
2524 integral mode of size at least as large as the
2525 size of the representation's struct type.
2527 2011-08-12 Gary Funck <gary@intrepid.com>
2529 Rework/simplify the UPC genericize pass.
2530 * c-family/stub-upc.c (upc_apply_layout_qualifier,
2531 upc_build_pointer_type): New.
2532 (upc_set_block_factor): Adjust to new calling sequence.
2533 (upc_build_shared_var_addr): Delete.
2534 * c-family/c-common.c (complete_array_type): Adjust call
2535 to upc_set_block_factor().
2536 * c-family/c-upc.h (upc_apply_layout_qualifier,
2537 upc_build_pointer_type): New.
2538 (upc_build_shared_var_addr): Delete.
2539 (upc_set_block_factor): Adjust to new calling sequence.
2540 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
2541 * c-decl.c (grokdeclarator): Call newly defined
2542 upc_apply_layout_qualifier() instead of upc_set_block_factor().
2543 * c-decl.c (grokdeclarator): Split long UPC-related error
2544 messages into two lines.
2545 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
2546 directly. Revert that change to trunk. (upc_genericize() will
2547 handle lowering the expressions that take the address of a
2549 * config/i386/i386.c (ix86_promote_function_mode): For UPC
2550 pointers-to-shared, return the type mode of the UPC pointer-to-shared
2551 representation type.
2553 2011-08-12 Gary Funck <gary@intrepid.com>
2555 Rework/simplify the UPC genericize pass.
2556 * upc/upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
2557 * upc/upc-act.h: Cosmetic change.
2558 * upc/config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
2559 * upc/upc-genericize.c (upc_expand_get):
2560 Add WANT_STABLE_VALUE parameter.
2561 (upc_build_shared_var_addr, upc_shared_addr_rep): New.
2562 (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
2563 create_unshared_var, lookup_unshared_var, map_unshared_var,
2564 unshared_var_addr, unshared_var_name,
2565 upc_free_unshared_var_table): Move from upc-act.c.
2566 (upc_expand_get, upc_expand_put): Change their source and/or
2567 destination parameters so that they are no longer addresses
2568 of the objects, but rather references to the objects themselves.
2569 (upc_simplify_shared_ref): Rewrite (simplify/generalize).
2570 (upc_shared_addr_rep): New.
2571 (upc_shared_addr): Adjust call to upc_build_shared_var_addr(),
2572 and re-factor the logic.
2573 (upc_genericize_sync_stmt): Re-format comment.
2574 (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
2575 (upc_genericize_addr_expr): Re-factor the logic.
2576 (upc_genericize_indirect_ref, upc_genericize_field_ref):
2577 Adjust call to upc_expand_get() and re-factor the logic.
2578 (upc_genericize_modify_expr): Adjust call to upc_expand_put()
2579 and re-factor the logic.
2580 (upc_genericize_expr): Improve/fix comments.
2581 (upc_genericize_finish, upc_genericize_init): New.
2582 * upc/upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
2583 (upc_char_pts_type_node): Create new global type node.
2584 (upc_pts_struct_is_null_p): Generalize variable names to
2585 reflect the fact that the vaddr field can be either first/last.
2586 (upc_pts_struct_build_sum): Make corrections to comments.
2587 (upc_pts_struct_build_add_offset): Delete.
2588 * upc/upc-genericize.h (upc_genericize_finish, upc_genericize_init):
2590 * upc/upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
2591 (upc_char_pts_type_node): Create new global type node.
2592 * upc/Make-lang.in: Add dependencies to gtype-upc.h
2593 and gt-upc-upc-genericize.h.
2594 * upc/upc-act.c: Adjust includes to reflect moving the functions
2595 that handle the UPC unshared "shadow variables" into
2596 upc-genericize.c. Improve/fix various comments.
2597 * upc/upc-act.c (upc_parse_init): Call upc_genericize_init().
2598 (upc_build_pointer_type): New.
2599 (upc_set_block_factor): Re-purpose. Move the front-end
2600 related error checks into upc_apply_layout_qualifier().
2601 (upc_apply_layout_qualifier): New.
2602 (upc_write_global_declarations): Call upc_genericize_finish().
2604 2011-08-10 Gary Funck <gary@intrepid.com>
2606 Implement additional fixes for recent merge with trunk.
2607 * explow.c (promote_mode): Do not attempt to promote
2608 the mode for UPC pointer-to-shared types.
2609 * config/i386/i386.c (function_value_64): Ditto.
2611 2011-08-07 Gary Funck <gary@intrepid.com>
2613 Merge trunk version 177548 into gupc branch.
2614 * config/i386/i386.c (ix86_promote_function_mode):
2615 Do not promote UPC pointers-to-shared to Pmode.
2616 * c-family/c-ommon.c (pointer_int_sum):
2617 Also check the pointer operand, rather than just
2618 its type, when making the decision to derive
2619 the equivalent unshared type.
2620 * tree.c (build2_stat): If the type of the result
2621 passed in as an argument is a UPC shared type,
2622 derive the unshared equivalent when calculating
2623 the result type of the node.
2625 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
2627 * config/darwin.c: Disable var_tracking option
2628 on -O0 as it is supposed to run only when optimization
2629 is applied. See GCC bug 49743.
2631 2011-07-11 Gary Funck <gary@intrepid.com>
2633 * upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
2634 qualification was incorrectly derived from the source operand.
2635 (upc_genericize_fndecl): New.
2636 (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
2637 c_genericize() more than once in the event of nested procedures.
2638 (upc_genericize_real_imag_ref): Rename,
2639 was: upc_genericize_real_image_ref.
2640 (upc_expand_put): call internal_error() with meaningful message
2642 (upc_genericize_real_imag_ref): call internal_error() with
2643 meaningful message in lieu of gcc_unreachable().
2645 2011-07-06 Gary Funck <gary@intrepid.com>
2647 Re-implement the pass that lowers trees generated by
2648 the UPC front-end into GENERIC. Previously this was
2649 done within the gimplification framework, but this
2650 required that gimplification be run before inlining
2651 and various other passes, which did not fit in well
2652 with the current design of the middle-end passes.
2653 Now, the lowering is done by a newly defined language
2654 specific genericize hook. With this change, we are
2655 are able to undo some extensions made to the gimplify
2656 logic, and thus can revert several files to trunk.
2657 * c-decl.c: Add a check for UPC deprecated names which
2658 may appear as undefined function names.
2659 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
2660 LTI_upc_getaddr): Remove definitions of unused UPC
2661 library function names. These were defined back when
2662 the libfunc interface was used to call these routines.
2663 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
2664 in UPC lowering (genericize) pass.
2665 * langhooks.h (gimplify_expr): Revert to trunk's definition.
2666 (instrument_func): Delete this hook. Now handled in
2668 * tree-pass.h: Revert to trunk.
2669 * c-typeck.c (build_unary_op): Adjust reference to
2670 upc_genericize() in a comment.
2671 * gimplify.c (create_tmp_var_raw): Delete logic that
2672 was converting UPC shared types into unshared types
2673 to be used for temporaries. Now handled in upc_genericize().
2674 Replace with an assertion check.
2675 (prepare_gimple_addressable): Revert to trunk's definition.
2676 No longer needed as an externally called function.
2677 (flag_instrument_functions_exclude_p): Re-define as
2678 an externally called function.
2679 (gimplify_function_tree): Delete code that implemented
2680 call to UPC's language specific function instrumentation hook.
2681 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
2682 (prepare_gimple_addressable): Delete extern definition;
2683 revert to trunk's definition.
2684 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
2685 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
2686 * c-family/c-gimplify.c: Revert to trunk.
2687 * cp/cp-gimplify.c: Revert to trunk.
2688 * cp/cp-tree.h: Revert to trunk.
2689 * explow.c: Revert to trunk.
2690 * langhooks.c: Revert to trunk.
2691 * libfuncs.h: Revert to trunk.
2692 * objc/objc-act.c: Revert to trunk.
2694 2011-07-06 Gary Funck <gary@intrepid.com>
2696 Improve/simplify the logic in upc_genericize.
2697 * upc/upc-genericize.c (upc_create_tmp_var): Delete the
2698 PREFIX argument. Aways use "UPC" as the prefix.
2699 (upc_genericize_compound_expr): Add a WANT_VALUE argument.
2700 (upc_genericize_cond_expr): New.
2701 (upc_genericize_decl_expr): New.
2702 (upc_genericize_stmt): New.
2703 (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
2704 to upc_create_tmp_var().
2705 (upc_genericize_expr): Change the handling
2706 of the want_value flag passed in the DATA argument.
2707 Always assert this flag after processing EXPR_P.
2708 (upc_genericize_compound_expr): Adjust call
2709 to upc_genericize_compound_expr() and call
2710 upc_genericize_cond_expr() and upc_genericize_decl_expr().
2712 2011-07-06 Gary Funck <gary@intrepid.com>
2714 Re-implement the pass that lowers trees generated by
2715 the UPC front-end into GENERIC. Previously this was
2716 done within the gimplification framework, but this
2717 required that gimplification be run before inlining
2718 and various other passes, which did not fit in well
2719 with the current design of the middle-end passes.
2720 Now, the lowering is done by a newly defined language
2721 specific genericize hook. With this change, we are
2722 are able to undo some extensions made to the gimplify
2723 logic, and thus can revert several files to trunk.
2724 * upc/upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
2725 * upc/upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
2726 * upc/Make-lang.in: Adjust to refer to upc-genericize.[cho].
2727 * upc/upc-lnag.c: refer to upc-genericize.h.
2728 (LANG_HOOKS_GENERICIZE): define as upc_genericize.
2729 (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
2730 (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
2731 * upc/upc-act.c: Minor code format fix.
2733 2011-06-30 Gary Funck <gary@intrepid.com>
2735 * c-family/c.opt: Bring options definitions up-to-date
2736 with respect to changes made in the trunk.
2738 2011-06-29 Gary Funck <gary@intrepid.com>
2740 Merge trunk version 175584 into gupc branch.
2742 2011-06-29 Gary Funck <gary@intrepid.com>
2744 Merge trunk version 175584 into gupc branch.
2745 * upc/upc-act.c (upc_handle_option): Change reference to
2746 have_named_sections so that it refers to the
2747 targetm_common structure.
2749 2011-06-28 Gary Funck <gary@intrepid.com>
2751 * upc/upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
2752 Remove extern definitions. Now declared as 'static'.
2753 * upc/upc-gimplify.c, upc/upc-lang.c,
2754 upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
2755 upc-cmd.c, upc-act.c: Improve/add comments, fix
2756 typos and spelling errors.
2758 2011-06-13 Gary Funck <gary@intrepid.com>
2761 * include/cpplib.h (enum c_lang):
2762 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
2763 This keeps all the "C" variants together.
2764 * init.c (lang_defaults): Add an entry for UPC.
2766 2011-06-10 Gary Funck <gary@intrepid.com>
2768 * upc/upc-act.c (upc_set_block_factor): Handle the case where
2769 the UPC blocking factor expression overflowed.
2771 2011-06-09 Gary Funck <gary@intrepid.com>
2773 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
2774 a 32-bit target, the size expression overflowed, the result was
2775 error_mark_node, and an ICE was triggered on an attempt to evaluate
2776 C_TYPE_VARIABLE_SIZE() on the error node.
2777 (upc_blocksizeof_expr, upc_blocksizeof_type,
2778 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
2779 Make similar changes to avoid further processing of error_mark_node.
2781 2011-06-07 Gary Funck <gary@intrepid.com>
2783 * sel-sched.c (move_op): Incorporate the following
2784 patch to eliminate ICE at -O3 on IA64/Altix.
2786 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
2788 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
2789 code_motion_path_driver returned 0 or 1.
2790 (sel_region_finish): Clear h_d_i_d.
2792 2011-06-02 Gary Funck <gary@intrepid.com>
2794 Merge trunk version 174558 into gupc branch.
2796 2011-06-02 Gary Funck <gary@intrepid.com>
2798 Merge trunk version 174558 into gupc branch.
2799 * upc/upc-lang.c (upc_check_decl_init): Use recently defined
2800 'append_to_statement_list_force' function to add UPC
2801 initialization statements to the UPC initialization
2802 statement list ('upc_init_stmt_list').
2803 (upc_build_init_func): Use recently defined
2804 'append_to_statement_list_force' function to add
2805 statements listed in 'upc_init_stmt_list' onto the
2806 function body constructed to implement initialization
2807 of UPC declarations that require active initialization
2808 at program start up. The previous methods of manipulating
2809 statement lists no longer worked, due to changes in the
2810 the statement list structure.
2812 2011-05-30 Gary Funck <gary@intrepid.com>
2814 * configure.ac: Make the default order of the virtual
2815 address field in a UPC pointer-to-shared to be "first".
2816 This reverts to the previous setting, and is a short term
2817 measure to work around a bug found on the IA64,
2818 where vaddr=last led to incorrect code generation.
2819 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
2820 in AC_DEFINE(), to agree with recent changes in files
2821 that reference this define.
2822 configure, config.in: Regenerate.
2824 2011-05-26 Gary Funck <gary@intrepid.com>
2826 * configure.ac: Fix typo when referring to $upc_vaddr_order.
2827 configure: Regenerate.
2828 * ../fixincludes/fixincl.x: Revert to trunk.
2829 This file is auto-generated, and should not be merged.
2831 2011-05-23 Gary Funck <gary@intrepid.com>
2833 * upc/upc-pts-struct.c: Revert to code that aligned the
2834 internal pointer-to-shared representation to
2835 twice the alignment of a pointer. This fixes
2836 an ICE that occurred when building the compiler
2839 2011-05-18 Gary Funck <gary@intrepid.com>
2841 Merge trunk version 173845 into gupc branch.
2843 2011-05-17 Gary Funck <gary@intrepid.com>
2845 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
2846 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
2847 * c-family/c-pragma.c: Remove conditional compilation
2848 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
2849 Test 'compiling_upc' when compiling to determine if
2850 the "upc" and "pupc" pragmas should be registered.
2851 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2852 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2853 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2854 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2855 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2856 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
2857 Move these target-dependent definitions from config/upc-conf.h
2859 * configure.ac: Improve the logic for UPC-related options.
2860 Delete references to pre-processor definitions that have
2861 been moved to "upc/upc-pts.h".
2862 * configure, config.in: Regenerate.
2863 * Makefile.in (UPC_PTS_REP): Remove definition and revert
2864 to trunk. This substitution variable was used to
2865 configure the representation-specific versions of
2866 the tree rewrites that operate on UPC pointer-to-shared
2868 * c-parser.c (c_parser_upc_forall_statement): Remove
2869 reference to UPC_FORALL_DEPTH_NAME, and call
2870 newly defined upc_rts_forall_depth_var() instead.
2871 * config/upc-config.h: Delete. Various definitions
2872 moved to "upc/upc-rts-names.h", "defaults.h", and
2874 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
2875 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
2876 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2877 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2878 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2879 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2880 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2881 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
2882 New. Document UPC target macros.
2883 doc/tm.texi: Regenerate.
2885 2011-05-17 Gary Funck <gary@intrepid.com>
2887 * upc/upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
2888 upc_pts_build_cond_expr, upc_pts_build_constant,
2889 upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
2890 upc_pts_build_threadof, upc_pts_init_type): Remove extern
2892 (upc_pts_ops_t): New. Define handler table that will
2893 implement either the 'packed' or the 'struct' representation
2894 of a UPC pointer-to-shared value.
2895 (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
2896 refers to the packed and the struct UPC pointer-to-shared
2897 representation implementation.
2898 (upc_pts): New. Define handler table that is set up at initialization
2899 to refer to the handlers for the UPC pointer-to-shared
2900 representation (packed/struct) that has been configured.
2901 Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
2902 and configure the UPC pointer-to-shared definitions that
2903 are specific to the configured UPC pointer-to-shared
2905 * upc/upc-act.h (upc_pts_is_valid_p): Rename extern definition from
2906 is_valid_pts_p to upc_pts_is_valid_p.
2907 * lang-specs.h: Reformat the UPC compilation specs.
2908 to improve readability.
2909 * upc/upc-rts-names.h: New. Define the names of UPC runtime
2910 library functions that implement UPC language statement
2911 semantics. These definitions were moved from config/upc-conf.h
2912 * upc/upc-gimplify.c: Add include of "upc-rts-names.h".
2913 Refer to newly defined pointer manipulation routines
2914 by indirecting through the newly defined "pts" handler table.
2915 Re-format, re-indent.
2916 * upc/upc-lang.c: Add include of "upc-pts.h". Fix a comment.
2917 * upc/config-lang.in: Remove logic that inserted "config/upc-conf.h"
2918 into the target include and file path.
2919 * upc/upc-pts-struct.c: Add include of "upc-rts-names.h".
2920 (upc_pts_struct_ops): Define the pointer manipulation
2921 handler table that implements operations on UPC
2922 pointers-to-shared, represented as a struct.
2923 Re-format and re-indent.
2924 * upc/upc-gasp.c: Add include of "upc-rts-names.h".
2925 Re-format and re-indent.
2926 * upc/upc-pts-packed.c: Add include of "upc-rts-names.h".
2927 (upc_pts_packed_ops): Define the pointer manipulation
2928 handler table that implements operations on UPC
2929 pointers-to-shared, represented as a packed integer.
2930 Re-format and re-indent.
2931 * upc/Make-lang.in: Compile both "upc-pts-packed.c" and
2932 "upc-pts-struct.c". One/other will be selected at
2933 compilation time to implement operations on UPC
2934 on the UPC pointer-to-shared that has been configured.
2935 Add dependencies on "upc-rts-names.h".
2936 * upc/upc-cmd.c: Re-format and re-indent.
2937 * upc/upc-act.c: Add include of "upc-rts-names.h".
2938 (upc_pts): New. Add definition of the handler
2939 table that implements representation specific
2940 operations on trees that refer to UPC pointer-to-shared
2941 objects and types. Re-format and re-indent.
2943 2011-05-07 Gary Funck <gary@intrepid.com>
2945 * ../configure.ac: Disable build of libupc
2946 on non POSIX hosted systems. Use AS_HELP_STRING
2947 to define messages. Remove 'word-pair' as a
2948 possible --with-upc-pts UPC pointer-to-shared
2950 * ../configure: Regenerate.
2951 * configure.ac: Use AS_HELP_STRING to define messages.
2952 Remove 'word-pair' as a possible --with-upc-pts
2953 UPC pointer-to-shared representation.
2954 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
2955 (UPC_MAX_BLOCK_SIZE): Correct the default value.
2956 * configure: Regenerate.
2957 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
2959 * ChangeLog.upc: Fix some typos.
2961 2011-05-07 Gary Funck <gary@intrepid.com>
2963 * ../maintainer-scripts/gcc_release: Add "upc"
2964 as one of the released languages.
2966 2011-05-06 Gary Funck <gary@intrepid.com>
2968 Eliminate compilation warnings, by fixing
2969 #include's and updating function prototypes.
2970 * c-family/c-cppbuiltin.c: Include c-upc.h.
2971 * optabs.c (gen_libfunc): Change type of 'suffix'
2972 parameter to conform with prototype.
2973 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2974 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2976 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2978 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2979 argument values to cp_gimplify_expr.
2980 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2981 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
2982 pre-processor definitions that are no longer
2983 needed to build the 'upc' command (upc-cmd.c)
2984 because the linker specs. defined in libupc
2985 take care of linking in the needed libraries.
2986 * c-parser.c (c_parser_upc_forall_statement):
2987 initialize affinity_loc to avoid "maybe unused" warning.
2988 (c_parser_upc_sync_statement): Remove un-needed
2989 'ret' variable. Cast return value from
2990 'upc_build_sync_stmt' to 'void' to avoid
2991 compile-time warning.
2992 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2993 integer constant, not a string. Range is restricted
2994 to maximum positive 32-bit integer (2+ billion) to
2995 fit in with the use of 'int' in the front-end's
2996 switch handling logic.
2998 2011-05-06 Gary Funck <gary@intrepid.com>
3000 Upgrade c-family source files to conform with modularity
3001 improvements. Mainly, remove #include of c-tree.h in files
3002 under c-family, and define a new UPC-specific #include file,
3003 c-upc.h, and use it.
3004 * c-family/stub-upc.c: Remove #include of c-tree.h and
3005 upc/upc-act.h. Replace with #include of c-common.h
3007 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
3008 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
3009 upc_localsizeof_expr, upc_localsizeof_type,
3010 upc_shared_type_p): Delete.
3011 * c-family/c-opts.c: Add #include of c-upc.h
3012 * c-family/c-common.c: Remove #include of c-tree.h and
3013 add #include of c-upc.h.
3014 * c-family/c-upc.h: New. Define API for UPC-specific functions
3015 (mostly implemented in upc/upc-act.c).
3016 * c-family/c-common.h (upc_cpp_builtins,
3017 upc_write_global_declarations): Remove extern definitions.
3018 * c-family/c-pragma.c: Remove #include of c-tree.h.
3019 Add #include of c-upc.h.
3020 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
3022 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
3023 upc/upc-act.c, and define as a macro.
3024 (expand_affinity_test): Remove unused external definition.
3025 (build_upc_unshared_type): Add external definition.
3026 (upc_shared_type_p): Remove external definition.
3027 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
3028 * dojump.c: Remove #include of c-tree.h.
3029 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
3031 (count_upc_threads_refs, is_multiple_of_upc_threads,
3032 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
3033 upc_build_shared_var_addr, upc_build_sync_stmt,
3034 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
3035 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
3036 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
3037 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
3038 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
3039 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
3040 set_upc_consistency_mode, get_upc_consistency_mode,
3041 push_upc_consistency_mode, pop_upc_consistency_mode,
3043 Move external definitions to c-family/c-upc.h.
3044 (upc_blocksizeof_type, upc_localsizeof_type,
3045 upc_elemsizeof_type): Remove external definitions;
3046 these functions were moved to c-parser.c.
3047 * c-decl.c: Add #include of c-upc.h.
3048 * c-typeck.c: Add #include of c-upc.h.
3049 * c-convert.c: Add #include of c-upc.h.
3050 * ChangeLog.upc: Fix typo.
3051 * Makefile.in: Add references to c-family/c-upc.h, everywhere
3052 there is a reference to c-family/c-objc.h.
3053 Remove extraneous reference to upc-act.h.
3054 * c-parser.c: Add #include of c-upc.h.
3055 (upc_blocksizeof_expr, upc_blocksizeof_type,
3056 upc_elemsizeof_expr, upc_elemsizeof_type,
3057 upc_localsizeof_expr, upc_localsizeof_type):
3058 Move from upc/upc-act.c.
3059 * tree.c (build_upc_unshared_type): New.
3060 Move upc_get_unshared_type from upc/upc-act.c and rename
3061 to build_upc_unshared_type.
3062 c-family/c-common.c (pointer_int_sum): refer to renamed
3063 build_upc_unshared_type function.
3064 c-convert.c (convert): Ditto.
3065 convert.c (convert_to_pointer): Ditto.
3066 c-typeck.c (build_unary_op, build_modify_expr,
3067 really_start_incremental_init): Ditto.
3068 gimplify.c (create_tmp_var_raw): Ditto.
3069 tree.c (build1_stat): Ditto.
3070 tree.h (upc_get_unshared_type): Rename to
3071 build_upc_unshared_type.
3073 2011-05-06 Gary Funck <gary@intrepid.com>
3075 Merge trunk version 173471 into gupc branch.
3077 2011-05-06 Gary Funck <gary@intrepid.com>
3079 Eliminate compilation warnings, by fixing
3080 #include's and updating function prototypes.
3081 * upc/upc-gimplify.c: Include bitmap.h.
3082 (upc_gimplify_real_image_ref): Mark various parameters
3083 as unused. This is a stub procedure for now.
3084 * upc/upc-lang.c: Include c-family/c-upc.h.
3086 * upc/upc-cmd.c (no_start_files): Delete unused variable.
3087 The -nostartfiles switch is now handled by the linker spec.
3088 * ChangeLog: Spell check.
3090 2011-05-06 Gary Funck <gary@intrepid.com>
3092 Upgrade c-family source files to conform with modularity
3093 improvements. Mainly, remove #include of c-tree.h in files
3094 under c-family, and define a new UPC-specific #include file,
3095 c-upc.h, and use it.
3096 * upc/upc-act.h (upc_write_global_declarations,
3097 upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
3098 upc_num_threads, upc_diagnose_deprecated_stmt):
3099 Move external definitions to c-family/c-upc.h
3100 (upc_blocksizeof_expr, upc_blocksizeof_type,
3101 upc_elemsizeof_expr, upc_elemsizeof_type,
3102 upc_localsizeof_expr, upc_localsizeof_type):
3103 Remove external definitions; these functions
3104 were moved from upc-act.c to c-parser.c.
3105 * upc/upc-gimplify.c: Add #include of c-family/c-upc.h.
3106 upc-pts-packed.c: Ditto.
3107 upc-pts-struct.c: Ditto.
3108 * upc/config-lang.in: Update gtfiles to refer to c-upc.h
3110 * upc/upc-act.c: Add #include of c-family/c-upc.h.
3111 (upc_blocksize, upc_elemsizeof, upc_localsizeof):
3112 Make external so that it can be called from c-parser.c.
3113 (upc_blocksizeof_expr, upc_blocksizeof_type,
3114 upc_elemsizeof_expr, upc_elemsizeof_type,
3115 upc_localsizeof_expr, upc_localsizeof_type):
3116 Move from upc/upc-act.c to c-parser.c.
3117 (upc_set_block_factor): Fix typo in error message.
3118 (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
3119 Move to tree.h and define as a macro.
3120 (upc_get_unshared_type): Delete. renamed to
3121 build_upc_unshared_type and moved to tree.c.
3122 * upc/upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
3123 refer to renamed build_upc_unshared_type function.
3124 upc-act.c (create_unshared_var): Ditto.
3126 2011-05-05 Gary Funck <gary@intrepid.com>
3128 Make changes that bring the GUPC branch more closely in sync.
3129 with the GCC trunk. Revert any fixes that are not UPC-specific.
3130 Remove gratuitous re-formatting.
3131 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
3132 This file should have been removed in a previous merge
3134 * ../configure.ac: Remove Cray Catamount/CNL support.
3135 * ../configure: Regenerate.
3136 * ../config.sub: Remove Cray Catamount/CNL support.
3137 * config.gcc: Remove Cray Catamount/CNL support.
3138 * ../maintainer-scripts/gcc_release: Revert to trunk.
3139 * c-family/c-common.h: Define parse_optimize_options. Its definition
3140 was missed in a previous merge with the trunk.
3141 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
3143 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
3144 in addition to ARRAY_TYPE.
3145 * c-typeck.c: Remove an extra newline character.
3146 * varasm.c: Revert a fix that improved an error message
3147 when TLS common data is unimplemented.
3148 * varasm.c: Revert a gcc_assert that had been added which
3149 checked for a null DECL_SIZE_UNIT field.
3150 * emultls.c: Revert to trunk. Remove possible fix.
3151 * Makefile.in: Revert extra blank line that is present
3152 in the trunk version.
3153 * Makefile.in: Revert a fix that handled long shell
3154 argument lists for plugin headers.
3155 * config/ia64/ia64.opt: Revert an option setting
3156 that increased the default TLS address range.
3157 * config/ia64/crtbegin.asm: Revert to trunk.
3158 Removes an extra newline character.
3159 * ChangeLog.upc: Spell check.
3161 2011-05-03 Gary Funck <gary@intrepid.com>
3163 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
3164 (c_apply_type_quals_to_decl): Ditto.
3165 * c-family/c-common.h: Ditto.
3167 * c-decl.c (merge_decls): Ditto.
3168 * c-typeck.c (qualify_type, default_conversion,
3169 build_component_ref, build_unary_op,
3170 c_build_qualified_type): Ditto.
3171 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
3173 2011-05-03 Gary Funck <gary@intrepid.com>
3175 * upc/upc-lang.c: Remove extraneous FIXME/TODO comments.
3176 * upc/upc-pts-packed.c (upc_pts_build_cvt): Ditto.
3177 * upc/upc-act.c (upc_set_block_factor): Ditto.
3179 2011-04-29 Gary Funck <gary@intrepid.com>
3181 * c-decl.c (finish_decl): Improve error diagnostics.
3182 (grokdeclarator): Ditto.
3183 * c-typeck.c (build_c_cast): Improve error diagnostics.
3184 (convert_for_assignment): Ditto.
3185 (build_binary_op): Ditto.
3186 * c-parser.c (c_parser_upc_forall_statement):
3187 Improve error diagnostics.
3188 * convert.c (convert_to_integer): Improve error diagnostics.
3190 2011-04-29 Gary Funck <gary@intrepid.com>
3192 * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
3193 (upc_expand_put): Ditto.
3194 (upc_shared_addr): Ditto.
3195 (upc_gimplify_sync_stmt): Ditto.
3196 (upc_gimplify_field_ref): Ditto.
3197 * upc/upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
3198 (upc_pts_build_cvt): Ditto.
3199 * upc/upc-act.c (upc_handle_option): Improve error diagnostics.
3200 (upc_lang_init): Ditto.
3201 (upc_sizeof_type_check): Ditto.
3202 (upc_set_block_factor): Ditto.
3203 (upc_decl_init): Ditto.
3204 (upc_affinity_test): Ditto.
3205 (upc_num_threads): Ditto.
3206 (upc_diagnose_deprecated_stmt): Ditto.
3207 (upc_build_shared_var_addr): Ditto.
3208 (upc_pts_int_sum): Ditto.
3209 (upc_pts_diff): Ditto.
3211 2011-04-28 Gary Funck <gary@intrepid.com>
3213 * upc/upc-act.c (create_unshared_var): call upc_get_unshared_type()
3214 instead of using TYPE_MAIN_VARIANT() to create an equivalent type
3215 that is not a UPC shared type. This is sometimes necessary
3216 when the given shared type is derived from a typedef.
3218 2011-04-24 Gary Funck <gary@intrepid.com>
3220 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
3221 occurred if there is an error in the barrier id
3222 expression. Map error_mark_node into NULL.
3224 2011-04-24 Gary Funck <gary@intrepid.com>
3226 * upc/upc-act.c (upc_handle_option): Fix incorrect error
3227 diagnostic messages when both -fupc-debug and
3228 -fupc-inline-lib are asserted.
3230 2011-04-24 Gary Funck <gary@intrepid.com>
3232 * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
3233 to the list of switches that accept arguments.
3234 (main): Check for switches that have a following
3235 argument inside the loop that copies arguments and
3236 adds '-x upc' or '-x none' as necessary.
3237 (main): Misc. clean ups and simplifications.
3239 2011-04-22 Gary Funck <gary@intrepid.com>
3241 Merge trunk version 172873 into gupc branch.
3243 2011-04-22 Gary Funck <gary@intrepid.com>
3245 Merge trunk version 172873 into gupc branch.
3246 * upc/upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
3247 on init_func() to prevent it from being removed from
3250 2011-04-19 Gary Funck <gary@intrepid.com>
3252 Merge trunk version 172359 into gupc branch.
3254 2011-04-19 Gary Funck <gary@intrepid.com>
3256 Merge trunk version 172359 into gupc branch.
3257 * upc/upc-lang.c (upc_init_ts): New.
3258 (LANG_HOOKS_INIT_TS): use upc_init_ts.
3260 2011-04-19 Gary Funck <gary@intrepid.com>
3262 Eliminate warnings when compiling upc-cmd.c.
3263 * upc/upc-cmd.c (file_exists): Remove.
3264 (arg_copy): Remove const qualifier.
3266 2011-04-14 Gary Funck <gary@intrepid.com>
3268 * c-family/c.opt: Add UPC as a valid language for various
3269 switches where it is valid for "C", that were not updated
3270 in previous merges with trunk.
3272 2011-04-13 Gary Funck <gary@intrepid.com>
3274 * c-family/c.opt (fupc-pre-include): New option definition.
3275 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
3276 -fno-upc-pre-include is asserted.
3278 2011-04-13 Gary Funck <gary@intrepid.com>
3280 * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
3281 to the list, and alphabetize.
3283 2011-04-13 Gary Funck <gary@intrepid.com>
3285 * upc/upc-gimplify.c (upc_gimplify_real_image_ref): New.
3286 Currently, a not-yet-implemented stub.
3287 (upc_gimplify_lval): call upc_gimplify_real_image_ref to
3288 rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
3289 This will avoid an ICE when compiling regular "C"
3290 code that refers to those operators.
3292 2011-04-13 Gary Funck <gary@intrepid.com>
3294 * upc/upc-cmd.c: Do not add "-isystem <libupc_path>" if
3295 -fno-upc-pre-include is asserted.
3297 2011-04-07 Gary Funck <gary@intrepid.com>
3299 Merge trunk version 172158 into gupc branch.
3300 to bring in the following fix.
3302 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
3305 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3306 if old and new states differ.
3308 2011-04-06 Gary Funck <gary@intrepid.com>
3310 Merge trunk version 171966 into gupc branch.
3312 2011-04-01 Gary Funck <gary@intrepid.com>
3314 * tree.h (tree_base): Move UPC flag bits into bit fields
3315 located just before spare bits. Decrement spare bits.
3316 Rename 'shared_flag' -> 'upc_shared_flag',
3317 'relaxed_flag' -> 'upc_relaxed_flag',
3318 'strict_flag' -> 'upc_strict_flag, and adjust macros
3319 that reference them accordingly.
3321 2011-04-01 Gary Funck <gary@intrepid.com>
3323 * c-decl.c (grokdeclarator): Fix formatting of
3324 code that sets UPC block size on scalars.
3326 2011-04-01 Gary Funck <gary@intrepid.com>
3328 * c-decl.c (grokdeclarator): Revert use of white space
3329 to match the trunk (to rationalize diffs).
3330 * c-typeck.c (convert_for_assignment): Ditto.
3331 * tree-ssa.c (useless_type_conversion_p): Ditto.
3333 2011-03-23 Gary Funck <gary@intrepid.com>
3335 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
3336 the GCC 4.6 release branch.
3338 2011-03-22 Gary Funck <gary@intrepid.com>
3340 * upc/upc-cmd.c: Move linker switches into libupc/libupc.spec.
3341 (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
3342 (find_ld_script) Remove.
3344 2011-03-21 Gary Funck <gary@intrepid.com>
3346 Merge trunk version 171202 into gupc branch.
3348 2011-03-20 Gary Funck <gary@intrepid.com>
3350 * varasm.c: Call error() directly with a format specifier,
3351 rather than using sprintf() to format the message.
3352 This should make it easier to internationalize UPC's error messages.
3354 2011-03-20 Gary Funck <gary@intrepid.com>
3356 * configure.ac: Fix the check for gnu ld when enabling
3357 UPC link script support.
3358 configure: Regenerate (also picks up changes from previous
3361 2011-03-20 Gary Funck <gary@intrepid.com>
3363 Move UPC start files, end files, and linker specs.
3364 into libupc. This reduces the impact on common GCC
3365 configuration files, and ensures that these UPC-specific
3366 components are only built when the UPC language dialect is selected.
3367 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
3368 linker specs. Fix typo in -fupc-debug message.
3369 * config/upc-conf.h, config/darwin.h: Move defines for
3370 UPC-related section begins/ends into libupc/config/default/
3372 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
3373 UPC-related linker compiler specifications,
3374 accessed via %:include().
3375 * configure.ac, configure: Remove logic related to building
3376 upc-crtbegin/end. Remove config. tests for numa and cpu
3377 affinity (previously used by the 'upc' driver); these
3378 settings are now propagated by target-specific compiler
3379 specs. built by libupc. Regenerate autoconf.
3380 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
3381 linker compiler specifications, accessed via %:include().
3382 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
3384 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
3385 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
3386 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
3387 config/ia64/linux.h, config/mips/t-iris,
3388 config/mips/iris6.h: Revert to trunk version 167307.
3390 * configure, configure.ac, config.host, Makefile.in:
3391 Revert to trunk version 167307.
3393 2011-03-20 Gary Funck <gary@intrepid.com>
3395 * upc/upc-act.c: Call error() directly with a format specifier,
3396 rather than using sprintf() to format the message.
3397 This should make it easier to internationalize UPC's error messages.
3399 2011-03-20 Gary Funck <gary@intrepid.com>
3401 Move UPC start files, end files, and linker specs.
3402 into libupc. This reduces the impact on common GCC
3403 configuration files, and ensures that these UPC-specific
3404 components are only built when the UPC language dialect is selected.
3405 * upc/config-lang.in: Remove setting of 'upc_extra_parts', which
3406 was used to specify which upc-crtbegin and upc-crtend files
3407 need to built. Remove extraneous (commented out)
3408 settings of 'cfiles'. The listed configuration files
3409 have been reverted to trunk, and weren't referenced
3410 via cfiles in any event.
3411 * upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
3412 Simply test for the presence of the UPC link script
3413 in the current directory or the libupc directory.
3414 Add -B<path-to-libupc> to the switches passed to 'gcc';
3415 this is needed in order to find the upc-crtbegin
3416 and upc-crtend object files now built in libupc.
3417 Remove test for and inclusion of UPC_LINKER_SWITCHES.
3418 if extra switches are needed for a particular target
3419 (like SGI/Irix), they will be defined by the custom
3420 linker spec. built in libupc. Remove test for
3421 HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
3422 will be added to the custom linker specs. built
3424 * upc/upc-crtstuff.c: Move to libupc.
3426 2011-02-23 Gary Funck <gary@intrepid.com>
3428 * c-decl.c (undeclared_variable): fix typo. Inadvertently
3429 removed negation on following 'if'.
3431 2011-02-22 Gary Funck <gary@intrepid.com>
3433 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
3434 to check for the usage of certain deprecated UPC keywords.
3435 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
3436 * c-tree.h (undeclared_variable): Define prototype.
3438 2011-02-22 Gary Funck <gary@intrepid.com>
3440 * upc/upc-act.c (upc_diagnose_deprecated_stmt): New.
3441 upc-act.h (upc_diagnose_deprecated_stmt): Define.
3442 Check usage of deprecated keywords and issue
3445 2011-02-12 Gary Funck <gary@intrepid.com>
3447 * c-typeck.c: (build_c_cast, convert_for_assignment)
3448 Diagnose an attempt to convert from an integer to
3449 a pointer-to-shared as an error. Also, fix various
3450 error messages so that they use the preferred term
3451 pointer-to-shared instead of "shared pointer".
3453 2011-02-08 Gary Funck <gary@intrepid.com>
3455 * upc/upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
3456 for struct-pts representation
3457 Analysis indicated that for something like (+ ptr -80) this was
3458 being represented as (+ ptr (- 80)) and further, when the
3459 calculations were propagated into the individual operations on the
3460 components of the 'struct' pointer, it would end up with something
3461 like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
3462 "long unsigned int" because of the addition to the pointer. This
3463 caused the calculations involving the signed 'int' operand to be
3464 performed incorrectly. This fix insures that the 'int' operand is
3467 2011-02-08 Gary Funck <gary@intrepid.com>
3469 * upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
3470 upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
3471 upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
3472 upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
3473 upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
3474 upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
3475 Update copyright notices.
3477 2011-02-07 Gary Funck <gary@intrepid.com>
3479 * c-typeck.c: (convert_for_assignment)
3480 Fix typo. in error message.
3482 2011-01-23 Gary Funck <gary@intrepid.com>
3484 * c-typeck.c: (c_build_qualified_type)
3485 derive UPC block size by calling upc_get_block_size(),
3486 to ensure that the element type of an array of an array
3487 is derived correctly.
3489 2011-01-09 Gary Funck <gary@intrepid.com>
3491 Fix behavior of upc_localsizeof() when called in a dynamic
3492 threads compilation environment. This bug, and the expected
3493 behavior is documented in this bug report:
3494 https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
3495 * upc/_act.c (upc_localsizeof): Re-implement.
3497 2010-12-29 Gary Funck <gary@intrepid.com>
3499 Merge trunk version 168314 into gupc branch.
3501 2010-12-15 Gary Funck <gary@intrepid.com>
3503 Merge trunk version 167307 into gupc branch.
3505 2010-12-15 Gary Funck <gary@intrepid.com>
3507 Merge trunk version 167307 into gupc branch.
3508 * upc/_act.h: (upc_handle_option) add location and struct
3509 cl_option_handlers * parameters.
3510 (upc_finish_file) Remove.
3511 (upc_write_global_declarations) New, replaces upc_finish_file.
3512 * lang-spec.h: Disable multi-file compilation for .upc files.
3513 This fixes an issue where file-scoped static variables were
3514 diagnosed as multiply-defined. Both "C" and "ObjC" also disable
3515 multi-file compilation.
3516 * upc/upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
3517 explicitly when deciding whether a UPC shared object is addressable.
3518 is_gimple_addressable() used to do this, but now checks for MEM_REF
3519 which does not apply to UPC shared objects.
3520 (upc_gimplify_lval, upc_gimplify_expr) Delete references to
3521 ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
3522 These are no longer defined.
3523 (upc_genericize) Add call to bitmap_obstack_initialize()
3524 and bitmap_obstack_release() around call to gimplify_function_tree().
3525 * upc/upc-lang.c: Add #include of "opts.h" and "options.h".
3526 (flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
3527 flag_upc_instrument_functions) Remove. Use definitions
3528 generated by the options file.
3529 (upc_init_options) Use cl_decoded_option struct.
3530 (LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
3531 (finish_file) Delete.
3532 (upc_init_options) Call control_warning_option() to specify
3533 -Werror=pointer-arith as the default. Remove call to
3534 enable_warning_as_error().
3535 * upc/upc-pts-struct.c: (upc_pts_init_type) Move test that
3536 UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
3537 rather than an #ifdef; this macro now depends upon a
3538 target size macro which must be evaluated at runtime.
3539 * upc/Make-lang.in: (cc1-dummy) Remove make target.
3540 (cc1upc-checksum.c) Generate directly from object files.
3541 * upc/upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
3542 references to these deprecated macro definitions.
3543 (GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
3544 (all_exec_args) Delete variable.
3545 (exec_args) Re-define as (const char *).
3546 (exec_arg_list) New. Make copy of exec_args to pass to 'exec'.
3547 * upc/upc-act.c: (upc_handle_option) Update argument list to accept
3548 (cl_option_handlers *) argument.
3549 (upc_finish_file) Rename to upc_write_global_declarations.
3550 (upc_write_global_declarations) New.
3552 2010-10-19 Gary Funck <gary@intrepid.com>
3554 * c-typeck.c: Fix typo in previous fix
3555 which led to a mis-compare for equal block sizes.
3557 2010-10-18 Gary Funck <gary@intrepid.com>
3559 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
3560 diagnosed as an error
3561 The conversion from any type (shared or not) to
3562 a shared type is likely either meaningless or an error. This update
3563 makes any conversion to a shared type, an error.
3565 2010-10-18 Gary Funck <gary@intrepid.com>
3567 * c-typeck.c: Fix bug: passing int to shared pointer arg.
3568 generates spurious warning
3569 Add a #define procedure that does the same thing as
3570 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
3571 this procedure to diagnose passing an integer value to a
3572 pointer-to-shared as an error.
3574 2010-10-18 Gary Funck <gary@intrepid.com>
3576 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
3577 matching routine declaration.
3578 When checking for type compatibility, shared qualified types must
3579 have the same block factor. This check was missing from
3580 comptypes_internal(). This update adds the check for blocking
3583 2010-10-17 Gary Funck <gary@intrepid.com>
3585 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
3587 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
3589 2010-10-17 Gary Funck <gary@intrepid.com>
3591 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
3592 45869 - [4.5/4.6 Regression] type mismatch in shift expression
3593 produces ice with -O3 and -m32.
3594 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
3596 2010-10-17 Gary Funck <gary@intrepid.com>
3598 * c-common.c: Diagnose the application of the various "*sizeof"
3599 operations on generic pointer-to-shared as a compilation error.
3601 2010-10-17 Gary Funck <gary@intrepid.com>
3603 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
3604 message regarding a function parameter being declared with a shared
3606 The parameter's 'name' value is not defined at this point, and
3607 cannot be used in the error message. This update removes the
3608 reference to 'name', and eliminates the segfault.
3610 2010-10-17 Gary Funck <gary@intrepid.com>
3612 * upc/upc-act.c: Issue a compilation error on attempts to perform
3613 arithmetic on generic pointer-to-shared values.
3614 (The rest of this update is a small code clean up.)
3616 2010-10-17 Gary Funck <gary@intrepid.com>
3618 * upc/upc-lang.c: For UPC only, issue errors for arithmetic and related
3619 operations on void types.
3620 This update simulates the effect of -Werror=pointer-arith, thus
3621 causing arithmetic on void types, sizeof(void) and so on to be
3622 considered compilation errors. This meets the expectations of some
3623 harness tests and the RTED/CTED test suites. GCC is more
3624 permissive, but since this is for UPC only, we can fairly safely
3625 define this new policy.
3627 2010-10-16 Gary Funck <gary@intrepid.com>
3629 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
3630 The gcc/Makefile.in rules for install-plugin had to be re-written to
3631 break up a long list of header files that exceeded the command line
3632 limitation imposed by Irix.
3633 Access functions for TFmode types had to be implemented.
3634 Apparently, this is the mode used for the SGI/MIPS port to represent
3637 2010-10-16 Gary Funck <gary@intrepid.com>
3639 * upc/upc-act.c: Fix bug: Static initialization of shared
3640 arrays is unsupported -- issue an error message.
3641 Currently, static initialization of a shared array is not
3642 implemented correctly.
3643 We do not plan to fix this for a while, therefore the compiler will
3644 issue an error message indicating that this is an unsupported
3647 2010-10-14 Gary Funck <gary@intrepid.com>
3649 * c-decl.c: Fix bug: Multiple equal blocking factors specified
3650 via typedef chain should not be diagnosed as an error.
3651 If the block size that is given by the typedef is equal to the block
3652 size given explicitly in the variable declaration, then do not
3653 complain. The easiest way to make this check was to create a
3654 temporary type that is a clone of the element type and then set its
3655 block size using the given layout qualifier. Then compare the block
3656 size of the temporary (the declaration) to the block size specified
3657 in the typedef. This complexity is needed, because the '[*]' block
3658 size needs to be calculated, and the '[]' needs to be mapped into a
3661 2010-10-13 Gary Funck <gary@intrepid.com>
3663 * upc/upc-act.c: Fix bug: negative layout qualifiers not diagnosed
3665 The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
3666 it was not diagnosed as an error. With this fix, negative block
3667 sizes will generate a translation error.
3669 2010-10-10 Gary Funck <gary@intrepid.com>
3671 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
3673 The compiler properly detected the presence of two or more layout
3674 qualifiers as an error, but then hit an assertion check, because the
3675 code that followed the error expected to see a qualifier and not a
3676 layout specifier. The fix is simple: just return immediately after
3677 detecting the error.
3679 2010-10-10 Gary Funck <gary@intrepid.com>
3681 * c-decl.c: Improve error diagnostics for various cases of UPC
3682 shared array type declarations.
3683 Add the check for this error: "In the dynamic translation
3684 environment, THREADS may not appear in declarations of shared arrays
3685 with indefinite block size". Also, fix up a few of the other
3686 related error diagnostics.
3688 2010-10-10 Gary Funck <gary@intrepid.com>
3690 * upc/upc-act.c: Fix bug: ICE: Attempt to take the difference of
3691 shared and non-shared pointers
3692 The compiler detected the error, and then tried to return
3693 error_mark_node. This apparently is not acceptable, as there is an
3694 explicit assertion check to prevent this from happening in
3695 build_binary_op. Return the more user-friendly size_one_node
3698 2010-10-09 Gary Funck <gary@intrepid.com>
3700 * c-common.c: Fix bug: segfault on incomplete array definition.
3701 This turned out to be a bit complicated. The logic in
3702 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3703 the THREADS identifier in the case where the blocking factor has
3704 been set to indefinite ([]). This can happen when indefinite array
3705 declarations are processed for shared arrays. At that time, the
3706 file scope has been closed and THREADS is no longer in scope. Some
3707 more work is needed on upc_lang_layout_decl(). It has some
3708 duplication, and notably duplicates the two branches of the if
3709 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3710 caller of this routine (layout_decl()).
3711 The method of forcing a layout qualifier of [] in the indefinite
3712 declaration handler is odd a well. The code that just does the
3713 setting of the block factor, needs to moved into its own routine
3714 that doesn't depend upon a declspec for '[]' to be passed in, just
3715 in order to set the blocking factor to some value (in this case, 0).
3716 Also, the logic for how that shared type is constructed is strange.
3717 First the type with 0 blocking factor is set. Then the shared
3718 qualifier is removed from the type, and then added back later. The
3719 intermediate type has a blocking factor set, but it has no shared
3720 qualifier. Fixing this will require some thought. It is tempting
3721 just to make indefinite shared arrays an error, rather than forcing
3722 the dimension to be '1'.
3723 This likely fixes a serious error in the previous update to
3724 upc_lang_layout_decl(), where it didn't have the logic to set
3725 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
3726 the previous update would fail on many tests.
3728 2010-10-09 Gary Funck <gary@intrepid.com>
3730 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
3731 (decl) is null, which can happen if some layout error occurred
3734 2010-10-09 Gary Funck <gary@intrepid.com>
3736 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
3737 "variable-sized" when compiled in dynamic threads.
3738 This long-standing bug is easily fixed. Just check
3739 for the situation that the non-constant sized type is shared and
3740 that it does not have a dimension that references a multiple of
3741 threads. If this criteria is met, then issue a meaningful
3744 2010-10-09 Gary Funck <gary@intrepid.com>
3746 * upc/upc-act.c: Fix bug: segfault on incomplete array definition.
3747 This turned out to be a bit complicated. The logic in
3748 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3749 the THREADS identifier in the case where the blocking factor has
3750 been set to indefinite ([]). This can happen when indefinite array
3751 declarations are processed for shared arrays. At that time, the
3752 file scope has been closed and THREADS is no longer in scope. Some
3753 more work is needed on upc_lang_layout_decl(). It has some
3754 duplication, and notably duplicates the two branches of the if
3755 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3756 caller of this routine (layout_decl()).
3757 The method of forcing a layout qualifier of [] in the indefinite
3758 declaration handler is odd a well. The code that just does the
3759 setting of the block factor, needs to moved into its own routine
3760 that doesn't depend upon a declspec for '[]' to be passed in, just
3761 in order to set the blocking factor to some value (in this case, 0).
3762 Also, the logic for how that shared type is constructed is strange.
3763 First the type with 0 blocking factor is set. Then the shared
3764 qualifier is removed from the type, and then added back later. The
3765 intermediate type has a blocking factor set, but it has no shared
3766 qualifier. Fixing this will require some thought. It is tempting
3767 just to make indefinite shared arrays an error, rather than forcing
3768 the dimension to be '1'.
3769 This likely fixes a serious error in the previous update to
3770 upc_lang_layout_decl(), where it didn't have the logic to set
3771 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
3772 the previous update would fail on many tests.
3773 See also: gcc/c-common.c gcc/upc/upc-act.c
3775 2010-10-01 Gary Funck <gary@intrepid.com>
3777 * configure, configure.ac: Update manual page, and bug reporting
3779 Update "man" page to reflect debugging switches. Also, some general
3780 clean up. Change the bug reporting URL to point to gccupc.org.
3782 2010-10-01 Gary Funck <gary@intrepid.com>
3784 * upc/upc-manpage.html, upc.1: Update manual page, and bug reporting
3786 Update "man" page to reflect debugging switches. Also, some general
3787 clean up. Change the bug reporting URL to point to gccupc.org.
3788 See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
3791 2010-10-01 Gary Funck <gary@intrepid.com>
3793 * upc/upc-act.c: Do not zap all qualifier bits when constructing a
3794 non-shared result node.
3795 This fix was suggested by Paul H. in the following Berkeley Bugzilla
3796 report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
3797 use of "!" rather than "~" zapped all the type qualifier bits rather
3798 than just those that are related to the "shared" qualifier. This
3799 fix clears only the relevant bits.
3801 2010-09-27 Gary Funck <gary@intrepid.com>
3803 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
3804 the UPC forall depth count variable is not found.
3805 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
3806 The compiler will generate code that references this variable in
3807 order to implement nested upc_forall semantics. If there is a
3808 compiler build or install problem, this variable may not be found.
3809 In this case, terminate with an internal_error().
3811 2010-09-26 Gary Funck <gary@intrepid.com>
3813 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
3814 mis-diagnosed as syntax error.
3815 Fix a failure exhibited by the Berkeley test case,
3816 bug873a.upc, which has the code:
3818 upc_forall (;;;d) {...} The compiler did not properly handle
3819 the empty "condition" clause, and did not recover well when it was
3820 determined that the use of a double value, "d" above, was neither a
3821 pointer-to-shared nor an integer expression. The update implements a
3822 fix for both issues.
3823 See also: gcc/c-parser.c gcc/upc/upc-act.c
3825 2010-09-26 Gary Funck <gary@intrepid.com>
3827 * upc/upc-act.c: Fix bug: upc_forall with empty clauses
3828 mis-diagnosed as syntax error.
3829 A failure was exhibited by the Berkeley test case,
3830 bug873a.upc, which has the code:
3832 upc_forall (;;;d) {...} The compiler did not properly handle
3833 the empty "condition" clause, and did not recover well when it was
3834 determined that the use of a double value, "d" above, was neither a
3835 pointer-to-shared nor an integer expression. The update implements a
3836 fix for both issues.
3837 See also: gcc/c-parser.c gcc/upc/upc-act.c
3839 2010-09-25 Gary Funck <gary@intrepid.com>
3841 * upc/upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
3842 gimple check when calculating affinity for upc_forall.
3843 Intrepid test, test10.upc, failed to compile due a mis-match between
3844 the COMPONENT_REF node and the internal 'thread' field. Changed the
3845 code to make the types agree, and added a conversion to sizetype if
3848 2010-09-23 Gary Funck <gary@intrepid.com>
3850 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
3851 incorporated into the referencing type.
3852 This was semi-fixed a few times before. This update fixes a few
3853 more places where the layout qualifier wasn't being propagated
3854 through typedef's properly. What made this a bit tricky is shown in
3855 the example cited in the bug report:
3856 typedef shared [5] int A_t; A_t A[5*THREADS];
3857 In the typedef, the blocksize is being applied to a shared *scalar*,
3858 and the code was applying the blocksize only to arrays. This update
3859 handles shared scalars correctly.
3861 2010-09-23 Gary Funck <gary@intrepid.com>
3863 * upc/upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
3864 with static threads and size not a multiple of threads.
3865 Add an extra check for an attempt to apply a '[*]' layout qualifier
3866 to a shared array that does not specify a size that is a multiple of
3867 THREADS, when compiled in a static THREADS compilation environment.
3869 2010-09-22 Gary Funck <gary@intrepid.com>
3871 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
3872 upc_forall() semantics are not implemented
3873 The checkforall test in the Berkeley harness test suite indicated
3874 that GCC/UPC was not properly implementing nested upc_forall
3875 semantics. Nested upc_forall statements (both statically or
3876 dynamically nested) must implement their affinity clause as if it
3877 were "continue"; thus all steps in the loop must execute without
3878 regard for affinity. To implement these semantics a global depth
3879 counter, __upc_forall_depth, is maintained by the generated code
3880 that implements upc_forall.
3881 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3882 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3883 libupc/include/upc.h libupc/smp/upc_main.c
3885 2010-09-22 Gary Funck <gary@intrepid.com>
3887 * upc/upc-act.c, upc/upc-act.h: Fix bug: Nested upc_forall() semantics
3889 The checkforall test in the Berkeley harness test suite indicated
3890 that GCC/UPC was not properly implementing nested upc_forall
3891 semantics. Nested upc_forall statements (both statically or
3892 dynamically nested) must implement their affinity clause as if it
3893 were "continue"; thus all steps in the loop must execute without
3894 regard for affinity. To implement these semantics a global depth
3895 counter, __upc_forall_depth, is maintained by the generated code
3896 that implements upc_forall.
3897 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3898 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3899 libupc/include/upc.h libupc/smp/upc_main.c
3901 2010-09-19 Gary Funck <gary@intrepid.com>
3903 * c-decl.c: c-decl.c: zero out the layout specifier, after
3904 processing an array type.
3905 Fix the previous fix, that moved the setting of the type's layout
3906 qualifier to the outside of the array type processing loop. What is
3907 missing from the fix is that the layout_qualifier variable needs to
3908 be cleared after setting the type's blocksize.
3910 2010-09-19 Gary Funck <gary@intrepid.com>
3912 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
3913 given blocksize is greater than UPC_MAX_BLOCKSIZE.
3914 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
3915 the actual maximum block size. Therefore, the message was correct,
3916 but the underlying value that was being checked was wrong. Change
3917 the values so that they agree with the actual implementation-defined
3920 2010-09-18 Gary Funck <gary@intrepid.com>
3922 * upc/upc-act.c, upc/upc-pts-packed.c, upc/upc-pts-struct.c:
3923 Implement -fupc-debug switch.
3925 2010-09-11 Gary Funck <gary@intrepid.com>
3927 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
3928 multi-dimensional shared array with dynamic threads.
3929 This declaration caused an internal compiler error when compiled
3930 with dynamic threads:
3931 shared [*] int A[THREADS][16]; The bug was discovered when
3932 compiling the RTED_UPC test suite.
3933 The fix is to process layout qualifiers after the entire array type
3934 has been built. Otherwise, we try to calculate the blocksize on a
3935 shared array type that has not had its "size depends upon the value
3936 of THREADS" flag set.
3937 Also, added a test case.
3938 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
3940 2010-07-11 Gary Funck <gary@intrepid.com>
3942 Fix a bug where a statement in c_build_qualified_type()
3943 in the trunk had been inadvertently deleted.
3944 This bug showed up in the IA64 port, because jmpbuf's
3945 on that architecture must be 16 byte aligned, and they were not.
3946 c-typeck.c (c_build_qualified_type): Revive the deleted line.
3948 2010-07-08 Gary Funck <gary@intrepid.com>
3950 Make changes so that other language compilers
3951 will build and bootstrap.
3952 * c-family/c-common.c (compiling_upc, flag_upc,
3953 flag_upc_instrument, flag_upc_instrument_functions,
3954 use_upc_dwarf2_extensions): Move to stub-upc.c and
3956 * c-family/c-common.h (use_upc_dwarf2_extensions,
3957 compiling_upc): Add extern definitions - needed
3958 to compile/build other language front ends.
3959 * c-family/c.opt: Fix the spelling of ObjC.
3960 It had been incorrectly spelled as Objc.
3961 * c-family/c.opt: Add UPC for the various switches
3962 that are valid for both C and ObjC.
3963 * c-fmaily/c-opts.c: Add CL_UPC to the list of
3964 supported options switches when compiling assembly
3966 * lto/lto-lang.c (use_upc_dwarf2_extensions,
3967 flag_upc_instrument, flag_upc_instrument_functions):
3968 Remove these definitions. They have been moved
3969 to c-family/stub-upc.c.
3970 * upc/ChangeLog: Move relevant entries
3972 * c-family/stub-upc.c (compiling_upc, flag_upc,
3973 flag_upc_instrument, flag_upc_instrument_functions,
3974 use_upc_dwarf2_extensions): Moved from c-common.c
3975 * upc/upc-lang.c (compiling_upc, flag_upc,
3976 flag_upc_instrument, flag_upc_instrument_functions,
3977 use_upc_dwarf2_extensions): Moved from c-common.c
3978 * objc/objc-act.c (objc_gimplify_expr): Add additional
3979 parameters to c_gimplify_expr() call, that are used
3980 by upc's tree rewrites.
3981 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
3982 * gcc/cp/lex.c (init_reswords): If not compiling
3983 UPC, then mask off the UPC keywords.
3984 * cp/Make-lang.in (C_STUB_OBJS): Use this
3985 make macro to link with c-family/stub-objc.o
3986 and c-family/stub-upc.o.
3987 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
3988 * java/Make-lang.in (C_STUB_OBJS): Likewise.
3989 * objc/Make-lang.in: Link with c-family/stub-upc.o
3990 to avoid undefined references.
3991 c-parser.c: Fix line indentation.
3992 * libcpp/include/cpplib.h: Remove CL_UPC from
3993 the list of language kinds accepted by the
3994 C preprocessor. This is not necessary because
3995 UPC is a derivative of C99, and does not need
3996 a different language kind.
3997 * c-fmaily/c-opts.c (c_common_handle_option):
3998 Call set_std_c99() when processing the
3999 "--lang upc" switch, instead of setting the
4000 language kind to CL_UPC.
4001 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
4003 2010-07-03 Gary Funck <gary@intrepid.com>
4005 Merge trunk version 161517 into gupc branch.
4006 * gcc/stub-upc.c: Move to gcc/c-family/.
4007 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
4008 Add 'unused' attributes to avoid "set, but
4009 not referenced" warnings.
4010 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
4013 2010-07-03 Gary Funck <gary@intrepid.com>
4015 Merge trunk version 161517 into gupc branch.
4016 * upc/config-lang.in: Update references to files
4017 moved into c-family/.
4018 * upc/Make-lang.in: Likewise.
4019 * upc/upc-act.c: Likewise.
4020 * upc/upc-gasp.c: Likewise.
4021 * upc/upc-gimplify.c: Likewise.
4022 * upc/upc-lang.c: Likewise.
4023 * upc/upc-pts-packed.c: Likewise.
4024 * upc/upc-pts-struct.c: Likewise.
4025 * upc/upc-act.c: (upc_handle_option) add parameters to
4026 effect pass through call to c_common_handle_option.
4027 * upc/upc-act.h: (upc_handle_option) Likewise.
4028 * upc/upc-act.c: (map_unshared_var) used typed ggc allocation.
4029 * upc/upc-act.c: (upc_build_init_func) add call to
4030 to mark_decl_referenced(), to ensure that UPC shared
4031 variable initializer function is not removed from
4032 the call tree graph.
4034 2010-03-01 Gary Funck <gary@intrepid.com>
4036 Create gupc branch from trunk version 157149.