1 2014-11-05 Gary Funck <gary@intrepid.com>
3 Merge trunk version 217032 into gupc branch.
4 * c/c-upc-lang.c c/gupcspec.c c-family/c-upc.c
5 c-family/c-upc-gasp.c c-family/c-upc-low.c
6 c-family/c-upc-pts-ops.c c-family/c-upc-pts-packed.c
7 c-family/c-upc-pts-struct.c: Remove unnecessary #include's.
9 2014-10-27 Gary Funck <gary@intrepid.com>
11 Merge trunk version 216723 into gupc branch.
13 2014-10-20 Gary Funck <gary@intrepid.com>
15 Merge trunk version 216449 into gupc branch.
17 2014-10-13 Gary Funck <gary@intrepid.com>
19 Merge trunk version 216139 into gupc branch.
21 2014-10-06 Gary Funck <gary@intrepid.com>
23 Merge trunk version 215919 into gupc branch.
25 2014-09-29 Gary Funck <gary@intrepid.com>
27 Merge trunk version 215678 into gupc branch.
29 2014-09-22 Gary Funck <gary@intrepid.com>
31 Merge trunk version 215458 into gupc branch.
33 2014-09-15 Gary Funck <gary@intrepid.com>
35 Merge trunk version 215259 into gupc branch.
37 2014-09-08 Gary Funck <gary@intrepid.com>
39 Merge trunk version 215014 into gupc branch.
41 2014-09-01 Gary Funck <gary@intrepid.com>
43 Merge trunk version 214779 into gupc branch.
45 2014-08-25 Gary Funck <gary@intrepid.com>
47 Merge trunk version 214415 into gupc branch.
49 2014-08-19 Gary Funck <gary@intrepid.com>
51 Merge trunk version 214178 into gupc branch.
53 2014-08-14 Gary Funck <gary@intrepid.com>
55 Merge trunk version 213968 into gupc branch.
56 DEV-PHASE: Bump to 5.0.0-1.
58 2014-08-11 Gary Funck <gary@intrepid.com>
60 Merge trunk version 213809 into gupc branch.
62 2014-08-05 Gary Funck <gary@intrepid.com>
64 Merge trunk version 213646 into gupc branch.
66 2014-08-04 Gary Funck <gary@intrepid.com>
68 Merge trunk version 213543 into gupc branch.
70 2014-08-01 Gary Funck <gary@intrepid.com>
72 * testsuite/gcc.dg/gupc: New.
73 Add compile-only tests which check for semantic errors/warnings
74 and verify that UPC constructs generate expected UPC runtime calls.
75 * testsuite/upc.dg: Removed.
76 * testsuite/lib/upc-dg.exp: Removed.
77 * testsuite/lib/upc.exp: Removed.
78 * testsuite/lib/target-supports.exp
79 (check_effective_target_fupc): New.
80 (check_effective_target_upc_struct_pts,
81 check_effective_target_upc_packed_pts):
82 Pass "-fupc -fno-upc-pre-include".
83 * testsuite/gcc.dg/gupc/gupc.exp: Moved from
84 testsuite/upc.dg/compile/compile.exp and modified to
87 2014-07-28 Gary Funck <gary@intrepid.com>
89 Merge trunk version 213118 into gupc branch.
91 2014-07-21 Gary Funck <gary@intrepid.com>
93 Merge trunk version 212892 into gupc branch.
95 2014-07-14 Gary Funck <gary@intrepid.com>
97 Merge trunk version 212522 into gupc branch.
99 2014-07-07 Gary Funck <gary@intrepid.com>
101 Merge trunk version 212325 into gupc branch.
103 2014-07-02 Nenad Vukicevic <nenad@intrepid.com>
105 * configure.ac: Fix checking for 32-bits target while
106 setting the default PTS packed bits.
107 * configure: Regenerate.
109 2014-06-30 Gary Funck <gary@intrepid.com>
111 Merge trunk version 212138 into gupc branch.
113 2014-06-23 Gary Funck <gary@intrepid.com>
115 Merge trunk version 211886 into gupc branch.
117 2014-06-16 Gary Funck <gary@intrepid.com>
119 Merge trunk version 211699 into gupc branch.
121 2014-06-14 Gary Funck <gary@intrepid.com>
123 Merge trunk version 211672 into gupc branch.
125 2014-06-12 Gary Funck <gary@intrepid.com>
127 Merge trunk version 211604 into gupc branch.
129 2014-06-02 Gary Funck <gary@intrepid.com>
131 Merge trunk version 211129 into gupc branch.
133 2014-05-26 Gary Funck <gary@intrepid.com>
135 Merge trunk version 210928 into gupc branch.
137 2014-05-21 Nenad Vukicevic <nenad@intrepid.com>
139 * config/darwin.h (LINK_COMMAND_SPEC_A): Fix linker spec
140 on Darwin, replace -fupc-link with -fupc option.
142 2014-05-12 Gary Funck <gary@intrepid.com>
144 Merge trunk version 210323 into gupc branch.
146 2014-05-05 Gary Funck <gary@intrepid.com>
148 Merge trunk version 210065 into gupc branch.
150 2014-04-28 Gary Funck <gary@intrepid.com>
152 Merge trunk version 209848 into gupc branch.
154 2014-04-21 Gary Funck <gary@intrepid.com>
156 Merge trunk version 209542 into gupc branch.
158 2014-04-20 Gary Funck <gary@intrepid.com>
160 * c/c-typeck.c (build_binary_op): Check for invalid comparison
161 between pointers-to-shared with target types that have
162 differing UPC blocking factors.
164 2014-04-16 Gary Funck <gary@intrepid.com>
166 Fix PTS comparison involving a generic PTS using packed representation.
167 * c-family/c-upc-pts-packed.c (upc_pts_packed_build_cond_expr):
168 When comparing (shared void *) pointers, mask out the phase component.
170 2014-04-14 Gary Funck <gary@intrepid.com>
172 Merge trunk version 209359 into gupc branch.
173 DEV-PHASE: Bump to 4.10.0-1.
175 2014-04-07 Gary Funck <gary@intrepid.com>
177 Merge trunk version 209179 into gupc branch.
179 2014-04-04 Gary Funck <gary@intrepid.com>
181 * tree-upc.c tree-upc.h: New.
182 Factor UPC-specific tree node handling
183 into tree-upc.c and tree-upc.h.
184 * Makefile.in: Refer to tree-upc.c and tree-upc.h.
185 * c/c-convert.c c/c-decl.c c/c-objc-common.c
186 c/c-typeck.c c/c-upc-lang.c c-family/c-common.c
187 c-family/c-pretty-print.c c-family/c-upc-low.c
188 c-family/c-upc-pts-packed.c c-family/c-upc-pts-struct.c
189 c-family/c-upc.c c-family/c-upc.h convert.c
190 dwarf2out.c print-tree.c tree-core.h tree-dump.c
191 tree-pretty-print.c tree.c tree.h: Rename variables and
192 functions to include 'upc' in their names.
194 2014-03-31 Gary Funck <gary@intrepid.com>
196 Merge trunk version 208955 into gupc branch.
198 2014-03-24 Gary Funck <gary@intrepid.com>
200 Merge trunk version 208783 into gupc branch.
202 2014-03-17 Gary Funck <gary@intrepid.com>
204 Merge trunk version 208609 into gupc branch.
206 2014-03-10 Gary Funck <gary@intrepid.com>
208 Merge trunk version 208447 into gupc branch.
210 2014-03-03 Gary Funck <gary@intrepid.com>
212 Merge trunk version 208270 into gupc branch.
214 2014-02-24 Gary Funck <gary@intrepid.com>
216 Merge trunk version 208066 into gupc branch.
218 2014-02-17 Gary Funck <gary@intrepid.com>
220 Merge trunk version 207818 into gupc branch.
222 2014-02-10 Gary Funck <gary@intrepid.com>
224 Merge trunk version 207649 into gupc branch.
226 2014-02-03 Gary Funck <gary@intrepid.com>
228 Merge trunk version 207415 into gupc branch.
230 2014-01-30 Gary Funck <gary@intrepid.com>
232 Merge trunk version 207297 into gupc branch.
234 2014-01-28 Gary Funck <gary@intrepid.com>
236 * c/gupcspec.c (match_suffix): Remove use of PARAMS.
238 2014-01-20 Gary Funck <gary@intrepid.com>
240 Merge trunk version 206847 into gupc branch.
242 2014-01-20 Gary Funck <gary@intrepid.com>
244 Merge trunk version 206792 into gupc branch.
246 2014-01-17 Nenad Vukicevic <nenad@intrepid.com>
248 * c-family/c-cppbuiltin.c (upc_cpp_builtins): Remove pre-defines
249 for __UPC_CASTABLE__, __UPC_COLLECTIVE__, __UPC_TICK__ and
250 __UPC_PUPC__ as they are library and not compiler features.
252 2014-01-13 Gary Funck <gary@intrepid.com>
254 Merge trunk version 206575 into gupc branch.
256 2014-01-10 Gary Funck <gary@intrepid.com>
258 Update copyright notices.
260 2014-01-06 Gary Funck <gary@intrepid.com>
262 Merge trunk version 206354 into gupc branch.
264 2014-01-04 Gary Funck <gary@intrepid.com>
266 Integrate GUPC into cc1.
267 * upc/: Remove directory. Re-distribute files.
268 * c/c-upc-lang.c: Move upc/upc-lang.c here.
269 * c/c-upc-lang.h: New.
270 * c-family/c-upc.c: Move upc/upc-act.c here.
271 * c-family/c-upc-gasp.c: Move upc/upc-gasp.c here.
272 * c-family/c-upc-gasp.h: Move upc/upc-gasp.h here.
273 * c-family/c-upc.h: Move upc/upc-act.h here.
274 * c-family/c-upc-low.c: Move upc/upc-genericize.c here.
275 * c-family/c-upc-low.h: Move upc/upc-genericize.h here.
276 * c-family/c-upc-pts.h: Split upc/upc-pts.h here.
277 * c-family/c-upc-pts-ops.c: Split upc/upc-pts.c here.
278 * c-family/c-upc-pts-ops.h: Split upc/upc-pts.h here.
279 * c-family/c-upc-pts-packed.c: Move upc/upc-pts-packed.c here.
280 * c-family/c-upc-pts-struct.c: Move upc/upc-pts-struct.c here.
281 * c-family/c-upc-rts-names.h: Move upc/upc-rts-names.h here.
282 * c-family/stub-upc.c: Remove.
283 * c/gupcspec.c: Move upc/gupcspec.c here.
284 * doc/gupc.texi: Move upc/gupc.texi here.
285 * c/c-objc-common.h: Revert to trunk.
286 * cp/lex.c: Revert to trunk.
287 * cp/Make-lang.in: Revert to trunk.
288 * expr.h: Revert to trunk.
289 * flags.h: Revert to trunk.
290 * fortran/Make-lang.in: Revert to trunk.
291 * java/Make-lang.in: Revert to trunk.
292 * lto/Make-lang.in: Revert to trunk.
293 * objc/Make-lang.in: Revert to trunk.
294 * stor-layout.c: Delete custom hook routines, use
295 newly defined declaration layout language hooks.
296 * stor-layout.h: Revert to trunk.
297 * ../configure.ac: Remove check for UPC language dialect.
298 * ../configure: Re-generate.
299 * Makefile.in (C_COMMON_OBJS): Add UPC-related object files.
300 * c/Make-lang.in: Compile UPC-related files. Build gupc driver.
301 * c/c-decl.c: Call c_genericize() directly rather than
302 lang_hooks.genericize(). Adjust for flag_upc and name changes.
303 * c/c-lang.c (LANG_HOOKS_UPC_TOGGLE_KEYWORDS,
304 LANG_HOOKS_UPC_PTS_STRUCT_INIT_TYPE, LANG_HOOKS_UPC_BUILD_INIT_FUNC,
305 LANG_HOOKS_LAYOUT_DECL_P, LANG_HOOKS_LAYOUT_DECL):
306 Define UPC-specific hooks.
307 * c/c-objc-common.c (upc_types_compatible_p): Move to here.
308 (c_types_compatible_p): Call upc_types_compatible_p().
309 * c/c-parser.c (upc_affinity_test): Move to here.
310 (upc_build_sync_stmt): Move to here.
311 * c/c-typeck.c: #include c-family/c-upc-low.h.
312 * c/config-lang.in (gtfiles): Add UPC gt files.
313 * c-family/c-common.c: Add #include c-upc.h.
314 (c_common_get_alias_set): Move UPC-related alias check to here.
315 (upc_num_threads): Move to here.
316 (c_common_init_ts): Mark UPC-specific statement tree definitions.
317 * c-family/c-common.def (UPC_FORALL_STMT, UPC_SYNC_STMT):
318 Define UPC-specific statements.
319 * c-family/c-common.h (RID_FIRST_UPC_QUAL, RID_LAST_UPC_QUAL,
320 RID_FIRST_UPC_KW, RID_LAST_UPC_KW, UPC_IS_KEYWORD): New.
321 (clk_upc, clk_upcxx, c_dialect_upc, compiling_upc): Delete.
322 (use_upc_dwarf2_extensions, flag_upc): Move to c-family/c.opts.
323 (upc_num_threads): Declare prototype.
324 (UPC_SYNC_OP, UPC_SYNC_ID, UPC_SYNC_NOTIFY_OP, UPC_SYNC_WAIT_OP,
325 UPC_SYNC_BARRIER_OP): Move definitions here.
326 * c-family/c-cppbuiltin.c: Remove #include c-upc.h and
327 add #include c-upc-pts.h.
328 (upc_cpp_builtins): Move to here. Define as static.
329 (c_cpp_builtin): Change call to c_dialect_upc () into
331 * c-family/c-gimplify.c: #include c-upc-low.h.
332 (c_common_genericize): Rename c_genericize() to this and make static.
333 (c_genericize): Call upc_genericize() if flag_upc is set and
334 then call c_common_genericize().
335 * c-family/c-opts.c: #include c-upc-low.h and c-upc-pts.h.
336 (c_family_lang_mask): Remove CL_UPC.
337 (c_common_option_lang_mask): Remove CL_UPC from lang_flags.
338 (upc_init_options): Move to here, make it static.
339 (c_common_init_options): Add early check for flag_upc, if found
340 call upc_init_options().
341 (upc_handle_option): Move to here and make static.
342 (c_common_handle_option): Check for UPC-related options
343 and call upc_handle_option(). Remove references to
344 OPT_lang_upc and clk_upc. Check flag_upc instead of
345 calling c_dialect_upc().
346 * c-family/c-pragma.c: #include langhooks.h.
347 (handle_pragma_upc): Remove warning if flag_upc not set;
348 flag_upc now serves the function of compiling_upc().
349 Add call to lang_hooks.upc.toggle_keywords() to
350 implement enable/disable of UPC keywords.
351 (init_pragma): Check flag_upc instead of compiling_upc.
352 * c-family/c-pragma.h (deny_pragma_upc, get_upc_consistency_mode,
353 permit_pragma_upc, pop_upc_consistency_mode,
354 pragma_upc_permitted_p, push_upc_consistency_mode,
355 set_upc_consistency_mode): Move prototypes to here.
356 * c-family/c.opt: Remove all references to "UPC" language dialect.
357 Add -fupc option. Delete -fupc-link option.
358 Add -fupc-threads= option and deprecate -fupc-threads-.
359 * configure.ac: Remove check for UPC language dialect.
360 * configure: Re-generate.
361 * explow.c (tree_expr_size): Move to tree.c.
362 * gcc.c: Change specs to refer to -fupc instead of -lang-upc
364 * hooks.c (hook_bool_tree_tree_false): Declare prototype.
365 * langhooks.c (lhd_do_nothing_b, lhd_do_nothing_t_t): New.
366 * langhooks.h (lang_hooks_for_upc): Define hooks for UPC.
367 (layout_decl_p, layout_decl): Define language-specific
368 declaration layout hooks.
369 (genericize): Remove this language hook.
370 * langhooks-def.h: Define UPC default language hooks.
371 Define language-specific declaration layout default hooks.
372 * langhooks.c (lhd_do_nothing_b): New.
373 * tree-core.h (shared_flag): Rename from upc_shared_flag.
374 (strict_flag): Rename from upc_strict_flag.
375 (relaxed_flag): Rename from upc_relaxed_flag.
376 (threads_factor_flag): New. Was a lang. flag.
377 (block_factor_0): New. Was a lang. flag.
378 (block_factor_x): New. Was a lang. flag.
379 (spare1): Decrement spare bits from 8 down to 5.
380 * tree.c (block_factor_for_type): Move to here.
381 (tree_expr_size): Move to here from explow.c.
382 (block_factor_lookup): Move to here.
383 (block_factor_insert): Move to here.
384 (upc_get_block_factor): Move to here.
385 * tree.h: refer to block_factor_* instead of upc_block_factor_*.
386 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
387 TYPE_HAS_THREADS_FACTOR): Refer to tree base flag bits instead
389 (tree_expr_size): Move prototype from explow.h.
391 2013-12-30 Gary Funck <gary@intrepid.com>
393 Merge trunk version 206243 into gupc branch.
395 2013-12-23 Gary Funck <gary@intrepid.com>
397 Merge trunk version 206179 into gupc branch.
399 2013-12-22 Gary Funck <gary@intrepid.com>
401 * upc/upc-act.c (upc_cpp_builtins): Bump UPC_VERSION
402 to reflect UPC specification version 1.3 compliance.
404 2013-12-16 Gary Funck <gary@intrepid.com>
406 Merge trunk version 206010 into gupc branch.
408 2013-12-09 Gary Funck <gary@intrepid.com>
410 Merge trunk version 205801 into gupc branch.
412 2013-12-03 Meador Inge <meadori@codesourcery.com>
414 * tree-core.h (tree_type_common): Change tree_type_common to use
415 user-provided GC marking.
416 (gt_ggc_mx, gt_pch_nx): New prototypes.
417 * tree.c (gt_ggc_mx, gt_pch_nx): New functions.
419 2013-12-03 Gary Funck <gary@intrepid.com>
423 2011-10-10 Gary Funck <gary@intrepid.com>
425 * tree.c (check_qualified_type, check_aligned_type):
426 Call tree_int_cst_equal() to compare UPC blocking factors
427 if the corresponding tree pointers are not equal.
428 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
430 2013-12-03 Gary Funck <gary@intrepid.com>
432 * c-family/c.opt: Fix typo introduced in 2013-06-03
435 2013-12-02 Gary Funck <gary@intrepid.com>
437 Merge trunk version 205582 into gupc branch.
439 2013-11-26 Meador Inge <meadori@codesourcery.com>
441 * upc/upc-genericize.c (upc_expand_get): Ensure that temporaries
442 are declared via a DECL_EXPR.
444 2013-11-25 Gary Funck <gary@intrepid.com>
446 Merge trunk version 205346 into gupc branch.
448 2013-11-18 Gary Funck <gary@intrepid.com>
450 Merge trunk version 204942 into gupc branch.
452 2013-11-15 Gary Funck <gary@intrepid.com>
454 Merge trunk version 204894 into gupc branch.
456 2013-11-15 Gary Funck <gary@intrepid.com>
458 Merge trunk version 204659 into gupc branch.
460 2013-11-04 Gary Funck <gary@intrepid.com>
462 Merge trunk version 204345 into gupc branch.
464 2013-10-31 Gary Funck <gary@intrepid.com>
466 Released GUPC 4.9.0.1 based on version 203902.
467 This release version was committed on 2013-10-21.
468 * DEV-PHASE: Bump to 4.9.0.2.
469 * DATESTAMP: Bump date stamp.
471 2013-10-28 Gary Funck <gary@intrepid.com>
473 Merge trunk version 204119 into gupc branch.
475 2013-10-21 Gary Funck <gary@intrepid.com>
477 Merge trunk version 203886 into gupc branch.
479 2013-10-14 Gary Funck <gary@intrepid.com>
481 Merge trunk version 203514 into gupc branch.
483 2013-10-07 Gary Funck <gary@intrepid.com>
485 Merge trunk version 203240 into gupc branch.
487 2013-10-01 Gary Funck <gary@intrepid.com>
489 Implement pointer-to-shared -> integer conversions.
490 Required per UPC 1.3 Specification.
491 * c/c-typeck.c (build_c_cast): Remove logic that diagnosed
492 PTS->int conversions as an error. Rewrite into a CONVERT_EXPR
493 for later processing by upc_genericize().
495 2013-10-01 Gary Funck <gary@intrepid.com>
497 Implement pointer-to-shared -> integer conversions.
498 Required per UPC 1.3 Specification.
499 * upc/upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
500 (upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().
502 2013-09-30 Gary Funck <gary@intrepid.com>
504 Merge trunk version 203026 into gupc branch.
506 2013-09-23 Gary Funck <gary@intrepid.com>
508 Merge trunk version 202825 into gupc branch.
510 2013-09-18 Gary Funck <gary@intrepid.com>
512 Merge trunk version 202725 into gupc branch.
514 2013-09-16 Gary Funck <gary@intrepid.com>
516 Merge trunk version 202619 into gupc branch.
518 2013-09-09 Gary Funck <gary@intrepid.com>
520 Merge trunk version 202382 into gupc branch.
522 2013-09-02 Gary Funck <gary@intrepid.com>
524 Merge trunk version 202159 into gupc branch.
526 2013-08-26 Gary Funck <gary@intrepid.com>
528 Merge trunk version 202008 into gupc branch.
530 2013-08-19 Gary Funck <gary@intrepid.com>
532 Merge trunk version 201832 into gupc branch.
534 2013-08-05 Gary Funck <gary@intrepid.com>
536 Merge trunk version 201483 into gupc branch.
538 2013-07-29 Gary Funck <gary@intrepid.com>
540 Merge trunk version 201301 into gupc branch.
542 2013-07-22 Gary Funck <gary@intrepid.com>
544 Merge trunk version 201119 into gupc branch.
546 2013-07-15 Gary Funck <gary@intrepid.com>
548 Merge trunk version 200955 into gupc branch.
550 2013-07-08 Gary Funck <gary@intrepid.com>
552 Merge trunk version 200775 into gupc branch.
554 2013-07-01 Gary Funck <gary@intrepid.com>
556 Merge trunk version 200575 into gupc branch.
558 2013-06-24 Gary Funck <gary@intrepid.com>
560 Merge trunk version 200361 into gupc branch.
562 2013-06-19 Gary Funck <gary@intrepid.com>
564 Merge trunk version 200149 into gupc branch.
566 2013-06-19 Gary Funck <gary@intrepid.com>
568 Merge trunk version 200149 into gupc branch.
569 * upc/upc-act.c (upc_create_static_var): New.
570 (upc_build_init_func): Call upc_create_static_var() to
571 create a static variable, __upc_init_func_addr, which
572 is initialized to the address of the UPC
573 shared data initialization function. This change is
574 needed to avoid writing to the output assembly language
576 (upc_build_sync_stmt): Delete unused variable, sync_expr_type.
578 2013-06-03 Gary Funck <gary@intrepid.com>
580 Merge trunk version 199596 into gupc branch.
582 2013-05-27 Gary Funck <gary@intrepid.com>
584 Merge trunk version 199350 into gupc branch.
586 2013-05-20 Gary Funck <gary@intrepid.com>
588 Merge trunk version 199093 into gupc branch.
590 2013-05-14 Gary Funck <gary@intrepid.com>
592 * upc/upc-pts-packed.c (upc_pts_packed_build_cvt):
593 When checking whether the phase of a PTS should be reset,
594 if the source type is an array type, then bypass
595 the check for equal type sizes.
596 * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
598 2013-05-13 Gary Funck <gary@intrepid.com>
600 Merge trunk version 198815 into gupc branch.
602 2013-05-06 Gary Funck <gary@intrepid.com>
604 Merge trunk version 198622 into gupc branch.
606 2013-04-29 Gary Funck <gary@intrepid.com>
608 Merge trunk version 198433 into gupc branch.
610 2013-04-15 Gary Funck <gary@intrepid.com>
612 Merge trunk version 197958 into gupc branch.
614 2013-04-08 Gary Funck <gary@intrepid.com>
616 Merge trunk version 197571 into gupc branch.
618 2013-04-04 Gary Funck <gary@intrepid.com>
620 Per the UPC 1.3 specification, the type of the
621 optional barrier/notify/wait expression is not constrained to
622 'int'. Instead, any type that is assignment compatible
623 with an 'int' type is permitted.
624 * c/c-parser.c (c_parser_upc_sync_statement): Do not check
625 the optional expression type here. Let upc_build_sync_stmt()
627 * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
628 * c/c-typeck.c (c_cvt_expr_for_assign): New. Also, call
629 error_at() in lieu of error() when the source location is known.
630 * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
631 to check/convert the optional synchronization statement
634 2013-04-02 Gary Funck <gary@intrepid.com>
636 Merge trunk version 197340 into gupc branch.
638 2013-04-02 Gary Funck <gary@intrepid.com>
640 Revert revision 178346 (2011-08-30)
641 which changed the prototype of check_qualified_type and related
642 functions so that their parameters were just 'tree' and not
643 'const_tree'. This seemed necessary at the time because of a
644 change to TYPE_BLOCK_FACTOR(), which in turn called function
645 that hashed the type node pointer. The hash functions did
646 not accept "const void *" pointers. Implement a work around
647 that removes this restriction.
648 * c/c-typeck.c: Revert.
650 * tree.h: Revert. Change prototype of upc_block_factor_lookup()
651 to accept a 'const_tree' pointer to a type node.
652 * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
653 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
654 input argument and convert this to 'tree' for use with hash function.
656 2013-04-02 Gary Funck <gary@intrepid.com>
658 Revert revision 178346 (2011-08-30)
659 which changed the prototype of check_qualified_type and related
660 functions so that their parameters were just 'tree' and not
661 'const_tree'. This seemed necessary at the time because of a
662 change to TYPE_BLOCK_FACTOR(), which in turn called a function
663 that hashed the type node pointer. The hash functions did
664 not accept "const void *" pointers. Implement a work around
665 that removes this restriction.
666 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
667 input argument and convert this to 'tree' for use with hash function.
669 2013-03-25 Gary Funck <gary@intrepid.com>
671 Merge trunk version 197029 into gupc branch.
673 2013-03-21 Gary Funck <gary@intrepid.com>
675 Released GUPC 4.8.0.3 based on version 196601.
676 This release version was committed on 2013-03-11.
677 * DATESTAMP: Bump date stamp.
679 2013-03-18 Gary Funck <gary@intrepid.com>
681 Merge trunk version 196771 into gupc branch.
682 * DEV-PHASE: Bump release identifier to 4.9.0-1.
684 2013-03-11 Gary Funck <gary@intrepid.com>
686 Merge trunk version 196592 into gupc branch.
688 2013-03-04 Gary Funck <gary@intrepid.com>
690 Merge trunk version 196422 into gupc branch.
692 2013-02-25 Gary Funck <gary@intrepid.com>
694 Merge trunk version 196253 into gupc branch.
696 2013-02-18 Gary Funck <gary@intrepid.com>
698 Merge trunk version 196115 into gupc branch.
700 2013-02-11 Gary Funck <gary@intrepid.com>
702 Merge trunk version 195937 into gupc branch.
704 2013-02-04 Gary Funck <gary@intrepid.com>
706 Merge trunk version 195707 into gupc branch.
708 2013-01-28 Gary Funck <gary@intrepid.com>
710 Merge trunk version 195502 into gupc branch.
712 2013-01-21 Gary Funck <gary@intrepid.com>
714 Merge trunk version 195330 into gupc branch.
716 2013-01-14 Gary Funck <gary@intrepid.com>
718 Merge trunk version 195164 into gupc branch.
720 2013-01-07 Gary Funck <gary@intrepid.com>
722 Merge trunk version 194962 into gupc branch.
724 2012-12-24 Gary Funck <gary@intrepid.com>
726 Merge trunk version 194709 into gupc branch.
728 2012-12-17 Gary Funck <gary@intrepid.com>
730 Merge trunk version 194552 into gupc branch.
732 2012-12-10 Gary Funck <gary@intrepid.com>
734 Merge trunk version 194351 into gupc branch.
736 2012-12-03 Gary Funck <gary@intrepid.com>
738 Merge trunk version 194076 into gupc branch.
740 2012-11-30 Gary Funck <gary@intrepid.com>
742 Released GUPC 4.8.0.2 based on version 193446.
743 Date of release: 2012-11-12.
744 * DEV-PHASE: Bump release identifier to 4.8.0-3.
745 * DATESTAMP: Bump date stamp.
747 2012-11-26 Gary Funck <gary@intrepid.com>
749 Merge trunk version 193807 into gupc branch.
751 2012-11-20 Gary Funck <gary@intrepid.com>
753 Merge trunk version 193672 into gupc branch.
755 2012-11-19 Gary Funck <gary@intrepid.com>
757 Merge trunk version 193617 into gupc branch.
759 2012-11-15 Gary Funck <gary@intrepid.com>
761 Merge trunk version 193426 into gupc branch.
763 2012-11-12 Gary Funck <gary@intrepid.com>
765 Released GUPC 4.8.0.1 based on version 192948.
766 Date of release: 2012-10-29.
767 * DEV-PHASE: Bump release identifier to 4.8.0-2.
768 * DATESTAMP: Bump date stamp.
770 2012-11-05 Gary Funck <gary@intrepid.com>
772 Merge trunk version 193152 into gupc branch.
774 2012-10-29 Gary Funck <gary@intrepid.com>
776 Merge trunk version 192909 into gupc branch.
778 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
780 Remove unused --upc-pthreads-per-process compile switch.
781 * c-family/c.opt: Remove --upc-pthreads-per-process switch
782 that compiler/runtime do not use.
783 * c-family/c-opts.c (c_common_handle_option): Remove support for
784 --upc-pthreads-per-process switch.
785 * c-family/c-common.c: Ditto.
786 * c-family/c-common.h: Ditto.
788 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
790 Remove unused --upc-pthreads-per-process compile switch.
791 * upc/upc-act.c (upc_handle_option): Ditto.
792 (upc_cpp_builtins): Ditto.
793 * upc/upc-lang.c (upc_init_options): Ditto.
795 2012-10-27 Gary Funck <gary@intrepid.com>
797 * defaults.h: fix typos and formatting in UPC-related entries.
799 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
801 Place shared initialization code into the .text
802 section instead of a separate .upc_init section.
803 * defaults.h (UPC_INIT_SECTION_NAME): Delete.
804 (UPC_INIT_BEGIN_NAME): Delete.
805 (UPC_INIT_END_NAME): Delete.
806 * doc/tm.texi.in: Ditto.
807 * doc/tm.texi: Ditto.
809 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
811 Place shared initialization code into the .text
812 section instead of a separate .upc_init section.
813 * upc/upc-act.c (upc_build_init_func): Remove settings
814 of the section for shared initialization code.
816 2012-10-22 Gary Funck <gary@intrepid.com>
818 Merge trunk version 192673 into gupc branch.
820 2012-10-15 Gary Funck <gary@intrepid.com>
822 Merge trunk version 192449 into gupc branch.
824 2012-10-08 Gary Funck <gary@intrepid.com>
826 Merge trunk version 192198 into gupc branch.
828 2012-10-01 Gary Funck <gary@intrepid.com>
830 Merge trunk version 191931 into gupc branch.
832 2012-09-26 Gary Funck <gary@intrepid.com>
834 Implement support for various UPC version 1.3 specification
835 additions and changes. Deprecate support for upc_local_alloc.
836 Add support for upc_tick (wall-clock timer) library.
837 Add support for collective de-allocation functions:
838 upc_all_free and upc_all_lock_free.
839 Consult libgupc/ChangeLog,
840 libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
842 2012-09-26 Gary Funck <gary@intrepid.com>
844 * upc/upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.
846 2012-09-24 Gary Funck <gary@intrepid.com>
848 Merge trunk version 191658 into gupc branch.
850 2012-09-17 Gary Funck <gary@intrepid.com>
852 Merge trunk version 191376 into gupc branch.
854 2012-09-10 Gary Funck <gary@intrepid.com>
856 Merge trunk version 191141 into gupc branch.
858 2012-08-29 Nenad Vukicevic <nenad@intrepid.com>
860 * upc/gupc.texi: Add description for -fupc-pre-include.
862 2012-08-27 Gary Funck <gary@intrepid.com>
864 Merge trunk version 190707 into gupc branch.
865 * tree.h (struct tree_base): Adjust various
866 UPC tree and type flags to refer to the
867 newly introduced u.bits field.
869 2012-08-20 Gary Funck <gary@intrepid.com>
871 Merge trunk version 190524 into gupc branch.
872 Incorporates a fix in genoutput.c (to properly use
873 CONST_CAST) that led to build failures with
874 older versions of g++.
876 2012-08-16 Gary Funck <gary@intrepid.com>
878 Merge trunk version 190437 into gupc branch.
879 Incorporates a fix for a build failure on the PPC
880 due to passing incorrect switches to the assembler.
881 Also, first merged trunk revision that compiles GCC
882 with the C++ compiler in the first stage.
884 2012-08-16 Gary Funck <gary@intrepid.com>
886 * upc/upc-pts-struct.c (upc_pts_struct_is_null_p):
887 Adjust VEC_index() calls to use C++ syntax.
888 This is required as part of the move to compile
889 GCC with the C++ compiler.
891 2012-08-13 Gary Funck <gary@intrepid.com>
893 Merge trunk version 190336 into gupc branch.
895 2012-08-09 Gary Funck <gary@intrepid.com>
897 * c-family/c-common.c (c_fully_fold_internal): Do not fold
898 offsetof-like expressions when they are applied to UPC
901 2012-08-07 Gary Funck <gary@intrepid.com>
903 * upc/upc-genericize.c: Delete un-used include of optabs.h.
904 Fixes a parallel make failure due to un-noticed dependency.
906 2012-08-06 Gary Funck <gary@intrepid.com>
908 Merge trunk version 190173 into gupc branch.
910 2012-08-01 Gary Funck <gary@intrepid.com>
912 Merge trunk version 190063 into gupc branch.
913 Incorporates fix for build failure on IA64.
915 2012-07-30 Gary Funck <gary@intrepid.com>
917 Merge trunk version 189954 into gupc branch.
919 2012-07-27 Gary Funck <gary@intrepid.com>
921 Merge trunk version 189856 into gupc branch.
922 Incorporates fix for bootstrap with a sub-set of language
923 specific source directories present.
924 * optabs.c: Revert to trunk. Rather than defining opcodes
925 as a way of defining get/put runtime library function names,
926 generate them directly in gcc/upc/upc-genericize.c.
928 * genopinit.c: Ditto.
930 2012-07-27 Gary Funck <gary@intrepid.com>
932 * upc/upc-genericize.c (upc_expand_get, upc_expand_put):
933 Rather than referring to UPC-specific opcodes to find
934 the name of the get/put library function name, generate
936 (get_lc_mode_name): New.
938 2012-07-25 Gary Funck <gary@intrepid.com>
940 * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
941 Fix regression: field-by-field comparison of UPC
942 pointer-to-shared (vaddr, thread) only works
943 (with the current logic) for the == and != operators.
945 2012-07-24 Gary Funck <gary@intrepid.com>
947 * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
948 Fix warning about use of const_tree.
950 2012-07-24 Gary Funck <gary@intrepid.com>
952 Per UPC spec. 6.4.2p6, ignore the value of the
953 phase of a pointer-to-shared, when comparing for
955 * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
956 Use bit-wise comparison only if the UPC pointer-to-shared
957 target type has a block size <= 1 and the representation
958 has vaddr first or the comparison is for equality/inequality.
959 * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
960 Use (vaddr, thread) comparison only if the UPC pointer-to-shared
961 has a block size <= 1 or the comparison is for equality/inequality.
963 2012-07-23 Gary Funck <gary@intrepid.com>
965 Merge trunk version 189777 into gupc branch.
967 2012-07-16 Gary Funck <gary@intrepid.com>
969 Merge trunk version 189545 into gupc branch.
971 2012-07-12 Gary Funck <gary@intrepid.com>
973 Merge trunk version 189366 into gupc branch.
975 2012-07-05 Gary Funck <gary@intrepid.com>
977 Merge trunk version 189274 into gupc branch.
978 Incorporates graphite build infrastructure changes.
980 2012-07-04 Gary Funck <gary@intrepid.com>
982 Merge trunk version 189080 into gupc branch.
983 * Makefile.in: Adjust for move of C front-end files.
984 * c/Make-lang.in: Ditto.
986 2012-07-04 Gary Funck <gary@intrepid.com>
988 * upc/config-lang.in: Adjust for move of C front-end files.
989 * upc/upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
990 * upc/upc-gasp.c: Ditto.
991 * upc/upc-genericize.c: Ditto.
992 * upc/upc-lang.c: Ditto.
993 * upc/upc-pts-struct.c: Ditto.
995 2012-07-03 Gary Funck <gary@intrepid.com>
997 Merge trunk version 189078 into gupc branch.
999 2012-06-25 Gary Funck <gary@intrepid.com>
1001 Merge trunk version 188931 into gupc branch.
1003 2012-06-18 Gary Funck <gary@intrepid.com>
1005 Merge trunk version 188721 into gupc branch.
1007 2012-06-11 Gary Funck <gary@intrepid.com>
1009 Merge trunk version 188380 into gupc branch.
1011 2012-06-04 Gary Funck <gary@intrepid.com>
1013 Merge trunk version 188168 into gupc branch.
1015 2012-05-29 Gary Funck <gary@intrepid.com>
1017 Merge trunk version 187927 into gupc branch.
1019 2012-05-19 Gary Funck <gary@intrepid.com>
1021 * upc/upc-act.c (upc_lang_layout_decl): Ignore declarations of
1022 an array of shared type declarations if the size of the
1023 array is zero. This avoids a segfault when processing
1024 the UPC blocking factor.
1026 2012-05-18 Gary Funck <gary@intrepid.com>
1028 Merge trunk version 187666 into gupc branch.
1029 Incorporates fix for ICE in tree vectorization pass
1030 when processing strided loads.
1032 2012-05-17 Gary Funck <gary@intrepid.com>
1034 Merge trunk version 187578 into gupc branch.
1036 2012-05-09 Gary Funck <gary@intrepid.com>
1038 Merge trunk version 187347 into gupc branch.
1039 Incorporates fix for segfault in tree vectorization pass.
1041 2012-05-08 Nenad Vukicevic <nenad@intrepid.com>
1043 * upc/gupcspec.c (lang_specific_driver): Improve handling of
1044 "-x" switches: (a) add "-x upc" switch for C source files if
1045 no -x switch was seen before OR "-x none" was seen, (b) add
1046 "-x none" for files other then C files if "-x upc" was
1047 previously added. Cleanup warnings on unused variables
1048 and integer conversion. Print verbose info regardless of the
1049 command line being the same.
1051 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
1053 * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
1054 Appropriate libraries and include files are added on the
1055 command line to make it possible to compile with the driver
1056 from the build tree.
1058 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
1060 * upc/gupc.texi: Simplify the description of the optimization
1063 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
1065 * upc/Make-lang.in: Remove build of xgupc.
1066 * upc/gupcspec.c (get_libgupc_path): Delete.
1067 (lang_specific_driver): Remove support for building xgupc.
1068 Removed code tried to add -B, -L, -isystem to the command
1069 line if xgupc driver is invoked from the development tree.
1071 2012-05-04 Gary Funck <gary@intrepid.com>
1073 * upc/upc-act.c (upc_num_threads): When THREADS is specified
1074 statically, convert the value to a signed size type,
1075 so that (for example) the thread affinity test in a
1076 upc_forall() statement will work as expected for negative
1077 integer index values.
1079 2012-04-30 Nenad Vukicevic <nenad@intrepid.com>
1081 * upc/Make-lang.in: Add year 2012 to the copyright.
1083 2012-04-30 Nenad Vukicevic <nenad@intrepid.com>
1085 * upc/gupc.c: Delete. The old GUPC driver.
1086 * upc/gupcspec.c: Add. The new GUPC driver tailored
1087 after fortran/gfortranspec.c driver. Options "-n", "-inst",
1088 and "-inst-functions' are not supported by the new driver.
1089 Support for building gupc and xgupc remains the same.
1090 * upc/Make-lang.in (xgupc): Changes to compile gupcspec.c
1093 * upc/gupc.texi: Remove '-n', '-inst', and '-inst-functions'
1096 2012-04-29 Nenad Vukicevic <nenad@intrepid.com>
1098 * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
1099 PPC ABI. In the UPC 'struct' pointer-to-shared representation,
1100 a function returns a pointer-to-shared in memory instead
1102 (rs6000_pass_by_reference): Ditto.
1104 2012-04-28 Gary Funck <gary@intrepid.com>
1106 * c-decl.c (grokdeclarator): Set 'type' to error node
1107 after detecting "shared auto variable" error to avoid
1108 downstream complications.
1109 * upc/upc-act.c: Fix a couple of spelling errors in comments.
1111 2012-04-26 Gary Funck <gary@intrepid.com>
1113 * c-family/c-pragma.c (handle_pragma_upc):
1114 Fix typo in warning message.
1116 2012-04-17 Nenad Vukicevic <nenad@intrepid.com>
1118 * upc/gupc.texi: Fix the warning for usage of 'insertcopying'
1119 before 'copying'. Minor changes to to copyright years and
1122 2012-04-17 Gary Funck <gary@intrepid.com>
1124 Merge trunk version 186486 into gupc branch.
1126 2012-04-17 Gary Funck <gary@intrepid.com>
1128 * c-family/c-pragma.c (disable_pupc_mode): Return the previous
1129 value of the pupc mode. Fixes a compile-time warning.
1130 * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
1131 disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
1132 Improve source formatting.
1134 2012-04-16 Gary Funck <gary@intrepid.com>
1136 * upc/upc-genericize.c: Adjust copyright.
1137 (upc_genericize_fndecl): Adjust call graph
1138 union member reference to use the newly introduced
1139 'symbol' field in order to refer to 'decl'.
1141 2012-04-09 Gary Funck <gary@intrepid.com>
1143 Merge trunk version 186243 into gupc branch.
1144 Incorporates a powerpc 'ffi' fix.
1146 2012-03-16 Gary Funck <gary@intrepid.com>
1148 Merge trunk version 185454 into gupc branch.
1149 Incorporates a libgcc fix for builds on Darwin.
1151 2012-03-13 Gary Funck <gary@intrepid.com>
1153 Merge trunk version 185278 into gupc branch.
1154 * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
1155 call build_pointer_type() to apply UPC-specific qualifiers.
1156 * top-level/configure.ac: factor the checking for posix hostst
1157 out of the libgomp section so that it can also be used by libgupc.
1158 * top-level/configure: Re-generate.
1159 * DEV-PHASE: bump to 4.8.0-1.
1161 2012-03-12 Gary Funck <gary@intrepid.com>
1163 * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
1164 the mode for a pointer for upc-pointer-to-shared types.
1166 2012-03-04 Gary Funck <gary@intrepid.com>
1168 Merge trunk version 184900 into gupc branch.
1170 2012-02-17 Gary Funck <gary@intrepid.com>
1172 Released GUPC 4.7.0.2 based on version 183992.
1173 * DEV-PHASE: Bump release identifier to 4.7.0-3.
1174 * DATESTAMP: Bump date stamp.
1176 2012-02-07 Nenad Vukicevic <nenad@intrepid.com>
1178 * upc/gupc.texi: Added entries for the directory.
1180 2012-02-05 Nenad Vukicevic <nenad@intrepid.com>
1182 * upc/gupc-manpage.html: Removed. HTML files are generated from
1185 2012-02-05 Nenad Vukicevic <nenad@intrepid.com>
1187 * upc/gupc.texi (-x upc): Add files ending with '.c' to the list
1188 of files compiled as UPC source.
1190 2012-02-04 Nenad Vukicevic <nenad@intrepid.com>
1192 * upc/Make-lang.in (doc/gupc.info): Fix dependencies for creating
1195 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
1197 * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
1198 code generation (same as #pragma pupc off).
1199 (set_pupc_mode): New. Set/restore profiling mode.
1200 * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
1201 (set_pupc_mode): New. Prototype.
1202 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1203 profiling code for shared variables initialization routines.
1205 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
1207 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
1208 profiling code for shared variables initialization routines.
1210 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
1212 * upc/Make-lang.in: Various changes related to generating
1213 man/info pages from texi source file.
1214 (upc.install-common): Fix for removing the upc command
1215 link before install if suffix was applied.
1216 (upc.install-pdf): New.
1217 (upc.install-html): Change for the build from texi.
1218 (upc.install-man): Change for the build from texi.
1219 * upc/gupc.1: Removed.
1220 * upc/gupc.texi: New. Created texi source for man/info
1223 2012-01-31 Gary Funck <gary@intrepid.com>
1225 Merge trunk version 183751 into gupc branch.
1226 Incorporates fix for bootstrap failure on openSUSE 12.1.
1228 2012-01-30 Nenad Vukicevic <nenad@intrepid.com>
1230 * upc/Make-lang.in: Fix the --program-suffix configuration
1231 option. GUPC executables are now installed with appropriate
1232 suffixes and GUPC driver execs 'gcc' with the right suffix.
1234 2012-01-24 Nenad Vukicevic <nenad@intrepid.com>
1236 * upc/upc-lang.c (upc_init_options): Disable section anchors
1239 2012-01-14 Gary Funck <gary@intrepid.com>
1241 * upc/upc-genericize.c (upc_genericize_expr): Update input_location
1242 while traversing the program tree.
1243 (upc_expand_get, upc_expand_put): For profiling, derive
1244 the source code location from the incoming 'loc' parameter.
1246 2012-01-10 Gary Funck <gary@intrepid.com>
1248 Merge trunk version 183072 into gupc branch.
1249 Incorporates libcpp __BASE_FILE__ fix.
1251 2012-01-09 Gary Funck <gary@intrepid.com>
1253 * upc/upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
1254 is_gimple_non_addressable.
1256 2012-01-06 Nenad Vukicevic <nenad@intrepid.com>
1258 * upc/Make-lang.in: Add appropriate linker flags when linking
1261 2012-01-06 Nenad Vukicevic <nenad@intrepid.com>
1263 * upc/Make-lang.in: Add appropriate linker flags when linking
1266 2011-12-31 Gary Funck <gary@intrepid.com>
1268 Fix gupc driver to avoid segfault when processing
1269 invalid use of a switch that expects an argument.
1270 * upc/gupc.c (get_libgupc_path): Add check for non-NULL value of
1271 libgupc_archive before attempting to access libgupc_archive[0].
1272 (main): Do not issue error if lib_dir is NULL. Instead, only
1273 process lib_dir if it is non-NULL.
1275 2011-12-31 Gary Funck <gary@intrepid.com>
1277 Improve -fupc-debug support.
1278 * upc/upc-genericize.c (upc_expand_get, upc_expand_put,
1279 upc_genericize_sync_stmt): Add check for flag_upc_debug.
1280 * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
1281 * upc/upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
1282 * upc/upc-act.c (upc_cpp_builtins): Disable inlining of the
1283 runtime if flag_upc_debug is asserted.
1285 2011-12-20 Nenad Vukicevic <nenad@intrepid.com>
1287 * top-level/Makefile.def (flags_to_pass): Added GUPC
1288 defines. Fixes the make error when upc is not specified as one
1289 of the languages to build.
1290 * top-level/Makefile.in: Re-generate.
1292 2011-11-22 Gary Funck <gary@intrepid.com>
1294 * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
1295 * dwarf2out.c (gen_compile_unit_die): Check for
1296 the "GNU UPC" language string in lieu of "GCC UPC".
1297 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
1299 2011-11-22 Gary Funck <gary@intrepid.com>
1301 * upc/upc-act.c (upc_cpp_builtins): Generate new pre-defined
1304 2011-11-18 Gary Funck <gary@intrepid.com>
1306 Merge trunk version 181552 into gupc branch.
1307 Incorporates libgcc/libunwind fix for IA64.
1309 2011-11-19 Gary Funck <gary@intrepid.com>
1311 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1312 Add check for UPC when defining the language type value
1313 in a traceback entry.
1315 2011-11-19 Gary Funck <gary@intrepid.com>
1317 * upc/config-lang.in: Remove checks for supported targets.
1318 This is now done at a higher level.
1320 2011-11-18 Gary Funck <gary@intrepid.com>
1322 Merge trunk version 181493 into gupc branch.
1323 Incorporates final fix for PR target/49992.
1325 2011-11-09 Nenad Vukicevic <nenad@intrepid.com>
1327 * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
1328 change that converted relative include paths into absolute
1329 ones, as it does not work with older version of make (3.80).
1331 2011-10-27 Nenad Vukicevic <nenad@intrepid.com>
1333 Apply patch for Darwin build - PR49992.
1334 * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
1335 * gcc/configure.ac: Ditto.
1336 * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
1337 * gcc/ada/gcc-interface/Makefile.in: Ditto.
1338 * top-level/configure: Re-generate.
1339 * gcc/configure: Re-genrate.
1341 2011-10-26 Gary Funck <gary@intrepid.com>
1343 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1344 "libupc" to "libgupc".
1345 * top-level/configure.ac: Implement support for cross-builds, and
1346 adjust for rename of libupc to libgupc.
1347 * top-level/Makefile.tpl: Ditto.
1348 * top-level/Makefile.def: Ditto.
1349 * top-level/configure: Re-generate.
1350 * top-level/Makefile.in: Re-generate.
1351 * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
1352 * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
1353 * doc/tm.texi: Re-generate.
1354 * tree-pretty-print.c (dump_block_node): Delete unused variable.
1355 * gcc.c: Adjust for rename of libupc to libgupc.
1356 * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
1357 Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
1358 Change "xupc" to "xgupc".
1359 * configure.ac: Change "GCC UPC" to "GNU UPC".
1360 * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
1361 so that they are absolute paths. This is needed because
1362 the upc-crtstuff builds are in the libgupc library build
1363 directories which are not at the same level as libgcc.
1364 * config/darwin.h: Adjust for rename of libupc to libgupc.
1366 2011-10-26 Gary Funck <gary@intrepid.com>
1368 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1369 "libupc" to "libgupc".
1370 * upc/gupc.c: Rename from upc-cmd.c and adjust for rename
1371 of libupc to libgupc.
1372 * upc/upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
1373 * upc/config-lang.in: Adjust for rename of libupc to libgupc.
1374 * upc/gupc.1: Rename from upc.1. Change "GCC UPC" references
1375 to "GNU UPC". Adjust for rename of libupc to libgupc.
1377 * upc/gupc-manpage.html: Rename from upc-manpage.html. Re-generate.
1378 * upc/Make-lang.in: Change "upc" to "gupc". Change "xupc" to "xgupc".
1379 Adjust for rename of libupc to libgupc. Install target symlink from
1380 "upc" to "gupc". Install target/version-specific hard links to "gupc".
1382 2011-10-20 Gary Funck <gary@intrepid.com>
1384 Merge trunk version 180276 into gupc branch.
1385 Incorporates fix for PR bootstrap/50709.
1387 2011-10-20 Gary Funck <gary@intrepid.com>
1389 Merge trunk version 180246 into gupc branch.
1391 2011-10-19 Gary Funck <gary@intrepid.com>
1393 Merge trunk version 180233 into gupc branch.
1394 Incorporates fix for PR debug/49310 (var tracking).
1396 2011-10-17 Gary Funck <gary@intrepid.com>
1398 Fix a regression caused by the previous commit.
1399 * upc/upc-genericize.c (upc_genericize_walk):
1400 Renamed from: upc_genericize_stmt.
1401 (upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
1402 re-walk the tree after simplification, by calling
1403 upc_genericize_walk().
1404 (upc_genericize_array_ref): expand the newly constructed
1405 indirect reference by calling upc_genericize_indirect_ref().
1407 2011-10-11 Nenad Vukicevic <nenad@intrepid.com>
1409 * testsuite/lib/upc-dg.exp: Limit number of torture runs to
1410 only four (O0 static/dynamic, O3 static/dynamic).
1411 Detect -fupc-threads-0 as an option for dynamic threads
1412 compile environment.
1414 2011-10-10 Gary Funck <gary@intrepid.com>
1416 * tree.c (check_qualified_type, check_aligned_type):
1417 Call tree_int_cst_equal() to compare UPC blocking factors
1418 if the corresponding tree pointers are not equal.
1419 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
1421 2011-10-10 Gary Funck <gary@intrepid.com>
1423 * upc/upc-genericize.c (upc_simplify_shared_ref): When simplifying
1424 the base address always convert to (shared [] char *).
1425 This ensures that &a[i].field1 ends up with the required
1426 zero block size, for example.
1428 2011-10-07 Nenad Vukicevic <nenad@intrepid.com>
1430 Add configuration checks for struct/packed builds so we can
1431 use upc_struct_pts/upc_packed_pts selectors in the testsuite.
1432 * testsuite/lib/target-supports.exp
1433 (check_effective_target_upc_struct_pts): New.
1434 (check_effective_target_upc_packed_pts): New.
1436 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
1438 Add to FLAGS the flags needed to disable inlining of
1439 UPC run-time access routines.
1440 * testsuite/lib/target-supports.exp
1441 (add_options_for_upc_library_calls): New.
1443 2011-09-15 Gary Funck <gary@intrepid.com>
1445 Fix ICE involving shared bit field accesses.
1446 * tree.c (build3_stat): Propagate TEEE_SHARED()
1447 and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1449 2011-09-13 Gary Funck <gary@intrepid.com>
1451 Merge trunk version 178795 into gupc branch.
1452 Incorporates fix to PR bootstrap/50010 for x86-32.
1454 2011-09-08 Gary Funck <gary@intrepid.com>
1456 Merge trunk version 178557 into gupc branch.
1458 2011-09-07 Gary Funck <gary@intrepid.com>
1460 Ensure that UPC pointer-to-shared type alignment is
1461 propagated to the final type. Revert to long-standing
1462 alignment policy: twice the size of a "C" pointer.
1463 * tree.c (build_pointer_type): Propagate the alignment
1464 of the UPC pointer-to-shared representation type
1465 into the newly built pointer type.
1467 2011-08-30 Gary Funck <gary@intrepid.com>
1469 * tree.h (check_qualified_type): Change 'const_tree'
1470 argument types back to 'tree' to avoid complaints
1471 of assignment drops qualifiers for invocations of the
1472 newly implemented TYPE_BLOCK_FACTOR() macro, which
1473 invokes hash functions with 'tree' pointer values that
1474 are not const qualified.
1475 * tree.c (check_qualified_type, check_aligned_type): Ditto.
1476 * c-typeck.c (comptypes_internal): Ditto.
1478 2011-08-29 Gary Funck <gary@intrepid.com>
1480 Fixes for regressions noted running "make check"
1482 * fold-const.c (fold_unary_loc): Execute UPC-specific
1483 checks for a cast-of-a-cast, only if one of the
1484 operands is a UPC pointer-to-shared value.
1485 * opts.c (print_specific_help): Fix a comparison
1486 in an assert that checks that there are enough
1487 bits reserved for the number of languages defined
1490 2011-08-29 Gary Funck <gary@intrepid.com>
1492 Implement a hash table to record UPC block factors.
1493 * c-family/stub-upc.c (upc_block_factor_insert,
1494 upc_block_factor_lookup): New dummy stub procedures.
1495 * c-family/c-common.c (c_sizeof_or_alignof_type):
1496 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1497 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1498 to copy (hashed) UPC blocking factor.
1499 (set_type_quals): Likewise.
1500 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1501 TYPE_HAS_THREADS_FACTOR().
1502 (type_common.block_factor): Delete.
1503 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1504 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1505 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1506 UPC blocking factors greater than one.
1507 * dwarf2out.c (modified_type_die): Re-implement
1508 logic that records UPC blocking factor in the generated
1509 DWARF2 debugging information.
1510 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1511 TYPE_HAS_THREADS_FACTOR().
1512 * c-decl.c (finish_decl, grokdeclarator):
1513 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1514 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1515 used by UPC, and print UPC-specific information.
1517 2011-08-28 Gary Funck <gary@intrepid.com>
1519 Re-work the type machinery to fully support and to unify support
1520 for the UPC layout qualifier (blocking factor).
1521 * c-family/stub-upc.c (upc_set_block_factor): Delete.
1522 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1523 and update prototype.
1524 * c-family/c-common.c (complete_array_type): call newly
1525 defined c_build_qualified_type_1() instead of
1526 upc_set_block_factor().
1527 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1528 upc_apply_layout_qualifier() and update prototype.
1529 (upc_set_block_factor): Delete prototype.
1530 * c-family/c-common.h (c_build_qualified_type): redefine
1531 as a pre-processor macro that invokes c_build_qualified_type_1()
1532 with a null UPC layout qualifier.
1533 (c_build_qualified_type_1): New. Add layout qualifier argument
1534 to old c_build_qualified_type() prototype.
1535 * tree.c (set_type_quals, check_qualified_type):
1536 Add layout qualifier as argument.
1537 (check_aligned_type): Add check for UPC block factor equality.
1538 (get_qualified_type_1): Rename from get_qualified_type() and
1539 add layout qualifier as argument.
1540 (build_qualified_type_1): Rename from build_qualified_type() and
1541 add layout qualifier as argument.
1542 * tree.h (check_qualified_type): Add layout qualifier as argument
1544 (get_qualified_type): Re-define as a as a pre-processor macro
1545 that invokes get_qualified_type_1() with a null
1546 UPC layout qualifier.
1547 (get_qualified_type_1): Rename from get_qualified_type() and
1548 add layout qualifier as argument.
1549 * cp/tree.c (c_build_qualified_type_1): Rename from
1550 c_build_qualified_type() and add (unused) layout qualifier
1552 * c-decl.c (finish_decl): re-format long error messages.
1553 (grokdeclarator): Re-work the logic so that it calls
1554 upc_grok_layout_qualifier() to handle the UPC layout
1555 qualifier, if present.
1556 * c-typeck.c (qualify_type, common_pointer_type,
1557 build_component_ref): Re-work the logic so that it calls
1558 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1560 (c_build_qualified_type_1): Rename from c_build_qualified_type()
1561 and add layout qualifier argument.
1562 * print_tree.c (print_node): Re-format a long line.
1564 2011-08-26 Gary Funck <gary@intrepid.com>
1566 Merge trunk version 177949 into gupc branch.
1567 * c-family/c-common.h (enum rid): Bump the number of type modifiers
1569 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1570 to add new rliterals column value.
1572 2011-08-26 Gary Funck <gary@intrepid.com>
1574 * convert.c (convert_to_integer): Fix the check for the
1575 difference between two UPC pointers-to-shared values.
1577 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
1579 * configure.ac: Fix the name for --with-upc-pts-packed-bits
1580 option. Support --with-upc-packed-bits as deprecated. Fix the code to
1581 correctly check packed bits.
1582 * configure: Re-generate.
1584 2011-08-16 Gary Funck <gary@intrepid.com>
1586 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1587 the barrier id expression is not an integer expression.
1589 2011-08-12 Gary Funck <gary@intrepid.com>
1591 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1593 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1594 Set mode of UPC pointer-to-shared rep. to an
1595 integral mode of size at least as large as the
1596 size of the representation's struct type.
1598 2011-08-12 Gary Funck <gary@intrepid.com>
1600 Rework/simplify the UPC genericize pass.
1601 * c-family/stub-upc.c (upc_apply_layout_qualifier,
1602 upc_build_pointer_type): New.
1603 (upc_set_block_factor): Adjust to new calling sequence.
1604 (upc_build_shared_var_addr): Delete.
1605 * c-family/c-common.c (complete_array_type): Adjust call
1606 to upc_set_block_factor().
1607 * c-family/c-upc.h (upc_apply_layout_qualifier,
1608 upc_build_pointer_type): New.
1609 (upc_build_shared_var_addr): Delete.
1610 (upc_set_block_factor): Adjust to new calling sequence.
1611 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1612 * c-decl.c (grokdeclarator): Call newly defined
1613 upc_apply_layout_qualifier() instead of upc_set_block_factor().
1614 * c-decl.c (grokdeclarator): Split long UPC-related error
1615 messages into two lines.
1616 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1617 directly. Revert that change to trunk. (upc_genericize() will
1618 handle lowering the expressions that take the address of a
1620 * config/i386/i386.c (ix86_promote_function_mode): For UPC
1621 pointers-to-shared, return the type mode of the UPC pointer-to-shared
1622 representation type.
1624 2011-08-10 Gary Funck <gary@intrepid.com>
1626 Implement additional fixes for recent merge with trunk.
1627 * explow.c (promote_mode): Do not attempt to promote
1628 the mode for UPC pointer-to-shared types.
1629 * config/i386/i386.c (function_value_64): Ditto.
1631 2011-08-07 Gary Funck <gary@intrepid.com>
1633 Merge trunk version 177548 into gupc branch.
1634 * config/i386/i386.c (ix86_promote_function_mode):
1635 Do not promote UPC pointers-to-shared to Pmode.
1636 * c-family/c-ommon.c (pointer_int_sum):
1637 Also check the pointer operand, rather than just
1638 its type, when making the decision to derive
1639 the equivalent unshared type.
1640 * tree.c (build2_stat): If the type of the result
1641 passed in as an argument is a UPC shared type,
1642 derive the unshared equivalent when calculating
1643 the result type of the node.
1645 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
1647 * config/darwin.c: Disable var_tracking option
1648 on -O0 as it is supposed to run only when optimization
1649 is applied. See GCC bug 49743.
1651 2011-07-06 Gary Funck <gary@intrepid.com>
1653 Re-implement the pass that lowers trees generated by
1654 the UPC front-end into GENERIC. Previously this was
1655 done within the gimplification framework, but this
1656 required that gimplification be run before inlining
1657 and various other passes, which did not fit in well
1658 with the current design of the middle-end passes.
1659 Now, the lowering is done by a newly defined language
1660 specific genericize hook. With this change, we are
1661 are able to undo some extensions made to the gimplify
1662 logic, and thus can revert several files to trunk.
1663 * c-decl.c: Add a check for UPC deprecated names which
1664 may appear as undefined function names.
1665 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1666 LTI_upc_getaddr): Remove definitions of unused UPC
1667 library function names. These were defined back when
1668 the libfunc interface was used to call these routines.
1669 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1670 in UPC lowering (genericize) pass.
1671 * langhooks.h (gimplify_expr): Revert to trunk's definition.
1672 (instrument_func): Delete this hook. Now handled in
1674 * tree-pass.h: Revert to trunk.
1675 * c-typeck.c (build_unary_op): Adjust reference to
1676 upc_genericize() in a comment.
1677 * gimplify.c (create_tmp_var_raw): Delete logic that
1678 was converting UPC shared types into unshared types
1679 to be used for temporaries. Now handled in upc_genericize().
1680 Replace with an assertion check.
1681 (prepare_gimple_addressable): Revert to trunk's definition.
1682 No longer needed as an externally called function.
1683 (flag_instrument_functions_exclude_p): Re-define as
1684 an externally called function.
1685 (gimplify_function_tree): Delete code that implemented
1686 call to UPC's language specific function instrumentation hook.
1687 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1688 (prepare_gimple_addressable): Delete extern definition;
1689 revert to trunk's definition.
1690 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1691 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1692 * c-family/c-gimplify.c: Revert to trunk.
1693 * cp/cp-gimplify.c: Revert to trunk.
1694 * cp/cp-tree.h: Revert to trunk.
1695 * explow.c: Revert to trunk.
1696 * langhooks.c: Revert to trunk.
1697 * libfuncs.h: Revert to trunk.
1698 * objc/objc-act.c: Revert to trunk.
1700 2011-06-30 Gary Funck <gary@intrepid.com>
1702 * c-family/c.opt: Bring options definitions up-to-date
1703 with respect to changes made in the trunk.
1705 2011-06-29 Gary Funck <gary@intrepid.com>
1707 Merge trunk version 175584 into gupc branch.
1709 2011-06-13 Gary Funck <gary@intrepid.com>
1712 * include/cpplib.h (enum c_lang):
1713 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1714 This keeps all the "C" variants together.
1715 * init.c (lang_defaults): Add an entry for UPC.
1717 2011-06-09 Gary Funck <gary@intrepid.com>
1719 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1720 a 32-bit target, the size expression overflowed, the result was
1721 error_mark_node, and an ICE was triggered on an attempt to evaluate
1722 C_TYPE_VARIABLE_SIZE() on the error node.
1723 (upc_blocksizeof_expr, upc_blocksizeof_type,
1724 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1725 Make similar changes to avoid further processing of error_mark_node.
1727 2011-06-07 Gary Funck <gary@intrepid.com>
1729 * sel-sched.c (move_op): Incorporate the following
1730 patch to eliminate ICE at -O3 on IA64/Altix.
1732 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
1734 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1735 code_motion_path_driver returned 0 or 1.
1736 (sel_region_finish): Clear h_d_i_d.
1738 2011-06-02 Gary Funck <gary@intrepid.com>
1740 Merge trunk version 174558 into gupc branch.
1742 2011-05-30 Gary Funck <gary@intrepid.com>
1744 * configure.ac: Make the default order of the virtual
1745 address field in a UPC pointer-to-shared to be "first".
1746 This reverts to the previous setting, and is a short term
1747 measure to work around a bug found on the IA64,
1748 where vaddr=last led to incorrect code generation.
1749 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1750 in AC_DEFINE(), to agree with recent changes in files
1751 that reference this define.
1752 configure, config.in: Regenerate.
1754 2011-05-26 Gary Funck <gary@intrepid.com>
1756 * configure.ac: Fix typo when referring to $upc_vaddr_order.
1757 configure: Regenerate.
1758 * ../fixincludes/fixincl.x: Revert to trunk.
1759 This file is auto-generated, and should not be merged.
1761 2011-05-18 Gary Funck <gary@intrepid.com>
1763 Merge trunk version 173845 into gupc branch.
1765 2011-05-17 Gary Funck <gary@intrepid.com>
1767 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1768 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1769 * c-family/c-pragma.c: Remove conditional compilation
1770 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1771 Test 'compiling_upc' when compiling to determine if
1772 the "upc" and "pupc" pragmas should be registered.
1773 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1774 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1775 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1776 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1777 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1778 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1779 Move these target-dependent definitions from config/upc-conf.h
1781 * configure.ac: Improve the logic for UPC-related options.
1782 Delete references to pre-processor definitions that have
1783 been moved to "upc/upc-pts.h".
1784 * configure, config.in: Regenerate.
1785 * Makefile.in (UPC_PTS_REP): Remove definition and revert
1786 to trunk. This substitution variable was used to
1787 configure the representation-specific versions of
1788 the tree rewrites that operate on UPC pointer-to-shared
1790 * c-parser.c (c_parser_upc_forall_statement): Remove
1791 reference to UPC_FORALL_DEPTH_NAME, and call
1792 newly defined upc_rts_forall_depth_var() instead.
1793 * config/upc-config.h: Delete. Various definitions
1794 moved to "upc/upc-rts-names.h", "defaults.h", and
1796 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1797 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1798 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1799 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1800 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1801 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1802 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1803 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1804 New. Document UPC target macros.
1805 doc/tm.texi: Regenerate.
1807 2011-05-07 Gary Funck <gary@intrepid.com>
1809 * ../configure.ac: Disable build of libupc
1810 on non POSIX hosted systems. Use AS_HELP_STRING
1811 to define messages. Remove 'word-pair' as a
1812 possible --with-upc-pts UPC pointer-to-shared
1814 * ../configure: Regenerate.
1815 * configure.ac: Use AS_HELP_STRING to define messages.
1816 Remove 'word-pair' as a possible --with-upc-pts
1817 UPC pointer-to-shared representation.
1818 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1819 (UPC_MAX_BLOCK_SIZE): Correct the default value.
1820 * configure: Regenerate.
1821 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1823 * ChangeLog.upc: Fix some typos.
1825 2011-05-07 Gary Funck <gary@intrepid.com>
1827 * ../maintainer-scripts/gcc_release: Add "upc"
1828 as one of the released languages.
1830 2011-05-06 Gary Funck <gary@intrepid.com>
1832 Eliminate compilation warnings, by fixing
1833 #include's and updating function prototypes.
1834 * c-family/c-cppbuiltin.c: Include c-upc.h.
1835 * optabs.c (gen_libfunc): Change type of 'suffix'
1836 parameter to conform with prototype.
1837 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1838 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1840 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1842 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1843 argument values to cp_gimplify_expr.
1844 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1845 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
1846 pre-processor definitions that are no longer
1847 needed to build the 'upc' command (upc-cmd.c)
1848 because the linker specs. defined in libupc
1849 take care of linking in the needed libraries.
1850 * c-parser.c (c_parser_upc_forall_statement):
1851 initialize affinity_loc to avoid "maybe unused" warning.
1852 (c_parser_upc_sync_statement): Remove un-needed
1853 'ret' variable. Cast return value from
1854 'upc_build_sync_stmt' to 'void' to avoid
1855 compile-time warning.
1856 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1857 integer constant, not a string. Range is restricted
1858 to maximum positive 32-bit integer (2+ billion) to
1859 fit in with the use of 'int' in the front-end's
1860 switch handling logic.
1862 2011-05-06 Gary Funck <gary@intrepid.com>
1864 Upgrade c-family source files to conform with modularity
1865 improvements. Mainly, remove #include of c-tree.h in files
1866 under c-family, and define a new UPC-specific #include file,
1867 c-upc.h, and use it.
1868 * c-family/stub-upc.c: Remove #include of c-tree.h and
1869 upc/upc-act.h. Replace with #include of c-common.h
1871 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1872 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1873 upc_localsizeof_expr, upc_localsizeof_type,
1874 upc_shared_type_p): Delete.
1875 * c-family/c-opts.c: Add #include of c-upc.h
1876 * c-family/c-common.c: Remove #include of c-tree.h and
1877 add #include of c-upc.h.
1878 * c-family/c-upc.h: New. Define API for UPC-specific functions
1879 (mostly implemented in upc/upc-act.c).
1880 * c-family/c-common.h (upc_cpp_builtins,
1881 upc_write_global_declarations): Remove extern definitions.
1882 * c-family/c-pragma.c: Remove #include of c-tree.h.
1883 Add #include of c-upc.h.
1884 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
1886 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
1887 upc/upc-act.c, and define as a macro.
1888 (expand_affinity_test): Remove unused external definition.
1889 (build_upc_unshared_type): Add external definition.
1890 (upc_shared_type_p): Remove external definition.
1891 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1892 * dojump.c: Remove #include of c-tree.h.
1893 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1895 (count_upc_threads_refs, is_multiple_of_upc_threads,
1896 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1897 upc_build_shared_var_addr, upc_build_sync_stmt,
1898 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1899 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1900 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1901 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1902 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1903 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1904 set_upc_consistency_mode, get_upc_consistency_mode,
1905 push_upc_consistency_mode, pop_upc_consistency_mode,
1907 Move external definitions to c-family/c-upc.h.
1908 (upc_blocksizeof_type, upc_localsizeof_type,
1909 upc_elemsizeof_type): Remove external definitions;
1910 these functions were moved to c-parser.c.
1911 * c-decl.c: Add #include of c-upc.h.
1912 * c-typeck.c: Add #include of c-upc.h.
1913 * c-convert.c: Add #include of c-upc.h.
1914 * ChangeLog.upc: Fix typo.
1915 * Makefile.in: Add references to c-family/c-upc.h, everywhere
1916 there is a reference to c-family/c-objc.h.
1917 Remove extraneous reference to upc-act.h.
1918 * c-parser.c: Add #include of c-upc.h.
1919 (upc_blocksizeof_expr, upc_blocksizeof_type,
1920 upc_elemsizeof_expr, upc_elemsizeof_type,
1921 upc_localsizeof_expr, upc_localsizeof_type):
1922 Move from upc/upc-act.c.
1923 * tree.c (build_upc_unshared_type): New.
1924 Move upc_get_unshared_type from upc/upc-act.c and rename
1925 to build_upc_unshared_type.
1926 c-family/c-common.c (pointer_int_sum): refer to renamed
1927 build_upc_unshared_type function.
1928 c-convert.c (convert): Ditto.
1929 convert.c (convert_to_pointer): Ditto.
1930 c-typeck.c (build_unary_op, build_modify_expr,
1931 really_start_incremental_init): Ditto.
1932 gimplify.c (create_tmp_var_raw): Ditto.
1933 tree.c (build1_stat): Ditto.
1934 tree.h (upc_get_unshared_type): Rename to
1935 build_upc_unshared_type.
1937 2011-05-06 Gary Funck <gary@intrepid.com>
1939 Merge trunk version 173471 into gupc branch.
1941 2011-05-05 Gary Funck <gary@intrepid.com>
1943 Make changes that bring the GUPC branch more closely in sync.
1944 with the GCC trunk. Revert any fixes that are not UPC-specific.
1945 Remove gratuitous re-formatting.
1946 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1947 This file should have been removed in a previous merge
1949 * ../configure.ac: Remove Cray Catamount/CNL support.
1950 * ../configure: Regenerate.
1951 * ../config.sub: Remove Cray Catamount/CNL support.
1952 * config.gcc: Remove Cray Catamount/CNL support.
1953 * ../maintainer-scripts/gcc_release: Revert to trunk.
1954 * c-family/c-common.h: Define parse_optimize_options. Its definition
1955 was missed in a previous merge with the trunk.
1956 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1958 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1959 in addition to ARRAY_TYPE.
1960 * c-typeck.c: Remove an extra newline character.
1961 * varasm.c: Revert a fix that improved an error message
1962 when TLS common data is unimplemented.
1963 * varasm.c: Revert a gcc_assert that had been added which
1964 checked for a null DECL_SIZE_UNIT field.
1965 * emultls.c: Revert to trunk. Remove possible fix.
1966 * Makefile.in: Revert extra blank line that is present
1967 in the trunk version.
1968 * Makefile.in: Revert a fix that handled long shell
1969 argument lists for plugin headers.
1970 * config/ia64/ia64.opt: Revert an option setting
1971 that increased the default TLS address range.
1972 * config/ia64/crtbegin.asm: Revert to trunk.
1973 Removes an extra newline character.
1974 * ChangeLog.upc: Spell check.
1976 2011-05-03 Gary Funck <gary@intrepid.com>
1978 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1979 (c_apply_type_quals_to_decl): Ditto.
1980 * c-family/c-common.h: Ditto.
1982 * c-decl.c (merge_decls): Ditto.
1983 * c-typeck.c (qualify_type, default_conversion,
1984 build_component_ref, build_unary_op,
1985 c_build_qualified_type): Ditto.
1986 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1988 2011-04-29 Gary Funck <gary@intrepid.com>
1990 * c-decl.c (finish_decl): Improve error diagnostics.
1991 (grokdeclarator): Ditto.
1992 * c-typeck.c (build_c_cast): Improve error diagnostics.
1993 (convert_for_assignment): Ditto.
1994 (build_binary_op): Ditto.
1995 * c-parser.c (c_parser_upc_forall_statement):
1996 Improve error diagnostics.
1997 * convert.c (convert_to_integer): Improve error diagnostics.
1999 2011-04-24 Gary Funck <gary@intrepid.com>
2001 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2002 occurred if there is an error in the barrier id
2003 expression. Map error_mark_node into NULL.
2005 2011-04-22 Gary Funck <gary@intrepid.com>
2007 Merge trunk version 172873 into gupc branch.
2009 2011-04-19 Gary Funck <gary@intrepid.com>
2011 Merge trunk version 172359 into gupc branch.
2013 2011-04-14 Gary Funck <gary@intrepid.com>
2015 * c-family/c.opt: Add UPC as a valid language for various
2016 switches where it is valid for "C", that were not updated
2017 in previous merges with trunk.
2019 2011-04-13 Gary Funck <gary@intrepid.com>
2021 * c-family/c.opt (fupc-pre-include): New option definition.
2022 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2023 -fno-upc-pre-include is asserted.
2025 2011-04-07 Gary Funck <gary@intrepid.com>
2027 Merge trunk version 172158 into gupc branch.
2028 to bring in the following fix.
2030 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
2033 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2034 if old and new states differ.
2036 2011-04-06 Gary Funck <gary@intrepid.com>
2038 Merge trunk version 171966 into gupc branch.
2040 2011-04-01 Gary Funck <gary@intrepid.com>
2042 * tree.h (tree_base): Move UPC flag bits into bit fields
2043 located just before spare bits. Decrement spare bits.
2044 Rename 'shared_flag' -> 'upc_shared_flag',
2045 'relaxed_flag' -> 'upc_relaxed_flag',
2046 'strict_flag' -> 'upc_strict_flag, and adjust macros
2047 that reference them accordingly.
2049 2011-04-01 Gary Funck <gary@intrepid.com>
2051 * c-decl.c (grokdeclarator): Fix formatting of
2052 code that sets UPC block size on scalars.
2054 2011-04-01 Gary Funck <gary@intrepid.com>
2056 * c-decl.c (grokdeclarator): Revert use of white space
2057 to match the trunk (to rationalize diffs).
2058 * c-typeck.c (convert_for_assignment): Ditto.
2059 * tree-ssa.c (useless_type_conversion_p): Ditto.
2061 2011-03-23 Gary Funck <gary@intrepid.com>
2063 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2064 the GCC 4.6 release branch.
2066 2011-03-21 Gary Funck <gary@intrepid.com>
2068 Merge trunk version 171202 into gupc branch.
2070 2011-03-20 Gary Funck <gary@intrepid.com>
2072 * varasm.c: Call error() directly with a format specifier,
2073 rather than using sprintf() to format the message.
2074 This should make it easier to internationalize UPC's error messages.
2076 2011-03-20 Gary Funck <gary@intrepid.com>
2078 * configure.ac: Fix the check for gnu ld when enabling
2079 UPC link script support.
2080 configure: Regenerate (also picks up changes from previous
2083 2011-03-20 Gary Funck <gary@intrepid.com>
2085 Move UPC start files, end files, and linker specs.
2086 into libupc. This reduces the impact on common GCC
2087 configuration files, and ensures that these UPC-specific
2088 components are only built when the UPC language dialect is selected.
2089 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2090 linker specs. Fix typo in -fupc-debug message.
2091 * config/upc-conf.h, config/darwin.h: Move defines for
2092 UPC-related section begins/ends into libupc/config/default/
2094 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2095 UPC-related linker compiler specifications,
2096 accessed via %:include().
2097 * configure.ac, configure: Remove logic related to building
2098 upc-crtbegin/end. Remove config. tests for numa and cpu
2099 affinity (previously used by the 'upc' driver); these
2100 settings are now propagated by target-specific compiler
2101 specs. built by libupc. Regenerate autoconf.
2102 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2103 linker compiler specifications, accessed via %:include().
2104 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2106 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2107 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2108 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2109 config/ia64/linux.h, config/mips/t-iris,
2110 config/mips/iris6.h: Revert to trunk version 167307.
2112 * configure, configure.ac, config.host, Makefile.in:
2113 Revert to trunk version 167307.
2115 2011-02-23 Gary Funck <gary@intrepid.com>
2117 * c-decl.c (undeclared_variable): fix typo. Inadvertently
2118 removed negation on following 'if'.
2120 2011-02-22 Gary Funck <gary@intrepid.com>
2122 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2123 to check for the usage of certain deprecated UPC keywords.
2124 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2125 * c-tree.h (undeclared_variable): Define prototype.
2127 2011-02-12 Gary Funck <gary@intrepid.com>
2129 * c-typeck.c: (build_c_cast, convert_for_assignment)
2130 Diagnose an attempt to convert from an integer to
2131 a pointer-to-shared as an error. Also, fix various
2132 error messages so that they use the preferred term
2133 pointer-to-shared instead of "shared pointer".
2135 2011-02-07 Gary Funck <gary@intrepid.com>
2137 * c-typeck.c: (convert_for_assignment)
2138 Fix typo. in error message.
2140 2011-01-23 Gary Funck <gary@intrepid.com>
2142 * c-typeck.c: (c_build_qualified_type)
2143 derive UPC block size by calling upc_get_block_size(),
2144 to ensure that the element type of an array of an array
2145 is derived correctly.
2147 2010-12-29 Gary Funck <gary@intrepid.com>
2149 Merge trunk version 168314 into gupc branch.
2151 2010-12-15 Gary Funck <gary@intrepid.com>
2153 Merge trunk version 167307 into gupc branch.
2155 2010-10-19 Gary Funck <gary@intrepid.com>
2157 * c-typeck.c: Fix typo in previous fix
2158 which led to a mis-compare for equal block sizes.
2160 2010-10-18 Gary Funck <gary@intrepid.com>
2162 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2163 diagnosed as an error
2164 The conversion from any type (shared or not) to
2165 a shared type is likely either meaningless or an error. This update
2166 makes any conversion to a shared type, an error.
2168 2010-10-18 Gary Funck <gary@intrepid.com>
2170 * c-typeck.c: Fix bug: passing int to shared pointer arg.
2171 generates spurious warning
2172 Add a #define procedure that does the same thing as
2173 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
2174 this procedure to diagnose passing an integer value to a
2175 pointer-to-shared as an error.
2177 2010-10-18 Gary Funck <gary@intrepid.com>
2179 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2180 matching routine declaration.
2181 When checking for type compatibility, shared qualified types must
2182 have the same block factor. This check was missing from
2183 comptypes_internal(). This update adds the check for blocking
2186 2010-10-17 Gary Funck <gary@intrepid.com>
2188 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2190 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2192 2010-10-17 Gary Funck <gary@intrepid.com>
2194 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2195 45869 - [4.5/4.6 Regression] type mismatch in shift expression
2196 produces ice with -O3 and -m32.
2197 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2199 2010-10-17 Gary Funck <gary@intrepid.com>
2201 * c-common.c: Diagnose the application of the various "*sizeof"
2202 operations on generic pointer-to-shared as a compilation error.
2204 2010-10-17 Gary Funck <gary@intrepid.com>
2206 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2207 message regarding a function parameter being declared with a shared
2209 The parameter's 'name' value is not defined at this point, and
2210 cannot be used in the error message. This update removes the
2211 reference to 'name', and eliminates the segfault.
2213 2010-10-16 Gary Funck <gary@intrepid.com>
2215 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2216 The gcc/Makefile.in rules for install-plugin had to be re-written to
2217 break up a long list of header files that exceeded the command line
2218 limitation imposed by Irix.
2219 Access functions for TFmode types had to be implemented.
2220 Apparently, this is the mode used for the SGI/MIPS port to represent
2223 2010-10-14 Gary Funck <gary@intrepid.com>
2225 * c-decl.c: Fix bug: Multiple equal blocking factors specified
2226 via typedef chain should not be diagnosed as an error.
2227 If the block size that is given by the typedef is equal to the block
2228 size given explicitly in the variable declaration, then do not
2229 complain. The easiest way to make this check was to create a
2230 temporary type that is a clone of the element type and then set its
2231 block size using the given layout qualifier. Then compare the block
2232 size of the temporary (the declaration) to the block size specified
2233 in the typedef. This complexity is needed, because the '[*]' block
2234 size needs to be calculated, and the '[]' needs to be mapped into a
2237 2010-10-10 Gary Funck <gary@intrepid.com>
2239 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2241 The compiler properly detected the presence of two or more layout
2242 qualifiers as an error, but then hit an assertion check, because the
2243 code that followed the error expected to see a qualifier and not a
2244 layout specifier. The fix is simple: just return immediately after
2245 detecting the error.
2247 2010-10-10 Gary Funck <gary@intrepid.com>
2249 * c-decl.c: Improve error diagnostics for various cases of UPC
2250 shared array type declarations.
2251 Add the check for this error: "In the dynamic translation
2252 environment, THREADS may not appear in declarations of shared arrays
2253 with indefinite block size". Also, fix up a few of the other
2254 related error diagnostics.
2256 2010-10-09 Gary Funck <gary@intrepid.com>
2258 * c-common.c: Fix bug: segfault on incomplete array definition.
2259 This turned out to be a bit complicated. The logic in
2260 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2261 the THREADS identifier in the case where the blocking factor has
2262 been set to indefinite ([]). This can happen when indefinite array
2263 declarations are processed for shared arrays. At that time, the
2264 file scope has been closed and THREADS is no longer in scope. Some
2265 more work is needed on upc_lang_layout_decl(). It has some
2266 duplication, and notably duplicates the two branches of the if
2267 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2268 caller of this routine (layout_decl()).
2269 The method of forcing a layout qualifier of [] in the indefinite
2270 declaration handler is odd a well. The code that just does the
2271 setting of the block factor, needs to moved into its own routine
2272 that doesn't depend upon a declspec for '[]' to be passed in, just
2273 in order to set the blocking factor to some value (in this case, 0).
2274 Also, the logic for how that shared type is constructed is strange.
2275 First the type with 0 blocking factor is set. Then the shared
2276 qualifier is removed from the type, and then added back later. The
2277 intermediate type has a blocking factor set, but it has no shared
2278 qualifier. Fixing this will require some thought. It is tempting
2279 just to make indefinite shared arrays an error, rather than forcing
2280 the dimension to be '1'.
2281 This likely fixes a serious error in the previous update to
2282 upc_lang_layout_decl(), where it didn't have the logic to set
2283 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
2284 the previous update would fail on many tests.
2286 2010-10-09 Gary Funck <gary@intrepid.com>
2288 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2289 (decl) is null, which can happen if some layout error occurred
2292 2010-10-09 Gary Funck <gary@intrepid.com>
2294 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2295 "variable-sized" when compiled in dynamic threads.
2296 This long-standing bug is easily fixed. Just check
2297 for the situation that the non-constant sized type is shared and
2298 that it does not have a dimension that references a multiple of
2299 threads. If this criteria is met, then issue a meaningful
2302 2010-10-01 Gary Funck <gary@intrepid.com>
2304 * configure, configure.ac: Update manual page, and bug reporting
2305 URL. Update "man" page to reflect debugging switches.
2306 Also, some general clean up. Change the bug reporting
2307 URL to point to gccupc.org.
2309 2010-09-27 Gary Funck <gary@intrepid.com>
2311 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2312 the UPC forall depth count variable is not found.
2313 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2314 The compiler will generate code that references this variable in
2315 order to implement nested upc_forall semantics. If there is a
2316 compiler build or install problem, this variable may not be found.
2317 In this case, terminate with an internal_error().
2319 2010-09-26 Gary Funck <gary@intrepid.com>
2321 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2322 mis-diagnosed as syntax error.
2323 Fix a failure exhibited by the Berkeley test case,
2324 bug873a.upc, which has the code:
2326 upc_forall (;;;d) {...} The compiler did not properly handle
2327 the empty "condition" clause, and did not recover well when it was
2328 determined that the use of a double value, "d" above, was neither a
2329 pointer-to-shared nor an integer expression. The update implements a
2330 fix for both issues.
2331 See also: gcc/c-parser.c gcc/upc/upc-act.c
2333 2010-09-23 Gary Funck <gary@intrepid.com>
2335 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2336 incorporated into the referencing type.
2337 This was semi-fixed a few times before. This update fixes a few
2338 more places where the layout qualifier wasn't being propagated
2339 through typedef's properly. What made this a bit tricky is shown in
2340 the example cited in the bug report:
2341 typedef shared [5] int A_t; A_t A[5*THREADS];
2342 In the typedef, the blocksize is being applied to a shared *scalar*,
2343 and the code was applying the blocksize only to arrays. This update
2344 handles shared scalars correctly.
2346 2010-09-22 Gary Funck <gary@intrepid.com>
2348 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2349 upc_forall() semantics are not implemented
2350 The checkforall test in the Berkeley harness test suite indicated
2351 that GCC/UPC was not properly implementing nested upc_forall
2352 semantics. Nested upc_forall statements (both statically or
2353 dynamically nested) must implement their affinity clause as if it
2354 were "continue"; thus all steps in the loop must execute without
2355 regard for affinity. To implement these semantics a global depth
2356 counter, __upc_forall_depth, is maintained by the generated code
2357 that implements upc_forall.
2358 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2359 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2360 libupc/include/upc.h libupc/smp/upc_main.c
2362 2010-09-19 Gary Funck <gary@intrepid.com>
2364 * c-decl.c: c-decl.c: zero out the layout specifier, after
2365 processing an array type.
2366 Fix the previous fix, that moved the setting of the type's layout
2367 qualifier to the outside of the array type processing loop. What is
2368 missing from the fix is that the layout_qualifier variable needs to
2369 be cleared after setting the type's blocksize.
2371 2010-09-19 Gary Funck <gary@intrepid.com>
2373 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2374 given blocksize is greater than UPC_MAX_BLOCKSIZE.
2375 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2376 the actual maximum block size. Therefore, the message was correct,
2377 but the underlying value that was being checked was wrong. Change
2378 the values so that they agree with the actual implementation-defined
2381 2010-09-11 Gary Funck <gary@intrepid.com>
2383 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2384 multi-dimensional shared array with dynamic threads.
2385 This declaration caused an internal compiler error when compiled
2386 with dynamic threads:
2387 shared [*] int A[THREADS][16]; The bug was discovered when
2388 compiling the RTED_UPC test suite.
2389 The fix is to process layout qualifiers after the entire array type
2390 has been built. Otherwise, we try to calculate the blocksize on a
2391 shared array type that has not had its "size depends upon the value
2392 of THREADS" flag set.
2393 Also, added a test case.
2394 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2396 2010-07-11 Gary Funck <gary@intrepid.com>
2398 Fix a bug where a statement in c_build_qualified_type()
2399 in the trunk had been inadvertently deleted.
2400 This bug showed up in the IA64 port, because jmpbuf's
2401 on that architecture must be 16 byte aligned, and they were not.
2402 c-typeck.c (c_build_qualified_type): Revive the deleted line.
2404 2010-07-08 Gary Funck <gary@intrepid.com>
2406 Make changes so that other language compilers
2407 will build and bootstrap.
2408 * c-family/c-common.c (compiling_upc, flag_upc,
2409 flag_upc_instrument, flag_upc_instrument_functions,
2410 use_upc_dwarf2_extensions): Move to stub-upc.c and
2412 * c-family/c-common.h (use_upc_dwarf2_extensions,
2413 compiling_upc): Add extern definitions - needed
2414 to compile/build other language front ends.
2415 * c-family/c.opt: Fix the spelling of ObjC.
2416 It had been incorrectly spelled as Objc.
2417 * c-family/c.opt: Add UPC for the various switches
2418 that are valid for both C and ObjC.
2419 * c-fmaily/c-opts.c: Add CL_UPC to the list of
2420 supported options switches when compiling assembly
2422 * lto/lto-lang.c (use_upc_dwarf2_extensions,
2423 flag_upc_instrument, flag_upc_instrument_functions):
2424 Remove these definitions. They have been moved
2425 to c-family/stub-upc.c.
2426 * upc/ChangeLog: Move relevant entries
2428 * c-family/stub-upc.c (compiling_upc, flag_upc,
2429 flag_upc_instrument, flag_upc_instrument_functions,
2430 use_upc_dwarf2_extensions): Moved from c-common.c
2431 * upc/upc-lang.c (compiling_upc, flag_upc,
2432 flag_upc_instrument, flag_upc_instrument_functions,
2433 use_upc_dwarf2_extensions): Moved from c-common.c
2434 * objc/objc-act.c (objc_gimplify_expr): Add additional
2435 parameters to c_gimplify_expr() call, that are used
2436 by upc's tree rewrites.
2437 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2438 * gcc/cp/lex.c (init_reswords): If not compiling
2439 UPC, then mask off the UPC keywords.
2440 * cp/Make-lang.in (C_STUB_OBJS): Use this
2441 make macro to link with c-family/stub-objc.o
2442 and c-family/stub-upc.o.
2443 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2444 * java/Make-lang.in (C_STUB_OBJS): Likewise.
2445 * objc/Make-lang.in: Link with c-family/stub-upc.o
2446 to avoid undefined references.
2447 c-parser.c: Fix line indentation.
2448 * libcpp/include/cpplib.h: Remove CL_UPC from
2449 the list of language kinds accepted by the
2450 C preprocessor. This is not necessary because
2451 UPC is a derivative of C99, and does not need
2452 a different language kind.
2453 * c-fmaily/c-opts.c (c_common_handle_option):
2454 Call set_std_c99() when processing the
2455 "--lang upc" switch, instead of setting the
2456 language kind to CL_UPC.
2457 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2459 2010-07-03 Gary Funck <gary@intrepid.com>
2461 Merge trunk version 161517 into gupc branch.
2462 * gcc/stub-upc.c: Move to gcc/c-family/.
2463 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2464 Add 'unused' attributes to avoid "set, but
2465 not referenced" warnings.
2466 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2469 2010-03-01 Gary Funck <gary@intrepid.com>
2471 Create gupc branch from trunk version 157149.
2473 2011-10-04 Gary Funck <gary@intrepid.com>
2475 Merge trunk version 179421 into gupc branch.
2476 * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
2477 argument to the call to check_qualified_type().
2479 2011-09-22 Gary Funck <gary@intrepid.com>
2481 * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
2483 (dump_upc_type_quals): New.
2485 2011-09-22 Gary Funck <gary@intrepid.com>
2487 * upc/upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
2488 before calling TYPE_BLOCK_FACTOR(). This fits better with
2489 recent encoding of block factor values with a hash table.
2491 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
2493 Add to FLAGS the flags needed to disable inlining of
2494 UPC run-time access routines.
2495 * testsuite/lib/target-supports.exp
2496 (add_options_for_upc_library_calls): New.
2498 2011-09-15 Gary Funck <gary@intrepid.com>
2500 Fix ICE involving shared bit field accesses.
2501 * tree.c (build3_stat): Propagate TEEE_SHARED()
2502 TREE_STRICT() and TREE_RELAXED() flags, if applicable.
2504 2011-09-15 Gary Funck <gary@intrepid.com>
2506 Fix ICE involving shared bit field accesses.
2507 * upc/upc-genericize.c (upc_simplify_shared_ref): Improve
2508 "shared bit fields not yet implemented" error message
2509 by adding file/line number location.
2511 2011-09-13 Gary Funck <gary@intrepid.com>
2513 Merge trunk version 178795 into gupc branch.
2514 Incorporates fix to PR bootstrap/50010 for x86-32.
2516 2011-09-13 Gary Funck <gary@intrepid.com>
2518 * upc/upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
2519 * upc/upc-lang.c (upc_init_options): Ditto.
2520 * upc/upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
2521 upc_genericize_expr, upc_genericize_compound_expr): Ditto.
2522 * upc/upc-act.c (upc_parse_init, upc_build_pointer_type,
2523 upc_block_factor_insert, upc_pts_is_valid_p): Ditto.
2525 2011-09-08 Gary Funck <gary@intrepid.com>
2527 Merge trunk version 178557 into gupc branch.
2529 2011-09-07 Gary Funck <gary@intrepid.com>
2531 Ensure that UPC pointer-to-shared type alignment is
2532 propagated to the final type. Revert to long-standing
2533 alignment policy: twice the size of a "C" pointer.
2534 * tree.c (build_pointer_type): Propagate the alignment
2535 of the UPC pointer-to-shared representation type
2536 into the newly built pointer type.
2538 2011-09-07 Gary Funck <gary@intrepid.com>
2540 Ensure that UPC pointer-to-shared type alignment is
2541 propagated to the final type. Revert to long-standing
2542 alignment policy: twice the size of a "C" pointer.
2543 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
2544 shared pointers have twice the alignment of a pointer.
2545 * upc/upc-act.c (upc_cpp_builtins): Unconditionally emit
2546 the definition of __UPC_PTS_ALIGN__.
2548 2011-09-02 Gary Funck <gary@intrepid.com>
2550 Align UPC pointers-to-shared, only if the target enforces
2552 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Align a
2553 UPC pointer-to-shared type, only if the target requires
2555 * upc/upc-act.c (upc_cpp_builtins): Output pre-defined macro,
2556 __UPC_PTS_ALIGN__, only if the target requires strict alignment.
2558 2011-08-30 Gary Funck <gary@intrepid.com>
2560 * tree.h (check_qualified_type): Change 'const_tree'
2561 argument types back to 'tree' to avoid complaints
2562 of assignment drops qualifiers for invocations of the
2563 newly implemented TYPE_BLOCK_FACTOR() macro, which
2564 invokes hash functions with 'tree' pointer values that
2565 are not const qualified.
2566 * tree.c (check_qualified_type, check_aligned_type): Ditto.
2567 * c-typeck.c (comptypes_internal): Ditto.
2569 2011-08-29 Gary Funck <gary@intrepid.com>
2571 Fixes for regressions noted running "make check"
2573 * fold-const.c (fold_unary_loc): Execute UPC-specific
2574 checks for a cast-of-a-cast, only if one of the
2575 operands is a UPC pointer-to-shared value.
2576 * opts.c (print_specific_help): Fix a comparison
2577 in an assert that checks that there are enough
2578 bits reserved for the number of languages defined
2581 2011-08-29 Gary Funck <gary@intrepid.com>
2583 Implement a hash table to record UPC block factors.
2584 * c-family/stub-upc.c (upc_block_factor_insert,
2585 upc_block_factor_lookup): New dummy stub procedures.
2586 * c-family/c-common.c (c_sizeof_or_alignof_type):
2587 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2588 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
2589 to copy (hashed) UPC blocking factor.
2590 (set_type_quals): Likewise.
2591 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2592 TYPE_HAS_THREADS_FACTOR().
2593 (type_common.block_factor): Delete.
2594 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
2595 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
2596 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
2597 UPC blocking factors greater than one.
2598 * dwarf2out.c (modified_type_die): Re-implement
2599 logic that records UPC blocking factor in the generated
2600 DWARF2 debugging information.
2601 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2602 TYPE_HAS_THREADS_FACTOR().
2603 * c-decl.c (finish_decl, grokdeclarator):
2604 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2605 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
2606 used by UPC, and print UPC-specific information.
2608 2011-08-29 Gary Funck <gary@intrepid.com>
2610 Implement a hash table to record UPC block factors.
2611 * upc/upc-act.c (upc_block_factor_for_type): New garbage-collected
2613 (upc_lang_init, upc_finish): Move to end of source file.
2614 (upc_lang_init): create upc_block_factor_for_type hash table.
2615 (upc_block_factor_lookup, upc_block_factor_insert): New.
2616 (upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
2617 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2618 (upc_grok_layout_qualifier): convert blocking factor to sizetype
2619 before checking for equality to element type's blocking factor.
2621 2011-08-28 Gary Funck <gary@intrepid.com>
2623 Re-work the type machinery to fully support and to unify support
2624 for the UPC layout qualifier (blocking factor).
2625 * c-family/stub-upc.c (upc_set_block_factor): Delete.
2626 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
2627 and update prototype.
2628 * c-family/c-common.c (complete_array_type): call newly
2629 defined c_build_qualified_type_1() instead of
2630 upc_set_block_factor().
2631 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
2632 upc_apply_layout_qualifier() and update prototype.
2633 (upc_set_block_factor): Delete prototype.
2634 * c-family/c-common.h (c_build_qualified_type): redefine
2635 as a pre-processor macro that invokes c_build_qualified_type_1()
2636 with a null UPC layout qualifier.
2637 (c_build_qualified_type_1): New. Add layout qualifier argument
2638 to old c_build_qualified_type() prototype.
2639 * tree.c (set_type_quals, check_qualified_type):
2640 Add layout qualifier as argument.
2641 (check_aligned_type): Add check for UPC block factor equality.
2642 (get_qualified_type_1): Rename from get_qualified_type() and
2643 add layout qualifier as argument.
2644 (build_qualified_type_1): Rename from build_qualified_type() and
2645 add layout qualifier as argument.
2646 * tree.h (check_qualified_type): Add layout qualifier as argument
2648 (get_qualified_type): Re-define as a as a pre-processor macro
2649 that invokes get_qualified_type_1() with a null
2650 UPC layout qualifier.
2651 (get_qualified_type_1): Rename from get_qualified_type() and
2652 add layout qualifier as argument.
2653 * cp/tree.c (c_build_qualified_type_1): Rename from
2654 c_build_qualified_type() and add (unused) layout qualifier
2656 * c-decl.c (finish_decl): re-format long error messages.
2657 (grokdeclarator): Re-work the logic so that it calls
2658 upc_grok_layout_qualifier() to handle the UPC layout
2659 qualifier, if present.
2660 * c-typeck.c (qualify_type, common_pointer_type,
2661 build_component_ref): Re-work the logic so that it calls
2662 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
2664 (c_build_qualified_type_1): Rename from c_build_qualified_type()
2665 and add layout qualifier argument.
2666 * print_tree.c (print_node): Re-format a long line.
2668 2011-08-28 Gary Funck <gary@intrepid.com>
2670 Re-work the type machinery to fully support and to unify support
2671 for the UPC layout qualifier (blocking factor).
2672 * upc/upc-genericize.c (upc_simplify_shared_ref): Call
2673 c_build_qualified_type_1() instead of upc_set_block_factor()
2674 to assert a zero blocking factor.
2675 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Call
2676 c_build_qualified_type_1() to build predefined shared
2677 qualified types, instead of build_variant_type_copy().
2678 * upc/upc-pts-packed.c (upc_pts_packed_init_type): Call
2679 c_build_qualified_type_1() to build predefined shared
2680 qualified types, instead of build_variant_type_copy().
2681 * upc/upc-act.c (upc_set_block_factor): Delete.
2682 (upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
2683 Rework logic so that it returns a blocking factor rather than
2684 a qualified type. Add 'loc' argument and call error_at().
2685 Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
2686 the block size of the element type into the result type, and checks
2687 for errors due to an attempt to merge differing blocking factors.
2689 2011-08-26 Gary Funck <gary@intrepid.com>
2691 Merge trunk version 177949 into gupc branch.
2692 * c-family/c-common.h (enum rid): Bump the number of type modifiers
2694 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
2695 to add new rliterals column value.
2697 2011-08-26 Gary Funck <gary@intrepid.com>
2699 * convert.c (convert_to_integer): Fix the check for the
2700 difference between two UPC pointers-to-shared values.
2702 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
2704 * configure.ac: Fix the name for --with-upc-pts-packed-bits
2705 option. Support --with-upc-packed-bits as deprecated. Fix the code to
2706 correctly check packed bits.
2707 * configure: Re-generate.
2709 2011-08-16 Gary Funck <gary@intrepid.com>
2711 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
2712 the barrier id expression is not an integer expression.
2714 2011-08-16 Gary Funck <gary@intrepid.com>
2716 * upc/upc-act.c (upc_decl_init): Do not attempt to expand
2717 an error mark node. Fixes ICE after error diagnostic.
2718 * upc/upc-cmd.c (main): detect missing option argument for
2719 options that require an argument, and print error diagnostic.
2720 (get_print_cmd): Re-direct error output to /dev/null to
2721 avoid issuing duplicate error messages.
2723 2011-08-12 Gary Funck <gary@intrepid.com>
2725 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
2727 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
2728 Set mode of UPC pointer-to-shared rep. to an
2729 integral mode of size at least as large as the
2730 size of the representation's struct type.
2732 2011-08-12 Gary Funck <gary@intrepid.com>
2734 Rework/simplify the UPC genericize pass.
2735 * c-family/stub-upc.c (upc_apply_layout_qualifier,
2736 upc_build_pointer_type): New.
2737 (upc_set_block_factor): Adjust to new calling sequence.
2738 (upc_build_shared_var_addr): Delete.
2739 * c-family/c-common.c (complete_array_type): Adjust call
2740 to upc_set_block_factor().
2741 * c-family/c-upc.h (upc_apply_layout_qualifier,
2742 upc_build_pointer_type): New.
2743 (upc_build_shared_var_addr): Delete.
2744 (upc_set_block_factor): Adjust to new calling sequence.
2745 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
2746 * c-decl.c (grokdeclarator): Call newly defined
2747 upc_apply_layout_qualifier() instead of upc_set_block_factor().
2748 * c-decl.c (grokdeclarator): Split long UPC-related error
2749 messages into two lines.
2750 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
2751 directly. Revert that change to trunk. (upc_genericize() will
2752 handle lowering the expressions that take the address of a
2754 * config/i386/i386.c (ix86_promote_function_mode): For UPC
2755 pointers-to-shared, return the type mode of the UPC pointer-to-shared
2756 representation type.
2758 2011-08-12 Gary Funck <gary@intrepid.com>
2760 Rework/simplify the UPC genericize pass.
2761 * upc/upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
2762 * upc/upc-act.h: Cosmetic change.
2763 * upc/config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
2764 * upc/upc-genericize.c (upc_expand_get):
2765 Add WANT_STABLE_VALUE parameter.
2766 (upc_build_shared_var_addr, upc_shared_addr_rep): New.
2767 (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
2768 create_unshared_var, lookup_unshared_var, map_unshared_var,
2769 unshared_var_addr, unshared_var_name,
2770 upc_free_unshared_var_table): Move from upc-act.c.
2771 (upc_expand_get, upc_expand_put): Change their source and/or
2772 destination parameters so that they are no longer addresses
2773 of the objects, but rather references to the objects themselves.
2774 (upc_simplify_shared_ref): Rewrite (simplify/generalize).
2775 (upc_shared_addr_rep): New.
2776 (upc_shared_addr): Adjust call to upc_build_shared_var_addr(),
2777 and re-factor the logic.
2778 (upc_genericize_sync_stmt): Re-format comment.
2779 (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
2780 (upc_genericize_addr_expr): Re-factor the logic.
2781 (upc_genericize_indirect_ref, upc_genericize_field_ref):
2782 Adjust call to upc_expand_get() and re-factor the logic.
2783 (upc_genericize_modify_expr): Adjust call to upc_expand_put()
2784 and re-factor the logic.
2785 (upc_genericize_expr): Improve/fix comments.
2786 (upc_genericize_finish, upc_genericize_init): New.
2787 * upc/upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
2788 (upc_char_pts_type_node): Create new global type node.
2789 (upc_pts_struct_is_null_p): Generalize variable names to
2790 reflect the fact that the vaddr field can be either first/last.
2791 (upc_pts_struct_build_sum): Make corrections to comments.
2792 (upc_pts_struct_build_add_offset): Delete.
2793 * upc/upc-genericize.h (upc_genericize_finish, upc_genericize_init):
2795 * upc/upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
2796 (upc_char_pts_type_node): Create new global type node.
2797 * upc/Make-lang.in: Add dependencies to gtype-upc.h
2798 and gt-upc-upc-genericize.h.
2799 * upc/upc-act.c: Adjust includes to reflect moving the functions
2800 that handle the UPC unshared "shadow variables" into
2801 upc-genericize.c. Improve/fix various comments.
2802 * upc/upc-act.c (upc_parse_init): Call upc_genericize_init().
2803 (upc_build_pointer_type): New.
2804 (upc_set_block_factor): Re-purpose. Move the front-end
2805 related error checks into upc_apply_layout_qualifier().
2806 (upc_apply_layout_qualifier): New.
2807 (upc_write_global_declarations): Call upc_genericize_finish().
2809 2011-08-10 Gary Funck <gary@intrepid.com>
2811 Implement additional fixes for recent merge with trunk.
2812 * explow.c (promote_mode): Do not attempt to promote
2813 the mode for UPC pointer-to-shared types.
2814 * config/i386/i386.c (function_value_64): Ditto.
2816 2011-08-07 Gary Funck <gary@intrepid.com>
2818 Merge trunk version 177548 into gupc branch.
2819 * config/i386/i386.c (ix86_promote_function_mode):
2820 Do not promote UPC pointers-to-shared to Pmode.
2821 * c-family/c-ommon.c (pointer_int_sum):
2822 Also check the pointer operand, rather than just
2823 its type, when making the decision to derive
2824 the equivalent unshared type.
2825 * tree.c (build2_stat): If the type of the result
2826 passed in as an argument is a UPC shared type,
2827 derive the unshared equivalent when calculating
2828 the result type of the node.
2830 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
2832 * config/darwin.c: Disable var_tracking option
2833 on -O0 as it is supposed to run only when optimization
2834 is applied. See GCC bug 49743.
2836 2011-07-11 Gary Funck <gary@intrepid.com>
2838 * upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
2839 qualification was incorrectly derived from the source operand.
2840 (upc_genericize_fndecl): New.
2841 (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
2842 c_genericize() more than once in the event of nested procedures.
2843 (upc_genericize_real_imag_ref): Rename,
2844 was: upc_genericize_real_image_ref.
2845 (upc_expand_put): call internal_error() with meaningful message
2847 (upc_genericize_real_imag_ref): call internal_error() with
2848 meaningful message in lieu of gcc_unreachable().
2850 2011-07-06 Gary Funck <gary@intrepid.com>
2852 Re-implement the pass that lowers trees generated by
2853 the UPC front-end into GENERIC. Previously this was
2854 done within the gimplification framework, but this
2855 required that gimplification be run before inlining
2856 and various other passes, which did not fit in well
2857 with the current design of the middle-end passes.
2858 Now, the lowering is done by a newly defined language
2859 specific genericize hook. With this change, we are
2860 are able to undo some extensions made to the gimplify
2861 logic, and thus can revert several files to trunk.
2862 * c-decl.c: Add a check for UPC deprecated names which
2863 may appear as undefined function names.
2864 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
2865 LTI_upc_getaddr): Remove definitions of unused UPC
2866 library function names. These were defined back when
2867 the libfunc interface was used to call these routines.
2868 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
2869 in UPC lowering (genericize) pass.
2870 * langhooks.h (gimplify_expr): Revert to trunk's definition.
2871 (instrument_func): Delete this hook. Now handled in
2873 * tree-pass.h: Revert to trunk.
2874 * c-typeck.c (build_unary_op): Adjust reference to
2875 upc_genericize() in a comment.
2876 * gimplify.c (create_tmp_var_raw): Delete logic that
2877 was converting UPC shared types into unshared types
2878 to be used for temporaries. Now handled in upc_genericize().
2879 Replace with an assertion check.
2880 (prepare_gimple_addressable): Revert to trunk's definition.
2881 No longer needed as an externally called function.
2882 (flag_instrument_functions_exclude_p): Re-define as
2883 an externally called function.
2884 (gimplify_function_tree): Delete code that implemented
2885 call to UPC's language specific function instrumentation hook.
2886 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
2887 (prepare_gimple_addressable): Delete extern definition;
2888 revert to trunk's definition.
2889 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
2890 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
2891 * c-family/c-gimplify.c: Revert to trunk.
2892 * cp/cp-gimplify.c: Revert to trunk.
2893 * cp/cp-tree.h: Revert to trunk.
2894 * explow.c: Revert to trunk.
2895 * langhooks.c: Revert to trunk.
2896 * libfuncs.h: Revert to trunk.
2897 * objc/objc-act.c: Revert to trunk.
2899 2011-07-06 Gary Funck <gary@intrepid.com>
2901 Improve/simplify the logic in upc_genericize.
2902 * upc/upc-genericize.c (upc_create_tmp_var): Delete the
2903 PREFIX argument. Aways use "UPC" as the prefix.
2904 (upc_genericize_compound_expr): Add a WANT_VALUE argument.
2905 (upc_genericize_cond_expr): New.
2906 (upc_genericize_decl_expr): New.
2907 (upc_genericize_stmt): New.
2908 (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
2909 to upc_create_tmp_var().
2910 (upc_genericize_expr): Change the handling
2911 of the want_value flag passed in the DATA argument.
2912 Always assert this flag after processing EXPR_P.
2913 (upc_genericize_compound_expr): Adjust call
2914 to upc_genericize_compound_expr() and call
2915 upc_genericize_cond_expr() and upc_genericize_decl_expr().
2917 2011-07-06 Gary Funck <gary@intrepid.com>
2919 Re-implement the pass that lowers trees generated by
2920 the UPC front-end into GENERIC. Previously this was
2921 done within the gimplification framework, but this
2922 required that gimplification be run before inlining
2923 and various other passes, which did not fit in well
2924 with the current design of the middle-end passes.
2925 Now, the lowering is done by a newly defined language
2926 specific genericize hook. With this change, we are
2927 are able to undo some extensions made to the gimplify
2928 logic, and thus can revert several files to trunk.
2929 * upc/upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
2930 * upc/upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
2931 * upc/Make-lang.in: Adjust to refer to upc-genericize.[cho].
2932 * upc/upc-lnag.c: refer to upc-genericize.h.
2933 (LANG_HOOKS_GENERICIZE): define as upc_genericize.
2934 (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
2935 (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
2936 * upc/upc-act.c: Minor code format fix.
2938 2011-06-30 Gary Funck <gary@intrepid.com>
2940 * c-family/c.opt: Bring options definitions up-to-date
2941 with respect to changes made in the trunk.
2943 2011-06-29 Gary Funck <gary@intrepid.com>
2945 Merge trunk version 175584 into gupc branch.
2947 2011-06-29 Gary Funck <gary@intrepid.com>
2949 Merge trunk version 175584 into gupc branch.
2950 * upc/upc-act.c (upc_handle_option): Change reference to
2951 have_named_sections so that it refers to the
2952 targetm_common structure.
2954 2011-06-28 Gary Funck <gary@intrepid.com>
2956 * upc/upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
2957 Remove extern definitions. Now declared as 'static'.
2958 * upc/upc-gimplify.c, upc/upc-lang.c,
2959 upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
2960 upc-cmd.c, upc-act.c: Improve/add comments, fix
2961 typos and spelling errors.
2963 2011-06-13 Gary Funck <gary@intrepid.com>
2966 * include/cpplib.h (enum c_lang):
2967 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
2968 This keeps all the "C" variants together.
2969 * init.c (lang_defaults): Add an entry for UPC.
2971 2011-06-10 Gary Funck <gary@intrepid.com>
2973 * upc/upc-act.c (upc_set_block_factor): Handle the case where
2974 the UPC blocking factor expression overflowed.
2976 2011-06-09 Gary Funck <gary@intrepid.com>
2978 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
2979 a 32-bit target, the size expression overflowed, the result was
2980 error_mark_node, and an ICE was triggered on an attempt to evaluate
2981 C_TYPE_VARIABLE_SIZE() on the error node.
2982 (upc_blocksizeof_expr, upc_blocksizeof_type,
2983 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
2984 Make similar changes to avoid further processing of error_mark_node.
2986 2011-06-07 Gary Funck <gary@intrepid.com>
2988 * sel-sched.c (move_op): Incorporate the following
2989 patch to eliminate ICE at -O3 on IA64/Altix.
2991 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
2993 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
2994 code_motion_path_driver returned 0 or 1.
2995 (sel_region_finish): Clear h_d_i_d.
2997 2011-06-02 Gary Funck <gary@intrepid.com>
2999 Merge trunk version 174558 into gupc branch.
3001 2011-06-02 Gary Funck <gary@intrepid.com>
3003 Merge trunk version 174558 into gupc branch.
3004 * upc/upc-lang.c (upc_check_decl_init): Use recently defined
3005 'append_to_statement_list_force' function to add UPC
3006 initialization statements to the UPC initialization
3007 statement list ('upc_init_stmt_list').
3008 (upc_build_init_func): Use recently defined
3009 'append_to_statement_list_force' function to add
3010 statements listed in 'upc_init_stmt_list' onto the
3011 function body constructed to implement initialization
3012 of UPC declarations that require active initialization
3013 at program start up. The previous methods of manipulating
3014 statement lists no longer worked, due to changes in the
3015 the statement list structure.
3017 2011-05-30 Gary Funck <gary@intrepid.com>
3019 * configure.ac: Make the default order of the virtual
3020 address field in a UPC pointer-to-shared to be "first".
3021 This reverts to the previous setting, and is a short term
3022 measure to work around a bug found on the IA64,
3023 where vaddr=last led to incorrect code generation.
3024 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
3025 in AC_DEFINE(), to agree with recent changes in files
3026 that reference this define.
3027 configure, config.in: Regenerate.
3029 2011-05-26 Gary Funck <gary@intrepid.com>
3031 * configure.ac: Fix typo when referring to $upc_vaddr_order.
3032 configure: Regenerate.
3033 * ../fixincludes/fixincl.x: Revert to trunk.
3034 This file is auto-generated, and should not be merged.
3036 2011-05-23 Gary Funck <gary@intrepid.com>
3038 * upc/upc-pts-struct.c: Revert to code that aligned the
3039 internal pointer-to-shared representation to
3040 twice the alignment of a pointer. This fixes
3041 an ICE that occurred when building the compiler
3044 2011-05-18 Gary Funck <gary@intrepid.com>
3046 Merge trunk version 173845 into gupc branch.
3048 2011-05-17 Gary Funck <gary@intrepid.com>
3050 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
3051 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
3052 * c-family/c-pragma.c: Remove conditional compilation
3053 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
3054 Test 'compiling_upc' when compiling to determine if
3055 the "upc" and "pupc" pragmas should be registered.
3056 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
3057 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
3058 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
3059 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
3060 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
3061 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
3062 Move these target-dependent definitions from config/upc-conf.h
3064 * configure.ac: Improve the logic for UPC-related options.
3065 Delete references to pre-processor definitions that have
3066 been moved to "upc/upc-pts.h".
3067 * configure, config.in: Regenerate.
3068 * Makefile.in (UPC_PTS_REP): Remove definition and revert
3069 to trunk. This substitution variable was used to
3070 configure the representation-specific versions of
3071 the tree rewrites that operate on UPC pointer-to-shared
3073 * c-parser.c (c_parser_upc_forall_statement): Remove
3074 reference to UPC_FORALL_DEPTH_NAME, and call
3075 newly defined upc_rts_forall_depth_var() instead.
3076 * config/upc-config.h: Delete. Various definitions
3077 moved to "upc/upc-rts-names.h", "defaults.h", and
3079 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
3080 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
3081 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
3082 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
3083 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
3084 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
3085 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
3086 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
3087 New. Document UPC target macros.
3088 doc/tm.texi: Regenerate.
3090 2011-05-17 Gary Funck <gary@intrepid.com>
3092 * upc/upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
3093 upc_pts_build_cond_expr, upc_pts_build_constant,
3094 upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
3095 upc_pts_build_threadof, upc_pts_init_type): Remove extern
3097 (upc_pts_ops_t): New. Define handler table that will
3098 implement either the 'packed' or the 'struct' representation
3099 of a UPC pointer-to-shared value.
3100 (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
3101 refers to the packed and the struct UPC pointer-to-shared
3102 representation implementation.
3103 (upc_pts): New. Define handler table that is set up at initialization
3104 to refer to the handlers for the UPC pointer-to-shared
3105 representation (packed/struct) that has been configured.
3106 Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
3107 and configure the UPC pointer-to-shared definitions that
3108 are specific to the configured UPC pointer-to-shared
3110 * upc/upc-act.h (upc_pts_is_valid_p): Rename extern definition from
3111 is_valid_pts_p to upc_pts_is_valid_p.
3112 * lang-specs.h: Reformat the UPC compilation specs.
3113 to improve readability.
3114 * upc/upc-rts-names.h: New. Define the names of UPC runtime
3115 library functions that implement UPC language statement
3116 semantics. These definitions were moved from config/upc-conf.h
3117 * upc/upc-gimplify.c: Add include of "upc-rts-names.h".
3118 Refer to newly defined pointer manipulation routines
3119 by indirecting through the newly defined "pts" handler table.
3120 Re-format, re-indent.
3121 * upc/upc-lang.c: Add include of "upc-pts.h". Fix a comment.
3122 * upc/config-lang.in: Remove logic that inserted "config/upc-conf.h"
3123 into the target include and file path.
3124 * upc/upc-pts-struct.c: Add include of "upc-rts-names.h".
3125 (upc_pts_struct_ops): Define the pointer manipulation
3126 handler table that implements operations on UPC
3127 pointers-to-shared, represented as a struct.
3128 Re-format and re-indent.
3129 * upc/upc-gasp.c: Add include of "upc-rts-names.h".
3130 Re-format and re-indent.
3131 * upc/upc-pts-packed.c: Add include of "upc-rts-names.h".
3132 (upc_pts_packed_ops): Define the pointer manipulation
3133 handler table that implements operations on UPC
3134 pointers-to-shared, represented as a packed integer.
3135 Re-format and re-indent.
3136 * upc/Make-lang.in: Compile both "upc-pts-packed.c" and
3137 "upc-pts-struct.c". One/other will be selected at
3138 compilation time to implement operations on UPC
3139 on the UPC pointer-to-shared that has been configured.
3140 Add dependencies on "upc-rts-names.h".
3141 * upc/upc-cmd.c: Re-format and re-indent.
3142 * upc/upc-act.c: Add include of "upc-rts-names.h".
3143 (upc_pts): New. Add definition of the handler
3144 table that implements representation specific
3145 operations on trees that refer to UPC pointer-to-shared
3146 objects and types. Re-format and re-indent.
3148 2011-05-07 Gary Funck <gary@intrepid.com>
3150 * ../configure.ac: Disable build of libupc
3151 on non POSIX hosted systems. Use AS_HELP_STRING
3152 to define messages. Remove 'word-pair' as a
3153 possible --with-upc-pts UPC pointer-to-shared
3155 * ../configure: Regenerate.
3156 * configure.ac: Use AS_HELP_STRING to define messages.
3157 Remove 'word-pair' as a possible --with-upc-pts
3158 UPC pointer-to-shared representation.
3159 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
3160 (UPC_MAX_BLOCK_SIZE): Correct the default value.
3161 * configure: Regenerate.
3162 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
3164 * ChangeLog.upc: Fix some typos.
3166 2011-05-07 Gary Funck <gary@intrepid.com>
3168 * ../maintainer-scripts/gcc_release: Add "upc"
3169 as one of the released languages.
3171 2011-05-06 Gary Funck <gary@intrepid.com>
3173 Eliminate compilation warnings, by fixing
3174 #include's and updating function prototypes.
3175 * c-family/c-cppbuiltin.c: Include c-upc.h.
3176 * optabs.c (gen_libfunc): Change type of 'suffix'
3177 parameter to conform with prototype.
3178 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
3179 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
3181 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
3183 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
3184 argument values to cp_gimplify_expr.
3185 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
3186 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
3187 pre-processor definitions that are no longer
3188 needed to build the 'upc' command (upc-cmd.c)
3189 because the linker specs. defined in libupc
3190 take care of linking in the needed libraries.
3191 * c-parser.c (c_parser_upc_forall_statement):
3192 initialize affinity_loc to avoid "maybe unused" warning.
3193 (c_parser_upc_sync_statement): Remove un-needed
3194 'ret' variable. Cast return value from
3195 'upc_build_sync_stmt' to 'void' to avoid
3196 compile-time warning.
3197 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
3198 integer constant, not a string. Range is restricted
3199 to maximum positive 32-bit integer (2+ billion) to
3200 fit in with the use of 'int' in the front-end's
3201 switch handling logic.
3203 2011-05-06 Gary Funck <gary@intrepid.com>
3205 Upgrade c-family source files to conform with modularity
3206 improvements. Mainly, remove #include of c-tree.h in files
3207 under c-family, and define a new UPC-specific #include file,
3208 c-upc.h, and use it.
3209 * c-family/stub-upc.c: Remove #include of c-tree.h and
3210 upc/upc-act.h. Replace with #include of c-common.h
3212 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
3213 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
3214 upc_localsizeof_expr, upc_localsizeof_type,
3215 upc_shared_type_p): Delete.
3216 * c-family/c-opts.c: Add #include of c-upc.h
3217 * c-family/c-common.c: Remove #include of c-tree.h and
3218 add #include of c-upc.h.
3219 * c-family/c-upc.h: New. Define API for UPC-specific functions
3220 (mostly implemented in upc/upc-act.c).
3221 * c-family/c-common.h (upc_cpp_builtins,
3222 upc_write_global_declarations): Remove extern definitions.
3223 * c-family/c-pragma.c: Remove #include of c-tree.h.
3224 Add #include of c-upc.h.
3225 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
3227 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
3228 upc/upc-act.c, and define as a macro.
3229 (expand_affinity_test): Remove unused external definition.
3230 (build_upc_unshared_type): Add external definition.
3231 (upc_shared_type_p): Remove external definition.
3232 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
3233 * dojump.c: Remove #include of c-tree.h.
3234 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
3236 (count_upc_threads_refs, is_multiple_of_upc_threads,
3237 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
3238 upc_build_shared_var_addr, upc_build_sync_stmt,
3239 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
3240 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
3241 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
3242 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
3243 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
3244 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
3245 set_upc_consistency_mode, get_upc_consistency_mode,
3246 push_upc_consistency_mode, pop_upc_consistency_mode,
3248 Move external definitions to c-family/c-upc.h.
3249 (upc_blocksizeof_type, upc_localsizeof_type,
3250 upc_elemsizeof_type): Remove external definitions;
3251 these functions were moved to c-parser.c.
3252 * c-decl.c: Add #include of c-upc.h.
3253 * c-typeck.c: Add #include of c-upc.h.
3254 * c-convert.c: Add #include of c-upc.h.
3255 * ChangeLog.upc: Fix typo.
3256 * Makefile.in: Add references to c-family/c-upc.h, everywhere
3257 there is a reference to c-family/c-objc.h.
3258 Remove extraneous reference to upc-act.h.
3259 * c-parser.c: Add #include of c-upc.h.
3260 (upc_blocksizeof_expr, upc_blocksizeof_type,
3261 upc_elemsizeof_expr, upc_elemsizeof_type,
3262 upc_localsizeof_expr, upc_localsizeof_type):
3263 Move from upc/upc-act.c.
3264 * tree.c (build_upc_unshared_type): New.
3265 Move upc_get_unshared_type from upc/upc-act.c and rename
3266 to build_upc_unshared_type.
3267 c-family/c-common.c (pointer_int_sum): refer to renamed
3268 build_upc_unshared_type function.
3269 c-convert.c (convert): Ditto.
3270 convert.c (convert_to_pointer): Ditto.
3271 c-typeck.c (build_unary_op, build_modify_expr,
3272 really_start_incremental_init): Ditto.
3273 gimplify.c (create_tmp_var_raw): Ditto.
3274 tree.c (build1_stat): Ditto.
3275 tree.h (upc_get_unshared_type): Rename to
3276 build_upc_unshared_type.
3278 2011-05-06 Gary Funck <gary@intrepid.com>
3280 Merge trunk version 173471 into gupc branch.
3282 2011-05-06 Gary Funck <gary@intrepid.com>
3284 Eliminate compilation warnings, by fixing
3285 #include's and updating function prototypes.
3286 * upc/upc-gimplify.c: Include bitmap.h.
3287 (upc_gimplify_real_image_ref): Mark various parameters
3288 as unused. This is a stub procedure for now.
3289 * upc/upc-lang.c: Include c-family/c-upc.h.
3291 * upc/upc-cmd.c (no_start_files): Delete unused variable.
3292 The -nostartfiles switch is now handled by the linker spec.
3293 * ChangeLog: Spell check.
3295 2011-05-06 Gary Funck <gary@intrepid.com>
3297 Upgrade c-family source files to conform with modularity
3298 improvements. Mainly, remove #include of c-tree.h in files
3299 under c-family, and define a new UPC-specific #include file,
3300 c-upc.h, and use it.
3301 * upc/upc-act.h (upc_write_global_declarations,
3302 upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
3303 upc_num_threads, upc_diagnose_deprecated_stmt):
3304 Move external definitions to c-family/c-upc.h
3305 (upc_blocksizeof_expr, upc_blocksizeof_type,
3306 upc_elemsizeof_expr, upc_elemsizeof_type,
3307 upc_localsizeof_expr, upc_localsizeof_type):
3308 Remove external definitions; these functions
3309 were moved from upc-act.c to c-parser.c.
3310 * upc/upc-gimplify.c: Add #include of c-family/c-upc.h.
3311 upc-pts-packed.c: Ditto.
3312 upc-pts-struct.c: Ditto.
3313 * upc/config-lang.in: Update gtfiles to refer to c-upc.h
3315 * upc/upc-act.c: Add #include of c-family/c-upc.h.
3316 (upc_blocksize, upc_elemsizeof, upc_localsizeof):
3317 Make external so that it can be called from c-parser.c.
3318 (upc_blocksizeof_expr, upc_blocksizeof_type,
3319 upc_elemsizeof_expr, upc_elemsizeof_type,
3320 upc_localsizeof_expr, upc_localsizeof_type):
3321 Move from upc/upc-act.c to c-parser.c.
3322 (upc_set_block_factor): Fix typo in error message.
3323 (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
3324 Move to tree.h and define as a macro.
3325 (upc_get_unshared_type): Delete. renamed to
3326 build_upc_unshared_type and moved to tree.c.
3327 * upc/upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
3328 refer to renamed build_upc_unshared_type function.
3329 upc-act.c (create_unshared_var): Ditto.
3331 2011-05-05 Gary Funck <gary@intrepid.com>
3333 Make changes that bring the GUPC branch more closely in sync.
3334 with the GCC trunk. Revert any fixes that are not UPC-specific.
3335 Remove gratuitous re-formatting.
3336 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
3337 This file should have been removed in a previous merge
3339 * ../configure.ac: Remove Cray Catamount/CNL support.
3340 * ../configure: Regenerate.
3341 * ../config.sub: Remove Cray Catamount/CNL support.
3342 * config.gcc: Remove Cray Catamount/CNL support.
3343 * ../maintainer-scripts/gcc_release: Revert to trunk.
3344 * c-family/c-common.h: Define parse_optimize_options. Its definition
3345 was missed in a previous merge with the trunk.
3346 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
3348 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
3349 in addition to ARRAY_TYPE.
3350 * c-typeck.c: Remove an extra newline character.
3351 * varasm.c: Revert a fix that improved an error message
3352 when TLS common data is unimplemented.
3353 * varasm.c: Revert a gcc_assert that had been added which
3354 checked for a null DECL_SIZE_UNIT field.
3355 * emultls.c: Revert to trunk. Remove possible fix.
3356 * Makefile.in: Revert extra blank line that is present
3357 in the trunk version.
3358 * Makefile.in: Revert a fix that handled long shell
3359 argument lists for plugin headers.
3360 * config/ia64/ia64.opt: Revert an option setting
3361 that increased the default TLS address range.
3362 * config/ia64/crtbegin.asm: Revert to trunk.
3363 Removes an extra newline character.
3364 * ChangeLog.upc: Spell check.
3366 2011-05-03 Gary Funck <gary@intrepid.com>
3368 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
3369 (c_apply_type_quals_to_decl): Ditto.
3370 * c-family/c-common.h: Ditto.
3372 * c-decl.c (merge_decls): Ditto.
3373 * c-typeck.c (qualify_type, default_conversion,
3374 build_component_ref, build_unary_op,
3375 c_build_qualified_type): Ditto.
3376 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
3378 2011-05-03 Gary Funck <gary@intrepid.com>
3380 * upc/upc-lang.c: Remove extraneous FIXME/TODO comments.
3381 * upc/upc-pts-packed.c (upc_pts_build_cvt): Ditto.
3382 * upc/upc-act.c (upc_set_block_factor): Ditto.
3384 2011-04-29 Gary Funck <gary@intrepid.com>
3386 * c-decl.c (finish_decl): Improve error diagnostics.
3387 (grokdeclarator): Ditto.
3388 * c-typeck.c (build_c_cast): Improve error diagnostics.
3389 (convert_for_assignment): Ditto.
3390 (build_binary_op): Ditto.
3391 * c-parser.c (c_parser_upc_forall_statement):
3392 Improve error diagnostics.
3393 * convert.c (convert_to_integer): Improve error diagnostics.
3395 2011-04-29 Gary Funck <gary@intrepid.com>
3397 * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
3398 (upc_expand_put): Ditto.
3399 (upc_shared_addr): Ditto.
3400 (upc_gimplify_sync_stmt): Ditto.
3401 (upc_gimplify_field_ref): Ditto.
3402 * upc/upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
3403 (upc_pts_build_cvt): Ditto.
3404 * upc/upc-act.c (upc_handle_option): Improve error diagnostics.
3405 (upc_lang_init): Ditto.
3406 (upc_sizeof_type_check): Ditto.
3407 (upc_set_block_factor): Ditto.
3408 (upc_decl_init): Ditto.
3409 (upc_affinity_test): Ditto.
3410 (upc_num_threads): Ditto.
3411 (upc_diagnose_deprecated_stmt): Ditto.
3412 (upc_build_shared_var_addr): Ditto.
3413 (upc_pts_int_sum): Ditto.
3414 (upc_pts_diff): Ditto.
3416 2011-04-28 Gary Funck <gary@intrepid.com>
3418 * upc/upc-act.c (create_unshared_var): call upc_get_unshared_type()
3419 instead of using TYPE_MAIN_VARIANT() to create an equivalent type
3420 that is not a UPC shared type. This is sometimes necessary
3421 when the given shared type is derived from a typedef.
3423 2011-04-24 Gary Funck <gary@intrepid.com>
3425 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
3426 occurred if there is an error in the barrier id
3427 expression. Map error_mark_node into NULL.
3429 2011-04-24 Gary Funck <gary@intrepid.com>
3431 * upc/upc-act.c (upc_handle_option): Fix incorrect error
3432 diagnostic messages when both -fupc-debug and
3433 -fupc-inline-lib are asserted.
3435 2011-04-24 Gary Funck <gary@intrepid.com>
3437 * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
3438 to the list of switches that accept arguments.
3439 (main): Check for switches that have a following
3440 argument inside the loop that copies arguments and
3441 adds '-x upc' or '-x none' as necessary.
3442 (main): Misc. clean ups and simplifications.
3444 2011-04-22 Gary Funck <gary@intrepid.com>
3446 Merge trunk version 172873 into gupc branch.
3448 2011-04-22 Gary Funck <gary@intrepid.com>
3450 Merge trunk version 172873 into gupc branch.
3451 * upc/upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
3452 on init_func() to prevent it from being removed from
3455 2011-04-19 Gary Funck <gary@intrepid.com>
3457 Merge trunk version 172359 into gupc branch.
3459 2011-04-19 Gary Funck <gary@intrepid.com>
3461 Merge trunk version 172359 into gupc branch.
3462 * upc/upc-lang.c (upc_init_ts): New.
3463 (LANG_HOOKS_INIT_TS): use upc_init_ts.
3465 2011-04-19 Gary Funck <gary@intrepid.com>
3467 Eliminate warnings when compiling upc-cmd.c.
3468 * upc/upc-cmd.c (file_exists): Remove.
3469 (arg_copy): Remove const qualifier.
3471 2011-04-14 Gary Funck <gary@intrepid.com>
3473 * c-family/c.opt: Add UPC as a valid language for various
3474 switches where it is valid for "C", that were not updated
3475 in previous merges with trunk.
3477 2011-04-13 Gary Funck <gary@intrepid.com>
3479 * c-family/c.opt (fupc-pre-include): New option definition.
3480 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
3481 -fno-upc-pre-include is asserted.
3483 2011-04-13 Gary Funck <gary@intrepid.com>
3485 * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
3486 to the list, and alphabetize.
3488 2011-04-13 Gary Funck <gary@intrepid.com>
3490 * upc/upc-gimplify.c (upc_gimplify_real_image_ref): New.
3491 Currently, a not-yet-implemented stub.
3492 (upc_gimplify_lval): call upc_gimplify_real_image_ref to
3493 rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
3494 This will avoid an ICE when compiling regular "C"
3495 code that refers to those operators.
3497 2011-04-13 Gary Funck <gary@intrepid.com>
3499 * upc/upc-cmd.c: Do not add "-isystem <libupc_path>" if
3500 -fno-upc-pre-include is asserted.
3502 2011-04-07 Gary Funck <gary@intrepid.com>
3504 Merge trunk version 172158 into gupc branch.
3505 to bring in the following fix.
3507 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
3510 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3511 if old and new states differ.
3513 2011-04-06 Gary Funck <gary@intrepid.com>
3515 Merge trunk version 171966 into gupc branch.
3517 2011-04-01 Gary Funck <gary@intrepid.com>
3519 * tree.h (tree_base): Move UPC flag bits into bit fields
3520 located just before spare bits. Decrement spare bits.
3521 Rename 'shared_flag' -> 'upc_shared_flag',
3522 'relaxed_flag' -> 'upc_relaxed_flag',
3523 'strict_flag' -> 'upc_strict_flag, and adjust macros
3524 that reference them accordingly.
3526 2011-04-01 Gary Funck <gary@intrepid.com>
3528 * c-decl.c (grokdeclarator): Fix formatting of
3529 code that sets UPC block size on scalars.
3531 2011-04-01 Gary Funck <gary@intrepid.com>
3533 * c-decl.c (grokdeclarator): Revert use of white space
3534 to match the trunk (to rationalize diffs).
3535 * c-typeck.c (convert_for_assignment): Ditto.
3536 * tree-ssa.c (useless_type_conversion_p): Ditto.
3538 2011-03-23 Gary Funck <gary@intrepid.com>
3540 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
3541 the GCC 4.6 release branch.
3543 2011-03-22 Gary Funck <gary@intrepid.com>
3545 * upc/upc-cmd.c: Move linker switches into libupc/libupc.spec.
3546 (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
3547 (find_ld_script) Remove.
3549 2011-03-21 Gary Funck <gary@intrepid.com>
3551 Merge trunk version 171202 into gupc branch.
3553 2011-03-20 Gary Funck <gary@intrepid.com>
3555 * varasm.c: Call error() directly with a format specifier,
3556 rather than using sprintf() to format the message.
3557 This should make it easier to internationalize UPC's error messages.
3559 2011-03-20 Gary Funck <gary@intrepid.com>
3561 * configure.ac: Fix the check for gnu ld when enabling
3562 UPC link script support.
3563 configure: Regenerate (also picks up changes from previous
3566 2011-03-20 Gary Funck <gary@intrepid.com>
3568 Move UPC start files, end files, and linker specs.
3569 into libupc. This reduces the impact on common GCC
3570 configuration files, and ensures that these UPC-specific
3571 components are only built when the UPC language dialect is selected.
3572 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
3573 linker specs. Fix typo in -fupc-debug message.
3574 * config/upc-conf.h, config/darwin.h: Move defines for
3575 UPC-related section begins/ends into libupc/config/default/
3577 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
3578 UPC-related linker compiler specifications,
3579 accessed via %:include().
3580 * configure.ac, configure: Remove logic related to building
3581 upc-crtbegin/end. Remove config. tests for numa and cpu
3582 affinity (previously used by the 'upc' driver); these
3583 settings are now propagated by target-specific compiler
3584 specs. built by libupc. Regenerate autoconf.
3585 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
3586 linker compiler specifications, accessed via %:include().
3587 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
3589 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
3590 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
3591 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
3592 config/ia64/linux.h, config/mips/t-iris,
3593 config/mips/iris6.h: Revert to trunk version 167307.
3595 * configure, configure.ac, config.host, Makefile.in:
3596 Revert to trunk version 167307.
3598 2011-03-20 Gary Funck <gary@intrepid.com>
3600 * upc/upc-act.c: Call error() directly with a format specifier,
3601 rather than using sprintf() to format the message.
3602 This should make it easier to internationalize UPC's error messages.
3604 2011-03-20 Gary Funck <gary@intrepid.com>
3606 Move UPC start files, end files, and linker specs.
3607 into libupc. This reduces the impact on common GCC
3608 configuration files, and ensures that these UPC-specific
3609 components are only built when the UPC language dialect is selected.
3610 * upc/config-lang.in: Remove setting of 'upc_extra_parts', which
3611 was used to specify which upc-crtbegin and upc-crtend files
3612 need to built. Remove extraneous (commented out)
3613 settings of 'cfiles'. The listed configuration files
3614 have been reverted to trunk, and weren't referenced
3615 via cfiles in any event.
3616 * upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
3617 Simply test for the presence of the UPC link script
3618 in the current directory or the libupc directory.
3619 Add -B<path-to-libupc> to the switches passed to 'gcc';
3620 this is needed in order to find the upc-crtbegin
3621 and upc-crtend object files now built in libupc.
3622 Remove test for and inclusion of UPC_LINKER_SWITCHES.
3623 if extra switches are needed for a particular target
3624 (like SGI/Irix), they will be defined by the custom
3625 linker spec. built in libupc. Remove test for
3626 HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
3627 will be added to the custom linker specs. built
3629 * upc/upc-crtstuff.c: Move to libupc.
3631 2011-02-23 Gary Funck <gary@intrepid.com>
3633 * c-decl.c (undeclared_variable): fix typo. Inadvertently
3634 removed negation on following 'if'.
3636 2011-02-22 Gary Funck <gary@intrepid.com>
3638 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
3639 to check for the usage of certain deprecated UPC keywords.
3640 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
3641 * c-tree.h (undeclared_variable): Define prototype.
3643 2011-02-22 Gary Funck <gary@intrepid.com>
3645 * upc/upc-act.c (upc_diagnose_deprecated_stmt): New.
3646 upc-act.h (upc_diagnose_deprecated_stmt): Define.
3647 Check usage of deprecated keywords and issue
3650 2011-02-12 Gary Funck <gary@intrepid.com>
3652 * c-typeck.c: (build_c_cast, convert_for_assignment)
3653 Diagnose an attempt to convert from an integer to
3654 a pointer-to-shared as an error. Also, fix various
3655 error messages so that they use the preferred term
3656 pointer-to-shared instead of "shared pointer".
3658 2011-02-08 Gary Funck <gary@intrepid.com>
3660 * upc/upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
3661 for struct-pts representation
3662 Analysis indicated that for something like (+ ptr -80) this was
3663 being represented as (+ ptr (- 80)) and further, when the
3664 calculations were propagated into the individual operations on the
3665 components of the 'struct' pointer, it would end up with something
3666 like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
3667 "long unsigned int" because of the addition to the pointer. This
3668 caused the calculations involving the signed 'int' operand to be
3669 performed incorrectly. This fix insures that the 'int' operand is
3672 2011-02-08 Gary Funck <gary@intrepid.com>
3674 * upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
3675 upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
3676 upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
3677 upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
3678 upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
3679 upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
3680 Update copyright notices.
3682 2011-02-07 Gary Funck <gary@intrepid.com>
3684 * c-typeck.c: (convert_for_assignment)
3685 Fix typo. in error message.
3687 2011-01-23 Gary Funck <gary@intrepid.com>
3689 * c-typeck.c: (c_build_qualified_type)
3690 derive UPC block size by calling upc_get_block_size(),
3691 to ensure that the element type of an array of an array
3692 is derived correctly.
3694 2011-01-09 Gary Funck <gary@intrepid.com>
3696 Fix behavior of upc_localsizeof() when called in a dynamic
3697 threads compilation environment. This bug, and the expected
3698 behavior is documented in this bug report:
3699 https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
3700 * upc/_act.c (upc_localsizeof): Re-implement.
3702 2010-12-29 Gary Funck <gary@intrepid.com>
3704 Merge trunk version 168314 into gupc branch.
3706 2010-12-15 Gary Funck <gary@intrepid.com>
3708 Merge trunk version 167307 into gupc branch.
3710 2010-12-15 Gary Funck <gary@intrepid.com>
3712 Merge trunk version 167307 into gupc branch.
3713 * upc/_act.h: (upc_handle_option) add location and struct
3714 cl_option_handlers * parameters.
3715 (upc_finish_file) Remove.
3716 (upc_write_global_declarations) New, replaces upc_finish_file.
3717 * lang-spec.h: Disable multi-file compilation for .upc files.
3718 This fixes an issue where file-scoped static variables were
3719 diagnosed as multiply-defined. Both "C" and "ObjC" also disable
3720 multi-file compilation.
3721 * upc/upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
3722 explicitly when deciding whether a UPC shared object is addressable.
3723 is_gimple_addressable() used to do this, but now checks for MEM_REF
3724 which does not apply to UPC shared objects.
3725 (upc_gimplify_lval, upc_gimplify_expr) Delete references to
3726 ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
3727 These are no longer defined.
3728 (upc_genericize) Add call to bitmap_obstack_initialize()
3729 and bitmap_obstack_release() around call to gimplify_function_tree().
3730 * upc/upc-lang.c: Add #include of "opts.h" and "options.h".
3731 (flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
3732 flag_upc_instrument_functions) Remove. Use definitions
3733 generated by the options file.
3734 (upc_init_options) Use cl_decoded_option struct.
3735 (LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
3736 (finish_file) Delete.
3737 (upc_init_options) Call control_warning_option() to specify
3738 -Werror=pointer-arith as the default. Remove call to
3739 enable_warning_as_error().
3740 * upc/upc-pts-struct.c: (upc_pts_init_type) Move test that
3741 UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
3742 rather than an #ifdef; this macro now depends upon a
3743 target size macro which must be evaluated at runtime.
3744 * upc/Make-lang.in: (cc1-dummy) Remove make target.
3745 (cc1upc-checksum.c) Generate directly from object files.
3746 * upc/upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
3747 references to these deprecated macro definitions.
3748 (GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
3749 (all_exec_args) Delete variable.
3750 (exec_args) Re-define as (const char *).
3751 (exec_arg_list) New. Make copy of exec_args to pass to 'exec'.
3752 * upc/upc-act.c: (upc_handle_option) Update argument list to accept
3753 (cl_option_handlers *) argument.
3754 (upc_finish_file) Rename to upc_write_global_declarations.
3755 (upc_write_global_declarations) New.
3757 2010-10-19 Gary Funck <gary@intrepid.com>
3759 * c-typeck.c: Fix typo in previous fix
3760 which led to a mis-compare for equal block sizes.
3762 2010-10-18 Gary Funck <gary@intrepid.com>
3764 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
3765 diagnosed as an error
3766 The conversion from any type (shared or not) to
3767 a shared type is likely either meaningless or an error. This update
3768 makes any conversion to a shared type, an error.
3770 2010-10-18 Gary Funck <gary@intrepid.com>
3772 * c-typeck.c: Fix bug: passing int to shared pointer arg.
3773 generates spurious warning
3774 Add a #define procedure that does the same thing as
3775 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
3776 this procedure to diagnose passing an integer value to a
3777 pointer-to-shared as an error.
3779 2010-10-18 Gary Funck <gary@intrepid.com>
3781 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
3782 matching routine declaration.
3783 When checking for type compatibility, shared qualified types must
3784 have the same block factor. This check was missing from
3785 comptypes_internal(). This update adds the check for blocking
3788 2010-10-17 Gary Funck <gary@intrepid.com>
3790 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
3792 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
3794 2010-10-17 Gary Funck <gary@intrepid.com>
3796 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
3797 45869 - [4.5/4.6 Regression] type mismatch in shift expression
3798 produces ice with -O3 and -m32.
3799 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
3801 2010-10-17 Gary Funck <gary@intrepid.com>
3803 * c-common.c: Diagnose the application of the various "*sizeof"
3804 operations on generic pointer-to-shared as a compilation error.
3806 2010-10-17 Gary Funck <gary@intrepid.com>
3808 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
3809 message regarding a function parameter being declared with a shared
3811 The parameter's 'name' value is not defined at this point, and
3812 cannot be used in the error message. This update removes the
3813 reference to 'name', and eliminates the segfault.
3815 2010-10-17 Gary Funck <gary@intrepid.com>
3817 * upc/upc-act.c: Issue a compilation error on attempts to perform
3818 arithmetic on generic pointer-to-shared values.
3819 (The rest of this update is a small code clean up.)
3821 2010-10-17 Gary Funck <gary@intrepid.com>
3823 * upc/upc-lang.c: For UPC only, issue errors for arithmetic and related
3824 operations on void types.
3825 This update simulates the effect of -Werror=pointer-arith, thus
3826 causing arithmetic on void types, sizeof(void) and so on to be
3827 considered compilation errors. This meets the expectations of some
3828 harness tests and the RTED/CTED test suites. GCC is more
3829 permissive, but since this is for UPC only, we can fairly safely
3830 define this new policy.
3832 2010-10-16 Gary Funck <gary@intrepid.com>
3834 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
3835 The gcc/Makefile.in rules for install-plugin had to be re-written to
3836 break up a long list of header files that exceeded the command line
3837 limitation imposed by Irix.
3838 Access functions for TFmode types had to be implemented.
3839 Apparently, this is the mode used for the SGI/MIPS port to represent
3842 2010-10-16 Gary Funck <gary@intrepid.com>
3844 * upc/upc-act.c: Fix bug: Static initialization of shared
3845 arrays is unsupported -- issue an error message.
3846 Currently, static initialization of a shared array is not
3847 implemented correctly.
3848 We do not plan to fix this for a while, therefore the compiler will
3849 issue an error message indicating that this is an unsupported
3852 2010-10-14 Gary Funck <gary@intrepid.com>
3854 * c-decl.c: Fix bug: Multiple equal blocking factors specified
3855 via typedef chain should not be diagnosed as an error.
3856 If the block size that is given by the typedef is equal to the block
3857 size given explicitly in the variable declaration, then do not
3858 complain. The easiest way to make this check was to create a
3859 temporary type that is a clone of the element type and then set its
3860 block size using the given layout qualifier. Then compare the block
3861 size of the temporary (the declaration) to the block size specified
3862 in the typedef. This complexity is needed, because the '[*]' block
3863 size needs to be calculated, and the '[]' needs to be mapped into a
3866 2010-10-13 Gary Funck <gary@intrepid.com>
3868 * upc/upc-act.c: Fix bug: negative layout qualifiers not diagnosed
3870 The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
3871 it was not diagnosed as an error. With this fix, negative block
3872 sizes will generate a translation error.
3874 2010-10-10 Gary Funck <gary@intrepid.com>
3876 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
3878 The compiler properly detected the presence of two or more layout
3879 qualifiers as an error, but then hit an assertion check, because the
3880 code that followed the error expected to see a qualifier and not a
3881 layout specifier. The fix is simple: just return immediately after
3882 detecting the error.
3884 2010-10-10 Gary Funck <gary@intrepid.com>
3886 * c-decl.c: Improve error diagnostics for various cases of UPC
3887 shared array type declarations.
3888 Add the check for this error: "In the dynamic translation
3889 environment, THREADS may not appear in declarations of shared arrays
3890 with indefinite block size". Also, fix up a few of the other
3891 related error diagnostics.
3893 2010-10-10 Gary Funck <gary@intrepid.com>
3895 * upc/upc-act.c: Fix bug: ICE: Attempt to take the difference of
3896 shared and non-shared pointers
3897 The compiler detected the error, and then tried to return
3898 error_mark_node. This apparently is not acceptable, as there is an
3899 explicit assertion check to prevent this from happening in
3900 build_binary_op. Return the more user-friendly size_one_node
3903 2010-10-09 Gary Funck <gary@intrepid.com>
3905 * c-common.c: Fix bug: segfault on incomplete array definition.
3906 This turned out to be a bit complicated. The logic in
3907 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3908 the THREADS identifier in the case where the blocking factor has
3909 been set to indefinite ([]). This can happen when indefinite array
3910 declarations are processed for shared arrays. At that time, the
3911 file scope has been closed and THREADS is no longer in scope. Some
3912 more work is needed on upc_lang_layout_decl(). It has some
3913 duplication, and notably duplicates the two branches of the if
3914 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3915 caller of this routine (layout_decl()).
3916 The method of forcing a layout qualifier of [] in the indefinite
3917 declaration handler is odd a well. The code that just does the
3918 setting of the block factor, needs to moved into its own routine
3919 that doesn't depend upon a declspec for '[]' to be passed in, just
3920 in order to set the blocking factor to some value (in this case, 0).
3921 Also, the logic for how that shared type is constructed is strange.
3922 First the type with 0 blocking factor is set. Then the shared
3923 qualifier is removed from the type, and then added back later. The
3924 intermediate type has a blocking factor set, but it has no shared
3925 qualifier. Fixing this will require some thought. It is tempting
3926 just to make indefinite shared arrays an error, rather than forcing
3927 the dimension to be '1'.
3928 This likely fixes a serious error in the previous update to
3929 upc_lang_layout_decl(), where it didn't have the logic to set
3930 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
3931 the previous update would fail on many tests.
3933 2010-10-09 Gary Funck <gary@intrepid.com>
3935 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
3936 (decl) is null, which can happen if some layout error occurred
3939 2010-10-09 Gary Funck <gary@intrepid.com>
3941 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
3942 "variable-sized" when compiled in dynamic threads.
3943 This long-standing bug is easily fixed. Just check
3944 for the situation that the non-constant sized type is shared and
3945 that it does not have a dimension that references a multiple of
3946 threads. If this criteria is met, then issue a meaningful
3949 2010-10-09 Gary Funck <gary@intrepid.com>
3951 * upc/upc-act.c: Fix bug: segfault on incomplete array definition.
3952 This turned out to be a bit complicated. The logic in
3953 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3954 the THREADS identifier in the case where the blocking factor has
3955 been set to indefinite ([]). This can happen when indefinite array
3956 declarations are processed for shared arrays. At that time, the
3957 file scope has been closed and THREADS is no longer in scope. Some
3958 more work is needed on upc_lang_layout_decl(). It has some
3959 duplication, and notably duplicates the two branches of the if
3960 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3961 caller of this routine (layout_decl()).
3962 The method of forcing a layout qualifier of [] in the indefinite
3963 declaration handler is odd a well. The code that just does the
3964 setting of the block factor, needs to moved into its own routine
3965 that doesn't depend upon a declspec for '[]' to be passed in, just
3966 in order to set the blocking factor to some value (in this case, 0).
3967 Also, the logic for how that shared type is constructed is strange.
3968 First the type with 0 blocking factor is set. Then the shared
3969 qualifier is removed from the type, and then added back later. The
3970 intermediate type has a blocking factor set, but it has no shared
3971 qualifier. Fixing this will require some thought. It is tempting
3972 just to make indefinite shared arrays an error, rather than forcing
3973 the dimension to be '1'.
3974 This likely fixes a serious error in the previous update to
3975 upc_lang_layout_decl(), where it didn't have the logic to set
3976 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
3977 the previous update would fail on many tests.
3978 See also: gcc/c-common.c gcc/upc/upc-act.c
3980 2010-10-01 Gary Funck <gary@intrepid.com>
3982 * configure, configure.ac: Update manual page, and bug reporting
3984 Update "man" page to reflect debugging switches. Also, some general
3985 clean up. Change the bug reporting URL to point to gccupc.org.
3987 2010-10-01 Gary Funck <gary@intrepid.com>
3989 * upc/upc-manpage.html, upc.1: Update manual page, and bug reporting
3991 Update "man" page to reflect debugging switches. Also, some general
3992 clean up. Change the bug reporting URL to point to gccupc.org.
3993 See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
3996 2010-10-01 Gary Funck <gary@intrepid.com>
3998 * upc/upc-act.c: Do not zap all qualifier bits when constructing a
3999 non-shared result node.
4000 This fix was suggested by Paul H. in the following Berkeley Bugzilla
4001 report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
4002 use of "!" rather than "~" zapped all the type qualifier bits rather
4003 than just those that are related to the "shared" qualifier. This
4004 fix clears only the relevant bits.
4006 2010-09-27 Gary Funck <gary@intrepid.com>
4008 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
4009 the UPC forall depth count variable is not found.
4010 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
4011 The compiler will generate code that references this variable in
4012 order to implement nested upc_forall semantics. If there is a
4013 compiler build or install problem, this variable may not be found.
4014 In this case, terminate with an internal_error().
4016 2010-09-26 Gary Funck <gary@intrepid.com>
4018 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
4019 mis-diagnosed as syntax error.
4020 Fix a failure exhibited by the Berkeley test case,
4021 bug873a.upc, which has the code:
4023 upc_forall (;;;d) {...} The compiler did not properly handle
4024 the empty "condition" clause, and did not recover well when it was
4025 determined that the use of a double value, "d" above, was neither a
4026 pointer-to-shared nor an integer expression. The update implements a
4027 fix for both issues.
4028 See also: gcc/c-parser.c gcc/upc/upc-act.c
4030 2010-09-26 Gary Funck <gary@intrepid.com>
4032 * upc/upc-act.c: Fix bug: upc_forall with empty clauses
4033 mis-diagnosed as syntax error.
4034 A failure was exhibited by the Berkeley test case,
4035 bug873a.upc, which has the code:
4037 upc_forall (;;;d) {...} The compiler did not properly handle
4038 the empty "condition" clause, and did not recover well when it was
4039 determined that the use of a double value, "d" above, was neither a
4040 pointer-to-shared nor an integer expression. The update implements a
4041 fix for both issues.
4042 See also: gcc/c-parser.c gcc/upc/upc-act.c
4044 2010-09-25 Gary Funck <gary@intrepid.com>
4046 * upc/upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
4047 gimple check when calculating affinity for upc_forall.
4048 Intrepid test, test10.upc, failed to compile due a mis-match between
4049 the COMPONENT_REF node and the internal 'thread' field. Changed the
4050 code to make the types agree, and added a conversion to sizetype if
4053 2010-09-23 Gary Funck <gary@intrepid.com>
4055 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
4056 incorporated into the referencing type.
4057 This was semi-fixed a few times before. This update fixes a few
4058 more places where the layout qualifier wasn't being propagated
4059 through typedef's properly. What made this a bit tricky is shown in
4060 the example cited in the bug report:
4061 typedef shared [5] int A_t; A_t A[5*THREADS];
4062 In the typedef, the blocksize is being applied to a shared *scalar*,
4063 and the code was applying the blocksize only to arrays. This update
4064 handles shared scalars correctly.
4066 2010-09-23 Gary Funck <gary@intrepid.com>
4068 * upc/upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
4069 with static threads and size not a multiple of threads.
4070 Add an extra check for an attempt to apply a '[*]' layout qualifier
4071 to a shared array that does not specify a size that is a multiple of
4072 THREADS, when compiled in a static THREADS compilation environment.
4074 2010-09-22 Gary Funck <gary@intrepid.com>
4076 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
4077 upc_forall() semantics are not implemented
4078 The checkforall test in the Berkeley harness test suite indicated
4079 that GCC/UPC was not properly implementing nested upc_forall
4080 semantics. Nested upc_forall statements (both statically or
4081 dynamically nested) must implement their affinity clause as if it
4082 were "continue"; thus all steps in the loop must execute without
4083 regard for affinity. To implement these semantics a global depth
4084 counter, __upc_forall_depth, is maintained by the generated code
4085 that implements upc_forall.
4086 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
4087 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
4088 libupc/include/upc.h libupc/smp/upc_main.c
4090 2010-09-22 Gary Funck <gary@intrepid.com>
4092 * upc/upc-act.c, upc/upc-act.h: Fix bug: Nested upc_forall() semantics
4094 The checkforall test in the Berkeley harness test suite indicated
4095 that GCC/UPC was not properly implementing nested upc_forall
4096 semantics. Nested upc_forall statements (both statically or
4097 dynamically nested) must implement their affinity clause as if it
4098 were "continue"; thus all steps in the loop must execute without
4099 regard for affinity. To implement these semantics a global depth
4100 counter, __upc_forall_depth, is maintained by the generated code
4101 that implements upc_forall.
4102 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
4103 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
4104 libupc/include/upc.h libupc/smp/upc_main.c
4106 2010-09-19 Gary Funck <gary@intrepid.com>
4108 * c-decl.c: c-decl.c: zero out the layout specifier, after
4109 processing an array type.
4110 Fix the previous fix, that moved the setting of the type's layout
4111 qualifier to the outside of the array type processing loop. What is
4112 missing from the fix is that the layout_qualifier variable needs to
4113 be cleared after setting the type's blocksize.
4115 2010-09-19 Gary Funck <gary@intrepid.com>
4117 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
4118 given blocksize is greater than UPC_MAX_BLOCKSIZE.
4119 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
4120 the actual maximum block size. Therefore, the message was correct,
4121 but the underlying value that was being checked was wrong. Change
4122 the values so that they agree with the actual implementation-defined
4125 2010-09-18 Gary Funck <gary@intrepid.com>
4127 * upc/upc-act.c, upc/upc-pts-packed.c, upc/upc-pts-struct.c:
4128 Implement -fupc-debug switch.
4130 2010-09-11 Gary Funck <gary@intrepid.com>
4132 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
4133 multi-dimensional shared array with dynamic threads.
4134 This declaration caused an internal compiler error when compiled
4135 with dynamic threads:
4136 shared [*] int A[THREADS][16]; The bug was discovered when
4137 compiling the RTED_UPC test suite.
4138 The fix is to process layout qualifiers after the entire array type
4139 has been built. Otherwise, we try to calculate the blocksize on a
4140 shared array type that has not had its "size depends upon the value
4141 of THREADS" flag set.
4142 Also, added a test case.
4143 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
4145 2010-07-11 Gary Funck <gary@intrepid.com>
4147 Fix a bug where a statement in c_build_qualified_type()
4148 in the trunk had been inadvertently deleted.
4149 This bug showed up in the IA64 port, because jmpbuf's
4150 on that architecture must be 16 byte aligned, and they were not.
4151 c-typeck.c (c_build_qualified_type): Revive the deleted line.
4153 2010-07-08 Gary Funck <gary@intrepid.com>
4155 Make changes so that other language compilers
4156 will build and bootstrap.
4157 * c-family/c-common.c (compiling_upc, flag_upc,
4158 flag_upc_instrument, flag_upc_instrument_functions,
4159 use_upc_dwarf2_extensions): Move to stub-upc.c and
4161 * c-family/c-common.h (use_upc_dwarf2_extensions,
4162 compiling_upc): Add extern definitions - needed
4163 to compile/build other language front ends.
4164 * c-family/c.opt: Fix the spelling of ObjC.
4165 It had been incorrectly spelled as Objc.
4166 * c-family/c.opt: Add UPC for the various switches
4167 that are valid for both C and ObjC.
4168 * c-fmaily/c-opts.c: Add CL_UPC to the list of
4169 supported options switches when compiling assembly
4171 * lto/lto-lang.c (use_upc_dwarf2_extensions,
4172 flag_upc_instrument, flag_upc_instrument_functions):
4173 Remove these definitions. They have been moved
4174 to c-family/stub-upc.c.
4175 * upc/ChangeLog: Move relevant entries
4177 * c-family/stub-upc.c (compiling_upc, flag_upc,
4178 flag_upc_instrument, flag_upc_instrument_functions,
4179 use_upc_dwarf2_extensions): Moved from c-common.c
4180 * upc/upc-lang.c (compiling_upc, flag_upc,
4181 flag_upc_instrument, flag_upc_instrument_functions,
4182 use_upc_dwarf2_extensions): Moved from c-common.c
4183 * objc/objc-act.c (objc_gimplify_expr): Add additional
4184 parameters to c_gimplify_expr() call, that are used
4185 by upc's tree rewrites.
4186 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
4187 * gcc/cp/lex.c (init_reswords): If not compiling
4188 UPC, then mask off the UPC keywords.
4189 * cp/Make-lang.in (C_STUB_OBJS): Use this
4190 make macro to link with c-family/stub-objc.o
4191 and c-family/stub-upc.o.
4192 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
4193 * java/Make-lang.in (C_STUB_OBJS): Likewise.
4194 * objc/Make-lang.in: Link with c-family/stub-upc.o
4195 to avoid undefined references.
4196 c-parser.c: Fix line indentation.
4197 * libcpp/include/cpplib.h: Remove CL_UPC from
4198 the list of language kinds accepted by the
4199 C preprocessor. This is not necessary because
4200 UPC is a derivative of C99, and does not need
4201 a different language kind.
4202 * c-fmaily/c-opts.c (c_common_handle_option):
4203 Call set_std_c99() when processing the
4204 "--lang upc" switch, instead of setting the
4205 language kind to CL_UPC.
4206 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
4208 2010-07-03 Gary Funck <gary@intrepid.com>
4210 Merge trunk version 161517 into gupc branch.
4211 * gcc/stub-upc.c: Move to gcc/c-family/.
4212 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
4213 Add 'unused' attributes to avoid "set, but
4214 not referenced" warnings.
4215 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
4218 2010-07-03 Gary Funck <gary@intrepid.com>
4220 Merge trunk version 161517 into gupc branch.
4221 * upc/config-lang.in: Update references to files
4222 moved into c-family/.
4223 * upc/Make-lang.in: Likewise.
4224 * upc/upc-act.c: Likewise.
4225 * upc/upc-gasp.c: Likewise.
4226 * upc/upc-gimplify.c: Likewise.
4227 * upc/upc-lang.c: Likewise.
4228 * upc/upc-pts-packed.c: Likewise.
4229 * upc/upc-pts-struct.c: Likewise.
4230 * upc/upc-act.c: (upc_handle_option) add parameters to
4231 effect pass through call to c_common_handle_option.
4232 * upc/upc-act.h: (upc_handle_option) Likewise.
4233 * upc/upc-act.c: (map_unshared_var) used typed ggc allocation.
4234 * upc/upc-act.c: (upc_build_init_func) add call to
4235 to mark_decl_referenced(), to ensure that UPC shared
4236 variable initializer function is not removed from
4237 the call tree graph.
4239 2010-03-01 Gary Funck <gary@intrepid.com>
4241 Create gupc branch from trunk version 157149.