1 2014-09-01 Gary Funck <gary@intrepid.com>
3 Merge trunk version 214779 into gupc branch.
5 2014-08-25 Gary Funck <gary@intrepid.com>
7 Merge trunk version 214415 into gupc branch.
9 2014-08-19 Gary Funck <gary@intrepid.com>
11 Merge trunk version 214178 into gupc branch.
13 2014-08-14 Gary Funck <gary@intrepid.com>
15 Merge trunk version 213968 into gupc branch.
16 DEV-PHASE: Bump to 5.0.0-1.
18 2014-08-11 Gary Funck <gary@intrepid.com>
20 Merge trunk version 213809 into gupc branch.
22 2014-08-05 Gary Funck <gary@intrepid.com>
24 Merge trunk version 213646 into gupc branch.
26 2014-08-04 Gary Funck <gary@intrepid.com>
28 Merge trunk version 213543 into gupc branch.
30 2014-08-01 Gary Funck <gary@intrepid.com>
32 * testsuite/gcc.dg/gupc: New.
33 Add compile-only tests which check for semantic errors/warnings
34 and verify that UPC constructs generate expected UPC runtime calls.
35 * testsuite/upc.dg: Removed.
36 * testsuite/lib/upc-dg.exp: Removed.
37 * testsuite/lib/upc.exp: Removed.
38 * testsuite/lib/target-supports.exp
39 (check_effective_target_fupc): New.
40 (check_effective_target_upc_struct_pts,
41 check_effective_target_upc_packed_pts):
42 Pass "-fupc -fno-upc-pre-include".
43 * testsuite/gcc.dg/gupc/gupc.exp: Moved from
44 testsuite/upc.dg/compile/compile.exp and modified to
47 2014-07-28 Gary Funck <gary@intrepid.com>
49 Merge trunk version 213118 into gupc branch.
51 2014-07-21 Gary Funck <gary@intrepid.com>
53 Merge trunk version 212892 into gupc branch.
55 2014-07-14 Gary Funck <gary@intrepid.com>
57 Merge trunk version 212522 into gupc branch.
59 2014-07-07 Gary Funck <gary@intrepid.com>
61 Merge trunk version 212325 into gupc branch.
63 2014-07-02 Nenad Vukicevic <nenad@intrepid.com>
65 * configure.ac: Fix checking for 32-bits target while
66 setting the default PTS packed bits.
67 * configure: Regenerate.
69 2014-06-30 Gary Funck <gary@intrepid.com>
71 Merge trunk version 212138 into gupc branch.
73 2014-06-23 Gary Funck <gary@intrepid.com>
75 Merge trunk version 211886 into gupc branch.
77 2014-06-16 Gary Funck <gary@intrepid.com>
79 Merge trunk version 211699 into gupc branch.
81 2014-06-14 Gary Funck <gary@intrepid.com>
83 Merge trunk version 211672 into gupc branch.
85 2014-06-12 Gary Funck <gary@intrepid.com>
87 Merge trunk version 211604 into gupc branch.
89 2014-06-02 Gary Funck <gary@intrepid.com>
91 Merge trunk version 211129 into gupc branch.
93 2014-05-26 Gary Funck <gary@intrepid.com>
95 Merge trunk version 210928 into gupc branch.
97 2014-05-21 Nenad Vukicevic <nenad@intrepid.com>
99 * config/darwin.h (LINK_COMMAND_SPEC_A): Fix linker spec
100 on Darwin, replace -fupc-link with -fupc option.
102 2014-05-12 Gary Funck <gary@intrepid.com>
104 Merge trunk version 210323 into gupc branch.
106 2014-05-05 Gary Funck <gary@intrepid.com>
108 Merge trunk version 210065 into gupc branch.
110 2014-04-28 Gary Funck <gary@intrepid.com>
112 Merge trunk version 209848 into gupc branch.
114 2014-04-21 Gary Funck <gary@intrepid.com>
116 Merge trunk version 209542 into gupc branch.
118 2014-04-20 Gary Funck <gary@intrepid.com>
120 * c/c-typeck.c (build_binary_op): Check for invalid comparison
121 between pointers-to-shared with target types that have
122 differing UPC blocking factors.
124 2014-04-16 Gary Funck <gary@intrepid.com>
126 Fix PTS comparison involving a generic PTS using packed representation.
127 * c-family/c-upc-pts-packed.c (upc_pts_packed_build_cond_expr):
128 When comparing (shared void *) pointers, mask out the phase component.
130 2014-04-14 Gary Funck <gary@intrepid.com>
132 Merge trunk version 209359 into gupc branch.
133 DEV-PHASE: Bump to 4.10.0-1.
135 2014-04-07 Gary Funck <gary@intrepid.com>
137 Merge trunk version 209179 into gupc branch.
139 2014-04-04 Gary Funck <gary@intrepid.com>
141 * tree-upc.c tree-upc.h: New.
142 Factor UPC-specific tree node handling
143 into tree-upc.c and tree-upc.h.
144 * Makefile.in: Refer to tree-upc.c and tree-upc.h.
145 * c/c-convert.c c/c-decl.c c/c-objc-common.c
146 c/c-typeck.c c/c-upc-lang.c c-family/c-common.c
147 c-family/c-pretty-print.c c-family/c-upc-low.c
148 c-family/c-upc-pts-packed.c c-family/c-upc-pts-struct.c
149 c-family/c-upc.c c-family/c-upc.h convert.c
150 dwarf2out.c print-tree.c tree-core.h tree-dump.c
151 tree-pretty-print.c tree.c tree.h: Rename variables and
152 functions to include 'upc' in their names.
154 2014-03-31 Gary Funck <gary@intrepid.com>
156 Merge trunk version 208955 into gupc branch.
158 2014-03-24 Gary Funck <gary@intrepid.com>
160 Merge trunk version 208783 into gupc branch.
162 2014-03-17 Gary Funck <gary@intrepid.com>
164 Merge trunk version 208609 into gupc branch.
166 2014-03-10 Gary Funck <gary@intrepid.com>
168 Merge trunk version 208447 into gupc branch.
170 2014-03-03 Gary Funck <gary@intrepid.com>
172 Merge trunk version 208270 into gupc branch.
174 2014-02-24 Gary Funck <gary@intrepid.com>
176 Merge trunk version 208066 into gupc branch.
178 2014-02-17 Gary Funck <gary@intrepid.com>
180 Merge trunk version 207818 into gupc branch.
182 2014-02-10 Gary Funck <gary@intrepid.com>
184 Merge trunk version 207649 into gupc branch.
186 2014-02-03 Gary Funck <gary@intrepid.com>
188 Merge trunk version 207415 into gupc branch.
190 2014-01-30 Gary Funck <gary@intrepid.com>
192 Merge trunk version 207297 into gupc branch.
194 2014-01-28 Gary Funck <gary@intrepid.com>
196 * c/gupcspec.c (match_suffix): Remove use of PARAMS.
198 2014-01-20 Gary Funck <gary@intrepid.com>
200 Merge trunk version 206847 into gupc branch.
202 2014-01-20 Gary Funck <gary@intrepid.com>
204 Merge trunk version 206792 into gupc branch.
206 2014-01-17 Nenad Vukicevic <nenad@intrepid.com>
208 * c-family/c-cppbuiltin.c (upc_cpp_builtins): Remove pre-defines
209 for __UPC_CASTABLE__, __UPC_COLLECTIVE__, __UPC_TICK__ and
210 __UPC_PUPC__ as they are library and not compiler features.
212 2014-01-13 Gary Funck <gary@intrepid.com>
214 Merge trunk version 206575 into gupc branch.
216 2014-01-10 Gary Funck <gary@intrepid.com>
218 Update copyright notices.
220 2014-01-06 Gary Funck <gary@intrepid.com>
222 Merge trunk version 206354 into gupc branch.
224 2014-01-04 Gary Funck <gary@intrepid.com>
226 Integrate GUPC into cc1.
227 * upc/: Remove directory. Re-distribute files.
228 * c/c-upc-lang.c: Move upc/upc-lang.c here.
229 * c/c-upc-lang.h: New.
230 * c-family/c-upc.c: Move upc/upc-act.c here.
231 * c-family/c-upc-gasp.c: Move upc/upc-gasp.c here.
232 * c-family/c-upc-gasp.h: Move upc/upc-gasp.h here.
233 * c-family/c-upc.h: Move upc/upc-act.h here.
234 * c-family/c-upc-low.c: Move upc/upc-genericize.c here.
235 * c-family/c-upc-low.h: Move upc/upc-genericize.h here.
236 * c-family/c-upc-pts.h: Split upc/upc-pts.h here.
237 * c-family/c-upc-pts-ops.c: Split upc/upc-pts.c here.
238 * c-family/c-upc-pts-ops.h: Split upc/upc-pts.h here.
239 * c-family/c-upc-pts-packed.c: Move upc/upc-pts-packed.c here.
240 * c-family/c-upc-pts-struct.c: Move upc/upc-pts-struct.c here.
241 * c-family/c-upc-rts-names.h: Move upc/upc-rts-names.h here.
242 * c-family/stub-upc.c: Remove.
243 * c/gupcspec.c: Move upc/gupcspec.c here.
244 * doc/gupc.texi: Move upc/gupc.texi here.
245 * c/c-objc-common.h: Revert to trunk.
246 * cp/lex.c: Revert to trunk.
247 * cp/Make-lang.in: Revert to trunk.
248 * expr.h: Revert to trunk.
249 * flags.h: Revert to trunk.
250 * fortran/Make-lang.in: Revert to trunk.
251 * java/Make-lang.in: Revert to trunk.
252 * lto/Make-lang.in: Revert to trunk.
253 * objc/Make-lang.in: Revert to trunk.
254 * stor-layout.c: Delete custom hook routines, use
255 newly defined declaration layout language hooks.
256 * stor-layout.h: Revert to trunk.
257 * ../configure.ac: Remove check for UPC language dialect.
258 * ../configure: Re-generate.
259 * Makefile.in (C_COMMON_OBJS): Add UPC-related object files.
260 * c/Make-lang.in: Compile UPC-related files. Build gupc driver.
261 * c/c-decl.c: Call c_genericize() directly rather than
262 lang_hooks.genericize(). Adjust for flag_upc and name changes.
263 * c/c-lang.c (LANG_HOOKS_UPC_TOGGLE_KEYWORDS,
264 LANG_HOOKS_UPC_PTS_STRUCT_INIT_TYPE, LANG_HOOKS_UPC_BUILD_INIT_FUNC,
265 LANG_HOOKS_LAYOUT_DECL_P, LANG_HOOKS_LAYOUT_DECL):
266 Define UPC-specific hooks.
267 * c/c-objc-common.c (upc_types_compatible_p): Move to here.
268 (c_types_compatible_p): Call upc_types_compatible_p().
269 * c/c-parser.c (upc_affinity_test): Move to here.
270 (upc_build_sync_stmt): Move to here.
271 * c/c-typeck.c: #include c-family/c-upc-low.h.
272 * c/config-lang.in (gtfiles): Add UPC gt files.
273 * c-family/c-common.c: Add #include c-upc.h.
274 (c_common_get_alias_set): Move UPC-related alias check to here.
275 (upc_num_threads): Move to here.
276 (c_common_init_ts): Mark UPC-specific statement tree definitions.
277 * c-family/c-common.def (UPC_FORALL_STMT, UPC_SYNC_STMT):
278 Define UPC-specific statements.
279 * c-family/c-common.h (RID_FIRST_UPC_QUAL, RID_LAST_UPC_QUAL,
280 RID_FIRST_UPC_KW, RID_LAST_UPC_KW, UPC_IS_KEYWORD): New.
281 (clk_upc, clk_upcxx, c_dialect_upc, compiling_upc): Delete.
282 (use_upc_dwarf2_extensions, flag_upc): Move to c-family/c.opts.
283 (upc_num_threads): Declare prototype.
284 (UPC_SYNC_OP, UPC_SYNC_ID, UPC_SYNC_NOTIFY_OP, UPC_SYNC_WAIT_OP,
285 UPC_SYNC_BARRIER_OP): Move definitions here.
286 * c-family/c-cppbuiltin.c: Remove #include c-upc.h and
287 add #include c-upc-pts.h.
288 (upc_cpp_builtins): Move to here. Define as static.
289 (c_cpp_builtin): Change call to c_dialect_upc () into
291 * c-family/c-gimplify.c: #include c-upc-low.h.
292 (c_common_genericize): Rename c_genericize() to this and make static.
293 (c_genericize): Call upc_genericize() if flag_upc is set and
294 then call c_common_genericize().
295 * c-family/c-opts.c: #include c-upc-low.h and c-upc-pts.h.
296 (c_family_lang_mask): Remove CL_UPC.
297 (c_common_option_lang_mask): Remove CL_UPC from lang_flags.
298 (upc_init_options): Move to here, make it static.
299 (c_common_init_options): Add early check for flag_upc, if found
300 call upc_init_options().
301 (upc_handle_option): Move to here and make static.
302 (c_common_handle_option): Check for UPC-related options
303 and call upc_handle_option(). Remove references to
304 OPT_lang_upc and clk_upc. Check flag_upc instead of
305 calling c_dialect_upc().
306 * c-family/c-pragma.c: #include langhooks.h.
307 (handle_pragma_upc): Remove warning if flag_upc not set;
308 flag_upc now serves the function of compiling_upc().
309 Add call to lang_hooks.upc.toggle_keywords() to
310 implement enable/disable of UPC keywords.
311 (init_pragma): Check flag_upc instead of compiling_upc.
312 * c-family/c-pragma.h (deny_pragma_upc, get_upc_consistency_mode,
313 permit_pragma_upc, pop_upc_consistency_mode,
314 pragma_upc_permitted_p, push_upc_consistency_mode,
315 set_upc_consistency_mode): Move prototypes to here.
316 * c-family/c.opt: Remove all references to "UPC" language dialect.
317 Add -fupc option. Delete -fupc-link option.
318 Add -fupc-threads= option and deprecate -fupc-threads-.
319 * configure.ac: Remove check for UPC language dialect.
320 * configure: Re-generate.
321 * explow.c (tree_expr_size): Move to tree.c.
322 * gcc.c: Change specs to refer to -fupc instead of -lang-upc
324 * hooks.c (hook_bool_tree_tree_false): Declare prototype.
325 * langhooks.c (lhd_do_nothing_b, lhd_do_nothing_t_t): New.
326 * langhooks.h (lang_hooks_for_upc): Define hooks for UPC.
327 (layout_decl_p, layout_decl): Define language-specific
328 declaration layout hooks.
329 (genericize): Remove this language hook.
330 * langhooks-def.h: Define UPC default language hooks.
331 Define language-specific declaration layout default hooks.
332 * langhooks.c (lhd_do_nothing_b): New.
333 * tree-core.h (shared_flag): Rename from upc_shared_flag.
334 (strict_flag): Rename from upc_strict_flag.
335 (relaxed_flag): Rename from upc_relaxed_flag.
336 (threads_factor_flag): New. Was a lang. flag.
337 (block_factor_0): New. Was a lang. flag.
338 (block_factor_x): New. Was a lang. flag.
339 (spare1): Decrement spare bits from 8 down to 5.
340 * tree.c (block_factor_for_type): Move to here.
341 (tree_expr_size): Move to here from explow.c.
342 (block_factor_lookup): Move to here.
343 (block_factor_insert): Move to here.
344 (upc_get_block_factor): Move to here.
345 * tree.h: refer to block_factor_* instead of upc_block_factor_*.
346 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
347 TYPE_HAS_THREADS_FACTOR): Refer to tree base flag bits instead
349 (tree_expr_size): Move prototype from explow.h.
351 2013-12-30 Gary Funck <gary@intrepid.com>
353 Merge trunk version 206243 into gupc branch.
355 2013-12-23 Gary Funck <gary@intrepid.com>
357 Merge trunk version 206179 into gupc branch.
359 2013-12-22 Gary Funck <gary@intrepid.com>
361 * upc/upc-act.c (upc_cpp_builtins): Bump UPC_VERSION
362 to reflect UPC specification version 1.3 compliance.
364 2013-12-16 Gary Funck <gary@intrepid.com>
366 Merge trunk version 206010 into gupc branch.
368 2013-12-09 Gary Funck <gary@intrepid.com>
370 Merge trunk version 205801 into gupc branch.
372 2013-12-03 Meador Inge <meadori@codesourcery.com>
374 * tree-core.h (tree_type_common): Change tree_type_common to use
375 user-provided GC marking.
376 (gt_ggc_mx, gt_pch_nx): New prototypes.
377 * tree.c (gt_ggc_mx, gt_pch_nx): New functions.
379 2013-12-03 Gary Funck <gary@intrepid.com>
383 2011-10-10 Gary Funck <gary@intrepid.com>
385 * tree.c (check_qualified_type, check_aligned_type):
386 Call tree_int_cst_equal() to compare UPC blocking factors
387 if the corresponding tree pointers are not equal.
388 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
390 2013-12-03 Gary Funck <gary@intrepid.com>
392 * c-family/c.opt: Fix typo introduced in 2013-06-03
395 2013-12-02 Gary Funck <gary@intrepid.com>
397 Merge trunk version 205582 into gupc branch.
399 2013-11-26 Meador Inge <meadori@codesourcery.com>
401 * upc/upc-genericize.c (upc_expand_get): Ensure that temporaries
402 are declared via a DECL_EXPR.
404 2013-11-25 Gary Funck <gary@intrepid.com>
406 Merge trunk version 205346 into gupc branch.
408 2013-11-18 Gary Funck <gary@intrepid.com>
410 Merge trunk version 204942 into gupc branch.
412 2013-11-15 Gary Funck <gary@intrepid.com>
414 Merge trunk version 204894 into gupc branch.
416 2013-11-15 Gary Funck <gary@intrepid.com>
418 Merge trunk version 204659 into gupc branch.
420 2013-11-04 Gary Funck <gary@intrepid.com>
422 Merge trunk version 204345 into gupc branch.
424 2013-10-31 Gary Funck <gary@intrepid.com>
426 Released GUPC 4.9.0.1 based on version 203902.
427 This release version was committed on 2013-10-21.
428 * DEV-PHASE: Bump to 4.9.0.2.
429 * DATESTAMP: Bump date stamp.
431 2013-10-28 Gary Funck <gary@intrepid.com>
433 Merge trunk version 204119 into gupc branch.
435 2013-10-21 Gary Funck <gary@intrepid.com>
437 Merge trunk version 203886 into gupc branch.
439 2013-10-14 Gary Funck <gary@intrepid.com>
441 Merge trunk version 203514 into gupc branch.
443 2013-10-07 Gary Funck <gary@intrepid.com>
445 Merge trunk version 203240 into gupc branch.
447 2013-10-01 Gary Funck <gary@intrepid.com>
449 Implement pointer-to-shared -> integer conversions.
450 Required per UPC 1.3 Specification.
451 * c/c-typeck.c (build_c_cast): Remove logic that diagnosed
452 PTS->int conversions as an error. Rewrite into a CONVERT_EXPR
453 for later processing by upc_genericize().
455 2013-10-01 Gary Funck <gary@intrepid.com>
457 Implement pointer-to-shared -> integer conversions.
458 Required per UPC 1.3 Specification.
459 * upc/upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
460 (upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().
462 2013-09-30 Gary Funck <gary@intrepid.com>
464 Merge trunk version 203026 into gupc branch.
466 2013-09-23 Gary Funck <gary@intrepid.com>
468 Merge trunk version 202825 into gupc branch.
470 2013-09-18 Gary Funck <gary@intrepid.com>
472 Merge trunk version 202725 into gupc branch.
474 2013-09-16 Gary Funck <gary@intrepid.com>
476 Merge trunk version 202619 into gupc branch.
478 2013-09-09 Gary Funck <gary@intrepid.com>
480 Merge trunk version 202382 into gupc branch.
482 2013-09-02 Gary Funck <gary@intrepid.com>
484 Merge trunk version 202159 into gupc branch.
486 2013-08-26 Gary Funck <gary@intrepid.com>
488 Merge trunk version 202008 into gupc branch.
490 2013-08-19 Gary Funck <gary@intrepid.com>
492 Merge trunk version 201832 into gupc branch.
494 2013-08-05 Gary Funck <gary@intrepid.com>
496 Merge trunk version 201483 into gupc branch.
498 2013-07-29 Gary Funck <gary@intrepid.com>
500 Merge trunk version 201301 into gupc branch.
502 2013-07-22 Gary Funck <gary@intrepid.com>
504 Merge trunk version 201119 into gupc branch.
506 2013-07-15 Gary Funck <gary@intrepid.com>
508 Merge trunk version 200955 into gupc branch.
510 2013-07-08 Gary Funck <gary@intrepid.com>
512 Merge trunk version 200775 into gupc branch.
514 2013-07-01 Gary Funck <gary@intrepid.com>
516 Merge trunk version 200575 into gupc branch.
518 2013-06-24 Gary Funck <gary@intrepid.com>
520 Merge trunk version 200361 into gupc branch.
522 2013-06-19 Gary Funck <gary@intrepid.com>
524 Merge trunk version 200149 into gupc branch.
526 2013-06-19 Gary Funck <gary@intrepid.com>
528 Merge trunk version 200149 into gupc branch.
529 * upc/upc-act.c (upc_create_static_var): New.
530 (upc_build_init_func): Call upc_create_static_var() to
531 create a static variable, __upc_init_func_addr, which
532 is initialized to the address of the UPC
533 shared data initialization function. This change is
534 needed to avoid writing to the output assembly language
536 (upc_build_sync_stmt): Delete unused variable, sync_expr_type.
538 2013-06-03 Gary Funck <gary@intrepid.com>
540 Merge trunk version 199596 into gupc branch.
542 2013-05-27 Gary Funck <gary@intrepid.com>
544 Merge trunk version 199350 into gupc branch.
546 2013-05-20 Gary Funck <gary@intrepid.com>
548 Merge trunk version 199093 into gupc branch.
550 2013-05-14 Gary Funck <gary@intrepid.com>
552 * upc/upc-pts-packed.c (upc_pts_packed_build_cvt):
553 When checking whether the phase of a PTS should be reset,
554 if the source type is an array type, then bypass
555 the check for equal type sizes.
556 * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
558 2013-05-13 Gary Funck <gary@intrepid.com>
560 Merge trunk version 198815 into gupc branch.
562 2013-05-06 Gary Funck <gary@intrepid.com>
564 Merge trunk version 198622 into gupc branch.
566 2013-04-29 Gary Funck <gary@intrepid.com>
568 Merge trunk version 198433 into gupc branch.
570 2013-04-15 Gary Funck <gary@intrepid.com>
572 Merge trunk version 197958 into gupc branch.
574 2013-04-08 Gary Funck <gary@intrepid.com>
576 Merge trunk version 197571 into gupc branch.
578 2013-04-04 Gary Funck <gary@intrepid.com>
580 Per the UPC 1.3 specification, the type of the
581 optional barrier/notify/wait expression is not constrained to
582 'int'. Instead, any type that is assignment compatible
583 with an 'int' type is permitted.
584 * c/c-parser.c (c_parser_upc_sync_statement): Do not check
585 the optional expression type here. Let upc_build_sync_stmt()
587 * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
588 * c/c-typeck.c (c_cvt_expr_for_assign): New. Also, call
589 error_at() in lieu of error() when the source location is known.
590 * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
591 to check/convert the optional synchronization statement
594 2013-04-02 Gary Funck <gary@intrepid.com>
596 Merge trunk version 197340 into gupc branch.
598 2013-04-02 Gary Funck <gary@intrepid.com>
600 Revert revision 178346 (2011-08-30)
601 which changed the prototype of check_qualified_type and related
602 functions so that their parameters were just 'tree' and not
603 'const_tree'. This seemed necessary at the time because of a
604 change to TYPE_BLOCK_FACTOR(), which in turn called function
605 that hashed the type node pointer. The hash functions did
606 not accept "const void *" pointers. Implement a work around
607 that removes this restriction.
608 * c/c-typeck.c: Revert.
610 * tree.h: Revert. Change prototype of upc_block_factor_lookup()
611 to accept a 'const_tree' pointer to a type node.
612 * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
613 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
614 input argument and convert this to 'tree' for use with hash function.
616 2013-04-02 Gary Funck <gary@intrepid.com>
618 Revert revision 178346 (2011-08-30)
619 which changed the prototype of check_qualified_type and related
620 functions so that their parameters were just 'tree' and not
621 'const_tree'. This seemed necessary at the time because of a
622 change to TYPE_BLOCK_FACTOR(), which in turn called a function
623 that hashed the type node pointer. The hash functions did
624 not accept "const void *" pointers. Implement a work around
625 that removes this restriction.
626 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
627 input argument and convert this to 'tree' for use with hash function.
629 2013-03-25 Gary Funck <gary@intrepid.com>
631 Merge trunk version 197029 into gupc branch.
633 2013-03-21 Gary Funck <gary@intrepid.com>
635 Released GUPC 4.8.0.3 based on version 196601.
636 This release version was committed on 2013-03-11.
637 * DATESTAMP: Bump date stamp.
639 2013-03-18 Gary Funck <gary@intrepid.com>
641 Merge trunk version 196771 into gupc branch.
642 * DEV-PHASE: Bump release identifier to 4.9.0-1.
644 2013-03-11 Gary Funck <gary@intrepid.com>
646 Merge trunk version 196592 into gupc branch.
648 2013-03-04 Gary Funck <gary@intrepid.com>
650 Merge trunk version 196422 into gupc branch.
652 2013-02-25 Gary Funck <gary@intrepid.com>
654 Merge trunk version 196253 into gupc branch.
656 2013-02-18 Gary Funck <gary@intrepid.com>
658 Merge trunk version 196115 into gupc branch.
660 2013-02-11 Gary Funck <gary@intrepid.com>
662 Merge trunk version 195937 into gupc branch.
664 2013-02-04 Gary Funck <gary@intrepid.com>
666 Merge trunk version 195707 into gupc branch.
668 2013-01-28 Gary Funck <gary@intrepid.com>
670 Merge trunk version 195502 into gupc branch.
672 2013-01-21 Gary Funck <gary@intrepid.com>
674 Merge trunk version 195330 into gupc branch.
676 2013-01-14 Gary Funck <gary@intrepid.com>
678 Merge trunk version 195164 into gupc branch.
680 2013-01-07 Gary Funck <gary@intrepid.com>
682 Merge trunk version 194962 into gupc branch.
684 2012-12-24 Gary Funck <gary@intrepid.com>
686 Merge trunk version 194709 into gupc branch.
688 2012-12-17 Gary Funck <gary@intrepid.com>
690 Merge trunk version 194552 into gupc branch.
692 2012-12-10 Gary Funck <gary@intrepid.com>
694 Merge trunk version 194351 into gupc branch.
696 2012-12-03 Gary Funck <gary@intrepid.com>
698 Merge trunk version 194076 into gupc branch.
700 2012-11-30 Gary Funck <gary@intrepid.com>
702 Released GUPC 4.8.0.2 based on version 193446.
703 Date of release: 2012-11-12.
704 * DEV-PHASE: Bump release identifier to 4.8.0-3.
705 * DATESTAMP: Bump date stamp.
707 2012-11-26 Gary Funck <gary@intrepid.com>
709 Merge trunk version 193807 into gupc branch.
711 2012-11-20 Gary Funck <gary@intrepid.com>
713 Merge trunk version 193672 into gupc branch.
715 2012-11-19 Gary Funck <gary@intrepid.com>
717 Merge trunk version 193617 into gupc branch.
719 2012-11-15 Gary Funck <gary@intrepid.com>
721 Merge trunk version 193426 into gupc branch.
723 2012-11-12 Gary Funck <gary@intrepid.com>
725 Released GUPC 4.8.0.1 based on version 192948.
726 Date of release: 2012-10-29.
727 * DEV-PHASE: Bump release identifier to 4.8.0-2.
728 * DATESTAMP: Bump date stamp.
730 2012-11-05 Gary Funck <gary@intrepid.com>
732 Merge trunk version 193152 into gupc branch.
734 2012-10-29 Gary Funck <gary@intrepid.com>
736 Merge trunk version 192909 into gupc branch.
738 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
740 Remove unused --upc-pthreads-per-process compile switch.
741 * c-family/c.opt: Remove --upc-pthreads-per-process switch
742 that compiler/runtime do not use.
743 * c-family/c-opts.c (c_common_handle_option): Remove support for
744 --upc-pthreads-per-process switch.
745 * c-family/c-common.c: Ditto.
746 * c-family/c-common.h: Ditto.
748 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
750 Remove unused --upc-pthreads-per-process compile switch.
751 * upc/upc-act.c (upc_handle_option): Ditto.
752 (upc_cpp_builtins): Ditto.
753 * upc/upc-lang.c (upc_init_options): Ditto.
755 2012-10-27 Gary Funck <gary@intrepid.com>
757 * defaults.h: fix typos and formatting in UPC-related entries.
759 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
761 Place shared initialization code into the .text
762 section instead of a separate .upc_init section.
763 * defaults.h (UPC_INIT_SECTION_NAME): Delete.
764 (UPC_INIT_BEGIN_NAME): Delete.
765 (UPC_INIT_END_NAME): Delete.
766 * doc/tm.texi.in: Ditto.
767 * doc/tm.texi: Ditto.
769 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
771 Place shared initialization code into the .text
772 section instead of a separate .upc_init section.
773 * upc/upc-act.c (upc_build_init_func): Remove settings
774 of the section for shared initialization code.
776 2012-10-22 Gary Funck <gary@intrepid.com>
778 Merge trunk version 192673 into gupc branch.
780 2012-10-15 Gary Funck <gary@intrepid.com>
782 Merge trunk version 192449 into gupc branch.
784 2012-10-08 Gary Funck <gary@intrepid.com>
786 Merge trunk version 192198 into gupc branch.
788 2012-10-01 Gary Funck <gary@intrepid.com>
790 Merge trunk version 191931 into gupc branch.
792 2012-09-26 Gary Funck <gary@intrepid.com>
794 Implement support for various UPC version 1.3 specification
795 additions and changes. Deprecate support for upc_local_alloc.
796 Add support for upc_tick (wall-clock timer) library.
797 Add support for collective de-allocation functions:
798 upc_all_free and upc_all_lock_free.
799 Consult libgupc/ChangeLog,
800 libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
802 2012-09-26 Gary Funck <gary@intrepid.com>
804 * upc/upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.
806 2012-09-24 Gary Funck <gary@intrepid.com>
808 Merge trunk version 191658 into gupc branch.
810 2012-09-17 Gary Funck <gary@intrepid.com>
812 Merge trunk version 191376 into gupc branch.
814 2012-09-10 Gary Funck <gary@intrepid.com>
816 Merge trunk version 191141 into gupc branch.
818 2012-08-29 Nenad Vukicevic <nenad@intrepid.com>
820 * upc/gupc.texi: Add description for -fupc-pre-include.
822 2012-08-27 Gary Funck <gary@intrepid.com>
824 Merge trunk version 190707 into gupc branch.
825 * tree.h (struct tree_base): Adjust various
826 UPC tree and type flags to refer to the
827 newly introduced u.bits field.
829 2012-08-20 Gary Funck <gary@intrepid.com>
831 Merge trunk version 190524 into gupc branch.
832 Incorporates a fix in genoutput.c (to properly use
833 CONST_CAST) that led to build failures with
834 older versions of g++.
836 2012-08-16 Gary Funck <gary@intrepid.com>
838 Merge trunk version 190437 into gupc branch.
839 Incorporates a fix for a build failure on the PPC
840 due to passing incorrect switches to the assembler.
841 Also, first merged trunk revision that compiles GCC
842 with the C++ compiler in the first stage.
844 2012-08-16 Gary Funck <gary@intrepid.com>
846 * upc/upc-pts-struct.c (upc_pts_struct_is_null_p):
847 Adjust VEC_index() calls to use C++ syntax.
848 This is required as part of the move to compile
849 GCC with the C++ compiler.
851 2012-08-13 Gary Funck <gary@intrepid.com>
853 Merge trunk version 190336 into gupc branch.
855 2012-08-09 Gary Funck <gary@intrepid.com>
857 * c-family/c-common.c (c_fully_fold_internal): Do not fold
858 offsetof-like expressions when they are applied to UPC
861 2012-08-07 Gary Funck <gary@intrepid.com>
863 * upc/upc-genericize.c: Delete un-used include of optabs.h.
864 Fixes a parallel make failure due to un-noticed dependency.
866 2012-08-06 Gary Funck <gary@intrepid.com>
868 Merge trunk version 190173 into gupc branch.
870 2012-08-01 Gary Funck <gary@intrepid.com>
872 Merge trunk version 190063 into gupc branch.
873 Incorporates fix for build failure on IA64.
875 2012-07-30 Gary Funck <gary@intrepid.com>
877 Merge trunk version 189954 into gupc branch.
879 2012-07-27 Gary Funck <gary@intrepid.com>
881 Merge trunk version 189856 into gupc branch.
882 Incorporates fix for bootstrap with a sub-set of language
883 specific source directories present.
884 * optabs.c: Revert to trunk. Rather than defining opcodes
885 as a way of defining get/put runtime library function names,
886 generate them directly in gcc/upc/upc-genericize.c.
888 * genopinit.c: Ditto.
890 2012-07-27 Gary Funck <gary@intrepid.com>
892 * upc/upc-genericize.c (upc_expand_get, upc_expand_put):
893 Rather than referring to UPC-specific opcodes to find
894 the name of the get/put library function name, generate
896 (get_lc_mode_name): New.
898 2012-07-25 Gary Funck <gary@intrepid.com>
900 * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
901 Fix regression: field-by-field comparison of UPC
902 pointer-to-shared (vaddr, thread) only works
903 (with the current logic) for the == and != operators.
905 2012-07-24 Gary Funck <gary@intrepid.com>
907 * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
908 Fix warning about use of const_tree.
910 2012-07-24 Gary Funck <gary@intrepid.com>
912 Per UPC spec. 6.4.2p6, ignore the value of the
913 phase of a pointer-to-shared, when comparing for
915 * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
916 Use bit-wise comparison only if the UPC pointer-to-shared
917 target type has a block size <= 1 and the representation
918 has vaddr first or the comparison is for equality/inequality.
919 * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
920 Use (vaddr, thread) comparison only if the UPC pointer-to-shared
921 has a block size <= 1 or the comparison is for equality/inequality.
923 2012-07-23 Gary Funck <gary@intrepid.com>
925 Merge trunk version 189777 into gupc branch.
927 2012-07-16 Gary Funck <gary@intrepid.com>
929 Merge trunk version 189545 into gupc branch.
931 2012-07-12 Gary Funck <gary@intrepid.com>
933 Merge trunk version 189366 into gupc branch.
935 2012-07-05 Gary Funck <gary@intrepid.com>
937 Merge trunk version 189274 into gupc branch.
938 Incorporates graphite build infrastructure changes.
940 2012-07-04 Gary Funck <gary@intrepid.com>
942 Merge trunk version 189080 into gupc branch.
943 * Makefile.in: Adjust for move of C front-end files.
944 * c/Make-lang.in: Ditto.
946 2012-07-04 Gary Funck <gary@intrepid.com>
948 * upc/config-lang.in: Adjust for move of C front-end files.
949 * upc/upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
950 * upc/upc-gasp.c: Ditto.
951 * upc/upc-genericize.c: Ditto.
952 * upc/upc-lang.c: Ditto.
953 * upc/upc-pts-struct.c: Ditto.
955 2012-07-03 Gary Funck <gary@intrepid.com>
957 Merge trunk version 189078 into gupc branch.
959 2012-06-25 Gary Funck <gary@intrepid.com>
961 Merge trunk version 188931 into gupc branch.
963 2012-06-18 Gary Funck <gary@intrepid.com>
965 Merge trunk version 188721 into gupc branch.
967 2012-06-11 Gary Funck <gary@intrepid.com>
969 Merge trunk version 188380 into gupc branch.
971 2012-06-04 Gary Funck <gary@intrepid.com>
973 Merge trunk version 188168 into gupc branch.
975 2012-05-29 Gary Funck <gary@intrepid.com>
977 Merge trunk version 187927 into gupc branch.
979 2012-05-19 Gary Funck <gary@intrepid.com>
981 * upc/upc-act.c (upc_lang_layout_decl): Ignore declarations of
982 an array of shared type declarations if the size of the
983 array is zero. This avoids a segfault when processing
984 the UPC blocking factor.
986 2012-05-18 Gary Funck <gary@intrepid.com>
988 Merge trunk version 187666 into gupc branch.
989 Incorporates fix for ICE in tree vectorization pass
990 when processing strided loads.
992 2012-05-17 Gary Funck <gary@intrepid.com>
994 Merge trunk version 187578 into gupc branch.
996 2012-05-09 Gary Funck <gary@intrepid.com>
998 Merge trunk version 187347 into gupc branch.
999 Incorporates fix for segfault in tree vectorization pass.
1001 2012-05-08 Nenad Vukicevic <nenad@intrepid.com>
1003 * upc/gupcspec.c (lang_specific_driver): Improve handling of
1004 "-x" switches: (a) add "-x upc" switch for C source files if
1005 no -x switch was seen before OR "-x none" was seen, (b) add
1006 "-x none" for files other then C files if "-x upc" was
1007 previously added. Cleanup warnings on unused variables
1008 and integer conversion. Print verbose info regardless of the
1009 command line being the same.
1011 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
1013 * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
1014 Appropriate libraries and include files are added on the
1015 command line to make it possible to compile with the driver
1016 from the build tree.
1018 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
1020 * upc/gupc.texi: Simplify the description of the optimization
1023 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
1025 * upc/Make-lang.in: Remove build of xgupc.
1026 * upc/gupcspec.c (get_libgupc_path): Delete.
1027 (lang_specific_driver): Remove support for building xgupc.
1028 Removed code tried to add -B, -L, -isystem to the command
1029 line if xgupc driver is invoked from the development tree.
1031 2012-05-04 Gary Funck <gary@intrepid.com>
1033 * upc/upc-act.c (upc_num_threads): When THREADS is specified
1034 statically, convert the value to a signed size type,
1035 so that (for example) the thread affinity test in a
1036 upc_forall() statement will work as expected for negative
1037 integer index values.
1039 2012-04-30 Nenad Vukicevic <nenad@intrepid.com>
1041 * upc/Make-lang.in: Add year 2012 to the copyright.
1043 2012-04-30 Nenad Vukicevic <nenad@intrepid.com>
1045 * upc/gupc.c: Delete. The old GUPC driver.
1046 * upc/gupcspec.c: Add. The new GUPC driver tailored
1047 after fortran/gfortranspec.c driver. Options "-n", "-inst",
1048 and "-inst-functions' are not supported by the new driver.
1049 Support for building gupc and xgupc remains the same.
1050 * upc/Make-lang.in (xgupc): Changes to compile gupcspec.c
1053 * upc/gupc.texi: Remove '-n', '-inst', and '-inst-functions'
1056 2012-04-29 Nenad Vukicevic <nenad@intrepid.com>
1058 * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
1059 PPC ABI. In the UPC 'struct' pointer-to-shared representation,
1060 a function returns a pointer-to-shared in memory instead
1062 (rs6000_pass_by_reference): Ditto.
1064 2012-04-28 Gary Funck <gary@intrepid.com>
1066 * c-decl.c (grokdeclarator): Set 'type' to error node
1067 after detecting "shared auto variable" error to avoid
1068 downstream complications.
1069 * upc/upc-act.c: Fix a couple of spelling errors in comments.
1071 2012-04-26 Gary Funck <gary@intrepid.com>
1073 * c-family/c-pragma.c (handle_pragma_upc):
1074 Fix typo in warning message.
1076 2012-04-17 Nenad Vukicevic <nenad@intrepid.com>
1078 * upc/gupc.texi: Fix the warning for usage of 'insertcopying'
1079 before 'copying'. Minor changes to to copyright years and
1082 2012-04-17 Gary Funck <gary@intrepid.com>
1084 Merge trunk version 186486 into gupc branch.
1086 2012-04-17 Gary Funck <gary@intrepid.com>
1088 * c-family/c-pragma.c (disable_pupc_mode): Return the previous
1089 value of the pupc mode. Fixes a compile-time warning.
1090 * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
1091 disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
1092 Improve source formatting.
1094 2012-04-16 Gary Funck <gary@intrepid.com>
1096 * upc/upc-genericize.c: Adjust copyright.
1097 (upc_genericize_fndecl): Adjust call graph
1098 union member reference to use the newly introduced
1099 'symbol' field in order to refer to 'decl'.
1101 2012-04-09 Gary Funck <gary@intrepid.com>
1103 Merge trunk version 186243 into gupc branch.
1104 Incorporates a powerpc 'ffi' fix.
1106 2012-03-16 Gary Funck <gary@intrepid.com>
1108 Merge trunk version 185454 into gupc branch.
1109 Incorporates a libgcc fix for builds on Darwin.
1111 2012-03-13 Gary Funck <gary@intrepid.com>
1113 Merge trunk version 185278 into gupc branch.
1114 * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
1115 call build_pointer_type() to apply UPC-specific qualifiers.
1116 * top-level/configure.ac: factor the checking for posix hostst
1117 out of the libgomp section so that it can also be used by libgupc.
1118 * top-level/configure: Re-generate.
1119 * DEV-PHASE: bump to 4.8.0-1.
1121 2012-03-12 Gary Funck <gary@intrepid.com>
1123 * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
1124 the mode for a pointer for upc-pointer-to-shared types.
1126 2012-03-04 Gary Funck <gary@intrepid.com>
1128 Merge trunk version 184900 into gupc branch.
1130 2012-02-17 Gary Funck <gary@intrepid.com>
1132 Released GUPC 4.7.0.2 based on version 183992.
1133 * DEV-PHASE: Bump release identifier to 4.7.0-3.
1134 * DATESTAMP: Bump date stamp.
1136 2012-02-07 Nenad Vukicevic <nenad@intrepid.com>
1138 * upc/gupc.texi: Added entries for the directory.
1140 2012-02-05 Nenad Vukicevic <nenad@intrepid.com>
1142 * upc/gupc-manpage.html: Removed. HTML files are generated from
1145 2012-02-05 Nenad Vukicevic <nenad@intrepid.com>
1147 * upc/gupc.texi (-x upc): Add files ending with '.c' to the list
1148 of files compiled as UPC source.
1150 2012-02-04 Nenad Vukicevic <nenad@intrepid.com>
1152 * upc/Make-lang.in (doc/gupc.info): Fix dependencies for creating
1155 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
1157 * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
1158 code generation (same as #pragma pupc off).
1159 (set_pupc_mode): New. Set/restore profiling mode.
1160 * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
1161 (set_pupc_mode): New. Prototype.
1162 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1163 profiling code for shared variables initialization routines.
1165 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
1167 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1168 profiling code for shared variables initialization routines.
1170 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
1172 * upc/Make-lang.in: Various changes related to generating
1173 man/info pages from texi source file.
1174 (upc.install-common): Fix for removing the upc command
1175 link before install if suffix was applied.
1176 (upc.install-pdf): New.
1177 (upc.install-html): Change for the build from texi.
1178 (upc.install-man): Change for the build from texi.
1179 * upc/gupc.1: Removed.
1180 * upc/gupc.texi: New. Created texi source for man/info
1183 2012-01-31 Gary Funck <gary@intrepid.com>
1185 Merge trunk version 183751 into gupc branch.
1186 Incorporates fix for bootstrap failure on openSUSE 12.1.
1188 2012-01-30 Nenad Vukicevic <nenad@intrepid.com>
1190 * upc/Make-lang.in: Fix the --program-suffix configuration
1191 option. GUPC executables are now installed with appropriate
1192 suffixes and GUPC driver execs 'gcc' with the right suffix.
1194 2012-01-24 Nenad Vukicevic <nenad@intrepid.com>
1196 * upc/upc-lang.c (upc_init_options): Disable section anchors
1199 2012-01-14 Gary Funck <gary@intrepid.com>
1201 * upc/upc-genericize.c (upc_genericize_expr): Update input_location
1202 while traversing the program tree.
1203 (upc_expand_get, upc_expand_put): For profiling, derive
1204 the source code location from the incoming 'loc' parameter.
1206 2012-01-10 Gary Funck <gary@intrepid.com>
1208 Merge trunk version 183072 into gupc branch.
1209 Incorporates libcpp __BASE_FILE__ fix.
1211 2012-01-09 Gary Funck <gary@intrepid.com>
1213 * upc/upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
1214 is_gimple_non_addressable.
1216 2012-01-06 Nenad Vukicevic <nenad@intrepid.com>
1218 * upc/Make-lang.in: Add appropriate linker flags when linking
1221 2012-01-06 Nenad Vukicevic <nenad@intrepid.com>
1223 * upc/Make-lang.in: Add appropriate linker flags when linking
1226 2011-12-31 Gary Funck <gary@intrepid.com>
1228 Fix gupc driver to avoid segfault when processing
1229 invalid use of a switch that expects an argument.
1230 * upc/gupc.c (get_libgupc_path): Add check for non-NULL value of
1231 libgupc_archive before attempting to access libgupc_archive[0].
1232 (main): Do not issue error if lib_dir is NULL. Instead, only
1233 process lib_dir if it is non-NULL.
1235 2011-12-31 Gary Funck <gary@intrepid.com>
1237 Improve -fupc-debug support.
1238 * upc/upc-genericize.c (upc_expand_get, upc_expand_put,
1239 upc_genericize_sync_stmt): Add check for flag_upc_debug.
1240 * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
1241 * upc/upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
1242 * upc/upc-act.c (upc_cpp_builtins): Disable inlining of the
1243 runtime if flag_upc_debug is asserted.
1245 2011-12-20 Nenad Vukicevic <nenad@intrepid.com>
1247 * top-level/Makefile.def (flags_to_pass): Added GUPC
1248 defines. Fixes the make error when upc is not specified as one
1249 of the languages to build.
1250 * top-level/Makefile.in: Re-generate.
1252 2011-11-22 Gary Funck <gary@intrepid.com>
1254 * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
1255 * dwarf2out.c (gen_compile_unit_die): Check for
1256 the "GNU UPC" language string in lieu of "GCC UPC".
1257 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
1259 2011-11-22 Gary Funck <gary@intrepid.com>
1261 * upc/upc-act.c (upc_cpp_builtins): Generate new pre-defined
1264 2011-11-18 Gary Funck <gary@intrepid.com>
1266 Merge trunk version 181552 into gupc branch.
1267 Incorporates libgcc/libunwind fix for IA64.
1269 2011-11-19 Gary Funck <gary@intrepid.com>
1271 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1272 Add check for UPC when defining the language type value
1273 in a traceback entry.
1275 2011-11-19 Gary Funck <gary@intrepid.com>
1277 * upc/config-lang.in: Remove checks for supported targets.
1278 This is now done at a higher level.
1280 2011-11-18 Gary Funck <gary@intrepid.com>
1282 Merge trunk version 181493 into gupc branch.
1283 Incorporates final fix for PR target/49992.
1285 2011-11-09 Nenad Vukicevic <nenad@intrepid.com>
1287 * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
1288 change that converted relative include paths into absolute
1289 ones, as it does not work with older version of make (3.80).
1291 2011-10-27 Nenad Vukicevic <nenad@intrepid.com>
1293 Apply patch for Darwin build - PR49992.
1294 * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
1295 * gcc/configure.ac: Ditto.
1296 * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
1297 * gcc/ada/gcc-interface/Makefile.in: Ditto.
1298 * top-level/configure: Re-generate.
1299 * gcc/configure: Re-genrate.
1301 2011-10-26 Gary Funck <gary@intrepid.com>
1303 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1304 "libupc" to "libgupc".
1305 * top-level/configure.ac: Implement support for cross-builds, and
1306 adjust for rename of libupc to libgupc.
1307 * top-level/Makefile.tpl: Ditto.
1308 * top-level/Makefile.def: Ditto.
1309 * top-level/configure: Re-generate.
1310 * top-level/Makefile.in: Re-generate.
1311 * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
1312 * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
1313 * doc/tm.texi: Re-generate.
1314 * tree-pretty-print.c (dump_block_node): Delete unused variable.
1315 * gcc.c: Adjust for rename of libupc to libgupc.
1316 * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
1317 Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
1318 Change "xupc" to "xgupc".
1319 * configure.ac: Change "GCC UPC" to "GNU UPC".
1320 * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
1321 so that they are absolute paths. This is needed because
1322 the upc-crtstuff builds are in the libgupc library build
1323 directories which are not at the same level as libgcc.
1324 * config/darwin.h: Adjust for rename of libupc to libgupc.
1326 2011-10-26 Gary Funck <gary@intrepid.com>
1328 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1329 "libupc" to "libgupc".
1330 * upc/gupc.c: Rename from upc-cmd.c and adjust for rename
1331 of libupc to libgupc.
1332 * upc/upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
1333 * upc/config-lang.in: Adjust for rename of libupc to libgupc.
1334 * upc/gupc.1: Rename from upc.1. Change "GCC UPC" references
1335 to "GNU UPC". Adjust for rename of libupc to libgupc.
1337 * upc/gupc-manpage.html: Rename from upc-manpage.html. Re-generate.
1338 * upc/Make-lang.in: Change "upc" to "gupc". Change "xupc" to "xgupc".
1339 Adjust for rename of libupc to libgupc. Install target symlink from
1340 "upc" to "gupc". Install target/version-specific hard links to "gupc".
1342 2011-10-20 Gary Funck <gary@intrepid.com>
1344 Merge trunk version 180276 into gupc branch.
1345 Incorporates fix for PR bootstrap/50709.
1347 2011-10-20 Gary Funck <gary@intrepid.com>
1349 Merge trunk version 180246 into gupc branch.
1351 2011-10-19 Gary Funck <gary@intrepid.com>
1353 Merge trunk version 180233 into gupc branch.
1354 Incorporates fix for PR debug/49310 (var tracking).
1356 2011-10-17 Gary Funck <gary@intrepid.com>
1358 Fix a regression caused by the previous commit.
1359 * upc/upc-genericize.c (upc_genericize_walk):
1360 Renamed from: upc_genericize_stmt.
1361 (upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
1362 re-walk the tree after simplification, by calling
1363 upc_genericize_walk().
1364 (upc_genericize_array_ref): expand the newly constructed
1365 indirect reference by calling upc_genericize_indirect_ref().
1367 2011-10-11 Nenad Vukicevic <nenad@intrepid.com>
1369 * testsuite/lib/upc-dg.exp: Limit number of torture runs to
1370 only four (O0 static/dynamic, O3 static/dynamic).
1371 Detect -fupc-threads-0 as an option for dynamic threads
1372 compile environment.
1374 2011-10-10 Gary Funck <gary@intrepid.com>
1376 * tree.c (check_qualified_type, check_aligned_type):
1377 Call tree_int_cst_equal() to compare UPC blocking factors
1378 if the corresponding tree pointers are not equal.
1379 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
1381 2011-10-10 Gary Funck <gary@intrepid.com>
1383 * upc/upc-genericize.c (upc_simplify_shared_ref): When simplifying
1384 the base address always convert to (shared [] char *).
1385 This ensures that &a[i].field1 ends up with the required
1386 zero block size, for example.
1388 2011-10-07 Nenad Vukicevic <nenad@intrepid.com>
1390 Add configuration checks for struct/packed builds so we can
1391 use upc_struct_pts/upc_packed_pts selectors in the testsuite.
1392 * testsuite/lib/target-supports.exp
1393 (check_effective_target_upc_struct_pts): New.
1394 (check_effective_target_upc_packed_pts): New.
1396 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
1398 Add to FLAGS the flags needed to disable inlining of
1399 UPC run-time access routines.
1400 * testsuite/lib/target-supports.exp
1401 (add_options_for_upc_library_calls): New.
1403 2011-09-15 Gary Funck <gary@intrepid.com>
1405 Fix ICE involving shared bit field accesses.
1406 * tree.c (build3_stat): Propagate TEEE_SHARED()
1407 and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1409 2011-09-13 Gary Funck <gary@intrepid.com>
1411 Merge trunk version 178795 into gupc branch.
1412 Incorporates fix to PR bootstrap/50010 for x86-32.
1414 2011-09-08 Gary Funck <gary@intrepid.com>
1416 Merge trunk version 178557 into gupc branch.
1418 2011-09-07 Gary Funck <gary@intrepid.com>
1420 Ensure that UPC pointer-to-shared type alignment is
1421 propagated to the final type. Revert to long-standing
1422 alignment policy: twice the size of a "C" pointer.
1423 * tree.c (build_pointer_type): Propagate the alignment
1424 of the UPC pointer-to-shared representation type
1425 into the newly built pointer type.
1427 2011-08-30 Gary Funck <gary@intrepid.com>
1429 * tree.h (check_qualified_type): Change 'const_tree'
1430 argument types back to 'tree' to avoid complaints
1431 of assignment drops qualifiers for invocations of the
1432 newly implemented TYPE_BLOCK_FACTOR() macro, which
1433 invokes hash functions with 'tree' pointer values that
1434 are not const qualified.
1435 * tree.c (check_qualified_type, check_aligned_type): Ditto.
1436 * c-typeck.c (comptypes_internal): Ditto.
1438 2011-08-29 Gary Funck <gary@intrepid.com>
1440 Fixes for regressions noted running "make check"
1442 * fold-const.c (fold_unary_loc): Execute UPC-specific
1443 checks for a cast-of-a-cast, only if one of the
1444 operands is a UPC pointer-to-shared value.
1445 * opts.c (print_specific_help): Fix a comparison
1446 in an assert that checks that there are enough
1447 bits reserved for the number of languages defined
1450 2011-08-29 Gary Funck <gary@intrepid.com>
1452 Implement a hash table to record UPC block factors.
1453 * c-family/stub-upc.c (upc_block_factor_insert,
1454 upc_block_factor_lookup): New dummy stub procedures.
1455 * c-family/c-common.c (c_sizeof_or_alignof_type):
1456 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1457 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1458 to copy (hashed) UPC blocking factor.
1459 (set_type_quals): Likewise.
1460 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1461 TYPE_HAS_THREADS_FACTOR().
1462 (type_common.block_factor): Delete.
1463 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1464 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1465 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1466 UPC blocking factors greater than one.
1467 * dwarf2out.c (modified_type_die): Re-implement
1468 logic that records UPC blocking factor in the generated
1469 DWARF2 debugging information.
1470 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1471 TYPE_HAS_THREADS_FACTOR().
1472 * c-decl.c (finish_decl, grokdeclarator):
1473 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1474 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1475 used by UPC, and print UPC-specific information.
1477 2011-08-28 Gary Funck <gary@intrepid.com>
1479 Re-work the type machinery to fully support and to unify support
1480 for the UPC layout qualifier (blocking factor).
1481 * c-family/stub-upc.c (upc_set_block_factor): Delete.
1482 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1483 and update prototype.
1484 * c-family/c-common.c (complete_array_type): call newly
1485 defined c_build_qualified_type_1() instead of
1486 upc_set_block_factor().
1487 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1488 upc_apply_layout_qualifier() and update prototype.
1489 (upc_set_block_factor): Delete prototype.
1490 * c-family/c-common.h (c_build_qualified_type): redefine
1491 as a pre-processor macro that invokes c_build_qualified_type_1()
1492 with a null UPC layout qualifier.
1493 (c_build_qualified_type_1): New. Add layout qualifier argument
1494 to old c_build_qualified_type() prototype.
1495 * tree.c (set_type_quals, check_qualified_type):
1496 Add layout qualifier as argument.
1497 (check_aligned_type): Add check for UPC block factor equality.
1498 (get_qualified_type_1): Rename from get_qualified_type() and
1499 add layout qualifier as argument.
1500 (build_qualified_type_1): Rename from build_qualified_type() and
1501 add layout qualifier as argument.
1502 * tree.h (check_qualified_type): Add layout qualifier as argument
1504 (get_qualified_type): Re-define as a as a pre-processor macro
1505 that invokes get_qualified_type_1() with a null
1506 UPC layout qualifier.
1507 (get_qualified_type_1): Rename from get_qualified_type() and
1508 add layout qualifier as argument.
1509 * cp/tree.c (c_build_qualified_type_1): Rename from
1510 c_build_qualified_type() and add (unused) layout qualifier
1512 * c-decl.c (finish_decl): re-format long error messages.
1513 (grokdeclarator): Re-work the logic so that it calls
1514 upc_grok_layout_qualifier() to handle the UPC layout
1515 qualifier, if present.
1516 * c-typeck.c (qualify_type, common_pointer_type,
1517 build_component_ref): Re-work the logic so that it calls
1518 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1520 (c_build_qualified_type_1): Rename from c_build_qualified_type()
1521 and add layout qualifier argument.
1522 * print_tree.c (print_node): Re-format a long line.
1524 2011-08-26 Gary Funck <gary@intrepid.com>
1526 Merge trunk version 177949 into gupc branch.
1527 * c-family/c-common.h (enum rid): Bump the number of type modifiers
1529 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1530 to add new rliterals column value.
1532 2011-08-26 Gary Funck <gary@intrepid.com>
1534 * convert.c (convert_to_integer): Fix the check for the
1535 difference between two UPC pointers-to-shared values.
1537 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
1539 * configure.ac: Fix the name for --with-upc-pts-packed-bits
1540 option. Support --with-upc-packed-bits as deprecated. Fix the code to
1541 correctly check packed bits.
1542 * configure: Re-generate.
1544 2011-08-16 Gary Funck <gary@intrepid.com>
1546 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1547 the barrier id expression is not an integer expression.
1549 2011-08-12 Gary Funck <gary@intrepid.com>
1551 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1553 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1554 Set mode of UPC pointer-to-shared rep. to an
1555 integral mode of size at least as large as the
1556 size of the representation's struct type.
1558 2011-08-12 Gary Funck <gary@intrepid.com>
1560 Rework/simplify the UPC genericize pass.
1561 * c-family/stub-upc.c (upc_apply_layout_qualifier,
1562 upc_build_pointer_type): New.
1563 (upc_set_block_factor): Adjust to new calling sequence.
1564 (upc_build_shared_var_addr): Delete.
1565 * c-family/c-common.c (complete_array_type): Adjust call
1566 to upc_set_block_factor().
1567 * c-family/c-upc.h (upc_apply_layout_qualifier,
1568 upc_build_pointer_type): New.
1569 (upc_build_shared_var_addr): Delete.
1570 (upc_set_block_factor): Adjust to new calling sequence.
1571 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1572 * c-decl.c (grokdeclarator): Call newly defined
1573 upc_apply_layout_qualifier() instead of upc_set_block_factor().
1574 * c-decl.c (grokdeclarator): Split long UPC-related error
1575 messages into two lines.
1576 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1577 directly. Revert that change to trunk. (upc_genericize() will
1578 handle lowering the expressions that take the address of a
1580 * config/i386/i386.c (ix86_promote_function_mode): For UPC
1581 pointers-to-shared, return the type mode of the UPC pointer-to-shared
1582 representation type.
1584 2011-08-10 Gary Funck <gary@intrepid.com>
1586 Implement additional fixes for recent merge with trunk.
1587 * explow.c (promote_mode): Do not attempt to promote
1588 the mode for UPC pointer-to-shared types.
1589 * config/i386/i386.c (function_value_64): Ditto.
1591 2011-08-07 Gary Funck <gary@intrepid.com>
1593 Merge trunk version 177548 into gupc branch.
1594 * config/i386/i386.c (ix86_promote_function_mode):
1595 Do not promote UPC pointers-to-shared to Pmode.
1596 * c-family/c-ommon.c (pointer_int_sum):
1597 Also check the pointer operand, rather than just
1598 its type, when making the decision to derive
1599 the equivalent unshared type.
1600 * tree.c (build2_stat): If the type of the result
1601 passed in as an argument is a UPC shared type,
1602 derive the unshared equivalent when calculating
1603 the result type of the node.
1605 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
1607 * config/darwin.c: Disable var_tracking option
1608 on -O0 as it is supposed to run only when optimization
1609 is applied. See GCC bug 49743.
1611 2011-07-06 Gary Funck <gary@intrepid.com>
1613 Re-implement the pass that lowers trees generated by
1614 the UPC front-end into GENERIC. Previously this was
1615 done within the gimplification framework, but this
1616 required that gimplification be run before inlining
1617 and various other passes, which did not fit in well
1618 with the current design of the middle-end passes.
1619 Now, the lowering is done by a newly defined language
1620 specific genericize hook. With this change, we are
1621 are able to undo some extensions made to the gimplify
1622 logic, and thus can revert several files to trunk.
1623 * c-decl.c: Add a check for UPC deprecated names which
1624 may appear as undefined function names.
1625 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1626 LTI_upc_getaddr): Remove definitions of unused UPC
1627 library function names. These were defined back when
1628 the libfunc interface was used to call these routines.
1629 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1630 in UPC lowering (genericize) pass.
1631 * langhooks.h (gimplify_expr): Revert to trunk's definition.
1632 (instrument_func): Delete this hook. Now handled in
1634 * tree-pass.h: Revert to trunk.
1635 * c-typeck.c (build_unary_op): Adjust reference to
1636 upc_genericize() in a comment.
1637 * gimplify.c (create_tmp_var_raw): Delete logic that
1638 was converting UPC shared types into unshared types
1639 to be used for temporaries. Now handled in upc_genericize().
1640 Replace with an assertion check.
1641 (prepare_gimple_addressable): Revert to trunk's definition.
1642 No longer needed as an externally called function.
1643 (flag_instrument_functions_exclude_p): Re-define as
1644 an externally called function.
1645 (gimplify_function_tree): Delete code that implemented
1646 call to UPC's language specific function instrumentation hook.
1647 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1648 (prepare_gimple_addressable): Delete extern definition;
1649 revert to trunk's definition.
1650 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1651 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1652 * c-family/c-gimplify.c: Revert to trunk.
1653 * cp/cp-gimplify.c: Revert to trunk.
1654 * cp/cp-tree.h: Revert to trunk.
1655 * explow.c: Revert to trunk.
1656 * langhooks.c: Revert to trunk.
1657 * libfuncs.h: Revert to trunk.
1658 * objc/objc-act.c: Revert to trunk.
1660 2011-06-30 Gary Funck <gary@intrepid.com>
1662 * c-family/c.opt: Bring options definitions up-to-date
1663 with respect to changes made in the trunk.
1665 2011-06-29 Gary Funck <gary@intrepid.com>
1667 Merge trunk version 175584 into gupc branch.
1669 2011-06-13 Gary Funck <gary@intrepid.com>
1672 * include/cpplib.h (enum c_lang):
1673 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1674 This keeps all the "C" variants together.
1675 * init.c (lang_defaults): Add an entry for UPC.
1677 2011-06-09 Gary Funck <gary@intrepid.com>
1679 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1680 a 32-bit target, the size expression overflowed, the result was
1681 error_mark_node, and an ICE was triggered on an attempt to evaluate
1682 C_TYPE_VARIABLE_SIZE() on the error node.
1683 (upc_blocksizeof_expr, upc_blocksizeof_type,
1684 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1685 Make similar changes to avoid further processing of error_mark_node.
1687 2011-06-07 Gary Funck <gary@intrepid.com>
1689 * sel-sched.c (move_op): Incorporate the following
1690 patch to eliminate ICE at -O3 on IA64/Altix.
1692 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
1694 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1695 code_motion_path_driver returned 0 or 1.
1696 (sel_region_finish): Clear h_d_i_d.
1698 2011-06-02 Gary Funck <gary@intrepid.com>
1700 Merge trunk version 174558 into gupc branch.
1702 2011-05-30 Gary Funck <gary@intrepid.com>
1704 * configure.ac: Make the default order of the virtual
1705 address field in a UPC pointer-to-shared to be "first".
1706 This reverts to the previous setting, and is a short term
1707 measure to work around a bug found on the IA64,
1708 where vaddr=last led to incorrect code generation.
1709 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1710 in AC_DEFINE(), to agree with recent changes in files
1711 that reference this define.
1712 configure, config.in: Regenerate.
1714 2011-05-26 Gary Funck <gary@intrepid.com>
1716 * configure.ac: Fix typo when referring to $upc_vaddr_order.
1717 configure: Regenerate.
1718 * ../fixincludes/fixincl.x: Revert to trunk.
1719 This file is auto-generated, and should not be merged.
1721 2011-05-18 Gary Funck <gary@intrepid.com>
1723 Merge trunk version 173845 into gupc branch.
1725 2011-05-17 Gary Funck <gary@intrepid.com>
1727 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1728 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1729 * c-family/c-pragma.c: Remove conditional compilation
1730 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1731 Test 'compiling_upc' when compiling to determine if
1732 the "upc" and "pupc" pragmas should be registered.
1733 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1734 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1735 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1736 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1737 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1738 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1739 Move these target-dependent definitions from config/upc-conf.h
1741 * configure.ac: Improve the logic for UPC-related options.
1742 Delete references to pre-processor definitions that have
1743 been moved to "upc/upc-pts.h".
1744 * configure, config.in: Regenerate.
1745 * Makefile.in (UPC_PTS_REP): Remove definition and revert
1746 to trunk. This substitution variable was used to
1747 configure the representation-specific versions of
1748 the tree rewrites that operate on UPC pointer-to-shared
1750 * c-parser.c (c_parser_upc_forall_statement): Remove
1751 reference to UPC_FORALL_DEPTH_NAME, and call
1752 newly defined upc_rts_forall_depth_var() instead.
1753 * config/upc-config.h: Delete. Various definitions
1754 moved to "upc/upc-rts-names.h", "defaults.h", and
1756 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1757 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1758 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1759 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1760 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1761 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1762 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1763 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1764 New. Document UPC target macros.
1765 doc/tm.texi: Regenerate.
1767 2011-05-07 Gary Funck <gary@intrepid.com>
1769 * ../configure.ac: Disable build of libupc
1770 on non POSIX hosted systems. Use AS_HELP_STRING
1771 to define messages. Remove 'word-pair' as a
1772 possible --with-upc-pts UPC pointer-to-shared
1774 * ../configure: Regenerate.
1775 * configure.ac: Use AS_HELP_STRING to define messages.
1776 Remove 'word-pair' as a possible --with-upc-pts
1777 UPC pointer-to-shared representation.
1778 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1779 (UPC_MAX_BLOCK_SIZE): Correct the default value.
1780 * configure: Regenerate.
1781 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1783 * ChangeLog.upc: Fix some typos.
1785 2011-05-07 Gary Funck <gary@intrepid.com>
1787 * ../maintainer-scripts/gcc_release: Add "upc"
1788 as one of the released languages.
1790 2011-05-06 Gary Funck <gary@intrepid.com>
1792 Eliminate compilation warnings, by fixing
1793 #include's and updating function prototypes.
1794 * c-family/c-cppbuiltin.c: Include c-upc.h.
1795 * optabs.c (gen_libfunc): Change type of 'suffix'
1796 parameter to conform with prototype.
1797 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1798 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1800 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1802 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1803 argument values to cp_gimplify_expr.
1804 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1805 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
1806 pre-processor definitions that are no longer
1807 needed to build the 'upc' command (upc-cmd.c)
1808 because the linker specs. defined in libupc
1809 take care of linking in the needed libraries.
1810 * c-parser.c (c_parser_upc_forall_statement):
1811 initialize affinity_loc to avoid "maybe unused" warning.
1812 (c_parser_upc_sync_statement): Remove un-needed
1813 'ret' variable. Cast return value from
1814 'upc_build_sync_stmt' to 'void' to avoid
1815 compile-time warning.
1816 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1817 integer constant, not a string. Range is restricted
1818 to maximum positive 32-bit integer (2+ billion) to
1819 fit in with the use of 'int' in the front-end's
1820 switch handling logic.
1822 2011-05-06 Gary Funck <gary@intrepid.com>
1824 Upgrade c-family source files to conform with modularity
1825 improvements. Mainly, remove #include of c-tree.h in files
1826 under c-family, and define a new UPC-specific #include file,
1827 c-upc.h, and use it.
1828 * c-family/stub-upc.c: Remove #include of c-tree.h and
1829 upc/upc-act.h. Replace with #include of c-common.h
1831 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1832 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1833 upc_localsizeof_expr, upc_localsizeof_type,
1834 upc_shared_type_p): Delete.
1835 * c-family/c-opts.c: Add #include of c-upc.h
1836 * c-family/c-common.c: Remove #include of c-tree.h and
1837 add #include of c-upc.h.
1838 * c-family/c-upc.h: New. Define API for UPC-specific functions
1839 (mostly implemented in upc/upc-act.c).
1840 * c-family/c-common.h (upc_cpp_builtins,
1841 upc_write_global_declarations): Remove extern definitions.
1842 * c-family/c-pragma.c: Remove #include of c-tree.h.
1843 Add #include of c-upc.h.
1844 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
1846 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
1847 upc/upc-act.c, and define as a macro.
1848 (expand_affinity_test): Remove unused external definition.
1849 (build_upc_unshared_type): Add external definition.
1850 (upc_shared_type_p): Remove external definition.
1851 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1852 * dojump.c: Remove #include of c-tree.h.
1853 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1855 (count_upc_threads_refs, is_multiple_of_upc_threads,
1856 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1857 upc_build_shared_var_addr, upc_build_sync_stmt,
1858 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1859 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1860 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1861 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1862 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1863 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1864 set_upc_consistency_mode, get_upc_consistency_mode,
1865 push_upc_consistency_mode, pop_upc_consistency_mode,
1867 Move external definitions to c-family/c-upc.h.
1868 (upc_blocksizeof_type, upc_localsizeof_type,
1869 upc_elemsizeof_type): Remove external definitions;
1870 these functions were moved to c-parser.c.
1871 * c-decl.c: Add #include of c-upc.h.
1872 * c-typeck.c: Add #include of c-upc.h.
1873 * c-convert.c: Add #include of c-upc.h.
1874 * ChangeLog.upc: Fix typo.
1875 * Makefile.in: Add references to c-family/c-upc.h, everywhere
1876 there is a reference to c-family/c-objc.h.
1877 Remove extraneous reference to upc-act.h.
1878 * c-parser.c: Add #include of c-upc.h.
1879 (upc_blocksizeof_expr, upc_blocksizeof_type,
1880 upc_elemsizeof_expr, upc_elemsizeof_type,
1881 upc_localsizeof_expr, upc_localsizeof_type):
1882 Move from upc/upc-act.c.
1883 * tree.c (build_upc_unshared_type): New.
1884 Move upc_get_unshared_type from upc/upc-act.c and rename
1885 to build_upc_unshared_type.
1886 c-family/c-common.c (pointer_int_sum): refer to renamed
1887 build_upc_unshared_type function.
1888 c-convert.c (convert): Ditto.
1889 convert.c (convert_to_pointer): Ditto.
1890 c-typeck.c (build_unary_op, build_modify_expr,
1891 really_start_incremental_init): Ditto.
1892 gimplify.c (create_tmp_var_raw): Ditto.
1893 tree.c (build1_stat): Ditto.
1894 tree.h (upc_get_unshared_type): Rename to
1895 build_upc_unshared_type.
1897 2011-05-06 Gary Funck <gary@intrepid.com>
1899 Merge trunk version 173471 into gupc branch.
1901 2011-05-05 Gary Funck <gary@intrepid.com>
1903 Make changes that bring the GUPC branch more closely in sync.
1904 with the GCC trunk. Revert any fixes that are not UPC-specific.
1905 Remove gratuitous re-formatting.
1906 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1907 This file should have been removed in a previous merge
1909 * ../configure.ac: Remove Cray Catamount/CNL support.
1910 * ../configure: Regenerate.
1911 * ../config.sub: Remove Cray Catamount/CNL support.
1912 * config.gcc: Remove Cray Catamount/CNL support.
1913 * ../maintainer-scripts/gcc_release: Revert to trunk.
1914 * c-family/c-common.h: Define parse_optimize_options. Its definition
1915 was missed in a previous merge with the trunk.
1916 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1918 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1919 in addition to ARRAY_TYPE.
1920 * c-typeck.c: Remove an extra newline character.
1921 * varasm.c: Revert a fix that improved an error message
1922 when TLS common data is unimplemented.
1923 * varasm.c: Revert a gcc_assert that had been added which
1924 checked for a null DECL_SIZE_UNIT field.
1925 * emultls.c: Revert to trunk. Remove possible fix.
1926 * Makefile.in: Revert extra blank line that is present
1927 in the trunk version.
1928 * Makefile.in: Revert a fix that handled long shell
1929 argument lists for plugin headers.
1930 * config/ia64/ia64.opt: Revert an option setting
1931 that increased the default TLS address range.
1932 * config/ia64/crtbegin.asm: Revert to trunk.
1933 Removes an extra newline character.
1934 * ChangeLog.upc: Spell check.
1936 2011-05-03 Gary Funck <gary@intrepid.com>
1938 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1939 (c_apply_type_quals_to_decl): Ditto.
1940 * c-family/c-common.h: Ditto.
1942 * c-decl.c (merge_decls): Ditto.
1943 * c-typeck.c (qualify_type, default_conversion,
1944 build_component_ref, build_unary_op,
1945 c_build_qualified_type): Ditto.
1946 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1948 2011-04-29 Gary Funck <gary@intrepid.com>
1950 * c-decl.c (finish_decl): Improve error diagnostics.
1951 (grokdeclarator): Ditto.
1952 * c-typeck.c (build_c_cast): Improve error diagnostics.
1953 (convert_for_assignment): Ditto.
1954 (build_binary_op): Ditto.
1955 * c-parser.c (c_parser_upc_forall_statement):
1956 Improve error diagnostics.
1957 * convert.c (convert_to_integer): Improve error diagnostics.
1959 2011-04-24 Gary Funck <gary@intrepid.com>
1961 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1962 occurred if there is an error in the barrier id
1963 expression. Map error_mark_node into NULL.
1965 2011-04-22 Gary Funck <gary@intrepid.com>
1967 Merge trunk version 172873 into gupc branch.
1969 2011-04-19 Gary Funck <gary@intrepid.com>
1971 Merge trunk version 172359 into gupc branch.
1973 2011-04-14 Gary Funck <gary@intrepid.com>
1975 * c-family/c.opt: Add UPC as a valid language for various
1976 switches where it is valid for "C", that were not updated
1977 in previous merges with trunk.
1979 2011-04-13 Gary Funck <gary@intrepid.com>
1981 * c-family/c.opt (fupc-pre-include): New option definition.
1982 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1983 -fno-upc-pre-include is asserted.
1985 2011-04-07 Gary Funck <gary@intrepid.com>
1987 Merge trunk version 172158 into gupc branch.
1988 to bring in the following fix.
1990 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
1993 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1994 if old and new states differ.
1996 2011-04-06 Gary Funck <gary@intrepid.com>
1998 Merge trunk version 171966 into gupc branch.
2000 2011-04-01 Gary Funck <gary@intrepid.com>
2002 * tree.h (tree_base): Move UPC flag bits into bit fields
2003 located just before spare bits. Decrement spare bits.
2004 Rename 'shared_flag' -> 'upc_shared_flag',
2005 'relaxed_flag' -> 'upc_relaxed_flag',
2006 'strict_flag' -> 'upc_strict_flag, and adjust macros
2007 that reference them accordingly.
2009 2011-04-01 Gary Funck <gary@intrepid.com>
2011 * c-decl.c (grokdeclarator): Fix formatting of
2012 code that sets UPC block size on scalars.
2014 2011-04-01 Gary Funck <gary@intrepid.com>
2016 * c-decl.c (grokdeclarator): Revert use of white space
2017 to match the trunk (to rationalize diffs).
2018 * c-typeck.c (convert_for_assignment): Ditto.
2019 * tree-ssa.c (useless_type_conversion_p): Ditto.
2021 2011-03-23 Gary Funck <gary@intrepid.com>
2023 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2024 the GCC 4.6 release branch.
2026 2011-03-21 Gary Funck <gary@intrepid.com>
2028 Merge trunk version 171202 into gupc branch.
2030 2011-03-20 Gary Funck <gary@intrepid.com>
2032 * varasm.c: Call error() directly with a format specifier,
2033 rather than using sprintf() to format the message.
2034 This should make it easier to internationalize UPC's error messages.
2036 2011-03-20 Gary Funck <gary@intrepid.com>
2038 * configure.ac: Fix the check for gnu ld when enabling
2039 UPC link script support.
2040 configure: Regenerate (also picks up changes from previous
2043 2011-03-20 Gary Funck <gary@intrepid.com>
2045 Move UPC start files, end files, and linker specs.
2046 into libupc. This reduces the impact on common GCC
2047 configuration files, and ensures that these UPC-specific
2048 components are only built when the UPC language dialect is selected.
2049 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2050 linker specs. Fix typo in -fupc-debug message.
2051 * config/upc-conf.h, config/darwin.h: Move defines for
2052 UPC-related section begins/ends into libupc/config/default/
2054 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2055 UPC-related linker compiler specifications,
2056 accessed via %:include().
2057 * configure.ac, configure: Remove logic related to building
2058 upc-crtbegin/end. Remove config. tests for numa and cpu
2059 affinity (previously used by the 'upc' driver); these
2060 settings are now propagated by target-specific compiler
2061 specs. built by libupc. Regenerate autoconf.
2062 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2063 linker compiler specifications, accessed via %:include().
2064 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2066 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2067 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2068 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2069 config/ia64/linux.h, config/mips/t-iris,
2070 config/mips/iris6.h: Revert to trunk version 167307.
2072 * configure, configure.ac, config.host, Makefile.in:
2073 Revert to trunk version 167307.
2075 2011-02-23 Gary Funck <gary@intrepid.com>
2077 * c-decl.c (undeclared_variable): fix typo. Inadvertently
2078 removed negation on following 'if'.
2080 2011-02-22 Gary Funck <gary@intrepid.com>
2082 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2083 to check for the usage of certain deprecated UPC keywords.
2084 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2085 * c-tree.h (undeclared_variable): Define prototype.
2087 2011-02-12 Gary Funck <gary@intrepid.com>
2089 * c-typeck.c: (build_c_cast, convert_for_assignment)
2090 Diagnose an attempt to convert from an integer to
2091 a pointer-to-shared as an error. Also, fix various
2092 error messages so that they use the preferred term
2093 pointer-to-shared instead of "shared pointer".
2095 2011-02-07 Gary Funck <gary@intrepid.com>
2097 * c-typeck.c: (convert_for_assignment)
2098 Fix typo. in error message.
2100 2011-01-23 Gary Funck <gary@intrepid.com>
2102 * c-typeck.c: (c_build_qualified_type)
2103 derive UPC block size by calling upc_get_block_size(),
2104 to ensure that the element type of an array of an array
2105 is derived correctly.
2107 2010-12-29 Gary Funck <gary@intrepid.com>
2109 Merge trunk version 168314 into gupc branch.
2111 2010-12-15 Gary Funck <gary@intrepid.com>
2113 Merge trunk version 167307 into gupc branch.
2115 2010-10-19 Gary Funck <gary@intrepid.com>
2117 * c-typeck.c: Fix typo in previous fix
2118 which led to a mis-compare for equal block sizes.
2120 2010-10-18 Gary Funck <gary@intrepid.com>
2122 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2123 diagnosed as an error
2124 The conversion from any type (shared or not) to
2125 a shared type is likely either meaningless or an error. This update
2126 makes any conversion to a shared type, an error.
2128 2010-10-18 Gary Funck <gary@intrepid.com>
2130 * c-typeck.c: Fix bug: passing int to shared pointer arg.
2131 generates spurious warning
2132 Add a #define procedure that does the same thing as
2133 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
2134 this procedure to diagnose passing an integer value to a
2135 pointer-to-shared as an error.
2137 2010-10-18 Gary Funck <gary@intrepid.com>
2139 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2140 matching routine declaration.
2141 When checking for type compatibility, shared qualified types must
2142 have the same block factor. This check was missing from
2143 comptypes_internal(). This update adds the check for blocking
2146 2010-10-17 Gary Funck <gary@intrepid.com>
2148 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2150 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2152 2010-10-17 Gary Funck <gary@intrepid.com>
2154 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2155 45869 - [4.5/4.6 Regression] type mismatch in shift expression
2156 produces ice with -O3 and -m32.
2157 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2159 2010-10-17 Gary Funck <gary@intrepid.com>
2161 * c-common.c: Diagnose the application of the various "*sizeof"
2162 operations on generic pointer-to-shared as a compilation error.
2164 2010-10-17 Gary Funck <gary@intrepid.com>
2166 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2167 message regarding a function parameter being declared with a shared
2169 The parameter's 'name' value is not defined at this point, and
2170 cannot be used in the error message. This update removes the
2171 reference to 'name', and eliminates the segfault.
2173 2010-10-16 Gary Funck <gary@intrepid.com>
2175 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2176 The gcc/Makefile.in rules for install-plugin had to be re-written to
2177 break up a long list of header files that exceeded the command line
2178 limitation imposed by Irix.
2179 Access functions for TFmode types had to be implemented.
2180 Apparently, this is the mode used for the SGI/MIPS port to represent
2183 2010-10-14 Gary Funck <gary@intrepid.com>
2185 * c-decl.c: Fix bug: Multiple equal blocking factors specified
2186 via typedef chain should not be diagnosed as an error.
2187 If the block size that is given by the typedef is equal to the block
2188 size given explicitly in the variable declaration, then do not
2189 complain. The easiest way to make this check was to create a
2190 temporary type that is a clone of the element type and then set its
2191 block size using the given layout qualifier. Then compare the block
2192 size of the temporary (the declaration) to the block size specified
2193 in the typedef. This complexity is needed, because the '[*]' block
2194 size needs to be calculated, and the '[]' needs to be mapped into a
2197 2010-10-10 Gary Funck <gary@intrepid.com>
2199 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2201 The compiler properly detected the presence of two or more layout
2202 qualifiers as an error, but then hit an assertion check, because the
2203 code that followed the error expected to see a qualifier and not a
2204 layout specifier. The fix is simple: just return immediately after
2205 detecting the error.
2207 2010-10-10 Gary Funck <gary@intrepid.com>
2209 * c-decl.c: Improve error diagnostics for various cases of UPC
2210 shared array type declarations.
2211 Add the check for this error: "In the dynamic translation
2212 environment, THREADS may not appear in declarations of shared arrays
2213 with indefinite block size". Also, fix up a few of the other
2214 related error diagnostics.
2216 2010-10-09 Gary Funck <gary@intrepid.com>
2218 * c-common.c: Fix bug: segfault on incomplete array definition.
2219 This turned out to be a bit complicated. The logic in
2220 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2221 the THREADS identifier in the case where the blocking factor has
2222 been set to indefinite ([]). This can happen when indefinite array
2223 declarations are processed for shared arrays. At that time, the
2224 file scope has been closed and THREADS is no longer in scope. Some
2225 more work is needed on upc_lang_layout_decl(). It has some
2226 duplication, and notably duplicates the two branches of the if
2227 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2228 caller of this routine (layout_decl()).
2229 The method of forcing a layout qualifier of [] in the indefinite
2230 declaration handler is odd a well. The code that just does the
2231 setting of the block factor, needs to moved into its own routine
2232 that doesn't depend upon a declspec for '[]' to be passed in, just
2233 in order to set the blocking factor to some value (in this case, 0).
2234 Also, the logic for how that shared type is constructed is strange.
2235 First the type with 0 blocking factor is set. Then the shared
2236 qualifier is removed from the type, and then added back later. The
2237 intermediate type has a blocking factor set, but it has no shared
2238 qualifier. Fixing this will require some thought. It is tempting
2239 just to make indefinite shared arrays an error, rather than forcing
2240 the dimension to be '1'.
2241 This likely fixes a serious error in the previous update to
2242 upc_lang_layout_decl(), where it didn't have the logic to set
2243 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
2244 the previous update would fail on many tests.
2246 2010-10-09 Gary Funck <gary@intrepid.com>
2248 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2249 (decl) is null, which can happen if some layout error occurred
2252 2010-10-09 Gary Funck <gary@intrepid.com>
2254 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2255 "variable-sized" when compiled in dynamic threads.
2256 This long-standing bug is easily fixed. Just check
2257 for the situation that the non-constant sized type is shared and
2258 that it does not have a dimension that references a multiple of
2259 threads. If this criteria is met, then issue a meaningful
2262 2010-10-01 Gary Funck <gary@intrepid.com>
2264 * configure, configure.ac: Update manual page, and bug reporting
2265 URL. Update "man" page to reflect debugging switches.
2266 Also, some general clean up. Change the bug reporting
2267 URL to point to gccupc.org.
2269 2010-09-27 Gary Funck <gary@intrepid.com>
2271 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2272 the UPC forall depth count variable is not found.
2273 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2274 The compiler will generate code that references this variable in
2275 order to implement nested upc_forall semantics. If there is a
2276 compiler build or install problem, this variable may not be found.
2277 In this case, terminate with an internal_error().
2279 2010-09-26 Gary Funck <gary@intrepid.com>
2281 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2282 mis-diagnosed as syntax error.
2283 Fix a failure exhibited by the Berkeley test case,
2284 bug873a.upc, which has the code:
2286 upc_forall (;;;d) {...} The compiler did not properly handle
2287 the empty "condition" clause, and did not recover well when it was
2288 determined that the use of a double value, "d" above, was neither a
2289 pointer-to-shared nor an integer expression. The update implements a
2290 fix for both issues.
2291 See also: gcc/c-parser.c gcc/upc/upc-act.c
2293 2010-09-23 Gary Funck <gary@intrepid.com>
2295 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2296 incorporated into the referencing type.
2297 This was semi-fixed a few times before. This update fixes a few
2298 more places where the layout qualifier wasn't being propagated
2299 through typedef's properly. What made this a bit tricky is shown in
2300 the example cited in the bug report:
2301 typedef shared [5] int A_t; A_t A[5*THREADS];
2302 In the typedef, the blocksize is being applied to a shared *scalar*,
2303 and the code was applying the blocksize only to arrays. This update
2304 handles shared scalars correctly.
2306 2010-09-22 Gary Funck <gary@intrepid.com>
2308 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2309 upc_forall() semantics are not implemented
2310 The checkforall test in the Berkeley harness test suite indicated
2311 that GCC/UPC was not properly implementing nested upc_forall
2312 semantics. Nested upc_forall statements (both statically or
2313 dynamically nested) must implement their affinity clause as if it
2314 were "continue"; thus all steps in the loop must execute without
2315 regard for affinity. To implement these semantics a global depth
2316 counter, __upc_forall_depth, is maintained by the generated code
2317 that implements upc_forall.
2318 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2319 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2320 libupc/include/upc.h libupc/smp/upc_main.c
2322 2010-09-19 Gary Funck <gary@intrepid.com>
2324 * c-decl.c: c-decl.c: zero out the layout specifier, after
2325 processing an array type.
2326 Fix the previous fix, that moved the setting of the type's layout
2327 qualifier to the outside of the array type processing loop. What is
2328 missing from the fix is that the layout_qualifier variable needs to
2329 be cleared after setting the type's blocksize.
2331 2010-09-19 Gary Funck <gary@intrepid.com>
2333 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2334 given blocksize is greater than UPC_MAX_BLOCKSIZE.
2335 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2336 the actual maximum block size. Therefore, the message was correct,
2337 but the underlying value that was being checked was wrong. Change
2338 the values so that they agree with the actual implementation-defined
2341 2010-09-11 Gary Funck <gary@intrepid.com>
2343 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2344 multi-dimensional shared array with dynamic threads.
2345 This declaration caused an internal compiler error when compiled
2346 with dynamic threads:
2347 shared [*] int A[THREADS][16]; The bug was discovered when
2348 compiling the RTED_UPC test suite.
2349 The fix is to process layout qualifiers after the entire array type
2350 has been built. Otherwise, we try to calculate the blocksize on a
2351 shared array type that has not had its "size depends upon the value
2352 of THREADS" flag set.
2353 Also, added a test case.
2354 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2356 2010-07-11 Gary Funck <gary@intrepid.com>
2358 Fix a bug where a statement in c_build_qualified_type()
2359 in the trunk had been inadvertently deleted.
2360 This bug showed up in the IA64 port, because jmpbuf's
2361 on that architecture must be 16 byte aligned, and they were not.
2362 c-typeck.c (c_build_qualified_type): Revive the deleted line.
2364 2010-07-08 Gary Funck <gary@intrepid.com>
2366 Make changes so that other language compilers
2367 will build and bootstrap.
2368 * c-family/c-common.c (compiling_upc, flag_upc,
2369 flag_upc_instrument, flag_upc_instrument_functions,
2370 use_upc_dwarf2_extensions): Move to stub-upc.c and
2372 * c-family/c-common.h (use_upc_dwarf2_extensions,
2373 compiling_upc): Add extern definitions - needed
2374 to compile/build other language front ends.
2375 * c-family/c.opt: Fix the spelling of ObjC.
2376 It had been incorrectly spelled as Objc.
2377 * c-family/c.opt: Add UPC for the various switches
2378 that are valid for both C and ObjC.
2379 * c-fmaily/c-opts.c: Add CL_UPC to the list of
2380 supported options switches when compiling assembly
2382 * lto/lto-lang.c (use_upc_dwarf2_extensions,
2383 flag_upc_instrument, flag_upc_instrument_functions):
2384 Remove these definitions. They have been moved
2385 to c-family/stub-upc.c.
2386 * upc/ChangeLog: Move relevant entries
2388 * c-family/stub-upc.c (compiling_upc, flag_upc,
2389 flag_upc_instrument, flag_upc_instrument_functions,
2390 use_upc_dwarf2_extensions): Moved from c-common.c
2391 * upc/upc-lang.c (compiling_upc, flag_upc,
2392 flag_upc_instrument, flag_upc_instrument_functions,
2393 use_upc_dwarf2_extensions): Moved from c-common.c
2394 * objc/objc-act.c (objc_gimplify_expr): Add additional
2395 parameters to c_gimplify_expr() call, that are used
2396 by upc's tree rewrites.
2397 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2398 * gcc/cp/lex.c (init_reswords): If not compiling
2399 UPC, then mask off the UPC keywords.
2400 * cp/Make-lang.in (C_STUB_OBJS): Use this
2401 make macro to link with c-family/stub-objc.o
2402 and c-family/stub-upc.o.
2403 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2404 * java/Make-lang.in (C_STUB_OBJS): Likewise.
2405 * objc/Make-lang.in: Link with c-family/stub-upc.o
2406 to avoid undefined references.
2407 c-parser.c: Fix line indentation.
2408 * libcpp/include/cpplib.h: Remove CL_UPC from
2409 the list of language kinds accepted by the
2410 C preprocessor. This is not necessary because
2411 UPC is a derivative of C99, and does not need
2412 a different language kind.
2413 * c-fmaily/c-opts.c (c_common_handle_option):
2414 Call set_std_c99() when processing the
2415 "--lang upc" switch, instead of setting the
2416 language kind to CL_UPC.
2417 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2419 2010-07-03 Gary Funck <gary@intrepid.com>
2421 Merge trunk version 161517 into gupc branch.
2422 * gcc/stub-upc.c: Move to gcc/c-family/.
2423 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2424 Add 'unused' attributes to avoid "set, but
2425 not referenced" warnings.
2426 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2429 2010-03-01 Gary Funck <gary@intrepid.com>
2431 Create gupc branch from trunk version 157149.
2433 2011-10-04 Gary Funck <gary@intrepid.com>
2435 Merge trunk version 179421 into gupc branch.
2436 * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
2437 argument to the call to check_qualified_type().
2439 2011-09-22 Gary Funck <gary@intrepid.com>
2441 * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
2443 (dump_upc_type_quals): New.
2445 2011-09-22 Gary Funck <gary@intrepid.com>
2447 * upc/upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
2448 before calling TYPE_BLOCK_FACTOR(). This fits better with
2449 recent encoding of block factor values with a hash table.
2451 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
2453 Add to FLAGS the flags needed to disable inlining of
2454 UPC run-time access routines.
2455 * testsuite/lib/target-supports.exp
2456 (add_options_for_upc_library_calls): New.
2458 2011-09-15 Gary Funck <gary@intrepid.com>
2460 Fix ICE involving shared bit field accesses.
2461 * tree.c (build3_stat): Propagate TEEE_SHARED()
2462 TREE_STRICT() and TREE_RELAXED() flags, if applicable.
2464 2011-09-15 Gary Funck <gary@intrepid.com>
2466 Fix ICE involving shared bit field accesses.
2467 * upc/upc-genericize.c (upc_simplify_shared_ref): Improve
2468 "shared bit fields not yet implemented" error message
2469 by adding file/line number location.
2471 2011-09-13 Gary Funck <gary@intrepid.com>
2473 Merge trunk version 178795 into gupc branch.
2474 Incorporates fix to PR bootstrap/50010 for x86-32.
2476 2011-09-13 Gary Funck <gary@intrepid.com>
2478 * upc/upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
2479 * upc/upc-lang.c (upc_init_options): Ditto.
2480 * upc/upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
2481 upc_genericize_expr, upc_genericize_compound_expr): Ditto.
2482 * upc/upc-act.c (upc_parse_init, upc_build_pointer_type,
2483 upc_block_factor_insert, upc_pts_is_valid_p): Ditto.
2485 2011-09-08 Gary Funck <gary@intrepid.com>
2487 Merge trunk version 178557 into gupc branch.
2489 2011-09-07 Gary Funck <gary@intrepid.com>
2491 Ensure that UPC pointer-to-shared type alignment is
2492 propagated to the final type. Revert to long-standing
2493 alignment policy: twice the size of a "C" pointer.
2494 * tree.c (build_pointer_type): Propagate the alignment
2495 of the UPC pointer-to-shared representation type
2496 into the newly built pointer type.
2498 2011-09-07 Gary Funck <gary@intrepid.com>
2500 Ensure that UPC pointer-to-shared type alignment is
2501 propagated to the final type. Revert to long-standing
2502 alignment policy: twice the size of a "C" pointer.
2503 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
2504 shared pointers have twice the alignment of a pointer.
2505 * upc/upc-act.c (upc_cpp_builtins): Unconditionally emit
2506 the definition of __UPC_PTS_ALIGN__.
2508 2011-09-02 Gary Funck <gary@intrepid.com>
2510 Align UPC pointers-to-shared, only if the target enforces
2512 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Align a
2513 UPC pointer-to-shared type, only if the target requires
2515 * upc/upc-act.c (upc_cpp_builtins): Output pre-defined macro,
2516 __UPC_PTS_ALIGN__, only if the target requires strict alignment.
2518 2011-08-30 Gary Funck <gary@intrepid.com>
2520 * tree.h (check_qualified_type): Change 'const_tree'
2521 argument types back to 'tree' to avoid complaints
2522 of assignment drops qualifiers for invocations of the
2523 newly implemented TYPE_BLOCK_FACTOR() macro, which
2524 invokes hash functions with 'tree' pointer values that
2525 are not const qualified.
2526 * tree.c (check_qualified_type, check_aligned_type): Ditto.
2527 * c-typeck.c (comptypes_internal): Ditto.
2529 2011-08-29 Gary Funck <gary@intrepid.com>
2531 Fixes for regressions noted running "make check"
2533 * fold-const.c (fold_unary_loc): Execute UPC-specific
2534 checks for a cast-of-a-cast, only if one of the
2535 operands is a UPC pointer-to-shared value.
2536 * opts.c (print_specific_help): Fix a comparison
2537 in an assert that checks that there are enough
2538 bits reserved for the number of languages defined
2541 2011-08-29 Gary Funck <gary@intrepid.com>
2543 Implement a hash table to record UPC block factors.
2544 * c-family/stub-upc.c (upc_block_factor_insert,
2545 upc_block_factor_lookup): New dummy stub procedures.
2546 * c-family/c-common.c (c_sizeof_or_alignof_type):
2547 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2548 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
2549 to copy (hashed) UPC blocking factor.
2550 (set_type_quals): Likewise.
2551 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2552 TYPE_HAS_THREADS_FACTOR().
2553 (type_common.block_factor): Delete.
2554 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
2555 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
2556 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
2557 UPC blocking factors greater than one.
2558 * dwarf2out.c (modified_type_die): Re-implement
2559 logic that records UPC blocking factor in the generated
2560 DWARF2 debugging information.
2561 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2562 TYPE_HAS_THREADS_FACTOR().
2563 * c-decl.c (finish_decl, grokdeclarator):
2564 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2565 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
2566 used by UPC, and print UPC-specific information.
2568 2011-08-29 Gary Funck <gary@intrepid.com>
2570 Implement a hash table to record UPC block factors.
2571 * upc/upc-act.c (upc_block_factor_for_type): New garbage-collected
2573 (upc_lang_init, upc_finish): Move to end of source file.
2574 (upc_lang_init): create upc_block_factor_for_type hash table.
2575 (upc_block_factor_lookup, upc_block_factor_insert): New.
2576 (upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
2577 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2578 (upc_grok_layout_qualifier): convert blocking factor to sizetype
2579 before checking for equality to element type's blocking factor.
2581 2011-08-28 Gary Funck <gary@intrepid.com>
2583 Re-work the type machinery to fully support and to unify support
2584 for the UPC layout qualifier (blocking factor).
2585 * c-family/stub-upc.c (upc_set_block_factor): Delete.
2586 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
2587 and update prototype.
2588 * c-family/c-common.c (complete_array_type): call newly
2589 defined c_build_qualified_type_1() instead of
2590 upc_set_block_factor().
2591 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
2592 upc_apply_layout_qualifier() and update prototype.
2593 (upc_set_block_factor): Delete prototype.
2594 * c-family/c-common.h (c_build_qualified_type): redefine
2595 as a pre-processor macro that invokes c_build_qualified_type_1()
2596 with a null UPC layout qualifier.
2597 (c_build_qualified_type_1): New. Add layout qualifier argument
2598 to old c_build_qualified_type() prototype.
2599 * tree.c (set_type_quals, check_qualified_type):
2600 Add layout qualifier as argument.
2601 (check_aligned_type): Add check for UPC block factor equality.
2602 (get_qualified_type_1): Rename from get_qualified_type() and
2603 add layout qualifier as argument.
2604 (build_qualified_type_1): Rename from build_qualified_type() and
2605 add layout qualifier as argument.
2606 * tree.h (check_qualified_type): Add layout qualifier as argument
2608 (get_qualified_type): Re-define as a as a pre-processor macro
2609 that invokes get_qualified_type_1() with a null
2610 UPC layout qualifier.
2611 (get_qualified_type_1): Rename from get_qualified_type() and
2612 add layout qualifier as argument.
2613 * cp/tree.c (c_build_qualified_type_1): Rename from
2614 c_build_qualified_type() and add (unused) layout qualifier
2616 * c-decl.c (finish_decl): re-format long error messages.
2617 (grokdeclarator): Re-work the logic so that it calls
2618 upc_grok_layout_qualifier() to handle the UPC layout
2619 qualifier, if present.
2620 * c-typeck.c (qualify_type, common_pointer_type,
2621 build_component_ref): Re-work the logic so that it calls
2622 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
2624 (c_build_qualified_type_1): Rename from c_build_qualified_type()
2625 and add layout qualifier argument.
2626 * print_tree.c (print_node): Re-format a long line.
2628 2011-08-28 Gary Funck <gary@intrepid.com>
2630 Re-work the type machinery to fully support and to unify support
2631 for the UPC layout qualifier (blocking factor).
2632 * upc/upc-genericize.c (upc_simplify_shared_ref): Call
2633 c_build_qualified_type_1() instead of upc_set_block_factor()
2634 to assert a zero blocking factor.
2635 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Call
2636 c_build_qualified_type_1() to build predefined shared
2637 qualified types, instead of build_variant_type_copy().
2638 * upc/upc-pts-packed.c (upc_pts_packed_init_type): Call
2639 c_build_qualified_type_1() to build predefined shared
2640 qualified types, instead of build_variant_type_copy().
2641 * upc/upc-act.c (upc_set_block_factor): Delete.
2642 (upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
2643 Rework logic so that it returns a blocking factor rather than
2644 a qualified type. Add 'loc' argument and call error_at().
2645 Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
2646 the block size of the element type into the result type, and checks
2647 for errors due to an attempt to merge differing blocking factors.
2649 2011-08-26 Gary Funck <gary@intrepid.com>
2651 Merge trunk version 177949 into gupc branch.
2652 * c-family/c-common.h (enum rid): Bump the number of type modifiers
2654 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
2655 to add new rliterals column value.
2657 2011-08-26 Gary Funck <gary@intrepid.com>
2659 * convert.c (convert_to_integer): Fix the check for the
2660 difference between two UPC pointers-to-shared values.
2662 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
2664 * configure.ac: Fix the name for --with-upc-pts-packed-bits
2665 option. Support --with-upc-packed-bits as deprecated. Fix the code to
2666 correctly check packed bits.
2667 * configure: Re-generate.
2669 2011-08-16 Gary Funck <gary@intrepid.com>
2671 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
2672 the barrier id expression is not an integer expression.
2674 2011-08-16 Gary Funck <gary@intrepid.com>
2676 * upc/upc-act.c (upc_decl_init): Do not attempt to expand
2677 an error mark node. Fixes ICE after error diagnostic.
2678 * upc/upc-cmd.c (main): detect missing option argument for
2679 options that require an argument, and print error diagnostic.
2680 (get_print_cmd): Re-direct error output to /dev/null to
2681 avoid issuing duplicate error messages.
2683 2011-08-12 Gary Funck <gary@intrepid.com>
2685 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
2687 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
2688 Set mode of UPC pointer-to-shared rep. to an
2689 integral mode of size at least as large as the
2690 size of the representation's struct type.
2692 2011-08-12 Gary Funck <gary@intrepid.com>
2694 Rework/simplify the UPC genericize pass.
2695 * c-family/stub-upc.c (upc_apply_layout_qualifier,
2696 upc_build_pointer_type): New.
2697 (upc_set_block_factor): Adjust to new calling sequence.
2698 (upc_build_shared_var_addr): Delete.
2699 * c-family/c-common.c (complete_array_type): Adjust call
2700 to upc_set_block_factor().
2701 * c-family/c-upc.h (upc_apply_layout_qualifier,
2702 upc_build_pointer_type): New.
2703 (upc_build_shared_var_addr): Delete.
2704 (upc_set_block_factor): Adjust to new calling sequence.
2705 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
2706 * c-decl.c (grokdeclarator): Call newly defined
2707 upc_apply_layout_qualifier() instead of upc_set_block_factor().
2708 * c-decl.c (grokdeclarator): Split long UPC-related error
2709 messages into two lines.
2710 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
2711 directly. Revert that change to trunk. (upc_genericize() will
2712 handle lowering the expressions that take the address of a
2714 * config/i386/i386.c (ix86_promote_function_mode): For UPC
2715 pointers-to-shared, return the type mode of the UPC pointer-to-shared
2716 representation type.
2718 2011-08-12 Gary Funck <gary@intrepid.com>
2720 Rework/simplify the UPC genericize pass.
2721 * upc/upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
2722 * upc/upc-act.h: Cosmetic change.
2723 * upc/config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
2724 * upc/upc-genericize.c (upc_expand_get):
2725 Add WANT_STABLE_VALUE parameter.
2726 (upc_build_shared_var_addr, upc_shared_addr_rep): New.
2727 (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
2728 create_unshared_var, lookup_unshared_var, map_unshared_var,
2729 unshared_var_addr, unshared_var_name,
2730 upc_free_unshared_var_table): Move from upc-act.c.
2731 (upc_expand_get, upc_expand_put): Change their source and/or
2732 destination parameters so that they are no longer addresses
2733 of the objects, but rather references to the objects themselves.
2734 (upc_simplify_shared_ref): Rewrite (simplify/generalize).
2735 (upc_shared_addr_rep): New.
2736 (upc_shared_addr): Adjust call to upc_build_shared_var_addr(),
2737 and re-factor the logic.
2738 (upc_genericize_sync_stmt): Re-format comment.
2739 (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
2740 (upc_genericize_addr_expr): Re-factor the logic.
2741 (upc_genericize_indirect_ref, upc_genericize_field_ref):
2742 Adjust call to upc_expand_get() and re-factor the logic.
2743 (upc_genericize_modify_expr): Adjust call to upc_expand_put()
2744 and re-factor the logic.
2745 (upc_genericize_expr): Improve/fix comments.
2746 (upc_genericize_finish, upc_genericize_init): New.
2747 * upc/upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
2748 (upc_char_pts_type_node): Create new global type node.
2749 (upc_pts_struct_is_null_p): Generalize variable names to
2750 reflect the fact that the vaddr field can be either first/last.
2751 (upc_pts_struct_build_sum): Make corrections to comments.
2752 (upc_pts_struct_build_add_offset): Delete.
2753 * upc/upc-genericize.h (upc_genericize_finish, upc_genericize_init):
2755 * upc/upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
2756 (upc_char_pts_type_node): Create new global type node.
2757 * upc/Make-lang.in: Add dependencies to gtype-upc.h
2758 and gt-upc-upc-genericize.h.
2759 * upc/upc-act.c: Adjust includes to reflect moving the functions
2760 that handle the UPC unshared "shadow variables" into
2761 upc-genericize.c. Improve/fix various comments.
2762 * upc/upc-act.c (upc_parse_init): Call upc_genericize_init().
2763 (upc_build_pointer_type): New.
2764 (upc_set_block_factor): Re-purpose. Move the front-end
2765 related error checks into upc_apply_layout_qualifier().
2766 (upc_apply_layout_qualifier): New.
2767 (upc_write_global_declarations): Call upc_genericize_finish().
2769 2011-08-10 Gary Funck <gary@intrepid.com>
2771 Implement additional fixes for recent merge with trunk.
2772 * explow.c (promote_mode): Do not attempt to promote
2773 the mode for UPC pointer-to-shared types.
2774 * config/i386/i386.c (function_value_64): Ditto.
2776 2011-08-07 Gary Funck <gary@intrepid.com>
2778 Merge trunk version 177548 into gupc branch.
2779 * config/i386/i386.c (ix86_promote_function_mode):
2780 Do not promote UPC pointers-to-shared to Pmode.
2781 * c-family/c-ommon.c (pointer_int_sum):
2782 Also check the pointer operand, rather than just
2783 its type, when making the decision to derive
2784 the equivalent unshared type.
2785 * tree.c (build2_stat): If the type of the result
2786 passed in as an argument is a UPC shared type,
2787 derive the unshared equivalent when calculating
2788 the result type of the node.
2790 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
2792 * config/darwin.c: Disable var_tracking option
2793 on -O0 as it is supposed to run only when optimization
2794 is applied. See GCC bug 49743.
2796 2011-07-11 Gary Funck <gary@intrepid.com>
2798 * upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
2799 qualification was incorrectly derived from the source operand.
2800 (upc_genericize_fndecl): New.
2801 (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
2802 c_genericize() more than once in the event of nested procedures.
2803 (upc_genericize_real_imag_ref): Rename,
2804 was: upc_genericize_real_image_ref.
2805 (upc_expand_put): call internal_error() with meaningful message
2807 (upc_genericize_real_imag_ref): call internal_error() with
2808 meaningful message in lieu of gcc_unreachable().
2810 2011-07-06 Gary Funck <gary@intrepid.com>
2812 Re-implement the pass that lowers trees generated by
2813 the UPC front-end into GENERIC. Previously this was
2814 done within the gimplification framework, but this
2815 required that gimplification be run before inlining
2816 and various other passes, which did not fit in well
2817 with the current design of the middle-end passes.
2818 Now, the lowering is done by a newly defined language
2819 specific genericize hook. With this change, we are
2820 are able to undo some extensions made to the gimplify
2821 logic, and thus can revert several files to trunk.
2822 * c-decl.c: Add a check for UPC deprecated names which
2823 may appear as undefined function names.
2824 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
2825 LTI_upc_getaddr): Remove definitions of unused UPC
2826 library function names. These were defined back when
2827 the libfunc interface was used to call these routines.
2828 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
2829 in UPC lowering (genericize) pass.
2830 * langhooks.h (gimplify_expr): Revert to trunk's definition.
2831 (instrument_func): Delete this hook. Now handled in
2833 * tree-pass.h: Revert to trunk.
2834 * c-typeck.c (build_unary_op): Adjust reference to
2835 upc_genericize() in a comment.
2836 * gimplify.c (create_tmp_var_raw): Delete logic that
2837 was converting UPC shared types into unshared types
2838 to be used for temporaries. Now handled in upc_genericize().
2839 Replace with an assertion check.
2840 (prepare_gimple_addressable): Revert to trunk's definition.
2841 No longer needed as an externally called function.
2842 (flag_instrument_functions_exclude_p): Re-define as
2843 an externally called function.
2844 (gimplify_function_tree): Delete code that implemented
2845 call to UPC's language specific function instrumentation hook.
2846 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
2847 (prepare_gimple_addressable): Delete extern definition;
2848 revert to trunk's definition.
2849 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
2850 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
2851 * c-family/c-gimplify.c: Revert to trunk.
2852 * cp/cp-gimplify.c: Revert to trunk.
2853 * cp/cp-tree.h: Revert to trunk.
2854 * explow.c: Revert to trunk.
2855 * langhooks.c: Revert to trunk.
2856 * libfuncs.h: Revert to trunk.
2857 * objc/objc-act.c: Revert to trunk.
2859 2011-07-06 Gary Funck <gary@intrepid.com>
2861 Improve/simplify the logic in upc_genericize.
2862 * upc/upc-genericize.c (upc_create_tmp_var): Delete the
2863 PREFIX argument. Aways use "UPC" as the prefix.
2864 (upc_genericize_compound_expr): Add a WANT_VALUE argument.
2865 (upc_genericize_cond_expr): New.
2866 (upc_genericize_decl_expr): New.
2867 (upc_genericize_stmt): New.
2868 (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
2869 to upc_create_tmp_var().
2870 (upc_genericize_expr): Change the handling
2871 of the want_value flag passed in the DATA argument.
2872 Always assert this flag after processing EXPR_P.
2873 (upc_genericize_compound_expr): Adjust call
2874 to upc_genericize_compound_expr() and call
2875 upc_genericize_cond_expr() and upc_genericize_decl_expr().
2877 2011-07-06 Gary Funck <gary@intrepid.com>
2879 Re-implement the pass that lowers trees generated by
2880 the UPC front-end into GENERIC. Previously this was
2881 done within the gimplification framework, but this
2882 required that gimplification be run before inlining
2883 and various other passes, which did not fit in well
2884 with the current design of the middle-end passes.
2885 Now, the lowering is done by a newly defined language
2886 specific genericize hook. With this change, we are
2887 are able to undo some extensions made to the gimplify
2888 logic, and thus can revert several files to trunk.
2889 * upc/upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
2890 * upc/upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
2891 * upc/Make-lang.in: Adjust to refer to upc-genericize.[cho].
2892 * upc/upc-lnag.c: refer to upc-genericize.h.
2893 (LANG_HOOKS_GENERICIZE): define as upc_genericize.
2894 (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
2895 (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
2896 * upc/upc-act.c: Minor code format fix.
2898 2011-06-30 Gary Funck <gary@intrepid.com>
2900 * c-family/c.opt: Bring options definitions up-to-date
2901 with respect to changes made in the trunk.
2903 2011-06-29 Gary Funck <gary@intrepid.com>
2905 Merge trunk version 175584 into gupc branch.
2907 2011-06-29 Gary Funck <gary@intrepid.com>
2909 Merge trunk version 175584 into gupc branch.
2910 * upc/upc-act.c (upc_handle_option): Change reference to
2911 have_named_sections so that it refers to the
2912 targetm_common structure.
2914 2011-06-28 Gary Funck <gary@intrepid.com>
2916 * upc/upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
2917 Remove extern definitions. Now declared as 'static'.
2918 * upc/upc-gimplify.c, upc/upc-lang.c,
2919 upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
2920 upc-cmd.c, upc-act.c: Improve/add comments, fix
2921 typos and spelling errors.
2923 2011-06-13 Gary Funck <gary@intrepid.com>
2926 * include/cpplib.h (enum c_lang):
2927 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
2928 This keeps all the "C" variants together.
2929 * init.c (lang_defaults): Add an entry for UPC.
2931 2011-06-10 Gary Funck <gary@intrepid.com>
2933 * upc/upc-act.c (upc_set_block_factor): Handle the case where
2934 the UPC blocking factor expression overflowed.
2936 2011-06-09 Gary Funck <gary@intrepid.com>
2938 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
2939 a 32-bit target, the size expression overflowed, the result was
2940 error_mark_node, and an ICE was triggered on an attempt to evaluate
2941 C_TYPE_VARIABLE_SIZE() on the error node.
2942 (upc_blocksizeof_expr, upc_blocksizeof_type,
2943 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
2944 Make similar changes to avoid further processing of error_mark_node.
2946 2011-06-07 Gary Funck <gary@intrepid.com>
2948 * sel-sched.c (move_op): Incorporate the following
2949 patch to eliminate ICE at -O3 on IA64/Altix.
2951 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
2953 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
2954 code_motion_path_driver returned 0 or 1.
2955 (sel_region_finish): Clear h_d_i_d.
2957 2011-06-02 Gary Funck <gary@intrepid.com>
2959 Merge trunk version 174558 into gupc branch.
2961 2011-06-02 Gary Funck <gary@intrepid.com>
2963 Merge trunk version 174558 into gupc branch.
2964 * upc/upc-lang.c (upc_check_decl_init): Use recently defined
2965 'append_to_statement_list_force' function to add UPC
2966 initialization statements to the UPC initialization
2967 statement list ('upc_init_stmt_list').
2968 (upc_build_init_func): Use recently defined
2969 'append_to_statement_list_force' function to add
2970 statements listed in 'upc_init_stmt_list' onto the
2971 function body constructed to implement initialization
2972 of UPC declarations that require active initialization
2973 at program start up. The previous methods of manipulating
2974 statement lists no longer worked, due to changes in the
2975 the statement list structure.
2977 2011-05-30 Gary Funck <gary@intrepid.com>
2979 * configure.ac: Make the default order of the virtual
2980 address field in a UPC pointer-to-shared to be "first".
2981 This reverts to the previous setting, and is a short term
2982 measure to work around a bug found on the IA64,
2983 where vaddr=last led to incorrect code generation.
2984 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
2985 in AC_DEFINE(), to agree with recent changes in files
2986 that reference this define.
2987 configure, config.in: Regenerate.
2989 2011-05-26 Gary Funck <gary@intrepid.com>
2991 * configure.ac: Fix typo when referring to $upc_vaddr_order.
2992 configure: Regenerate.
2993 * ../fixincludes/fixincl.x: Revert to trunk.
2994 This file is auto-generated, and should not be merged.
2996 2011-05-23 Gary Funck <gary@intrepid.com>
2998 * upc/upc-pts-struct.c: Revert to code that aligned the
2999 internal pointer-to-shared representation to
3000 twice the alignment of a pointer. This fixes
3001 an ICE that occurred when building the compiler
3004 2011-05-18 Gary Funck <gary@intrepid.com>
3006 Merge trunk version 173845 into gupc branch.
3008 2011-05-17 Gary Funck <gary@intrepid.com>
3010 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
3011 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
3012 * c-family/c-pragma.c: Remove conditional compilation
3013 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
3014 Test 'compiling_upc' when compiling to determine if
3015 the "upc" and "pupc" pragmas should be registered.
3016 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
3017 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
3018 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
3019 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
3020 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
3021 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
3022 Move these target-dependent definitions from config/upc-conf.h
3024 * configure.ac: Improve the logic for UPC-related options.
3025 Delete references to pre-processor definitions that have
3026 been moved to "upc/upc-pts.h".
3027 * configure, config.in: Regenerate.
3028 * Makefile.in (UPC_PTS_REP): Remove definition and revert
3029 to trunk. This substitution variable was used to
3030 configure the representation-specific versions of
3031 the tree rewrites that operate on UPC pointer-to-shared
3033 * c-parser.c (c_parser_upc_forall_statement): Remove
3034 reference to UPC_FORALL_DEPTH_NAME, and call
3035 newly defined upc_rts_forall_depth_var() instead.
3036 * config/upc-config.h: Delete. Various definitions
3037 moved to "upc/upc-rts-names.h", "defaults.h", and
3039 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
3040 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
3041 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
3042 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
3043 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
3044 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
3045 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
3046 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
3047 New. Document UPC target macros.
3048 doc/tm.texi: Regenerate.
3050 2011-05-17 Gary Funck <gary@intrepid.com>
3052 * upc/upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
3053 upc_pts_build_cond_expr, upc_pts_build_constant,
3054 upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
3055 upc_pts_build_threadof, upc_pts_init_type): Remove extern
3057 (upc_pts_ops_t): New. Define handler table that will
3058 implement either the 'packed' or the 'struct' representation
3059 of a UPC pointer-to-shared value.
3060 (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
3061 refers to the packed and the struct UPC pointer-to-shared
3062 representation implementation.
3063 (upc_pts): New. Define handler table that is set up at initialization
3064 to refer to the handlers for the UPC pointer-to-shared
3065 representation (packed/struct) that has been configured.
3066 Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
3067 and configure the UPC pointer-to-shared definitions that
3068 are specific to the configured UPC pointer-to-shared
3070 * upc/upc-act.h (upc_pts_is_valid_p): Rename extern definition from
3071 is_valid_pts_p to upc_pts_is_valid_p.
3072 * lang-specs.h: Reformat the UPC compilation specs.
3073 to improve readability.
3074 * upc/upc-rts-names.h: New. Define the names of UPC runtime
3075 library functions that implement UPC language statement
3076 semantics. These definitions were moved from config/upc-conf.h
3077 * upc/upc-gimplify.c: Add include of "upc-rts-names.h".
3078 Refer to newly defined pointer manipulation routines
3079 by indirecting through the newly defined "pts" handler table.
3080 Re-format, re-indent.
3081 * upc/upc-lang.c: Add include of "upc-pts.h". Fix a comment.
3082 * upc/config-lang.in: Remove logic that inserted "config/upc-conf.h"
3083 into the target include and file path.
3084 * upc/upc-pts-struct.c: Add include of "upc-rts-names.h".
3085 (upc_pts_struct_ops): Define the pointer manipulation
3086 handler table that implements operations on UPC
3087 pointers-to-shared, represented as a struct.
3088 Re-format and re-indent.
3089 * upc/upc-gasp.c: Add include of "upc-rts-names.h".
3090 Re-format and re-indent.
3091 * upc/upc-pts-packed.c: Add include of "upc-rts-names.h".
3092 (upc_pts_packed_ops): Define the pointer manipulation
3093 handler table that implements operations on UPC
3094 pointers-to-shared, represented as a packed integer.
3095 Re-format and re-indent.
3096 * upc/Make-lang.in: Compile both "upc-pts-packed.c" and
3097 "upc-pts-struct.c". One/other will be selected at
3098 compilation time to implement operations on UPC
3099 on the UPC pointer-to-shared that has been configured.
3100 Add dependencies on "upc-rts-names.h".
3101 * upc/upc-cmd.c: Re-format and re-indent.
3102 * upc/upc-act.c: Add include of "upc-rts-names.h".
3103 (upc_pts): New. Add definition of the handler
3104 table that implements representation specific
3105 operations on trees that refer to UPC pointer-to-shared
3106 objects and types. Re-format and re-indent.
3108 2011-05-07 Gary Funck <gary@intrepid.com>
3110 * ../configure.ac: Disable build of libupc
3111 on non POSIX hosted systems. Use AS_HELP_STRING
3112 to define messages. Remove 'word-pair' as a
3113 possible --with-upc-pts UPC pointer-to-shared
3115 * ../configure: Regenerate.
3116 * configure.ac: Use AS_HELP_STRING to define messages.
3117 Remove 'word-pair' as a possible --with-upc-pts
3118 UPC pointer-to-shared representation.
3119 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
3120 (UPC_MAX_BLOCK_SIZE): Correct the default value.
3121 * configure: Regenerate.
3122 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
3124 * ChangeLog.upc: Fix some typos.
3126 2011-05-07 Gary Funck <gary@intrepid.com>
3128 * ../maintainer-scripts/gcc_release: Add "upc"
3129 as one of the released languages.
3131 2011-05-06 Gary Funck <gary@intrepid.com>
3133 Eliminate compilation warnings, by fixing
3134 #include's and updating function prototypes.
3135 * c-family/c-cppbuiltin.c: Include c-upc.h.
3136 * optabs.c (gen_libfunc): Change type of 'suffix'
3137 parameter to conform with prototype.
3138 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
3139 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
3141 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
3143 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
3144 argument values to cp_gimplify_expr.
3145 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
3146 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
3147 pre-processor definitions that are no longer
3148 needed to build the 'upc' command (upc-cmd.c)
3149 because the linker specs. defined in libupc
3150 take care of linking in the needed libraries.
3151 * c-parser.c (c_parser_upc_forall_statement):
3152 initialize affinity_loc to avoid "maybe unused" warning.
3153 (c_parser_upc_sync_statement): Remove un-needed
3154 'ret' variable. Cast return value from
3155 'upc_build_sync_stmt' to 'void' to avoid
3156 compile-time warning.
3157 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
3158 integer constant, not a string. Range is restricted
3159 to maximum positive 32-bit integer (2+ billion) to
3160 fit in with the use of 'int' in the front-end's
3161 switch handling logic.
3163 2011-05-06 Gary Funck <gary@intrepid.com>
3165 Upgrade c-family source files to conform with modularity
3166 improvements. Mainly, remove #include of c-tree.h in files
3167 under c-family, and define a new UPC-specific #include file,
3168 c-upc.h, and use it.
3169 * c-family/stub-upc.c: Remove #include of c-tree.h and
3170 upc/upc-act.h. Replace with #include of c-common.h
3172 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
3173 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
3174 upc_localsizeof_expr, upc_localsizeof_type,
3175 upc_shared_type_p): Delete.
3176 * c-family/c-opts.c: Add #include of c-upc.h
3177 * c-family/c-common.c: Remove #include of c-tree.h and
3178 add #include of c-upc.h.
3179 * c-family/c-upc.h: New. Define API for UPC-specific functions
3180 (mostly implemented in upc/upc-act.c).
3181 * c-family/c-common.h (upc_cpp_builtins,
3182 upc_write_global_declarations): Remove extern definitions.
3183 * c-family/c-pragma.c: Remove #include of c-tree.h.
3184 Add #include of c-upc.h.
3185 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
3187 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
3188 upc/upc-act.c, and define as a macro.
3189 (expand_affinity_test): Remove unused external definition.
3190 (build_upc_unshared_type): Add external definition.
3191 (upc_shared_type_p): Remove external definition.
3192 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
3193 * dojump.c: Remove #include of c-tree.h.
3194 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
3196 (count_upc_threads_refs, is_multiple_of_upc_threads,
3197 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
3198 upc_build_shared_var_addr, upc_build_sync_stmt,
3199 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
3200 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
3201 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
3202 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
3203 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
3204 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
3205 set_upc_consistency_mode, get_upc_consistency_mode,
3206 push_upc_consistency_mode, pop_upc_consistency_mode,
3208 Move external definitions to c-family/c-upc.h.
3209 (upc_blocksizeof_type, upc_localsizeof_type,
3210 upc_elemsizeof_type): Remove external definitions;
3211 these functions were moved to c-parser.c.
3212 * c-decl.c: Add #include of c-upc.h.
3213 * c-typeck.c: Add #include of c-upc.h.
3214 * c-convert.c: Add #include of c-upc.h.
3215 * ChangeLog.upc: Fix typo.
3216 * Makefile.in: Add references to c-family/c-upc.h, everywhere
3217 there is a reference to c-family/c-objc.h.
3218 Remove extraneous reference to upc-act.h.
3219 * c-parser.c: Add #include of c-upc.h.
3220 (upc_blocksizeof_expr, upc_blocksizeof_type,
3221 upc_elemsizeof_expr, upc_elemsizeof_type,
3222 upc_localsizeof_expr, upc_localsizeof_type):
3223 Move from upc/upc-act.c.
3224 * tree.c (build_upc_unshared_type): New.
3225 Move upc_get_unshared_type from upc/upc-act.c and rename
3226 to build_upc_unshared_type.
3227 c-family/c-common.c (pointer_int_sum): refer to renamed
3228 build_upc_unshared_type function.
3229 c-convert.c (convert): Ditto.
3230 convert.c (convert_to_pointer): Ditto.
3231 c-typeck.c (build_unary_op, build_modify_expr,
3232 really_start_incremental_init): Ditto.
3233 gimplify.c (create_tmp_var_raw): Ditto.
3234 tree.c (build1_stat): Ditto.
3235 tree.h (upc_get_unshared_type): Rename to
3236 build_upc_unshared_type.
3238 2011-05-06 Gary Funck <gary@intrepid.com>
3240 Merge trunk version 173471 into gupc branch.
3242 2011-05-06 Gary Funck <gary@intrepid.com>
3244 Eliminate compilation warnings, by fixing
3245 #include's and updating function prototypes.
3246 * upc/upc-gimplify.c: Include bitmap.h.
3247 (upc_gimplify_real_image_ref): Mark various parameters
3248 as unused. This is a stub procedure for now.
3249 * upc/upc-lang.c: Include c-family/c-upc.h.
3251 * upc/upc-cmd.c (no_start_files): Delete unused variable.
3252 The -nostartfiles switch is now handled by the linker spec.
3253 * ChangeLog: Spell check.
3255 2011-05-06 Gary Funck <gary@intrepid.com>
3257 Upgrade c-family source files to conform with modularity
3258 improvements. Mainly, remove #include of c-tree.h in files
3259 under c-family, and define a new UPC-specific #include file,
3260 c-upc.h, and use it.
3261 * upc/upc-act.h (upc_write_global_declarations,
3262 upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
3263 upc_num_threads, upc_diagnose_deprecated_stmt):
3264 Move external definitions to c-family/c-upc.h
3265 (upc_blocksizeof_expr, upc_blocksizeof_type,
3266 upc_elemsizeof_expr, upc_elemsizeof_type,
3267 upc_localsizeof_expr, upc_localsizeof_type):
3268 Remove external definitions; these functions
3269 were moved from upc-act.c to c-parser.c.
3270 * upc/upc-gimplify.c: Add #include of c-family/c-upc.h.
3271 upc-pts-packed.c: Ditto.
3272 upc-pts-struct.c: Ditto.
3273 * upc/config-lang.in: Update gtfiles to refer to c-upc.h
3275 * upc/upc-act.c: Add #include of c-family/c-upc.h.
3276 (upc_blocksize, upc_elemsizeof, upc_localsizeof):
3277 Make external so that it can be called from c-parser.c.
3278 (upc_blocksizeof_expr, upc_blocksizeof_type,
3279 upc_elemsizeof_expr, upc_elemsizeof_type,
3280 upc_localsizeof_expr, upc_localsizeof_type):
3281 Move from upc/upc-act.c to c-parser.c.
3282 (upc_set_block_factor): Fix typo in error message.
3283 (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
3284 Move to tree.h and define as a macro.
3285 (upc_get_unshared_type): Delete. renamed to
3286 build_upc_unshared_type and moved to tree.c.
3287 * upc/upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
3288 refer to renamed build_upc_unshared_type function.
3289 upc-act.c (create_unshared_var): Ditto.
3291 2011-05-05 Gary Funck <gary@intrepid.com>
3293 Make changes that bring the GUPC branch more closely in sync.
3294 with the GCC trunk. Revert any fixes that are not UPC-specific.
3295 Remove gratuitous re-formatting.
3296 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
3297 This file should have been removed in a previous merge
3299 * ../configure.ac: Remove Cray Catamount/CNL support.
3300 * ../configure: Regenerate.
3301 * ../config.sub: Remove Cray Catamount/CNL support.
3302 * config.gcc: Remove Cray Catamount/CNL support.
3303 * ../maintainer-scripts/gcc_release: Revert to trunk.
3304 * c-family/c-common.h: Define parse_optimize_options. Its definition
3305 was missed in a previous merge with the trunk.
3306 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
3308 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
3309 in addition to ARRAY_TYPE.
3310 * c-typeck.c: Remove an extra newline character.
3311 * varasm.c: Revert a fix that improved an error message
3312 when TLS common data is unimplemented.
3313 * varasm.c: Revert a gcc_assert that had been added which
3314 checked for a null DECL_SIZE_UNIT field.
3315 * emultls.c: Revert to trunk. Remove possible fix.
3316 * Makefile.in: Revert extra blank line that is present
3317 in the trunk version.
3318 * Makefile.in: Revert a fix that handled long shell
3319 argument lists for plugin headers.
3320 * config/ia64/ia64.opt: Revert an option setting
3321 that increased the default TLS address range.
3322 * config/ia64/crtbegin.asm: Revert to trunk.
3323 Removes an extra newline character.
3324 * ChangeLog.upc: Spell check.
3326 2011-05-03 Gary Funck <gary@intrepid.com>
3328 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
3329 (c_apply_type_quals_to_decl): Ditto.
3330 * c-family/c-common.h: Ditto.
3332 * c-decl.c (merge_decls): Ditto.
3333 * c-typeck.c (qualify_type, default_conversion,
3334 build_component_ref, build_unary_op,
3335 c_build_qualified_type): Ditto.
3336 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
3338 2011-05-03 Gary Funck <gary@intrepid.com>
3340 * upc/upc-lang.c: Remove extraneous FIXME/TODO comments.
3341 * upc/upc-pts-packed.c (upc_pts_build_cvt): Ditto.
3342 * upc/upc-act.c (upc_set_block_factor): Ditto.
3344 2011-04-29 Gary Funck <gary@intrepid.com>
3346 * c-decl.c (finish_decl): Improve error diagnostics.
3347 (grokdeclarator): Ditto.
3348 * c-typeck.c (build_c_cast): Improve error diagnostics.
3349 (convert_for_assignment): Ditto.
3350 (build_binary_op): Ditto.
3351 * c-parser.c (c_parser_upc_forall_statement):
3352 Improve error diagnostics.
3353 * convert.c (convert_to_integer): Improve error diagnostics.
3355 2011-04-29 Gary Funck <gary@intrepid.com>
3357 * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
3358 (upc_expand_put): Ditto.
3359 (upc_shared_addr): Ditto.
3360 (upc_gimplify_sync_stmt): Ditto.
3361 (upc_gimplify_field_ref): Ditto.
3362 * upc/upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
3363 (upc_pts_build_cvt): Ditto.
3364 * upc/upc-act.c (upc_handle_option): Improve error diagnostics.
3365 (upc_lang_init): Ditto.
3366 (upc_sizeof_type_check): Ditto.
3367 (upc_set_block_factor): Ditto.
3368 (upc_decl_init): Ditto.
3369 (upc_affinity_test): Ditto.
3370 (upc_num_threads): Ditto.
3371 (upc_diagnose_deprecated_stmt): Ditto.
3372 (upc_build_shared_var_addr): Ditto.
3373 (upc_pts_int_sum): Ditto.
3374 (upc_pts_diff): Ditto.
3376 2011-04-28 Gary Funck <gary@intrepid.com>
3378 * upc/upc-act.c (create_unshared_var): call upc_get_unshared_type()
3379 instead of using TYPE_MAIN_VARIANT() to create an equivalent type
3380 that is not a UPC shared type. This is sometimes necessary
3381 when the given shared type is derived from a typedef.
3383 2011-04-24 Gary Funck <gary@intrepid.com>
3385 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
3386 occurred if there is an error in the barrier id
3387 expression. Map error_mark_node into NULL.
3389 2011-04-24 Gary Funck <gary@intrepid.com>
3391 * upc/upc-act.c (upc_handle_option): Fix incorrect error
3392 diagnostic messages when both -fupc-debug and
3393 -fupc-inline-lib are asserted.
3395 2011-04-24 Gary Funck <gary@intrepid.com>
3397 * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
3398 to the list of switches that accept arguments.
3399 (main): Check for switches that have a following
3400 argument inside the loop that copies arguments and
3401 adds '-x upc' or '-x none' as necessary.
3402 (main): Misc. clean ups and simplifications.
3404 2011-04-22 Gary Funck <gary@intrepid.com>
3406 Merge trunk version 172873 into gupc branch.
3408 2011-04-22 Gary Funck <gary@intrepid.com>
3410 Merge trunk version 172873 into gupc branch.
3411 * upc/upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
3412 on init_func() to prevent it from being removed from
3415 2011-04-19 Gary Funck <gary@intrepid.com>
3417 Merge trunk version 172359 into gupc branch.
3419 2011-04-19 Gary Funck <gary@intrepid.com>
3421 Merge trunk version 172359 into gupc branch.
3422 * upc/upc-lang.c (upc_init_ts): New.
3423 (LANG_HOOKS_INIT_TS): use upc_init_ts.
3425 2011-04-19 Gary Funck <gary@intrepid.com>
3427 Eliminate warnings when compiling upc-cmd.c.
3428 * upc/upc-cmd.c (file_exists): Remove.
3429 (arg_copy): Remove const qualifier.
3431 2011-04-14 Gary Funck <gary@intrepid.com>
3433 * c-family/c.opt: Add UPC as a valid language for various
3434 switches where it is valid for "C", that were not updated
3435 in previous merges with trunk.
3437 2011-04-13 Gary Funck <gary@intrepid.com>
3439 * c-family/c.opt (fupc-pre-include): New option definition.
3440 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
3441 -fno-upc-pre-include is asserted.
3443 2011-04-13 Gary Funck <gary@intrepid.com>
3445 * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
3446 to the list, and alphabetize.
3448 2011-04-13 Gary Funck <gary@intrepid.com>
3450 * upc/upc-gimplify.c (upc_gimplify_real_image_ref): New.
3451 Currently, a not-yet-implemented stub.
3452 (upc_gimplify_lval): call upc_gimplify_real_image_ref to
3453 rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
3454 This will avoid an ICE when compiling regular "C"
3455 code that refers to those operators.
3457 2011-04-13 Gary Funck <gary@intrepid.com>
3459 * upc/upc-cmd.c: Do not add "-isystem <libupc_path>" if
3460 -fno-upc-pre-include is asserted.
3462 2011-04-07 Gary Funck <gary@intrepid.com>
3464 Merge trunk version 172158 into gupc branch.
3465 to bring in the following fix.
3467 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
3470 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3471 if old and new states differ.
3473 2011-04-06 Gary Funck <gary@intrepid.com>
3475 Merge trunk version 171966 into gupc branch.
3477 2011-04-01 Gary Funck <gary@intrepid.com>
3479 * tree.h (tree_base): Move UPC flag bits into bit fields
3480 located just before spare bits. Decrement spare bits.
3481 Rename 'shared_flag' -> 'upc_shared_flag',
3482 'relaxed_flag' -> 'upc_relaxed_flag',
3483 'strict_flag' -> 'upc_strict_flag, and adjust macros
3484 that reference them accordingly.
3486 2011-04-01 Gary Funck <gary@intrepid.com>
3488 * c-decl.c (grokdeclarator): Fix formatting of
3489 code that sets UPC block size on scalars.
3491 2011-04-01 Gary Funck <gary@intrepid.com>
3493 * c-decl.c (grokdeclarator): Revert use of white space
3494 to match the trunk (to rationalize diffs).
3495 * c-typeck.c (convert_for_assignment): Ditto.
3496 * tree-ssa.c (useless_type_conversion_p): Ditto.
3498 2011-03-23 Gary Funck <gary@intrepid.com>
3500 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
3501 the GCC 4.6 release branch.
3503 2011-03-22 Gary Funck <gary@intrepid.com>
3505 * upc/upc-cmd.c: Move linker switches into libupc/libupc.spec.
3506 (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
3507 (find_ld_script) Remove.
3509 2011-03-21 Gary Funck <gary@intrepid.com>
3511 Merge trunk version 171202 into gupc branch.
3513 2011-03-20 Gary Funck <gary@intrepid.com>
3515 * varasm.c: Call error() directly with a format specifier,
3516 rather than using sprintf() to format the message.
3517 This should make it easier to internationalize UPC's error messages.
3519 2011-03-20 Gary Funck <gary@intrepid.com>
3521 * configure.ac: Fix the check for gnu ld when enabling
3522 UPC link script support.
3523 configure: Regenerate (also picks up changes from previous
3526 2011-03-20 Gary Funck <gary@intrepid.com>
3528 Move UPC start files, end files, and linker specs.
3529 into libupc. This reduces the impact on common GCC
3530 configuration files, and ensures that these UPC-specific
3531 components are only built when the UPC language dialect is selected.
3532 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
3533 linker specs. Fix typo in -fupc-debug message.
3534 * config/upc-conf.h, config/darwin.h: Move defines for
3535 UPC-related section begins/ends into libupc/config/default/
3537 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
3538 UPC-related linker compiler specifications,
3539 accessed via %:include().
3540 * configure.ac, configure: Remove logic related to building
3541 upc-crtbegin/end. Remove config. tests for numa and cpu
3542 affinity (previously used by the 'upc' driver); these
3543 settings are now propagated by target-specific compiler
3544 specs. built by libupc. Regenerate autoconf.
3545 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
3546 linker compiler specifications, accessed via %:include().
3547 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
3549 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
3550 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
3551 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
3552 config/ia64/linux.h, config/mips/t-iris,
3553 config/mips/iris6.h: Revert to trunk version 167307.
3555 * configure, configure.ac, config.host, Makefile.in:
3556 Revert to trunk version 167307.
3558 2011-03-20 Gary Funck <gary@intrepid.com>
3560 * upc/upc-act.c: Call error() directly with a format specifier,
3561 rather than using sprintf() to format the message.
3562 This should make it easier to internationalize UPC's error messages.
3564 2011-03-20 Gary Funck <gary@intrepid.com>
3566 Move UPC start files, end files, and linker specs.
3567 into libupc. This reduces the impact on common GCC
3568 configuration files, and ensures that these UPC-specific
3569 components are only built when the UPC language dialect is selected.
3570 * upc/config-lang.in: Remove setting of 'upc_extra_parts', which
3571 was used to specify which upc-crtbegin and upc-crtend files
3572 need to built. Remove extraneous (commented out)
3573 settings of 'cfiles'. The listed configuration files
3574 have been reverted to trunk, and weren't referenced
3575 via cfiles in any event.
3576 * upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
3577 Simply test for the presence of the UPC link script
3578 in the current directory or the libupc directory.
3579 Add -B<path-to-libupc> to the switches passed to 'gcc';
3580 this is needed in order to find the upc-crtbegin
3581 and upc-crtend object files now built in libupc.
3582 Remove test for and inclusion of UPC_LINKER_SWITCHES.
3583 if extra switches are needed for a particular target
3584 (like SGI/Irix), they will be defined by the custom
3585 linker spec. built in libupc. Remove test for
3586 HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
3587 will be added to the custom linker specs. built
3589 * upc/upc-crtstuff.c: Move to libupc.
3591 2011-02-23 Gary Funck <gary@intrepid.com>
3593 * c-decl.c (undeclared_variable): fix typo. Inadvertently
3594 removed negation on following 'if'.
3596 2011-02-22 Gary Funck <gary@intrepid.com>
3598 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
3599 to check for the usage of certain deprecated UPC keywords.
3600 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
3601 * c-tree.h (undeclared_variable): Define prototype.
3603 2011-02-22 Gary Funck <gary@intrepid.com>
3605 * upc/upc-act.c (upc_diagnose_deprecated_stmt): New.
3606 upc-act.h (upc_diagnose_deprecated_stmt): Define.
3607 Check usage of deprecated keywords and issue
3610 2011-02-12 Gary Funck <gary@intrepid.com>
3612 * c-typeck.c: (build_c_cast, convert_for_assignment)
3613 Diagnose an attempt to convert from an integer to
3614 a pointer-to-shared as an error. Also, fix various
3615 error messages so that they use the preferred term
3616 pointer-to-shared instead of "shared pointer".
3618 2011-02-08 Gary Funck <gary@intrepid.com>
3620 * upc/upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
3621 for struct-pts representation
3622 Analysis indicated that for something like (+ ptr -80) this was
3623 being represented as (+ ptr (- 80)) and further, when the
3624 calculations were propagated into the individual operations on the
3625 components of the 'struct' pointer, it would end up with something
3626 like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
3627 "long unsigned int" because of the addition to the pointer. This
3628 caused the calculations involving the signed 'int' operand to be
3629 performed incorrectly. This fix insures that the 'int' operand is
3632 2011-02-08 Gary Funck <gary@intrepid.com>
3634 * upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
3635 upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
3636 upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
3637 upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
3638 upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
3639 upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
3640 Update copyright notices.
3642 2011-02-07 Gary Funck <gary@intrepid.com>
3644 * c-typeck.c: (convert_for_assignment)
3645 Fix typo. in error message.
3647 2011-01-23 Gary Funck <gary@intrepid.com>
3649 * c-typeck.c: (c_build_qualified_type)
3650 derive UPC block size by calling upc_get_block_size(),
3651 to ensure that the element type of an array of an array
3652 is derived correctly.
3654 2011-01-09 Gary Funck <gary@intrepid.com>
3656 Fix behavior of upc_localsizeof() when called in a dynamic
3657 threads compilation environment. This bug, and the expected
3658 behavior is documented in this bug report:
3659 https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
3660 * upc/_act.c (upc_localsizeof): Re-implement.
3662 2010-12-29 Gary Funck <gary@intrepid.com>
3664 Merge trunk version 168314 into gupc branch.
3666 2010-12-15 Gary Funck <gary@intrepid.com>
3668 Merge trunk version 167307 into gupc branch.
3670 2010-12-15 Gary Funck <gary@intrepid.com>
3672 Merge trunk version 167307 into gupc branch.
3673 * upc/_act.h: (upc_handle_option) add location and struct
3674 cl_option_handlers * parameters.
3675 (upc_finish_file) Remove.
3676 (upc_write_global_declarations) New, replaces upc_finish_file.
3677 * lang-spec.h: Disable multi-file compilation for .upc files.
3678 This fixes an issue where file-scoped static variables were
3679 diagnosed as multiply-defined. Both "C" and "ObjC" also disable
3680 multi-file compilation.
3681 * upc/upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
3682 explicitly when deciding whether a UPC shared object is addressable.
3683 is_gimple_addressable() used to do this, but now checks for MEM_REF
3684 which does not apply to UPC shared objects.
3685 (upc_gimplify_lval, upc_gimplify_expr) Delete references to
3686 ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
3687 These are no longer defined.
3688 (upc_genericize) Add call to bitmap_obstack_initialize()
3689 and bitmap_obstack_release() around call to gimplify_function_tree().
3690 * upc/upc-lang.c: Add #include of "opts.h" and "options.h".
3691 (flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
3692 flag_upc_instrument_functions) Remove. Use definitions
3693 generated by the options file.
3694 (upc_init_options) Use cl_decoded_option struct.
3695 (LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
3696 (finish_file) Delete.
3697 (upc_init_options) Call control_warning_option() to specify
3698 -Werror=pointer-arith as the default. Remove call to
3699 enable_warning_as_error().
3700 * upc/upc-pts-struct.c: (upc_pts_init_type) Move test that
3701 UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
3702 rather than an #ifdef; this macro now depends upon a
3703 target size macro which must be evaluated at runtime.
3704 * upc/Make-lang.in: (cc1-dummy) Remove make target.
3705 (cc1upc-checksum.c) Generate directly from object files.
3706 * upc/upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
3707 references to these deprecated macro definitions.
3708 (GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
3709 (all_exec_args) Delete variable.
3710 (exec_args) Re-define as (const char *).
3711 (exec_arg_list) New. Make copy of exec_args to pass to 'exec'.
3712 * upc/upc-act.c: (upc_handle_option) Update argument list to accept
3713 (cl_option_handlers *) argument.
3714 (upc_finish_file) Rename to upc_write_global_declarations.
3715 (upc_write_global_declarations) New.
3717 2010-10-19 Gary Funck <gary@intrepid.com>
3719 * c-typeck.c: Fix typo in previous fix
3720 which led to a mis-compare for equal block sizes.
3722 2010-10-18 Gary Funck <gary@intrepid.com>
3724 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
3725 diagnosed as an error
3726 The conversion from any type (shared or not) to
3727 a shared type is likely either meaningless or an error. This update
3728 makes any conversion to a shared type, an error.
3730 2010-10-18 Gary Funck <gary@intrepid.com>
3732 * c-typeck.c: Fix bug: passing int to shared pointer arg.
3733 generates spurious warning
3734 Add a #define procedure that does the same thing as
3735 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
3736 this procedure to diagnose passing an integer value to a
3737 pointer-to-shared as an error.
3739 2010-10-18 Gary Funck <gary@intrepid.com>
3741 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
3742 matching routine declaration.
3743 When checking for type compatibility, shared qualified types must
3744 have the same block factor. This check was missing from
3745 comptypes_internal(). This update adds the check for blocking
3748 2010-10-17 Gary Funck <gary@intrepid.com>
3750 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
3752 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
3754 2010-10-17 Gary Funck <gary@intrepid.com>
3756 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
3757 45869 - [4.5/4.6 Regression] type mismatch in shift expression
3758 produces ice with -O3 and -m32.
3759 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
3761 2010-10-17 Gary Funck <gary@intrepid.com>
3763 * c-common.c: Diagnose the application of the various "*sizeof"
3764 operations on generic pointer-to-shared as a compilation error.
3766 2010-10-17 Gary Funck <gary@intrepid.com>
3768 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
3769 message regarding a function parameter being declared with a shared
3771 The parameter's 'name' value is not defined at this point, and
3772 cannot be used in the error message. This update removes the
3773 reference to 'name', and eliminates the segfault.
3775 2010-10-17 Gary Funck <gary@intrepid.com>
3777 * upc/upc-act.c: Issue a compilation error on attempts to perform
3778 arithmetic on generic pointer-to-shared values.
3779 (The rest of this update is a small code clean up.)
3781 2010-10-17 Gary Funck <gary@intrepid.com>
3783 * upc/upc-lang.c: For UPC only, issue errors for arithmetic and related
3784 operations on void types.
3785 This update simulates the effect of -Werror=pointer-arith, thus
3786 causing arithmetic on void types, sizeof(void) and so on to be
3787 considered compilation errors. This meets the expectations of some
3788 harness tests and the RTED/CTED test suites. GCC is more
3789 permissive, but since this is for UPC only, we can fairly safely
3790 define this new policy.
3792 2010-10-16 Gary Funck <gary@intrepid.com>
3794 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
3795 The gcc/Makefile.in rules for install-plugin had to be re-written to
3796 break up a long list of header files that exceeded the command line
3797 limitation imposed by Irix.
3798 Access functions for TFmode types had to be implemented.
3799 Apparently, this is the mode used for the SGI/MIPS port to represent
3802 2010-10-16 Gary Funck <gary@intrepid.com>
3804 * upc/upc-act.c: Fix bug: Static initialization of shared
3805 arrays is unsupported -- issue an error message.
3806 Currently, static initialization of a shared array is not
3807 implemented correctly.
3808 We do not plan to fix this for a while, therefore the compiler will
3809 issue an error message indicating that this is an unsupported
3812 2010-10-14 Gary Funck <gary@intrepid.com>
3814 * c-decl.c: Fix bug: Multiple equal blocking factors specified
3815 via typedef chain should not be diagnosed as an error.
3816 If the block size that is given by the typedef is equal to the block
3817 size given explicitly in the variable declaration, then do not
3818 complain. The easiest way to make this check was to create a
3819 temporary type that is a clone of the element type and then set its
3820 block size using the given layout qualifier. Then compare the block
3821 size of the temporary (the declaration) to the block size specified
3822 in the typedef. This complexity is needed, because the '[*]' block
3823 size needs to be calculated, and the '[]' needs to be mapped into a
3826 2010-10-13 Gary Funck <gary@intrepid.com>
3828 * upc/upc-act.c: Fix bug: negative layout qualifiers not diagnosed
3830 The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
3831 it was not diagnosed as an error. With this fix, negative block
3832 sizes will generate a translation error.
3834 2010-10-10 Gary Funck <gary@intrepid.com>
3836 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
3838 The compiler properly detected the presence of two or more layout
3839 qualifiers as an error, but then hit an assertion check, because the
3840 code that followed the error expected to see a qualifier and not a
3841 layout specifier. The fix is simple: just return immediately after
3842 detecting the error.
3844 2010-10-10 Gary Funck <gary@intrepid.com>
3846 * c-decl.c: Improve error diagnostics for various cases of UPC
3847 shared array type declarations.
3848 Add the check for this error: "In the dynamic translation
3849 environment, THREADS may not appear in declarations of shared arrays
3850 with indefinite block size". Also, fix up a few of the other
3851 related error diagnostics.
3853 2010-10-10 Gary Funck <gary@intrepid.com>
3855 * upc/upc-act.c: Fix bug: ICE: Attempt to take the difference of
3856 shared and non-shared pointers
3857 The compiler detected the error, and then tried to return
3858 error_mark_node. This apparently is not acceptable, as there is an
3859 explicit assertion check to prevent this from happening in
3860 build_binary_op. Return the more user-friendly size_one_node
3863 2010-10-09 Gary Funck <gary@intrepid.com>
3865 * c-common.c: Fix bug: segfault on incomplete array definition.
3866 This turned out to be a bit complicated. The logic in
3867 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3868 the THREADS identifier in the case where the blocking factor has
3869 been set to indefinite ([]). This can happen when indefinite array
3870 declarations are processed for shared arrays. At that time, the
3871 file scope has been closed and THREADS is no longer in scope. Some
3872 more work is needed on upc_lang_layout_decl(). It has some
3873 duplication, and notably duplicates the two branches of the if
3874 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3875 caller of this routine (layout_decl()).
3876 The method of forcing a layout qualifier of [] in the indefinite
3877 declaration handler is odd a well. The code that just does the
3878 setting of the block factor, needs to moved into its own routine
3879 that doesn't depend upon a declspec for '[]' to be passed in, just
3880 in order to set the blocking factor to some value (in this case, 0).
3881 Also, the logic for how that shared type is constructed is strange.
3882 First the type with 0 blocking factor is set. Then the shared
3883 qualifier is removed from the type, and then added back later. The
3884 intermediate type has a blocking factor set, but it has no shared
3885 qualifier. Fixing this will require some thought. It is tempting
3886 just to make indefinite shared arrays an error, rather than forcing
3887 the dimension to be '1'.
3888 This likely fixes a serious error in the previous update to
3889 upc_lang_layout_decl(), where it didn't have the logic to set
3890 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
3891 the previous update would fail on many tests.
3893 2010-10-09 Gary Funck <gary@intrepid.com>
3895 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
3896 (decl) is null, which can happen if some layout error occurred
3899 2010-10-09 Gary Funck <gary@intrepid.com>
3901 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
3902 "variable-sized" when compiled in dynamic threads.
3903 This long-standing bug is easily fixed. Just check
3904 for the situation that the non-constant sized type is shared and
3905 that it does not have a dimension that references a multiple of
3906 threads. If this criteria is met, then issue a meaningful
3909 2010-10-09 Gary Funck <gary@intrepid.com>
3911 * upc/upc-act.c: Fix bug: segfault on incomplete array definition.
3912 This turned out to be a bit complicated. The logic in
3913 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3914 the THREADS identifier in the case where the blocking factor has
3915 been set to indefinite ([]). This can happen when indefinite array
3916 declarations are processed for shared arrays. At that time, the
3917 file scope has been closed and THREADS is no longer in scope. Some
3918 more work is needed on upc_lang_layout_decl(). It has some
3919 duplication, and notably duplicates the two branches of the if
3920 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3921 caller of this routine (layout_decl()).
3922 The method of forcing a layout qualifier of [] in the indefinite
3923 declaration handler is odd a well. The code that just does the
3924 setting of the block factor, needs to moved into its own routine
3925 that doesn't depend upon a declspec for '[]' to be passed in, just
3926 in order to set the blocking factor to some value (in this case, 0).
3927 Also, the logic for how that shared type is constructed is strange.
3928 First the type with 0 blocking factor is set. Then the shared
3929 qualifier is removed from the type, and then added back later. The
3930 intermediate type has a blocking factor set, but it has no shared
3931 qualifier. Fixing this will require some thought. It is tempting
3932 just to make indefinite shared arrays an error, rather than forcing
3933 the dimension to be '1'.
3934 This likely fixes a serious error in the previous update to
3935 upc_lang_layout_decl(), where it didn't have the logic to set
3936 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
3937 the previous update would fail on many tests.
3938 See also: gcc/c-common.c gcc/upc/upc-act.c
3940 2010-10-01 Gary Funck <gary@intrepid.com>
3942 * configure, configure.ac: Update manual page, and bug reporting
3944 Update "man" page to reflect debugging switches. Also, some general
3945 clean up. Change the bug reporting URL to point to gccupc.org.
3947 2010-10-01 Gary Funck <gary@intrepid.com>
3949 * upc/upc-manpage.html, upc.1: Update manual page, and bug reporting
3951 Update "man" page to reflect debugging switches. Also, some general
3952 clean up. Change the bug reporting URL to point to gccupc.org.
3953 See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
3956 2010-10-01 Gary Funck <gary@intrepid.com>
3958 * upc/upc-act.c: Do not zap all qualifier bits when constructing a
3959 non-shared result node.
3960 This fix was suggested by Paul H. in the following Berkeley Bugzilla
3961 report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
3962 use of "!" rather than "~" zapped all the type qualifier bits rather
3963 than just those that are related to the "shared" qualifier. This
3964 fix clears only the relevant bits.
3966 2010-09-27 Gary Funck <gary@intrepid.com>
3968 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
3969 the UPC forall depth count variable is not found.
3970 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
3971 The compiler will generate code that references this variable in
3972 order to implement nested upc_forall semantics. If there is a
3973 compiler build or install problem, this variable may not be found.
3974 In this case, terminate with an internal_error().
3976 2010-09-26 Gary Funck <gary@intrepid.com>
3978 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
3979 mis-diagnosed as syntax error.
3980 Fix a failure exhibited by the Berkeley test case,
3981 bug873a.upc, which has the code:
3983 upc_forall (;;;d) {...} The compiler did not properly handle
3984 the empty "condition" clause, and did not recover well when it was
3985 determined that the use of a double value, "d" above, was neither a
3986 pointer-to-shared nor an integer expression. The update implements a
3987 fix for both issues.
3988 See also: gcc/c-parser.c gcc/upc/upc-act.c
3990 2010-09-26 Gary Funck <gary@intrepid.com>
3992 * upc/upc-act.c: Fix bug: upc_forall with empty clauses
3993 mis-diagnosed as syntax error.
3994 A failure was exhibited by the Berkeley test case,
3995 bug873a.upc, which has the code:
3997 upc_forall (;;;d) {...} The compiler did not properly handle
3998 the empty "condition" clause, and did not recover well when it was
3999 determined that the use of a double value, "d" above, was neither a
4000 pointer-to-shared nor an integer expression. The update implements a
4001 fix for both issues.
4002 See also: gcc/c-parser.c gcc/upc/upc-act.c
4004 2010-09-25 Gary Funck <gary@intrepid.com>
4006 * upc/upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
4007 gimple check when calculating affinity for upc_forall.
4008 Intrepid test, test10.upc, failed to compile due a mis-match between
4009 the COMPONENT_REF node and the internal 'thread' field. Changed the
4010 code to make the types agree, and added a conversion to sizetype if
4013 2010-09-23 Gary Funck <gary@intrepid.com>
4015 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
4016 incorporated into the referencing type.
4017 This was semi-fixed a few times before. This update fixes a few
4018 more places where the layout qualifier wasn't being propagated
4019 through typedef's properly. What made this a bit tricky is shown in
4020 the example cited in the bug report:
4021 typedef shared [5] int A_t; A_t A[5*THREADS];
4022 In the typedef, the blocksize is being applied to a shared *scalar*,
4023 and the code was applying the blocksize only to arrays. This update
4024 handles shared scalars correctly.
4026 2010-09-23 Gary Funck <gary@intrepid.com>
4028 * upc/upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
4029 with static threads and size not a multiple of threads.
4030 Add an extra check for an attempt to apply a '[*]' layout qualifier
4031 to a shared array that does not specify a size that is a multiple of
4032 THREADS, when compiled in a static THREADS compilation environment.
4034 2010-09-22 Gary Funck <gary@intrepid.com>
4036 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
4037 upc_forall() semantics are not implemented
4038 The checkforall test in the Berkeley harness test suite indicated
4039 that GCC/UPC was not properly implementing nested upc_forall
4040 semantics. Nested upc_forall statements (both statically or
4041 dynamically nested) must implement their affinity clause as if it
4042 were "continue"; thus all steps in the loop must execute without
4043 regard for affinity. To implement these semantics a global depth
4044 counter, __upc_forall_depth, is maintained by the generated code
4045 that implements upc_forall.
4046 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
4047 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
4048 libupc/include/upc.h libupc/smp/upc_main.c
4050 2010-09-22 Gary Funck <gary@intrepid.com>
4052 * upc/upc-act.c, upc/upc-act.h: Fix bug: Nested upc_forall() semantics
4054 The checkforall test in the Berkeley harness test suite indicated
4055 that GCC/UPC was not properly implementing nested upc_forall
4056 semantics. Nested upc_forall statements (both statically or
4057 dynamically nested) must implement their affinity clause as if it
4058 were "continue"; thus all steps in the loop must execute without
4059 regard for affinity. To implement these semantics a global depth
4060 counter, __upc_forall_depth, is maintained by the generated code
4061 that implements upc_forall.
4062 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
4063 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
4064 libupc/include/upc.h libupc/smp/upc_main.c
4066 2010-09-19 Gary Funck <gary@intrepid.com>
4068 * c-decl.c: c-decl.c: zero out the layout specifier, after
4069 processing an array type.
4070 Fix the previous fix, that moved the setting of the type's layout
4071 qualifier to the outside of the array type processing loop. What is
4072 missing from the fix is that the layout_qualifier variable needs to
4073 be cleared after setting the type's blocksize.
4075 2010-09-19 Gary Funck <gary@intrepid.com>
4077 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
4078 given blocksize is greater than UPC_MAX_BLOCKSIZE.
4079 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
4080 the actual maximum block size. Therefore, the message was correct,
4081 but the underlying value that was being checked was wrong. Change
4082 the values so that they agree with the actual implementation-defined
4085 2010-09-18 Gary Funck <gary@intrepid.com>
4087 * upc/upc-act.c, upc/upc-pts-packed.c, upc/upc-pts-struct.c:
4088 Implement -fupc-debug switch.
4090 2010-09-11 Gary Funck <gary@intrepid.com>
4092 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
4093 multi-dimensional shared array with dynamic threads.
4094 This declaration caused an internal compiler error when compiled
4095 with dynamic threads:
4096 shared [*] int A[THREADS][16]; The bug was discovered when
4097 compiling the RTED_UPC test suite.
4098 The fix is to process layout qualifiers after the entire array type
4099 has been built. Otherwise, we try to calculate the blocksize on a
4100 shared array type that has not had its "size depends upon the value
4101 of THREADS" flag set.
4102 Also, added a test case.
4103 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
4105 2010-07-11 Gary Funck <gary@intrepid.com>
4107 Fix a bug where a statement in c_build_qualified_type()
4108 in the trunk had been inadvertently deleted.
4109 This bug showed up in the IA64 port, because jmpbuf's
4110 on that architecture must be 16 byte aligned, and they were not.
4111 c-typeck.c (c_build_qualified_type): Revive the deleted line.
4113 2010-07-08 Gary Funck <gary@intrepid.com>
4115 Make changes so that other language compilers
4116 will build and bootstrap.
4117 * c-family/c-common.c (compiling_upc, flag_upc,
4118 flag_upc_instrument, flag_upc_instrument_functions,
4119 use_upc_dwarf2_extensions): Move to stub-upc.c and
4121 * c-family/c-common.h (use_upc_dwarf2_extensions,
4122 compiling_upc): Add extern definitions - needed
4123 to compile/build other language front ends.
4124 * c-family/c.opt: Fix the spelling of ObjC.
4125 It had been incorrectly spelled as Objc.
4126 * c-family/c.opt: Add UPC for the various switches
4127 that are valid for both C and ObjC.
4128 * c-fmaily/c-opts.c: Add CL_UPC to the list of
4129 supported options switches when compiling assembly
4131 * lto/lto-lang.c (use_upc_dwarf2_extensions,
4132 flag_upc_instrument, flag_upc_instrument_functions):
4133 Remove these definitions. They have been moved
4134 to c-family/stub-upc.c.
4135 * upc/ChangeLog: Move relevant entries
4137 * c-family/stub-upc.c (compiling_upc, flag_upc,
4138 flag_upc_instrument, flag_upc_instrument_functions,
4139 use_upc_dwarf2_extensions): Moved from c-common.c
4140 * upc/upc-lang.c (compiling_upc, flag_upc,
4141 flag_upc_instrument, flag_upc_instrument_functions,
4142 use_upc_dwarf2_extensions): Moved from c-common.c
4143 * objc/objc-act.c (objc_gimplify_expr): Add additional
4144 parameters to c_gimplify_expr() call, that are used
4145 by upc's tree rewrites.
4146 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
4147 * gcc/cp/lex.c (init_reswords): If not compiling
4148 UPC, then mask off the UPC keywords.
4149 * cp/Make-lang.in (C_STUB_OBJS): Use this
4150 make macro to link with c-family/stub-objc.o
4151 and c-family/stub-upc.o.
4152 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
4153 * java/Make-lang.in (C_STUB_OBJS): Likewise.
4154 * objc/Make-lang.in: Link with c-family/stub-upc.o
4155 to avoid undefined references.
4156 c-parser.c: Fix line indentation.
4157 * libcpp/include/cpplib.h: Remove CL_UPC from
4158 the list of language kinds accepted by the
4159 C preprocessor. This is not necessary because
4160 UPC is a derivative of C99, and does not need
4161 a different language kind.
4162 * c-fmaily/c-opts.c (c_common_handle_option):
4163 Call set_std_c99() when processing the
4164 "--lang upc" switch, instead of setting the
4165 language kind to CL_UPC.
4166 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
4168 2010-07-03 Gary Funck <gary@intrepid.com>
4170 Merge trunk version 161517 into gupc branch.
4171 * gcc/stub-upc.c: Move to gcc/c-family/.
4172 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
4173 Add 'unused' attributes to avoid "set, but
4174 not referenced" warnings.
4175 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
4178 2010-07-03 Gary Funck <gary@intrepid.com>
4180 Merge trunk version 161517 into gupc branch.
4181 * upc/config-lang.in: Update references to files
4182 moved into c-family/.
4183 * upc/Make-lang.in: Likewise.
4184 * upc/upc-act.c: Likewise.
4185 * upc/upc-gasp.c: Likewise.
4186 * upc/upc-gimplify.c: Likewise.
4187 * upc/upc-lang.c: Likewise.
4188 * upc/upc-pts-packed.c: Likewise.
4189 * upc/upc-pts-struct.c: Likewise.
4190 * upc/upc-act.c: (upc_handle_option) add parameters to
4191 effect pass through call to c_common_handle_option.
4192 * upc/upc-act.h: (upc_handle_option) Likewise.
4193 * upc/upc-act.c: (map_unshared_var) used typed ggc allocation.
4194 * upc/upc-act.c: (upc_build_init_func) add call to
4195 to mark_decl_referenced(), to ensure that UPC shared
4196 variable initializer function is not removed from
4197 the call tree graph.
4199 2010-03-01 Gary Funck <gary@intrepid.com>
4201 Create gupc branch from trunk version 157149.