1 2014-01-13 Gary Funck <gary@intrepid.com>
3 Merge trunk version 206575 into gupc branch.
5 2014-01-10 Gary Funck <gary@intrepid.com>
7 Update copyright notices.
9 2014-01-06 Gary Funck <gary@intrepid.com>
11 Merge trunk version 206354 into gupc branch.
13 2014-01-04 Gary Funck <gary@intrepid.com>
15 Integrate GUPC into cc1.
16 * upc/: Remove directory. Re-distribute files.
17 * c/c-upc-lang.c: Move upc/upc-lang.c here.
18 * c/c-upc-lang.h: New.
19 * c-family/c-upc.c: Move upc/upc-act.c here.
20 * c-family/c-upc-gasp.c: Move upc/upc-gasp.c here.
21 * c-family/c-upc-gasp.h: Move upc/upc-gasp.h here.
22 * c-family/c-upc.h: Move upc/upc-act.h here.
23 * c-family/c-upc-low.c: Move upc/upc-genericize.c here.
24 * c-family/c-upc-low.h: Move upc/upc-genericize.h here.
25 * c-family/c-upc-pts.h: Split upc/upc-pts.h here.
26 * c-family/c-upc-pts-ops.c: Split upc/upc-pts.c here.
27 * c-family/c-upc-pts-ops.h: Split upc/upc-pts.h here.
28 * c-family/c-upc-pts-packed.c: Move upc/upc-pts-packed.c here.
29 * c-family/c-upc-pts-struct.c: Move upc/upc-pts-struct.c here.
30 * c-family/c-upc-rts-names.h: Move upc/upc-rts-names.h here.
31 * c-family/stub-upc.c: Remove.
32 * c/gupcspec.c: Move upc/gupcspec.c here.
33 * doc/gupc.texi: Move upc/gupc.texi here.
34 * c/c-objc-common.h: Revert to trunk.
35 * cp/lex.c: Revert to trunk.
36 * cp/Make-lang.in: Revert to trunk.
37 * expr.h: Revert to trunk.
38 * flags.h: Revert to trunk.
39 * fortran/Make-lang.in: Revert to trunk.
40 * java/Make-lang.in: Revert to trunk.
41 * lto/Make-lang.in: Revert to trunk.
42 * objc/Make-lang.in: Revert to trunk.
43 * stor-layout.c: Delete custom hook routines, use
44 newly defined declaration layout language hooks.
45 * stor-layout.h: Revert to trunk.
46 * ../configure.ac: Remove check for UPC language dialect.
47 * ../configure: Re-generate.
48 * Makefile.in (C_COMMON_OBJS): Add UPC-related object files.
49 * c/Make-lang.in: Compile UPC-related files. Build gupc driver.
50 * c/c-decl.c: Call c_genericize() directly rather than
51 lang_hooks.genericize(). Adjust for flag_upc and name changes.
52 * c/c-lang.c (LANG_HOOKS_UPC_TOGGLE_KEYWORDS,
53 LANG_HOOKS_UPC_PTS_STRUCT_INIT_TYPE, LANG_HOOKS_UPC_BUILD_INIT_FUNC,
54 LANG_HOOKS_LAYOUT_DECL_P, LANG_HOOKS_LAYOUT_DECL):
55 Define UPC-specific hooks.
56 * c/c-objc-common.c (upc_types_compatible_p): Move to here.
57 (c_types_compatible_p): Call upc_types_compatible_p().
58 * c/c-parser.c (upc_affinity_test): Move to here.
59 (upc_build_sync_stmt): Move to here.
60 * c/c-typeck.c: #include c-family/c-upc-low.h.
61 * c/config-lang.in (gtfiles): Add UPC gt files.
62 * c-family/c-common.c: Add #include c-upc.h.
63 (c_common_get_alias_set): Move UPC-related alias check to here.
64 (upc_num_threads): Move to here.
65 (c_common_init_ts): Mark UPC-specific statement tree definitions.
66 * c-family/c-common.def (UPC_FORALL_STMT, UPC_SYNC_STMT):
67 Define UPC-specific statements.
68 * c-family/c-common.h (RID_FIRST_UPC_QUAL, RID_LAST_UPC_QUAL,
69 RID_FIRST_UPC_KW, RID_LAST_UPC_KW, UPC_IS_KEYWORD): New.
70 (clk_upc, clk_upcxx, c_dialect_upc, compiling_upc): Delete.
71 (use_upc_dwarf2_extensions, flag_upc): Move to c-family/c.opts.
72 (upc_num_threads): Declare prototype.
73 (UPC_SYNC_OP, UPC_SYNC_ID, UPC_SYNC_NOTIFY_OP, UPC_SYNC_WAIT_OP,
74 UPC_SYNC_BARRIER_OP): Move definitions here.
75 * c-family/c-cppbuiltin.c: Remove #include c-upc.h and
76 add #include c-upc-pts.h.
77 (upc_cpp_builtins): Move to here. Define as static.
78 (c_cpp_builtin): Change call to c_dialect_upc () into
80 * c-family/c-gimplify.c: #include c-upc-low.h.
81 (c_common_genericize): Rename c_genericize() to this and make static.
82 (c_genericize): Call upc_genericize() if flag_upc is set and
83 then call c_common_genericize().
84 * c-family/c-opts.c: #include c-upc-low.h and c-upc-pts.h.
85 (c_family_lang_mask): Remove CL_UPC.
86 (c_common_option_lang_mask): Remove CL_UPC from lang_flags.
87 (upc_init_options): Move to here, make it static.
88 (c_common_init_options): Add early check for flag_upc, if found
89 call upc_init_options().
90 (upc_handle_option): Move to here and make static.
91 (c_common_handle_option): Check for UPC-related options
92 and call upc_handle_option(). Remove references to
93 OPT_lang_upc and clk_upc. Check flag_upc instead of
94 calling c_dialect_upc().
95 * c-family/c-pragma.c: #include langhooks.h.
96 (handle_pragma_upc): Remove warning if flag_upc not set;
97 flag_upc now serves the function of compiling_upc().
98 Add call to lang_hooks.upc.toggle_keywords() to
99 implement enable/disable of UPC keywords.
100 (init_pragma): Check flag_upc instead of compiling_upc.
101 * c-family/c-pragma.h (deny_pragma_upc, get_upc_consistency_mode,
102 permit_pragma_upc, pop_upc_consistency_mode,
103 pragma_upc_permitted_p, push_upc_consistency_mode,
104 set_upc_consistency_mode): Move prototypes to here.
105 * c-family/c.opt: Remove all references to "UPC" language dialect.
106 Add -fupc option. Delete -fupc-link option.
107 Add -fupc-threads= option and deprecate -fupc-threads-.
108 * configure.ac: Remove check for UPC language dialect.
109 * configure: Re-generate.
110 * explow.c (tree_expr_size): Move to tree.c.
111 * gcc.c: Change specs to refer to -fupc instead of -lang-upc
113 * hooks.c (hook_bool_tree_tree_false): Declare prototype.
114 * langhooks.c (lhd_do_nothing_b, lhd_do_nothing_t_t): New.
115 * langhooks.h (lang_hooks_for_upc): Define hooks for UPC.
116 (layout_decl_p, layout_decl): Define language-specific
117 declaration layout hooks.
118 (genericize): Remove this language hook.
119 * langhooks-def.h: Define UPC default language hooks.
120 Define language-specific declaration layout default hooks.
121 * langhooks.c (lhd_do_nothing_b): New.
122 * tree-core.h (shared_flag): Rename from upc_shared_flag.
123 (strict_flag): Rename from upc_strict_flag.
124 (relaxed_flag): Rename from upc_relaxed_flag.
125 (threads_factor_flag): New. Was a lang. flag.
126 (block_factor_0): New. Was a lang. flag.
127 (block_factor_x): New. Was a lang. flag.
128 (spare1): Decrement spare bits from 8 down to 5.
129 * tree.c (block_factor_for_type): Move to here.
130 (tree_expr_size): Move to here from explow.c.
131 (block_factor_lookup): Move to here.
132 (block_factor_insert): Move to here.
133 (upc_get_block_factor): Move to here.
134 * tree.h: refer to block_factor_* instead of upc_block_factor_*.
135 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
136 TYPE_HAS_THREADS_FACTOR): Refer to tree base flag bits instead
138 (tree_expr_size): Move prototype from explow.h.
140 2013-12-30 Gary Funck <gary@intrepid.com>
142 Merge trunk version 206243 into gupc branch.
144 2013-12-23 Gary Funck <gary@intrepid.com>
146 Merge trunk version 206179 into gupc branch.
148 2013-12-22 Gary Funck <gary@intrepid.com>
150 * upc/upc-act.c (upc_cpp_builtins): Bump UPC_VERSION
151 to reflect UPC specification version 1.3 compliance.
153 2013-12-16 Gary Funck <gary@intrepid.com>
155 Merge trunk version 206010 into gupc branch.
157 2013-12-09 Gary Funck <gary@intrepid.com>
159 Merge trunk version 205801 into gupc branch.
161 2013-12-03 Meador Inge <meadori@codesourcery.com>
163 * tree-core.h (tree_type_common): Change tree_type_common to use
164 user-provided GC marking.
165 (gt_ggc_mx, gt_pch_nx): New prototypes.
166 * tree.c (gt_ggc_mx, gt_pch_nx): New functions.
168 2013-12-03 Gary Funck <gary@intrepid.com>
172 2011-10-10 Gary Funck <gary@intrepid.com>
174 * tree.c (check_qualified_type, check_aligned_type):
175 Call tree_int_cst_equal() to compare UPC blocking factors
176 if the corresponding tree pointers are not equal.
177 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
179 2013-12-03 Gary Funck <gary@intrepid.com>
181 * c-family/c.opt: Fix typo introduced in 2013-06-03
184 2013-12-02 Gary Funck <gary@intrepid.com>
186 Merge trunk version 205582 into gupc branch.
188 2013-11-26 Meador Inge <meadori@codesourcery.com>
190 * upc/upc-genericize.c (upc_expand_get): Ensure that temporaries
191 are declared via a DECL_EXPR.
193 2013-11-25 Gary Funck <gary@intrepid.com>
195 Merge trunk version 205346 into gupc branch.
197 2013-11-18 Gary Funck <gary@intrepid.com>
199 Merge trunk version 204942 into gupc branch.
201 2013-11-15 Gary Funck <gary@intrepid.com>
203 Merge trunk version 204894 into gupc branch.
205 2013-11-15 Gary Funck <gary@intrepid.com>
207 Merge trunk version 204659 into gupc branch.
209 2013-11-04 Gary Funck <gary@intrepid.com>
211 Merge trunk version 204345 into gupc branch.
213 2013-10-31 Gary Funck <gary@intrepid.com>
215 Released GUPC 4.9.0.1 based on version 203902.
216 This release version was committed on 2013-10-21.
217 * DEV-PHASE: Bump to 4.9.0.2.
218 * DATESTAMP: Bump date stamp.
220 2013-10-28 Gary Funck <gary@intrepid.com>
222 Merge trunk version 204119 into gupc branch.
224 2013-10-21 Gary Funck <gary@intrepid.com>
226 Merge trunk version 203886 into gupc branch.
228 2013-10-14 Gary Funck <gary@intrepid.com>
230 Merge trunk version 203514 into gupc branch.
232 2013-10-07 Gary Funck <gary@intrepid.com>
234 Merge trunk version 203240 into gupc branch.
236 2013-10-01 Gary Funck <gary@intrepid.com>
238 Implement pointer-to-shared -> integer conversions.
239 Required per UPC 1.3 Specification.
240 * c/c-typeck.c (build_c_cast): Remove logic that diagnosed
241 PTS->int conversions as an error. Rewrite into a CONVERT_EXPR
242 for later processing by upc_genericize().
244 2013-10-01 Gary Funck <gary@intrepid.com>
246 Implement pointer-to-shared -> integer conversions.
247 Required per UPC 1.3 Specification.
248 * upc/upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
249 (upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().
251 2013-09-30 Gary Funck <gary@intrepid.com>
253 Merge trunk version 203026 into gupc branch.
255 2013-09-23 Gary Funck <gary@intrepid.com>
257 Merge trunk version 202825 into gupc branch.
259 2013-09-18 Gary Funck <gary@intrepid.com>
261 Merge trunk version 202725 into gupc branch.
263 2013-09-16 Gary Funck <gary@intrepid.com>
265 Merge trunk version 202619 into gupc branch.
267 2013-09-09 Gary Funck <gary@intrepid.com>
269 Merge trunk version 202382 into gupc branch.
271 2013-09-02 Gary Funck <gary@intrepid.com>
273 Merge trunk version 202159 into gupc branch.
275 2013-08-26 Gary Funck <gary@intrepid.com>
277 Merge trunk version 202008 into gupc branch.
279 2013-08-19 Gary Funck <gary@intrepid.com>
281 Merge trunk version 201832 into gupc branch.
283 2013-08-05 Gary Funck <gary@intrepid.com>
285 Merge trunk version 201483 into gupc branch.
287 2013-07-29 Gary Funck <gary@intrepid.com>
289 Merge trunk version 201301 into gupc branch.
291 2013-07-22 Gary Funck <gary@intrepid.com>
293 Merge trunk version 201119 into gupc branch.
295 2013-07-15 Gary Funck <gary@intrepid.com>
297 Merge trunk version 200955 into gupc branch.
299 2013-07-08 Gary Funck <gary@intrepid.com>
301 Merge trunk version 200775 into gupc branch.
303 2013-07-01 Gary Funck <gary@intrepid.com>
305 Merge trunk version 200575 into gupc branch.
307 2013-06-24 Gary Funck <gary@intrepid.com>
309 Merge trunk version 200361 into gupc branch.
311 2013-06-19 Gary Funck <gary@intrepid.com>
313 Merge trunk version 200149 into gupc branch.
315 2013-06-19 Gary Funck <gary@intrepid.com>
317 Merge trunk version 200149 into gupc branch.
318 * upc/upc-act.c (upc_create_static_var): New.
319 (upc_build_init_func): Call upc_create_static_var() to
320 create a static variable, __upc_init_func_addr, which
321 is initialized to the address of the UPC
322 shared data initialization function. This change is
323 needed to avoid writing to the output assembly language
325 (upc_build_sync_stmt): Delete unused variable, sync_expr_type.
327 2013-06-03 Gary Funck <gary@intrepid.com>
329 Merge trunk version 199596 into gupc branch.
331 2013-05-27 Gary Funck <gary@intrepid.com>
333 Merge trunk version 199350 into gupc branch.
335 2013-05-20 Gary Funck <gary@intrepid.com>
337 Merge trunk version 199093 into gupc branch.
339 2013-05-14 Gary Funck <gary@intrepid.com>
341 * upc/upc-pts-packed.c (upc_pts_packed_build_cvt):
342 When checking whether the phase of a PTS should be reset,
343 if the source type is an array type, then bypass
344 the check for equal type sizes.
345 * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
347 2013-05-13 Gary Funck <gary@intrepid.com>
349 Merge trunk version 198815 into gupc branch.
351 2013-05-06 Gary Funck <gary@intrepid.com>
353 Merge trunk version 198622 into gupc branch.
355 2013-04-29 Gary Funck <gary@intrepid.com>
357 Merge trunk version 198433 into gupc branch.
359 2013-04-15 Gary Funck <gary@intrepid.com>
361 Merge trunk version 197958 into gupc branch.
363 2013-04-08 Gary Funck <gary@intrepid.com>
365 Merge trunk version 197571 into gupc branch.
367 2013-04-04 Gary Funck <gary@intrepid.com>
369 Per the UPC 1.3 specification, the type of the
370 optional barrier/notify/wait expression is not constrained to
371 'int'. Instead, any type that is assignment compatible
372 with an 'int' type is permitted.
373 * c/c-parser.c (c_parser_upc_sync_statement): Do not check
374 the optional expression type here. Let upc_build_sync_stmt()
376 * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
377 * c/c-typeck.c (c_cvt_expr_for_assign): New. Also, call
378 error_at() in lieu of error() when the source location is known.
379 * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
380 to check/convert the optional synchronization statement
383 2013-04-02 Gary Funck <gary@intrepid.com>
385 Merge trunk version 197340 into gupc branch.
387 2013-04-02 Gary Funck <gary@intrepid.com>
389 Revert revision 178346 (2011-08-30)
390 which changed the prototype of check_qualified_type and related
391 functions so that their parameters were just 'tree' and not
392 'const_tree'. This seemed necessary at the time because of a
393 change to TYPE_BLOCK_FACTOR(), which in turn called function
394 that hashed the type node pointer. The hash functions did
395 not accept "const void *" pointers. Implement a work around
396 that removes this restriction.
397 * c/c-typeck.c: Revert.
399 * tree.h: Revert. Change prototype of upc_block_factor_lookup()
400 to accept a 'const_tree' pointer to a type node.
401 * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
402 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
403 input argument and convert this to 'tree' for use with hash function.
405 2013-04-02 Gary Funck <gary@intrepid.com>
407 Revert revision 178346 (2011-08-30)
408 which changed the prototype of check_qualified_type and related
409 functions so that their parameters were just 'tree' and not
410 'const_tree'. This seemed necessary at the time because of a
411 change to TYPE_BLOCK_FACTOR(), which in turn called a function
412 that hashed the type node pointer. The hash functions did
413 not accept "const void *" pointers. Implement a work around
414 that removes this restriction.
415 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
416 input argument and convert this to 'tree' for use with hash function.
418 2013-03-25 Gary Funck <gary@intrepid.com>
420 Merge trunk version 197029 into gupc branch.
422 2013-03-21 Gary Funck <gary@intrepid.com>
424 Released GUPC 4.8.0.3 based on version 196601.
425 This release version was committed on 2013-03-11.
426 * DATESTAMP: Bump date stamp.
428 2013-03-18 Gary Funck <gary@intrepid.com>
430 Merge trunk version 196771 into gupc branch.
431 * DEV-PHASE: Bump release identifier to 4.9.0-1.
433 2013-03-11 Gary Funck <gary@intrepid.com>
435 Merge trunk version 196592 into gupc branch.
437 2013-03-04 Gary Funck <gary@intrepid.com>
439 Merge trunk version 196422 into gupc branch.
441 2013-02-25 Gary Funck <gary@intrepid.com>
443 Merge trunk version 196253 into gupc branch.
445 2013-02-18 Gary Funck <gary@intrepid.com>
447 Merge trunk version 196115 into gupc branch.
449 2013-02-11 Gary Funck <gary@intrepid.com>
451 Merge trunk version 195937 into gupc branch.
453 2013-02-04 Gary Funck <gary@intrepid.com>
455 Merge trunk version 195707 into gupc branch.
457 2013-01-28 Gary Funck <gary@intrepid.com>
459 Merge trunk version 195502 into gupc branch.
461 2013-01-21 Gary Funck <gary@intrepid.com>
463 Merge trunk version 195330 into gupc branch.
465 2013-01-14 Gary Funck <gary@intrepid.com>
467 Merge trunk version 195164 into gupc branch.
469 2013-01-07 Gary Funck <gary@intrepid.com>
471 Merge trunk version 194962 into gupc branch.
473 2012-12-24 Gary Funck <gary@intrepid.com>
475 Merge trunk version 194709 into gupc branch.
477 2012-12-17 Gary Funck <gary@intrepid.com>
479 Merge trunk version 194552 into gupc branch.
481 2012-12-10 Gary Funck <gary@intrepid.com>
483 Merge trunk version 194351 into gupc branch.
485 2012-12-03 Gary Funck <gary@intrepid.com>
487 Merge trunk version 194076 into gupc branch.
489 2012-11-30 Gary Funck <gary@intrepid.com>
491 Released GUPC 4.8.0.2 based on version 193446.
492 Date of release: 2012-11-12.
493 * DEV-PHASE: Bump release identifier to 4.8.0-3.
494 * DATESTAMP: Bump date stamp.
496 2012-11-26 Gary Funck <gary@intrepid.com>
498 Merge trunk version 193807 into gupc branch.
500 2012-11-20 Gary Funck <gary@intrepid.com>
502 Merge trunk version 193672 into gupc branch.
504 2012-11-19 Gary Funck <gary@intrepid.com>
506 Merge trunk version 193617 into gupc branch.
508 2012-11-15 Gary Funck <gary@intrepid.com>
510 Merge trunk version 193426 into gupc branch.
512 2012-11-12 Gary Funck <gary@intrepid.com>
514 Released GUPC 4.8.0.1 based on version 192948.
515 Date of release: 2012-10-29.
516 * DEV-PHASE: Bump release identifier to 4.8.0-2.
517 * DATESTAMP: Bump date stamp.
519 2012-11-05 Gary Funck <gary@intrepid.com>
521 Merge trunk version 193152 into gupc branch.
523 2012-10-29 Gary Funck <gary@intrepid.com>
525 Merge trunk version 192909 into gupc branch.
527 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
529 Remove unused --upc-pthreads-per-process compile switch.
530 * c-family/c.opt: Remove --upc-pthreads-per-process switch
531 that compiler/runtime do not use.
532 * c-family/c-opts.c (c_common_handle_option): Remove support for
533 --upc-pthreads-per-process switch.
534 * c-family/c-common.c: Ditto.
535 * c-family/c-common.h: Ditto.
537 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
539 Remove unused --upc-pthreads-per-process compile switch.
540 * upc/upc-act.c (upc_handle_option): Ditto.
541 (upc_cpp_builtins): Ditto.
542 * upc/upc-lang.c (upc_init_options): Ditto.
544 2012-10-27 Gary Funck <gary@intrepid.com>
546 * defaults.h: fix typos and formatting in UPC-related entries.
548 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
550 Place shared initialization code into the .text
551 section instead of a separate .upc_init section.
552 * defaults.h (UPC_INIT_SECTION_NAME): Delete.
553 (UPC_INIT_BEGIN_NAME): Delete.
554 (UPC_INIT_END_NAME): Delete.
555 * doc/tm.texi.in: Ditto.
556 * doc/tm.texi: Ditto.
558 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
560 Place shared initialization code into the .text
561 section instead of a separate .upc_init section.
562 * upc/upc-act.c (upc_build_init_func): Remove settings
563 of the section for shared initialization code.
565 2012-10-22 Gary Funck <gary@intrepid.com>
567 Merge trunk version 192673 into gupc branch.
569 2012-10-15 Gary Funck <gary@intrepid.com>
571 Merge trunk version 192449 into gupc branch.
573 2012-10-08 Gary Funck <gary@intrepid.com>
575 Merge trunk version 192198 into gupc branch.
577 2012-10-01 Gary Funck <gary@intrepid.com>
579 Merge trunk version 191931 into gupc branch.
581 2012-09-26 Gary Funck <gary@intrepid.com>
583 Implement support for various UPC version 1.3 specification
584 additions and changes. Deprecate support for upc_local_alloc.
585 Add support for upc_tick (wall-clock timer) library.
586 Add support for collective de-allocation functions:
587 upc_all_free and upc_all_lock_free.
588 Consult libgupc/ChangeLog,
589 libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
591 2012-09-26 Gary Funck <gary@intrepid.com>
593 * upc/upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.
595 2012-09-24 Gary Funck <gary@intrepid.com>
597 Merge trunk version 191658 into gupc branch.
599 2012-09-17 Gary Funck <gary@intrepid.com>
601 Merge trunk version 191376 into gupc branch.
603 2012-09-10 Gary Funck <gary@intrepid.com>
605 Merge trunk version 191141 into gupc branch.
607 2012-08-29 Nenad Vukicevic <nenad@intrepid.com>
609 * upc/gupc.texi: Add description for -fupc-pre-include.
611 2012-08-27 Gary Funck <gary@intrepid.com>
613 Merge trunk version 190707 into gupc branch.
614 * tree.h (struct tree_base): Adjust various
615 UPC tree and type flags to refer to the
616 newly introduced u.bits field.
618 2012-08-20 Gary Funck <gary@intrepid.com>
620 Merge trunk version 190524 into gupc branch.
621 Incorporates a fix in genoutput.c (to properly use
622 CONST_CAST) that led to build failures with
623 older versions of g++.
625 2012-08-16 Gary Funck <gary@intrepid.com>
627 Merge trunk version 190437 into gupc branch.
628 Incorporates a fix for a build failure on the PPC
629 due to passing incorrect switches to the assembler.
630 Also, first merged trunk revision that compiles GCC
631 with the C++ compiler in the first stage.
633 2012-08-16 Gary Funck <gary@intrepid.com>
635 * upc/upc-pts-struct.c (upc_pts_struct_is_null_p):
636 Adjust VEC_index() calls to use C++ syntax.
637 This is required as part of the move to compile
638 GCC with the C++ compiler.
640 2012-08-13 Gary Funck <gary@intrepid.com>
642 Merge trunk version 190336 into gupc branch.
644 2012-08-09 Gary Funck <gary@intrepid.com>
646 * c-family/c-common.c (c_fully_fold_internal): Do not fold
647 offsetof-like expressions when they are applied to UPC
650 2012-08-07 Gary Funck <gary@intrepid.com>
652 * upc/upc-genericize.c: Delete un-used include of optabs.h.
653 Fixes a parallel make failure due to un-noticed dependency.
655 2012-08-06 Gary Funck <gary@intrepid.com>
657 Merge trunk version 190173 into gupc branch.
659 2012-08-01 Gary Funck <gary@intrepid.com>
661 Merge trunk version 190063 into gupc branch.
662 Incorporates fix for build failure on IA64.
664 2012-07-30 Gary Funck <gary@intrepid.com>
666 Merge trunk version 189954 into gupc branch.
668 2012-07-27 Gary Funck <gary@intrepid.com>
670 Merge trunk version 189856 into gupc branch.
671 Incorporates fix for bootstrap with a sub-set of language
672 specific source directories present.
673 * optabs.c: Revert to trunk. Rather than defining opcodes
674 as a way of defining get/put runtime library function names,
675 generate them directly in gcc/upc/upc-genericize.c.
677 * genopinit.c: Ditto.
679 2012-07-27 Gary Funck <gary@intrepid.com>
681 * upc/upc-genericize.c (upc_expand_get, upc_expand_put):
682 Rather than referring to UPC-specific opcodes to find
683 the name of the get/put library function name, generate
685 (get_lc_mode_name): New.
687 2012-07-25 Gary Funck <gary@intrepid.com>
689 * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
690 Fix regression: field-by-field comparison of UPC
691 pointer-to-shared (vaddr, thread) only works
692 (with the current logic) for the == and != operators.
694 2012-07-24 Gary Funck <gary@intrepid.com>
696 * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
697 Fix warning about use of const_tree.
699 2012-07-24 Gary Funck <gary@intrepid.com>
701 Per UPC spec. 6.4.2p6, ignore the value of the
702 phase of a pointer-to-shared, when comparing for
704 * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
705 Use bit-wise comparison only if the UPC pointer-to-shared
706 target type has a block size <= 1 and the representation
707 has vaddr first or the comparison is for equality/inequality.
708 * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
709 Use (vaddr, thread) comparison only if the UPC pointer-to-shared
710 has a block size <= 1 or the comparison is for equality/inequality.
712 2012-07-23 Gary Funck <gary@intrepid.com>
714 Merge trunk version 189777 into gupc branch.
716 2012-07-16 Gary Funck <gary@intrepid.com>
718 Merge trunk version 189545 into gupc branch.
720 2012-07-12 Gary Funck <gary@intrepid.com>
722 Merge trunk version 189366 into gupc branch.
724 2012-07-05 Gary Funck <gary@intrepid.com>
726 Merge trunk version 189274 into gupc branch.
727 Incorporates graphite build infrastructure changes.
729 2012-07-04 Gary Funck <gary@intrepid.com>
731 Merge trunk version 189080 into gupc branch.
732 * Makefile.in: Adjust for move of C front-end files.
733 * c/Make-lang.in: Ditto.
735 2012-07-04 Gary Funck <gary@intrepid.com>
737 * upc/config-lang.in: Adjust for move of C front-end files.
738 * upc/upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
739 * upc/upc-gasp.c: Ditto.
740 * upc/upc-genericize.c: Ditto.
741 * upc/upc-lang.c: Ditto.
742 * upc/upc-pts-struct.c: Ditto.
744 2012-07-03 Gary Funck <gary@intrepid.com>
746 Merge trunk version 189078 into gupc branch.
748 2012-06-25 Gary Funck <gary@intrepid.com>
750 Merge trunk version 188931 into gupc branch.
752 2012-06-18 Gary Funck <gary@intrepid.com>
754 Merge trunk version 188721 into gupc branch.
756 2012-06-11 Gary Funck <gary@intrepid.com>
758 Merge trunk version 188380 into gupc branch.
760 2012-06-04 Gary Funck <gary@intrepid.com>
762 Merge trunk version 188168 into gupc branch.
764 2012-05-29 Gary Funck <gary@intrepid.com>
766 Merge trunk version 187927 into gupc branch.
768 2012-05-19 Gary Funck <gary@intrepid.com>
770 * upc/upc-act.c (upc_lang_layout_decl): Ignore declarations of
771 an array of shared type declarations if the size of the
772 array is zero. This avoids a segfault when processing
773 the UPC blocking factor.
775 2012-05-18 Gary Funck <gary@intrepid.com>
777 Merge trunk version 187666 into gupc branch.
778 Incorporates fix for ICE in tree vectorization pass
779 when processing strided loads.
781 2012-05-17 Gary Funck <gary@intrepid.com>
783 Merge trunk version 187578 into gupc branch.
785 2012-05-09 Gary Funck <gary@intrepid.com>
787 Merge trunk version 187347 into gupc branch.
788 Incorporates fix for segfault in tree vectorization pass.
790 2012-05-08 Nenad Vukicevic <nenad@intrepid.com>
792 * upc/gupcspec.c (lang_specific_driver): Improve handling of
793 "-x" switches: (a) add "-x upc" switch for C source files if
794 no -x switch was seen before OR "-x none" was seen, (b) add
795 "-x none" for files other then C files if "-x upc" was
796 previously added. Cleanup warnings on unused variables
797 and integer conversion. Print verbose info regardless of the
798 command line being the same.
800 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
802 * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
803 Appropriate libraries and include files are added on the
804 command line to make it possible to compile with the driver
807 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
809 * upc/gupc.texi: Simplify the description of the optimization
812 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
814 * upc/Make-lang.in: Remove build of xgupc.
815 * upc/gupcspec.c (get_libgupc_path): Delete.
816 (lang_specific_driver): Remove support for building xgupc.
817 Removed code tried to add -B, -L, -isystem to the command
818 line if xgupc driver is invoked from the development tree.
820 2012-05-04 Gary Funck <gary@intrepid.com>
822 * upc/upc-act.c (upc_num_threads): When THREADS is specified
823 statically, convert the value to a signed size type,
824 so that (for example) the thread affinity test in a
825 upc_forall() statement will work as expected for negative
826 integer index values.
828 2012-04-30 Nenad Vukicevic <nenad@intrepid.com>
830 * upc/Make-lang.in: Add year 2012 to the copyright.
832 2012-04-30 Nenad Vukicevic <nenad@intrepid.com>
834 * upc/gupc.c: Delete. The old GUPC driver.
835 * upc/gupcspec.c: Add. The new GUPC driver tailored
836 after fortran/gfortranspec.c driver. Options "-n", "-inst",
837 and "-inst-functions' are not supported by the new driver.
838 Support for building gupc and xgupc remains the same.
839 * upc/Make-lang.in (xgupc): Changes to compile gupcspec.c
842 * upc/gupc.texi: Remove '-n', '-inst', and '-inst-functions'
845 2012-04-29 Nenad Vukicevic <nenad@intrepid.com>
847 * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
848 PPC ABI. In the UPC 'struct' pointer-to-shared representation,
849 a function returns a pointer-to-shared in memory instead
851 (rs6000_pass_by_reference): Ditto.
853 2012-04-28 Gary Funck <gary@intrepid.com>
855 * c-decl.c (grokdeclarator): Set 'type' to error node
856 after detecting "shared auto variable" error to avoid
857 downstream complications.
858 * upc/upc-act.c: Fix a couple of spelling errors in comments.
860 2012-04-26 Gary Funck <gary@intrepid.com>
862 * c-family/c-pragma.c (handle_pragma_upc):
863 Fix typo in warning message.
865 2012-04-17 Nenad Vukicevic <nenad@intrepid.com>
867 * upc/gupc.texi: Fix the warning for usage of 'insertcopying'
868 before 'copying'. Minor changes to to copyright years and
871 2012-04-17 Gary Funck <gary@intrepid.com>
873 Merge trunk version 186486 into gupc branch.
875 2012-04-17 Gary Funck <gary@intrepid.com>
877 * c-family/c-pragma.c (disable_pupc_mode): Return the previous
878 value of the pupc mode. Fixes a compile-time warning.
879 * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
880 disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
881 Improve source formatting.
883 2012-04-16 Gary Funck <gary@intrepid.com>
885 * upc/upc-genericize.c: Adjust copyright.
886 (upc_genericize_fndecl): Adjust call graph
887 union member reference to use the newly introduced
888 'symbol' field in order to refer to 'decl'.
890 2012-04-09 Gary Funck <gary@intrepid.com>
892 Merge trunk version 186243 into gupc branch.
893 Incorporates a powerpc 'ffi' fix.
895 2012-03-16 Gary Funck <gary@intrepid.com>
897 Merge trunk version 185454 into gupc branch.
898 Incorporates a libgcc fix for builds on Darwin.
900 2012-03-13 Gary Funck <gary@intrepid.com>
902 Merge trunk version 185278 into gupc branch.
903 * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
904 call build_pointer_type() to apply UPC-specific qualifiers.
905 * top-level/configure.ac: factor the checking for posix hostst
906 out of the libgomp section so that it can also be used by libgupc.
907 * top-level/configure: Re-generate.
908 * DEV-PHASE: bump to 4.8.0-1.
910 2012-03-12 Gary Funck <gary@intrepid.com>
912 * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
913 the mode for a pointer for upc-pointer-to-shared types.
915 2012-03-04 Gary Funck <gary@intrepid.com>
917 Merge trunk version 184900 into gupc branch.
919 2012-02-17 Gary Funck <gary@intrepid.com>
921 Released GUPC 4.7.0.2 based on version 183992.
922 * DEV-PHASE: Bump release identifier to 4.7.0-3.
923 * DATESTAMP: Bump date stamp.
925 2012-02-07 Nenad Vukicevic <nenad@intrepid.com>
927 * upc/gupc.texi: Added entries for the directory.
929 2012-02-05 Nenad Vukicevic <nenad@intrepid.com>
931 * upc/gupc-manpage.html: Removed. HTML files are generated from
934 2012-02-05 Nenad Vukicevic <nenad@intrepid.com>
936 * upc/gupc.texi (-x upc): Add files ending with '.c' to the list
937 of files compiled as UPC source.
939 2012-02-04 Nenad Vukicevic <nenad@intrepid.com>
941 * upc/Make-lang.in (doc/gupc.info): Fix dependencies for creating
944 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
946 * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
947 code generation (same as #pragma pupc off).
948 (set_pupc_mode): New. Set/restore profiling mode.
949 * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
950 (set_pupc_mode): New. Prototype.
951 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
952 profiling code for shared variables initialization routines.
954 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
956 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
957 profiling code for shared variables initialization routines.
959 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
961 * upc/Make-lang.in: Various changes related to generating
962 man/info pages from texi source file.
963 (upc.install-common): Fix for removing the upc command
964 link before install if suffix was applied.
965 (upc.install-pdf): New.
966 (upc.install-html): Change for the build from texi.
967 (upc.install-man): Change for the build from texi.
968 * upc/gupc.1: Removed.
969 * upc/gupc.texi: New. Created texi source for man/info
972 2012-01-31 Gary Funck <gary@intrepid.com>
974 Merge trunk version 183751 into gupc branch.
975 Incorporates fix for bootstrap failure on openSUSE 12.1.
977 2012-01-30 Nenad Vukicevic <nenad@intrepid.com>
979 * upc/Make-lang.in: Fix the --program-suffix configuration
980 option. GUPC executables are now installed with appropriate
981 suffixes and GUPC driver execs 'gcc' with the right suffix.
983 2012-01-24 Nenad Vukicevic <nenad@intrepid.com>
985 * upc/upc-lang.c (upc_init_options): Disable section anchors
988 2012-01-14 Gary Funck <gary@intrepid.com>
990 * upc/upc-genericize.c (upc_genericize_expr): Update input_location
991 while traversing the program tree.
992 (upc_expand_get, upc_expand_put): For profiling, derive
993 the source code location from the incoming 'loc' parameter.
995 2012-01-10 Gary Funck <gary@intrepid.com>
997 Merge trunk version 183072 into gupc branch.
998 Incorporates libcpp __BASE_FILE__ fix.
1000 2012-01-09 Gary Funck <gary@intrepid.com>
1002 * upc/upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
1003 is_gimple_non_addressable.
1005 2012-01-06 Nenad Vukicevic <nenad@intrepid.com>
1007 * upc/Make-lang.in: Add appropriate linker flags when linking
1010 2012-01-06 Nenad Vukicevic <nenad@intrepid.com>
1012 * upc/Make-lang.in: Add appropriate linker flags when linking
1015 2011-12-31 Gary Funck <gary@intrepid.com>
1017 Fix gupc driver to avoid segfault when processing
1018 invalid use of a switch that expects an argument.
1019 * upc/gupc.c (get_libgupc_path): Add check for non-NULL value of
1020 libgupc_archive before attempting to access libgupc_archive[0].
1021 (main): Do not issue error if lib_dir is NULL. Instead, only
1022 process lib_dir if it is non-NULL.
1024 2011-12-31 Gary Funck <gary@intrepid.com>
1026 Improve -fupc-debug support.
1027 * upc/upc-genericize.c (upc_expand_get, upc_expand_put,
1028 upc_genericize_sync_stmt): Add check for flag_upc_debug.
1029 * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
1030 * upc/upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
1031 * upc/upc-act.c (upc_cpp_builtins): Disable inlining of the
1032 runtime if flag_upc_debug is asserted.
1034 2011-12-20 Nenad Vukicevic <nenad@intrepid.com>
1036 * top-level/Makefile.def (flags_to_pass): Added GUPC
1037 defines. Fixes the make error when upc is not specified as one
1038 of the languages to build.
1039 * top-level/Makefile.in: Re-generate.
1041 2011-11-22 Gary Funck <gary@intrepid.com>
1043 * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
1044 * dwarf2out.c (gen_compile_unit_die): Check for
1045 the "GNU UPC" language string in lieu of "GCC UPC".
1046 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
1048 2011-11-22 Gary Funck <gary@intrepid.com>
1050 * upc/upc-act.c (upc_cpp_builtins): Generate new pre-defined
1053 2011-11-18 Gary Funck <gary@intrepid.com>
1055 Merge trunk version 181552 into gupc branch.
1056 Incorporates libgcc/libunwind fix for IA64.
1058 2011-11-19 Gary Funck <gary@intrepid.com>
1060 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1061 Add check for UPC when defining the language type value
1062 in a traceback entry.
1064 2011-11-19 Gary Funck <gary@intrepid.com>
1066 * upc/config-lang.in: Remove checks for supported targets.
1067 This is now done at a higher level.
1069 2011-11-18 Gary Funck <gary@intrepid.com>
1071 Merge trunk version 181493 into gupc branch.
1072 Incorporates final fix for PR target/49992.
1074 2011-11-09 Nenad Vukicevic <nenad@intrepid.com>
1076 * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
1077 change that converted relative include paths into absolute
1078 ones, as it does not work with older version of make (3.80).
1080 2011-10-27 Nenad Vukicevic <nenad@intrepid.com>
1082 Apply patch for Darwin build - PR49992.
1083 * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
1084 * gcc/configure.ac: Ditto.
1085 * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
1086 * gcc/ada/gcc-interface/Makefile.in: Ditto.
1087 * top-level/configure: Re-generate.
1088 * gcc/configure: Re-genrate.
1090 2011-10-26 Gary Funck <gary@intrepid.com>
1092 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1093 "libupc" to "libgupc".
1094 * top-level/configure.ac: Implement support for cross-builds, and
1095 adjust for rename of libupc to libgupc.
1096 * top-level/Makefile.tpl: Ditto.
1097 * top-level/Makefile.def: Ditto.
1098 * top-level/configure: Re-generate.
1099 * top-level/Makefile.in: Re-generate.
1100 * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
1101 * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
1102 * doc/tm.texi: Re-generate.
1103 * tree-pretty-print.c (dump_block_node): Delete unused variable.
1104 * gcc.c: Adjust for rename of libupc to libgupc.
1105 * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
1106 Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
1107 Change "xupc" to "xgupc".
1108 * configure.ac: Change "GCC UPC" to "GNU UPC".
1109 * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
1110 so that they are absolute paths. This is needed because
1111 the upc-crtstuff builds are in the libgupc library build
1112 directories which are not at the same level as libgcc.
1113 * config/darwin.h: Adjust for rename of libupc to libgupc.
1115 2011-10-26 Gary Funck <gary@intrepid.com>
1117 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
1118 "libupc" to "libgupc".
1119 * upc/gupc.c: Rename from upc-cmd.c and adjust for rename
1120 of libupc to libgupc.
1121 * upc/upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
1122 * upc/config-lang.in: Adjust for rename of libupc to libgupc.
1123 * upc/gupc.1: Rename from upc.1. Change "GCC UPC" references
1124 to "GNU UPC". Adjust for rename of libupc to libgupc.
1126 * upc/gupc-manpage.html: Rename from upc-manpage.html. Re-generate.
1127 * upc/Make-lang.in: Change "upc" to "gupc". Change "xupc" to "xgupc".
1128 Adjust for rename of libupc to libgupc. Install target symlink from
1129 "upc" to "gupc". Install target/version-specific hard links to "gupc".
1131 2011-10-20 Gary Funck <gary@intrepid.com>
1133 Merge trunk version 180276 into gupc branch.
1134 Incorporates fix for PR bootstrap/50709.
1136 2011-10-20 Gary Funck <gary@intrepid.com>
1138 Merge trunk version 180246 into gupc branch.
1140 2011-10-19 Gary Funck <gary@intrepid.com>
1142 Merge trunk version 180233 into gupc branch.
1143 Incorporates fix for PR debug/49310 (var tracking).
1145 2011-10-17 Gary Funck <gary@intrepid.com>
1147 Fix a regression caused by the previous commit.
1148 * upc/upc-genericize.c (upc_genericize_walk):
1149 Renamed from: upc_genericize_stmt.
1150 (upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
1151 re-walk the tree after simplification, by calling
1152 upc_genericize_walk().
1153 (upc_genericize_array_ref): expand the newly constructed
1154 indirect reference by calling upc_genericize_indirect_ref().
1156 2011-10-11 Nenad Vukicevic <nenad@intrepid.com>
1158 * testsuite/lib/upc-dg.exp: Limit number of torture runs to
1159 only four (O0 static/dynamic, O3 static/dynamic).
1160 Detect -fupc-threads-0 as an option for dynamic threads
1161 compile environment.
1163 2011-10-10 Gary Funck <gary@intrepid.com>
1165 * tree.c (check_qualified_type, check_aligned_type):
1166 Call tree_int_cst_equal() to compare UPC blocking factors
1167 if the corresponding tree pointers are not equal.
1168 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
1170 2011-10-10 Gary Funck <gary@intrepid.com>
1172 * upc/upc-genericize.c (upc_simplify_shared_ref): When simplifying
1173 the base address always convert to (shared [] char *).
1174 This ensures that &a[i].field1 ends up with the required
1175 zero block size, for example.
1177 2011-10-07 Nenad Vukicevic <nenad@intrepid.com>
1179 Add configuration checks for struct/packed builds so we can
1180 use upc_struct_pts/upc_packed_pts selectors in the testsuite.
1181 * testsuite/lib/target-supports.exp
1182 (check_effective_target_upc_struct_pts): New.
1183 (check_effective_target_upc_packed_pts): New.
1185 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
1187 Add to FLAGS the flags needed to disable inlining of
1188 UPC run-time access routines.
1189 * testsuite/lib/target-supports.exp
1190 (add_options_for_upc_library_calls): New.
1192 2011-09-15 Gary Funck <gary@intrepid.com>
1194 Fix ICE involving shared bit field accesses.
1195 * tree.c (build3_stat): Propagate TEEE_SHARED()
1196 and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1198 2011-09-13 Gary Funck <gary@intrepid.com>
1200 Merge trunk version 178795 into gupc branch.
1201 Incorporates fix to PR bootstrap/50010 for x86-32.
1203 2011-09-08 Gary Funck <gary@intrepid.com>
1205 Merge trunk version 178557 into gupc branch.
1207 2011-09-07 Gary Funck <gary@intrepid.com>
1209 Ensure that UPC pointer-to-shared type alignment is
1210 propagated to the final type. Revert to long-standing
1211 alignment policy: twice the size of a "C" pointer.
1212 * tree.c (build_pointer_type): Propagate the alignment
1213 of the UPC pointer-to-shared representation type
1214 into the newly built pointer type.
1216 2011-08-30 Gary Funck <gary@intrepid.com>
1218 * tree.h (check_qualified_type): Change 'const_tree'
1219 argument types back to 'tree' to avoid complaints
1220 of assignment drops qualifiers for invocations of the
1221 newly implemented TYPE_BLOCK_FACTOR() macro, which
1222 invokes hash functions with 'tree' pointer values that
1223 are not const qualified.
1224 * tree.c (check_qualified_type, check_aligned_type): Ditto.
1225 * c-typeck.c (comptypes_internal): Ditto.
1227 2011-08-29 Gary Funck <gary@intrepid.com>
1229 Fixes for regressions noted running "make check"
1231 * fold-const.c (fold_unary_loc): Execute UPC-specific
1232 checks for a cast-of-a-cast, only if one of the
1233 operands is a UPC pointer-to-shared value.
1234 * opts.c (print_specific_help): Fix a comparison
1235 in an assert that checks that there are enough
1236 bits reserved for the number of languages defined
1239 2011-08-29 Gary Funck <gary@intrepid.com>
1241 Implement a hash table to record UPC block factors.
1242 * c-family/stub-upc.c (upc_block_factor_insert,
1243 upc_block_factor_lookup): New dummy stub procedures.
1244 * c-family/c-common.c (c_sizeof_or_alignof_type):
1245 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1246 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1247 to copy (hashed) UPC blocking factor.
1248 (set_type_quals): Likewise.
1249 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1250 TYPE_HAS_THREADS_FACTOR().
1251 (type_common.block_factor): Delete.
1252 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1253 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1254 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1255 UPC blocking factors greater than one.
1256 * dwarf2out.c (modified_type_die): Re-implement
1257 logic that records UPC blocking factor in the generated
1258 DWARF2 debugging information.
1259 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1260 TYPE_HAS_THREADS_FACTOR().
1261 * c-decl.c (finish_decl, grokdeclarator):
1262 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1263 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1264 used by UPC, and print UPC-specific information.
1266 2011-08-28 Gary Funck <gary@intrepid.com>
1268 Re-work the type machinery to fully support and to unify support
1269 for the UPC layout qualifier (blocking factor).
1270 * c-family/stub-upc.c (upc_set_block_factor): Delete.
1271 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1272 and update prototype.
1273 * c-family/c-common.c (complete_array_type): call newly
1274 defined c_build_qualified_type_1() instead of
1275 upc_set_block_factor().
1276 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1277 upc_apply_layout_qualifier() and update prototype.
1278 (upc_set_block_factor): Delete prototype.
1279 * c-family/c-common.h (c_build_qualified_type): redefine
1280 as a pre-processor macro that invokes c_build_qualified_type_1()
1281 with a null UPC layout qualifier.
1282 (c_build_qualified_type_1): New. Add layout qualifier argument
1283 to old c_build_qualified_type() prototype.
1284 * tree.c (set_type_quals, check_qualified_type):
1285 Add layout qualifier as argument.
1286 (check_aligned_type): Add check for UPC block factor equality.
1287 (get_qualified_type_1): Rename from get_qualified_type() and
1288 add layout qualifier as argument.
1289 (build_qualified_type_1): Rename from build_qualified_type() and
1290 add layout qualifier as argument.
1291 * tree.h (check_qualified_type): Add layout qualifier as argument
1293 (get_qualified_type): Re-define as a as a pre-processor macro
1294 that invokes get_qualified_type_1() with a null
1295 UPC layout qualifier.
1296 (get_qualified_type_1): Rename from get_qualified_type() and
1297 add layout qualifier as argument.
1298 * cp/tree.c (c_build_qualified_type_1): Rename from
1299 c_build_qualified_type() and add (unused) layout qualifier
1301 * c-decl.c (finish_decl): re-format long error messages.
1302 (grokdeclarator): Re-work the logic so that it calls
1303 upc_grok_layout_qualifier() to handle the UPC layout
1304 qualifier, if present.
1305 * c-typeck.c (qualify_type, common_pointer_type,
1306 build_component_ref): Re-work the logic so that it calls
1307 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1309 (c_build_qualified_type_1): Rename from c_build_qualified_type()
1310 and add layout qualifier argument.
1311 * print_tree.c (print_node): Re-format a long line.
1313 2011-08-26 Gary Funck <gary@intrepid.com>
1315 Merge trunk version 177949 into gupc branch.
1316 * c-family/c-common.h (enum rid): Bump the number of type modifiers
1318 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1319 to add new rliterals column value.
1321 2011-08-26 Gary Funck <gary@intrepid.com>
1323 * convert.c (convert_to_integer): Fix the check for the
1324 difference between two UPC pointers-to-shared values.
1326 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
1328 * configure.ac: Fix the name for --with-upc-pts-packed-bits
1329 option. Support --with-upc-packed-bits as deprecated. Fix the code to
1330 correctly check packed bits.
1331 * configure: Re-generate.
1333 2011-08-16 Gary Funck <gary@intrepid.com>
1335 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1336 the barrier id expression is not an integer expression.
1338 2011-08-12 Gary Funck <gary@intrepid.com>
1340 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1342 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1343 Set mode of UPC pointer-to-shared rep. to an
1344 integral mode of size at least as large as the
1345 size of the representation's struct type.
1347 2011-08-12 Gary Funck <gary@intrepid.com>
1349 Rework/simplify the UPC genericize pass.
1350 * c-family/stub-upc.c (upc_apply_layout_qualifier,
1351 upc_build_pointer_type): New.
1352 (upc_set_block_factor): Adjust to new calling sequence.
1353 (upc_build_shared_var_addr): Delete.
1354 * c-family/c-common.c (complete_array_type): Adjust call
1355 to upc_set_block_factor().
1356 * c-family/c-upc.h (upc_apply_layout_qualifier,
1357 upc_build_pointer_type): New.
1358 (upc_build_shared_var_addr): Delete.
1359 (upc_set_block_factor): Adjust to new calling sequence.
1360 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1361 * c-decl.c (grokdeclarator): Call newly defined
1362 upc_apply_layout_qualifier() instead of upc_set_block_factor().
1363 * c-decl.c (grokdeclarator): Split long UPC-related error
1364 messages into two lines.
1365 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1366 directly. Revert that change to trunk. (upc_genericize() will
1367 handle lowering the expressions that take the address of a
1369 * config/i386/i386.c (ix86_promote_function_mode): For UPC
1370 pointers-to-shared, return the type mode of the UPC pointer-to-shared
1371 representation type.
1373 2011-08-10 Gary Funck <gary@intrepid.com>
1375 Implement additional fixes for recent merge with trunk.
1376 * explow.c (promote_mode): Do not attempt to promote
1377 the mode for UPC pointer-to-shared types.
1378 * config/i386/i386.c (function_value_64): Ditto.
1380 2011-08-07 Gary Funck <gary@intrepid.com>
1382 Merge trunk version 177548 into gupc branch.
1383 * config/i386/i386.c (ix86_promote_function_mode):
1384 Do not promote UPC pointers-to-shared to Pmode.
1385 * c-family/c-ommon.c (pointer_int_sum):
1386 Also check the pointer operand, rather than just
1387 its type, when making the decision to derive
1388 the equivalent unshared type.
1389 * tree.c (build2_stat): If the type of the result
1390 passed in as an argument is a UPC shared type,
1391 derive the unshared equivalent when calculating
1392 the result type of the node.
1394 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
1396 * config/darwin.c: Disable var_tracking option
1397 on -O0 as it is supposed to run only when optimization
1398 is applied. See GCC bug 49743.
1400 2011-07-06 Gary Funck <gary@intrepid.com>
1402 Re-implement the pass that lowers trees generated by
1403 the UPC front-end into GENERIC. Previously this was
1404 done within the gimplification framework, but this
1405 required that gimplification be run before inlining
1406 and various other passes, which did not fit in well
1407 with the current design of the middle-end passes.
1408 Now, the lowering is done by a newly defined language
1409 specific genericize hook. With this change, we are
1410 are able to undo some extensions made to the gimplify
1411 logic, and thus can revert several files to trunk.
1412 * c-decl.c: Add a check for UPC deprecated names which
1413 may appear as undefined function names.
1414 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1415 LTI_upc_getaddr): Remove definitions of unused UPC
1416 library function names. These were defined back when
1417 the libfunc interface was used to call these routines.
1418 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1419 in UPC lowering (genericize) pass.
1420 * langhooks.h (gimplify_expr): Revert to trunk's definition.
1421 (instrument_func): Delete this hook. Now handled in
1423 * tree-pass.h: Revert to trunk.
1424 * c-typeck.c (build_unary_op): Adjust reference to
1425 upc_genericize() in a comment.
1426 * gimplify.c (create_tmp_var_raw): Delete logic that
1427 was converting UPC shared types into unshared types
1428 to be used for temporaries. Now handled in upc_genericize().
1429 Replace with an assertion check.
1430 (prepare_gimple_addressable): Revert to trunk's definition.
1431 No longer needed as an externally called function.
1432 (flag_instrument_functions_exclude_p): Re-define as
1433 an externally called function.
1434 (gimplify_function_tree): Delete code that implemented
1435 call to UPC's language specific function instrumentation hook.
1436 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1437 (prepare_gimple_addressable): Delete extern definition;
1438 revert to trunk's definition.
1439 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1440 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1441 * c-family/c-gimplify.c: Revert to trunk.
1442 * cp/cp-gimplify.c: Revert to trunk.
1443 * cp/cp-tree.h: Revert to trunk.
1444 * explow.c: Revert to trunk.
1445 * langhooks.c: Revert to trunk.
1446 * libfuncs.h: Revert to trunk.
1447 * objc/objc-act.c: Revert to trunk.
1449 2011-06-30 Gary Funck <gary@intrepid.com>
1451 * c-family/c.opt: Bring options definitions up-to-date
1452 with respect to changes made in the trunk.
1454 2011-06-29 Gary Funck <gary@intrepid.com>
1456 Merge trunk version 175584 into gupc branch.
1458 2011-06-13 Gary Funck <gary@intrepid.com>
1461 * include/cpplib.h (enum c_lang):
1462 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1463 This keeps all the "C" variants together.
1464 * init.c (lang_defaults): Add an entry for UPC.
1466 2011-06-09 Gary Funck <gary@intrepid.com>
1468 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1469 a 32-bit target, the size expression overflowed, the result was
1470 error_mark_node, and an ICE was triggered on an attempt to evaluate
1471 C_TYPE_VARIABLE_SIZE() on the error node.
1472 (upc_blocksizeof_expr, upc_blocksizeof_type,
1473 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1474 Make similar changes to avoid further processing of error_mark_node.
1476 2011-06-07 Gary Funck <gary@intrepid.com>
1478 * sel-sched.c (move_op): Incorporate the following
1479 patch to eliminate ICE at -O3 on IA64/Altix.
1481 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
1483 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1484 code_motion_path_driver returned 0 or 1.
1485 (sel_region_finish): Clear h_d_i_d.
1487 2011-06-02 Gary Funck <gary@intrepid.com>
1489 Merge trunk version 174558 into gupc branch.
1491 2011-05-30 Gary Funck <gary@intrepid.com>
1493 * configure.ac: Make the default order of the virtual
1494 address field in a UPC pointer-to-shared to be "first".
1495 This reverts to the previous setting, and is a short term
1496 measure to work around a bug found on the IA64,
1497 where vaddr=last led to incorrect code generation.
1498 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1499 in AC_DEFINE(), to agree with recent changes in files
1500 that reference this define.
1501 configure, config.in: Regenerate.
1503 2011-05-26 Gary Funck <gary@intrepid.com>
1505 * configure.ac: Fix typo when referring to $upc_vaddr_order.
1506 configure: Regenerate.
1507 * ../fixincludes/fixincl.x: Revert to trunk.
1508 This file is auto-generated, and should not be merged.
1510 2011-05-18 Gary Funck <gary@intrepid.com>
1512 Merge trunk version 173845 into gupc branch.
1514 2011-05-17 Gary Funck <gary@intrepid.com>
1516 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1517 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1518 * c-family/c-pragma.c: Remove conditional compilation
1519 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1520 Test 'compiling_upc' when compiling to determine if
1521 the "upc" and "pupc" pragmas should be registered.
1522 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1523 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1524 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1525 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1526 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1527 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1528 Move these target-dependent definitions from config/upc-conf.h
1530 * configure.ac: Improve the logic for UPC-related options.
1531 Delete references to pre-processor definitions that have
1532 been moved to "upc/upc-pts.h".
1533 * configure, config.in: Regenerate.
1534 * Makefile.in (UPC_PTS_REP): Remove definition and revert
1535 to trunk. This substitution variable was used to
1536 configure the representation-specific versions of
1537 the tree rewrites that operate on UPC pointer-to-shared
1539 * c-parser.c (c_parser_upc_forall_statement): Remove
1540 reference to UPC_FORALL_DEPTH_NAME, and call
1541 newly defined upc_rts_forall_depth_var() instead.
1542 * config/upc-config.h: Delete. Various definitions
1543 moved to "upc/upc-rts-names.h", "defaults.h", and
1545 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1546 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1547 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1548 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1549 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1550 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1551 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1552 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1553 New. Document UPC target macros.
1554 doc/tm.texi: Regenerate.
1556 2011-05-07 Gary Funck <gary@intrepid.com>
1558 * ../configure.ac: Disable build of libupc
1559 on non POSIX hosted systems. Use AS_HELP_STRING
1560 to define messages. Remove 'word-pair' as a
1561 possible --with-upc-pts UPC pointer-to-shared
1563 * ../configure: Regenerate.
1564 * configure.ac: Use AS_HELP_STRING to define messages.
1565 Remove 'word-pair' as a possible --with-upc-pts
1566 UPC pointer-to-shared representation.
1567 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1568 (UPC_MAX_BLOCK_SIZE): Correct the default value.
1569 * configure: Regenerate.
1570 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1572 * ChangeLog.upc: Fix some typos.
1574 2011-05-07 Gary Funck <gary@intrepid.com>
1576 * ../maintainer-scripts/gcc_release: Add "upc"
1577 as one of the released languages.
1579 2011-05-06 Gary Funck <gary@intrepid.com>
1581 Eliminate compilation warnings, by fixing
1582 #include's and updating function prototypes.
1583 * c-family/c-cppbuiltin.c: Include c-upc.h.
1584 * optabs.c (gen_libfunc): Change type of 'suffix'
1585 parameter to conform with prototype.
1586 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1587 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1589 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1591 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1592 argument values to cp_gimplify_expr.
1593 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1594 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
1595 pre-processor definitions that are no longer
1596 needed to build the 'upc' command (upc-cmd.c)
1597 because the linker specs. defined in libupc
1598 take care of linking in the needed libraries.
1599 * c-parser.c (c_parser_upc_forall_statement):
1600 initialize affinity_loc to avoid "maybe unused" warning.
1601 (c_parser_upc_sync_statement): Remove un-needed
1602 'ret' variable. Cast return value from
1603 'upc_build_sync_stmt' to 'void' to avoid
1604 compile-time warning.
1605 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1606 integer constant, not a string. Range is restricted
1607 to maximum positive 32-bit integer (2+ billion) to
1608 fit in with the use of 'int' in the front-end's
1609 switch handling logic.
1611 2011-05-06 Gary Funck <gary@intrepid.com>
1613 Upgrade c-family source files to conform with modularity
1614 improvements. Mainly, remove #include of c-tree.h in files
1615 under c-family, and define a new UPC-specific #include file,
1616 c-upc.h, and use it.
1617 * c-family/stub-upc.c: Remove #include of c-tree.h and
1618 upc/upc-act.h. Replace with #include of c-common.h
1620 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1621 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1622 upc_localsizeof_expr, upc_localsizeof_type,
1623 upc_shared_type_p): Delete.
1624 * c-family/c-opts.c: Add #include of c-upc.h
1625 * c-family/c-common.c: Remove #include of c-tree.h and
1626 add #include of c-upc.h.
1627 * c-family/c-upc.h: New. Define API for UPC-specific functions
1628 (mostly implemented in upc/upc-act.c).
1629 * c-family/c-common.h (upc_cpp_builtins,
1630 upc_write_global_declarations): Remove extern definitions.
1631 * c-family/c-pragma.c: Remove #include of c-tree.h.
1632 Add #include of c-upc.h.
1633 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
1635 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
1636 upc/upc-act.c, and define as a macro.
1637 (expand_affinity_test): Remove unused external definition.
1638 (build_upc_unshared_type): Add external definition.
1639 (upc_shared_type_p): Remove external definition.
1640 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1641 * dojump.c: Remove #include of c-tree.h.
1642 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1644 (count_upc_threads_refs, is_multiple_of_upc_threads,
1645 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1646 upc_build_shared_var_addr, upc_build_sync_stmt,
1647 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1648 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1649 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1650 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1651 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1652 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1653 set_upc_consistency_mode, get_upc_consistency_mode,
1654 push_upc_consistency_mode, pop_upc_consistency_mode,
1656 Move external definitions to c-family/c-upc.h.
1657 (upc_blocksizeof_type, upc_localsizeof_type,
1658 upc_elemsizeof_type): Remove external definitions;
1659 these functions were moved to c-parser.c.
1660 * c-decl.c: Add #include of c-upc.h.
1661 * c-typeck.c: Add #include of c-upc.h.
1662 * c-convert.c: Add #include of c-upc.h.
1663 * ChangeLog.upc: Fix typo.
1664 * Makefile.in: Add references to c-family/c-upc.h, everywhere
1665 there is a reference to c-family/c-objc.h.
1666 Remove extraneous reference to upc-act.h.
1667 * c-parser.c: Add #include of c-upc.h.
1668 (upc_blocksizeof_expr, upc_blocksizeof_type,
1669 upc_elemsizeof_expr, upc_elemsizeof_type,
1670 upc_localsizeof_expr, upc_localsizeof_type):
1671 Move from upc/upc-act.c.
1672 * tree.c (build_upc_unshared_type): New.
1673 Move upc_get_unshared_type from upc/upc-act.c and rename
1674 to build_upc_unshared_type.
1675 c-family/c-common.c (pointer_int_sum): refer to renamed
1676 build_upc_unshared_type function.
1677 c-convert.c (convert): Ditto.
1678 convert.c (convert_to_pointer): Ditto.
1679 c-typeck.c (build_unary_op, build_modify_expr,
1680 really_start_incremental_init): Ditto.
1681 gimplify.c (create_tmp_var_raw): Ditto.
1682 tree.c (build1_stat): Ditto.
1683 tree.h (upc_get_unshared_type): Rename to
1684 build_upc_unshared_type.
1686 2011-05-06 Gary Funck <gary@intrepid.com>
1688 Merge trunk version 173471 into gupc branch.
1690 2011-05-05 Gary Funck <gary@intrepid.com>
1692 Make changes that bring the GUPC branch more closely in sync.
1693 with the GCC trunk. Revert any fixes that are not UPC-specific.
1694 Remove gratuitous re-formatting.
1695 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1696 This file should have been removed in a previous merge
1698 * ../configure.ac: Remove Cray Catamount/CNL support.
1699 * ../configure: Regenerate.
1700 * ../config.sub: Remove Cray Catamount/CNL support.
1701 * config.gcc: Remove Cray Catamount/CNL support.
1702 * ../maintainer-scripts/gcc_release: Revert to trunk.
1703 * c-family/c-common.h: Define parse_optimize_options. Its definition
1704 was missed in a previous merge with the trunk.
1705 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1707 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1708 in addition to ARRAY_TYPE.
1709 * c-typeck.c: Remove an extra newline character.
1710 * varasm.c: Revert a fix that improved an error message
1711 when TLS common data is unimplemented.
1712 * varasm.c: Revert a gcc_assert that had been added which
1713 checked for a null DECL_SIZE_UNIT field.
1714 * emultls.c: Revert to trunk. Remove possible fix.
1715 * Makefile.in: Revert extra blank line that is present
1716 in the trunk version.
1717 * Makefile.in: Revert a fix that handled long shell
1718 argument lists for plugin headers.
1719 * config/ia64/ia64.opt: Revert an option setting
1720 that increased the default TLS address range.
1721 * config/ia64/crtbegin.asm: Revert to trunk.
1722 Removes an extra newline character.
1723 * ChangeLog.upc: Spell check.
1725 2011-05-03 Gary Funck <gary@intrepid.com>
1727 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1728 (c_apply_type_quals_to_decl): Ditto.
1729 * c-family/c-common.h: Ditto.
1731 * c-decl.c (merge_decls): Ditto.
1732 * c-typeck.c (qualify_type, default_conversion,
1733 build_component_ref, build_unary_op,
1734 c_build_qualified_type): Ditto.
1735 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1737 2011-04-29 Gary Funck <gary@intrepid.com>
1739 * c-decl.c (finish_decl): Improve error diagnostics.
1740 (grokdeclarator): Ditto.
1741 * c-typeck.c (build_c_cast): Improve error diagnostics.
1742 (convert_for_assignment): Ditto.
1743 (build_binary_op): Ditto.
1744 * c-parser.c (c_parser_upc_forall_statement):
1745 Improve error diagnostics.
1746 * convert.c (convert_to_integer): Improve error diagnostics.
1748 2011-04-24 Gary Funck <gary@intrepid.com>
1750 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1751 occurred if there is an error in the barrier id
1752 expression. Map error_mark_node into NULL.
1754 2011-04-22 Gary Funck <gary@intrepid.com>
1756 Merge trunk version 172873 into gupc branch.
1758 2011-04-19 Gary Funck <gary@intrepid.com>
1760 Merge trunk version 172359 into gupc branch.
1762 2011-04-14 Gary Funck <gary@intrepid.com>
1764 * c-family/c.opt: Add UPC as a valid language for various
1765 switches where it is valid for "C", that were not updated
1766 in previous merges with trunk.
1768 2011-04-13 Gary Funck <gary@intrepid.com>
1770 * c-family/c.opt (fupc-pre-include): New option definition.
1771 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1772 -fno-upc-pre-include is asserted.
1774 2011-04-07 Gary Funck <gary@intrepid.com>
1776 Merge trunk version 172158 into gupc branch.
1777 to bring in the following fix.
1779 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
1782 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1783 if old and new states differ.
1785 2011-04-06 Gary Funck <gary@intrepid.com>
1787 Merge trunk version 171966 into gupc branch.
1789 2011-04-01 Gary Funck <gary@intrepid.com>
1791 * tree.h (tree_base): Move UPC flag bits into bit fields
1792 located just before spare bits. Decrement spare bits.
1793 Rename 'shared_flag' -> 'upc_shared_flag',
1794 'relaxed_flag' -> 'upc_relaxed_flag',
1795 'strict_flag' -> 'upc_strict_flag, and adjust macros
1796 that reference them accordingly.
1798 2011-04-01 Gary Funck <gary@intrepid.com>
1800 * c-decl.c (grokdeclarator): Fix formatting of
1801 code that sets UPC block size on scalars.
1803 2011-04-01 Gary Funck <gary@intrepid.com>
1805 * c-decl.c (grokdeclarator): Revert use of white space
1806 to match the trunk (to rationalize diffs).
1807 * c-typeck.c (convert_for_assignment): Ditto.
1808 * tree-ssa.c (useless_type_conversion_p): Ditto.
1810 2011-03-23 Gary Funck <gary@intrepid.com>
1812 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1813 the GCC 4.6 release branch.
1815 2011-03-21 Gary Funck <gary@intrepid.com>
1817 Merge trunk version 171202 into gupc branch.
1819 2011-03-20 Gary Funck <gary@intrepid.com>
1821 * varasm.c: Call error() directly with a format specifier,
1822 rather than using sprintf() to format the message.
1823 This should make it easier to internationalize UPC's error messages.
1825 2011-03-20 Gary Funck <gary@intrepid.com>
1827 * configure.ac: Fix the check for gnu ld when enabling
1828 UPC link script support.
1829 configure: Regenerate (also picks up changes from previous
1832 2011-03-20 Gary Funck <gary@intrepid.com>
1834 Move UPC start files, end files, and linker specs.
1835 into libupc. This reduces the impact on common GCC
1836 configuration files, and ensures that these UPC-specific
1837 components are only built when the UPC language dialect is selected.
1838 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1839 linker specs. Fix typo in -fupc-debug message.
1840 * config/upc-conf.h, config/darwin.h: Move defines for
1841 UPC-related section begins/ends into libupc/config/default/
1843 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1844 UPC-related linker compiler specifications,
1845 accessed via %:include().
1846 * configure.ac, configure: Remove logic related to building
1847 upc-crtbegin/end. Remove config. tests for numa and cpu
1848 affinity (previously used by the 'upc' driver); these
1849 settings are now propagated by target-specific compiler
1850 specs. built by libupc. Regenerate autoconf.
1851 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1852 linker compiler specifications, accessed via %:include().
1853 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1855 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1856 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1857 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1858 config/ia64/linux.h, config/mips/t-iris,
1859 config/mips/iris6.h: Revert to trunk version 167307.
1861 * configure, configure.ac, config.host, Makefile.in:
1862 Revert to trunk version 167307.
1864 2011-02-23 Gary Funck <gary@intrepid.com>
1866 * c-decl.c (undeclared_variable): fix typo. Inadvertently
1867 removed negation on following 'if'.
1869 2011-02-22 Gary Funck <gary@intrepid.com>
1871 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1872 to check for the usage of certain deprecated UPC keywords.
1873 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1874 * c-tree.h (undeclared_variable): Define prototype.
1876 2011-02-12 Gary Funck <gary@intrepid.com>
1878 * c-typeck.c: (build_c_cast, convert_for_assignment)
1879 Diagnose an attempt to convert from an integer to
1880 a pointer-to-shared as an error. Also, fix various
1881 error messages so that they use the preferred term
1882 pointer-to-shared instead of "shared pointer".
1884 2011-02-07 Gary Funck <gary@intrepid.com>
1886 * c-typeck.c: (convert_for_assignment)
1887 Fix typo. in error message.
1889 2011-01-23 Gary Funck <gary@intrepid.com>
1891 * c-typeck.c: (c_build_qualified_type)
1892 derive UPC block size by calling upc_get_block_size(),
1893 to ensure that the element type of an array of an array
1894 is derived correctly.
1896 2010-12-29 Gary Funck <gary@intrepid.com>
1898 Merge trunk version 168314 into gupc branch.
1900 2010-12-15 Gary Funck <gary@intrepid.com>
1902 Merge trunk version 167307 into gupc branch.
1904 2010-10-19 Gary Funck <gary@intrepid.com>
1906 * c-typeck.c: Fix typo in previous fix
1907 which led to a mis-compare for equal block sizes.
1909 2010-10-18 Gary Funck <gary@intrepid.com>
1911 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1912 diagnosed as an error
1913 The conversion from any type (shared or not) to
1914 a shared type is likely either meaningless or an error. This update
1915 makes any conversion to a shared type, an error.
1917 2010-10-18 Gary Funck <gary@intrepid.com>
1919 * c-typeck.c: Fix bug: passing int to shared pointer arg.
1920 generates spurious warning
1921 Add a #define procedure that does the same thing as
1922 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
1923 this procedure to diagnose passing an integer value to a
1924 pointer-to-shared as an error.
1926 2010-10-18 Gary Funck <gary@intrepid.com>
1928 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1929 matching routine declaration.
1930 When checking for type compatibility, shared qualified types must
1931 have the same block factor. This check was missing from
1932 comptypes_internal(). This update adds the check for blocking
1935 2010-10-17 Gary Funck <gary@intrepid.com>
1937 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1939 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1941 2010-10-17 Gary Funck <gary@intrepid.com>
1943 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1944 45869 - [4.5/4.6 Regression] type mismatch in shift expression
1945 produces ice with -O3 and -m32.
1946 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1948 2010-10-17 Gary Funck <gary@intrepid.com>
1950 * c-common.c: Diagnose the application of the various "*sizeof"
1951 operations on generic pointer-to-shared as a compilation error.
1953 2010-10-17 Gary Funck <gary@intrepid.com>
1955 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1956 message regarding a function parameter being declared with a shared
1958 The parameter's 'name' value is not defined at this point, and
1959 cannot be used in the error message. This update removes the
1960 reference to 'name', and eliminates the segfault.
1962 2010-10-16 Gary Funck <gary@intrepid.com>
1964 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1965 The gcc/Makefile.in rules for install-plugin had to be re-written to
1966 break up a long list of header files that exceeded the command line
1967 limitation imposed by Irix.
1968 Access functions for TFmode types had to be implemented.
1969 Apparently, this is the mode used for the SGI/MIPS port to represent
1972 2010-10-14 Gary Funck <gary@intrepid.com>
1974 * c-decl.c: Fix bug: Multiple equal blocking factors specified
1975 via typedef chain should not be diagnosed as an error.
1976 If the block size that is given by the typedef is equal to the block
1977 size given explicitly in the variable declaration, then do not
1978 complain. The easiest way to make this check was to create a
1979 temporary type that is a clone of the element type and then set its
1980 block size using the given layout qualifier. Then compare the block
1981 size of the temporary (the declaration) to the block size specified
1982 in the typedef. This complexity is needed, because the '[*]' block
1983 size needs to be calculated, and the '[]' needs to be mapped into a
1986 2010-10-10 Gary Funck <gary@intrepid.com>
1988 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1990 The compiler properly detected the presence of two or more layout
1991 qualifiers as an error, but then hit an assertion check, because the
1992 code that followed the error expected to see a qualifier and not a
1993 layout specifier. The fix is simple: just return immediately after
1994 detecting the error.
1996 2010-10-10 Gary Funck <gary@intrepid.com>
1998 * c-decl.c: Improve error diagnostics for various cases of UPC
1999 shared array type declarations.
2000 Add the check for this error: "In the dynamic translation
2001 environment, THREADS may not appear in declarations of shared arrays
2002 with indefinite block size". Also, fix up a few of the other
2003 related error diagnostics.
2005 2010-10-09 Gary Funck <gary@intrepid.com>
2007 * c-common.c: Fix bug: segfault on incomplete array definition.
2008 This turned out to be a bit complicated. The logic in
2009 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2010 the THREADS identifier in the case where the blocking factor has
2011 been set to indefinite ([]). This can happen when indefinite array
2012 declarations are processed for shared arrays. At that time, the
2013 file scope has been closed and THREADS is no longer in scope. Some
2014 more work is needed on upc_lang_layout_decl(). It has some
2015 duplication, and notably duplicates the two branches of the if
2016 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2017 caller of this routine (layout_decl()).
2018 The method of forcing a layout qualifier of [] in the indefinite
2019 declaration handler is odd a well. The code that just does the
2020 setting of the block factor, needs to moved into its own routine
2021 that doesn't depend upon a declspec for '[]' to be passed in, just
2022 in order to set the blocking factor to some value (in this case, 0).
2023 Also, the logic for how that shared type is constructed is strange.
2024 First the type with 0 blocking factor is set. Then the shared
2025 qualifier is removed from the type, and then added back later. The
2026 intermediate type has a blocking factor set, but it has no shared
2027 qualifier. Fixing this will require some thought. It is tempting
2028 just to make indefinite shared arrays an error, rather than forcing
2029 the dimension to be '1'.
2030 This likely fixes a serious error in the previous update to
2031 upc_lang_layout_decl(), where it didn't have the logic to set
2032 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
2033 the previous update would fail on many tests.
2035 2010-10-09 Gary Funck <gary@intrepid.com>
2037 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2038 (decl) is null, which can happen if some layout error occurred
2041 2010-10-09 Gary Funck <gary@intrepid.com>
2043 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2044 "variable-sized" when compiled in dynamic threads.
2045 This long-standing bug is easily fixed. Just check
2046 for the situation that the non-constant sized type is shared and
2047 that it does not have a dimension that references a multiple of
2048 threads. If this criteria is met, then issue a meaningful
2051 2010-10-01 Gary Funck <gary@intrepid.com>
2053 * configure, configure.ac: Update manual page, and bug reporting
2054 URL. Update "man" page to reflect debugging switches.
2055 Also, some general clean up. Change the bug reporting
2056 URL to point to gccupc.org.
2058 2010-09-27 Gary Funck <gary@intrepid.com>
2060 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2061 the UPC forall depth count variable is not found.
2062 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2063 The compiler will generate code that references this variable in
2064 order to implement nested upc_forall semantics. If there is a
2065 compiler build or install problem, this variable may not be found.
2066 In this case, terminate with an internal_error().
2068 2010-09-26 Gary Funck <gary@intrepid.com>
2070 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2071 mis-diagnosed as syntax error.
2072 Fix a failure exhibited by the Berkeley test case,
2073 bug873a.upc, which has the code:
2075 upc_forall (;;;d) {...} The compiler did not properly handle
2076 the empty "condition" clause, and did not recover well when it was
2077 determined that the use of a double value, "d" above, was neither a
2078 pointer-to-shared nor an integer expression. The update implements a
2079 fix for both issues.
2080 See also: gcc/c-parser.c gcc/upc/upc-act.c
2082 2010-09-23 Gary Funck <gary@intrepid.com>
2084 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2085 incorporated into the referencing type.
2086 This was semi-fixed a few times before. This update fixes a few
2087 more places where the layout qualifier wasn't being propagated
2088 through typedef's properly. What made this a bit tricky is shown in
2089 the example cited in the bug report:
2090 typedef shared [5] int A_t; A_t A[5*THREADS];
2091 In the typedef, the blocksize is being applied to a shared *scalar*,
2092 and the code was applying the blocksize only to arrays. This update
2093 handles shared scalars correctly.
2095 2010-09-22 Gary Funck <gary@intrepid.com>
2097 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2098 upc_forall() semantics are not implemented
2099 The checkforall test in the Berkeley harness test suite indicated
2100 that GCC/UPC was not properly implementing nested upc_forall
2101 semantics. Nested upc_forall statements (both statically or
2102 dynamically nested) must implement their affinity clause as if it
2103 were "continue"; thus all steps in the loop must execute without
2104 regard for affinity. To implement these semantics a global depth
2105 counter, __upc_forall_depth, is maintained by the generated code
2106 that implements upc_forall.
2107 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2108 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2109 libupc/include/upc.h libupc/smp/upc_main.c
2111 2010-09-19 Gary Funck <gary@intrepid.com>
2113 * c-decl.c: c-decl.c: zero out the layout specifier, after
2114 processing an array type.
2115 Fix the previous fix, that moved the setting of the type's layout
2116 qualifier to the outside of the array type processing loop. What is
2117 missing from the fix is that the layout_qualifier variable needs to
2118 be cleared after setting the type's blocksize.
2120 2010-09-19 Gary Funck <gary@intrepid.com>
2122 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2123 given blocksize is greater than UPC_MAX_BLOCKSIZE.
2124 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2125 the actual maximum block size. Therefore, the message was correct,
2126 but the underlying value that was being checked was wrong. Change
2127 the values so that they agree with the actual implementation-defined
2130 2010-09-11 Gary Funck <gary@intrepid.com>
2132 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2133 multi-dimensional shared array with dynamic threads.
2134 This declaration caused an internal compiler error when compiled
2135 with dynamic threads:
2136 shared [*] int A[THREADS][16]; The bug was discovered when
2137 compiling the RTED_UPC test suite.
2138 The fix is to process layout qualifiers after the entire array type
2139 has been built. Otherwise, we try to calculate the blocksize on a
2140 shared array type that has not had its "size depends upon the value
2141 of THREADS" flag set.
2142 Also, added a test case.
2143 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2145 2010-07-11 Gary Funck <gary@intrepid.com>
2147 Fix a bug where a statement in c_build_qualified_type()
2148 in the trunk had been inadvertently deleted.
2149 This bug showed up in the IA64 port, because jmpbuf's
2150 on that architecture must be 16 byte aligned, and they were not.
2151 c-typeck.c (c_build_qualified_type): Revive the deleted line.
2153 2010-07-08 Gary Funck <gary@intrepid.com>
2155 Make changes so that other language compilers
2156 will build and bootstrap.
2157 * c-family/c-common.c (compiling_upc, flag_upc,
2158 flag_upc_instrument, flag_upc_instrument_functions,
2159 use_upc_dwarf2_extensions): Move to stub-upc.c and
2161 * c-family/c-common.h (use_upc_dwarf2_extensions,
2162 compiling_upc): Add extern definitions - needed
2163 to compile/build other language front ends.
2164 * c-family/c.opt: Fix the spelling of ObjC.
2165 It had been incorrectly spelled as Objc.
2166 * c-family/c.opt: Add UPC for the various switches
2167 that are valid for both C and ObjC.
2168 * c-fmaily/c-opts.c: Add CL_UPC to the list of
2169 supported options switches when compiling assembly
2171 * lto/lto-lang.c (use_upc_dwarf2_extensions,
2172 flag_upc_instrument, flag_upc_instrument_functions):
2173 Remove these definitions. They have been moved
2174 to c-family/stub-upc.c.
2175 * upc/ChangeLog: Move relevant entries
2177 * c-family/stub-upc.c (compiling_upc, flag_upc,
2178 flag_upc_instrument, flag_upc_instrument_functions,
2179 use_upc_dwarf2_extensions): Moved from c-common.c
2180 * upc/upc-lang.c (compiling_upc, flag_upc,
2181 flag_upc_instrument, flag_upc_instrument_functions,
2182 use_upc_dwarf2_extensions): Moved from c-common.c
2183 * objc/objc-act.c (objc_gimplify_expr): Add additional
2184 parameters to c_gimplify_expr() call, that are used
2185 by upc's tree rewrites.
2186 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2187 * gcc/cp/lex.c (init_reswords): If not compiling
2188 UPC, then mask off the UPC keywords.
2189 * cp/Make-lang.in (C_STUB_OBJS): Use this
2190 make macro to link with c-family/stub-objc.o
2191 and c-family/stub-upc.o.
2192 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2193 * java/Make-lang.in (C_STUB_OBJS): Likewise.
2194 * objc/Make-lang.in: Link with c-family/stub-upc.o
2195 to avoid undefined references.
2196 c-parser.c: Fix line indentation.
2197 * libcpp/include/cpplib.h: Remove CL_UPC from
2198 the list of language kinds accepted by the
2199 C preprocessor. This is not necessary because
2200 UPC is a derivative of C99, and does not need
2201 a different language kind.
2202 * c-fmaily/c-opts.c (c_common_handle_option):
2203 Call set_std_c99() when processing the
2204 "--lang upc" switch, instead of setting the
2205 language kind to CL_UPC.
2206 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2208 2010-07-03 Gary Funck <gary@intrepid.com>
2210 Merge trunk version 161517 into gupc branch.
2211 * gcc/stub-upc.c: Move to gcc/c-family/.
2212 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2213 Add 'unused' attributes to avoid "set, but
2214 not referenced" warnings.
2215 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2218 2010-03-01 Gary Funck <gary@intrepid.com>
2220 Create gupc branch from trunk version 157149.
2222 2011-10-04 Gary Funck <gary@intrepid.com>
2224 Merge trunk version 179421 into gupc branch.
2225 * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
2226 argument to the call to check_qualified_type().
2228 2011-09-22 Gary Funck <gary@intrepid.com>
2230 * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
2232 (dump_upc_type_quals): New.
2234 2011-09-22 Gary Funck <gary@intrepid.com>
2236 * upc/upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
2237 before calling TYPE_BLOCK_FACTOR(). This fits better with
2238 recent encoding of block factor values with a hash table.
2240 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
2242 Add to FLAGS the flags needed to disable inlining of
2243 UPC run-time access routines.
2244 * testsuite/lib/target-supports.exp
2245 (add_options_for_upc_library_calls): New.
2247 2011-09-15 Gary Funck <gary@intrepid.com>
2249 Fix ICE involving shared bit field accesses.
2250 * tree.c (build3_stat): Propagate TEEE_SHARED()
2251 TREE_STRICT() and TREE_RELAXED() flags, if applicable.
2253 2011-09-15 Gary Funck <gary@intrepid.com>
2255 Fix ICE involving shared bit field accesses.
2256 * upc/upc-genericize.c (upc_simplify_shared_ref): Improve
2257 "shared bit fields not yet implemented" error message
2258 by adding file/line number location.
2260 2011-09-13 Gary Funck <gary@intrepid.com>
2262 Merge trunk version 178795 into gupc branch.
2263 Incorporates fix to PR bootstrap/50010 for x86-32.
2265 2011-09-13 Gary Funck <gary@intrepid.com>
2267 * upc/upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
2268 * upc/upc-lang.c (upc_init_options): Ditto.
2269 * upc/upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
2270 upc_genericize_expr, upc_genericize_compound_expr): Ditto.
2271 * upc/upc-act.c (upc_parse_init, upc_build_pointer_type,
2272 upc_block_factor_insert, upc_pts_is_valid_p): Ditto.
2274 2011-09-08 Gary Funck <gary@intrepid.com>
2276 Merge trunk version 178557 into gupc branch.
2278 2011-09-07 Gary Funck <gary@intrepid.com>
2280 Ensure that UPC pointer-to-shared type alignment is
2281 propagated to the final type. Revert to long-standing
2282 alignment policy: twice the size of a "C" pointer.
2283 * tree.c (build_pointer_type): Propagate the alignment
2284 of the UPC pointer-to-shared representation type
2285 into the newly built pointer type.
2287 2011-09-07 Gary Funck <gary@intrepid.com>
2289 Ensure that UPC pointer-to-shared type alignment is
2290 propagated to the final type. Revert to long-standing
2291 alignment policy: twice the size of a "C" pointer.
2292 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
2293 shared pointers have twice the alignment of a pointer.
2294 * upc/upc-act.c (upc_cpp_builtins): Unconditionally emit
2295 the definition of __UPC_PTS_ALIGN__.
2297 2011-09-02 Gary Funck <gary@intrepid.com>
2299 Align UPC pointers-to-shared, only if the target enforces
2301 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Align a
2302 UPC pointer-to-shared type, only if the target requires
2304 * upc/upc-act.c (upc_cpp_builtins): Output pre-defined macro,
2305 __UPC_PTS_ALIGN__, only if the target requires strict alignment.
2307 2011-08-30 Gary Funck <gary@intrepid.com>
2309 * tree.h (check_qualified_type): Change 'const_tree'
2310 argument types back to 'tree' to avoid complaints
2311 of assignment drops qualifiers for invocations of the
2312 newly implemented TYPE_BLOCK_FACTOR() macro, which
2313 invokes hash functions with 'tree' pointer values that
2314 are not const qualified.
2315 * tree.c (check_qualified_type, check_aligned_type): Ditto.
2316 * c-typeck.c (comptypes_internal): Ditto.
2318 2011-08-29 Gary Funck <gary@intrepid.com>
2320 Fixes for regressions noted running "make check"
2322 * fold-const.c (fold_unary_loc): Execute UPC-specific
2323 checks for a cast-of-a-cast, only if one of the
2324 operands is a UPC pointer-to-shared value.
2325 * opts.c (print_specific_help): Fix a comparison
2326 in an assert that checks that there are enough
2327 bits reserved for the number of languages defined
2330 2011-08-29 Gary Funck <gary@intrepid.com>
2332 Implement a hash table to record UPC block factors.
2333 * c-family/stub-upc.c (upc_block_factor_insert,
2334 upc_block_factor_lookup): New dummy stub procedures.
2335 * c-family/c-common.c (c_sizeof_or_alignof_type):
2336 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2337 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
2338 to copy (hashed) UPC blocking factor.
2339 (set_type_quals): Likewise.
2340 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2341 TYPE_HAS_THREADS_FACTOR().
2342 (type_common.block_factor): Delete.
2343 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
2344 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
2345 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
2346 UPC blocking factors greater than one.
2347 * dwarf2out.c (modified_type_die): Re-implement
2348 logic that records UPC blocking factor in the generated
2349 DWARF2 debugging information.
2350 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2351 TYPE_HAS_THREADS_FACTOR().
2352 * c-decl.c (finish_decl, grokdeclarator):
2353 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2354 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
2355 used by UPC, and print UPC-specific information.
2357 2011-08-29 Gary Funck <gary@intrepid.com>
2359 Implement a hash table to record UPC block factors.
2360 * upc/upc-act.c (upc_block_factor_for_type): New garbage-collected
2362 (upc_lang_init, upc_finish): Move to end of source file.
2363 (upc_lang_init): create upc_block_factor_for_type hash table.
2364 (upc_block_factor_lookup, upc_block_factor_insert): New.
2365 (upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
2366 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2367 (upc_grok_layout_qualifier): convert blocking factor to sizetype
2368 before checking for equality to element type's blocking factor.
2370 2011-08-28 Gary Funck <gary@intrepid.com>
2372 Re-work the type machinery to fully support and to unify support
2373 for the UPC layout qualifier (blocking factor).
2374 * c-family/stub-upc.c (upc_set_block_factor): Delete.
2375 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
2376 and update prototype.
2377 * c-family/c-common.c (complete_array_type): call newly
2378 defined c_build_qualified_type_1() instead of
2379 upc_set_block_factor().
2380 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
2381 upc_apply_layout_qualifier() and update prototype.
2382 (upc_set_block_factor): Delete prototype.
2383 * c-family/c-common.h (c_build_qualified_type): redefine
2384 as a pre-processor macro that invokes c_build_qualified_type_1()
2385 with a null UPC layout qualifier.
2386 (c_build_qualified_type_1): New. Add layout qualifier argument
2387 to old c_build_qualified_type() prototype.
2388 * tree.c (set_type_quals, check_qualified_type):
2389 Add layout qualifier as argument.
2390 (check_aligned_type): Add check for UPC block factor equality.
2391 (get_qualified_type_1): Rename from get_qualified_type() and
2392 add layout qualifier as argument.
2393 (build_qualified_type_1): Rename from build_qualified_type() and
2394 add layout qualifier as argument.
2395 * tree.h (check_qualified_type): Add layout qualifier as argument
2397 (get_qualified_type): Re-define as a as a pre-processor macro
2398 that invokes get_qualified_type_1() with a null
2399 UPC layout qualifier.
2400 (get_qualified_type_1): Rename from get_qualified_type() and
2401 add layout qualifier as argument.
2402 * cp/tree.c (c_build_qualified_type_1): Rename from
2403 c_build_qualified_type() and add (unused) layout qualifier
2405 * c-decl.c (finish_decl): re-format long error messages.
2406 (grokdeclarator): Re-work the logic so that it calls
2407 upc_grok_layout_qualifier() to handle the UPC layout
2408 qualifier, if present.
2409 * c-typeck.c (qualify_type, common_pointer_type,
2410 build_component_ref): Re-work the logic so that it calls
2411 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
2413 (c_build_qualified_type_1): Rename from c_build_qualified_type()
2414 and add layout qualifier argument.
2415 * print_tree.c (print_node): Re-format a long line.
2417 2011-08-28 Gary Funck <gary@intrepid.com>
2419 Re-work the type machinery to fully support and to unify support
2420 for the UPC layout qualifier (blocking factor).
2421 * upc/upc-genericize.c (upc_simplify_shared_ref): Call
2422 c_build_qualified_type_1() instead of upc_set_block_factor()
2423 to assert a zero blocking factor.
2424 * upc/upc-pts-struct.c (upc_pts_struct_init_type): Call
2425 c_build_qualified_type_1() to build predefined shared
2426 qualified types, instead of build_variant_type_copy().
2427 * upc/upc-pts-packed.c (upc_pts_packed_init_type): Call
2428 c_build_qualified_type_1() to build predefined shared
2429 qualified types, instead of build_variant_type_copy().
2430 * upc/upc-act.c (upc_set_block_factor): Delete.
2431 (upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
2432 Rework logic so that it returns a blocking factor rather than
2433 a qualified type. Add 'loc' argument and call error_at().
2434 Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
2435 the block size of the element type into the result type, and checks
2436 for errors due to an attempt to merge differing blocking factors.
2438 2011-08-26 Gary Funck <gary@intrepid.com>
2440 Merge trunk version 177949 into gupc branch.
2441 * c-family/c-common.h (enum rid): Bump the number of type modifiers
2443 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
2444 to add new rliterals column value.
2446 2011-08-26 Gary Funck <gary@intrepid.com>
2448 * convert.c (convert_to_integer): Fix the check for the
2449 difference between two UPC pointers-to-shared values.
2451 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
2453 * configure.ac: Fix the name for --with-upc-pts-packed-bits
2454 option. Support --with-upc-packed-bits as deprecated. Fix the code to
2455 correctly check packed bits.
2456 * configure: Re-generate.
2458 2011-08-16 Gary Funck <gary@intrepid.com>
2460 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
2461 the barrier id expression is not an integer expression.
2463 2011-08-16 Gary Funck <gary@intrepid.com>
2465 * upc/upc-act.c (upc_decl_init): Do not attempt to expand
2466 an error mark node. Fixes ICE after error diagnostic.
2467 * upc/upc-cmd.c (main): detect missing option argument for
2468 options that require an argument, and print error diagnostic.
2469 (get_print_cmd): Re-direct error output to /dev/null to
2470 avoid issuing duplicate error messages.
2472 2011-08-12 Gary Funck <gary@intrepid.com>
2474 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
2476 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
2477 Set mode of UPC pointer-to-shared rep. to an
2478 integral mode of size at least as large as the
2479 size of the representation's struct type.
2481 2011-08-12 Gary Funck <gary@intrepid.com>
2483 Rework/simplify the UPC genericize pass.
2484 * c-family/stub-upc.c (upc_apply_layout_qualifier,
2485 upc_build_pointer_type): New.
2486 (upc_set_block_factor): Adjust to new calling sequence.
2487 (upc_build_shared_var_addr): Delete.
2488 * c-family/c-common.c (complete_array_type): Adjust call
2489 to upc_set_block_factor().
2490 * c-family/c-upc.h (upc_apply_layout_qualifier,
2491 upc_build_pointer_type): New.
2492 (upc_build_shared_var_addr): Delete.
2493 (upc_set_block_factor): Adjust to new calling sequence.
2494 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
2495 * c-decl.c (grokdeclarator): Call newly defined
2496 upc_apply_layout_qualifier() instead of upc_set_block_factor().
2497 * c-decl.c (grokdeclarator): Split long UPC-related error
2498 messages into two lines.
2499 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
2500 directly. Revert that change to trunk. (upc_genericize() will
2501 handle lowering the expressions that take the address of a
2503 * config/i386/i386.c (ix86_promote_function_mode): For UPC
2504 pointers-to-shared, return the type mode of the UPC pointer-to-shared
2505 representation type.
2507 2011-08-12 Gary Funck <gary@intrepid.com>
2509 Rework/simplify the UPC genericize pass.
2510 * upc/upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
2511 * upc/upc-act.h: Cosmetic change.
2512 * upc/config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
2513 * upc/upc-genericize.c (upc_expand_get):
2514 Add WANT_STABLE_VALUE parameter.
2515 (upc_build_shared_var_addr, upc_shared_addr_rep): New.
2516 (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
2517 create_unshared_var, lookup_unshared_var, map_unshared_var,
2518 unshared_var_addr, unshared_var_name,
2519 upc_free_unshared_var_table): Move from upc-act.c.
2520 (upc_expand_get, upc_expand_put): Change their source and/or
2521 destination parameters so that they are no longer addresses
2522 of the objects, but rather references to the objects themselves.
2523 (upc_simplify_shared_ref): Rewrite (simplify/generalize).
2524 (upc_shared_addr_rep): New.
2525 (upc_shared_addr): Adjust call to upc_build_shared_var_addr(),
2526 and re-factor the logic.
2527 (upc_genericize_sync_stmt): Re-format comment.
2528 (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
2529 (upc_genericize_addr_expr): Re-factor the logic.
2530 (upc_genericize_indirect_ref, upc_genericize_field_ref):
2531 Adjust call to upc_expand_get() and re-factor the logic.
2532 (upc_genericize_modify_expr): Adjust call to upc_expand_put()
2533 and re-factor the logic.
2534 (upc_genericize_expr): Improve/fix comments.
2535 (upc_genericize_finish, upc_genericize_init): New.
2536 * upc/upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
2537 (upc_char_pts_type_node): Create new global type node.
2538 (upc_pts_struct_is_null_p): Generalize variable names to
2539 reflect the fact that the vaddr field can be either first/last.
2540 (upc_pts_struct_build_sum): Make corrections to comments.
2541 (upc_pts_struct_build_add_offset): Delete.
2542 * upc/upc-genericize.h (upc_genericize_finish, upc_genericize_init):
2544 * upc/upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
2545 (upc_char_pts_type_node): Create new global type node.
2546 * upc/Make-lang.in: Add dependencies to gtype-upc.h
2547 and gt-upc-upc-genericize.h.
2548 * upc/upc-act.c: Adjust includes to reflect moving the functions
2549 that handle the UPC unshared "shadow variables" into
2550 upc-genericize.c. Improve/fix various comments.
2551 * upc/upc-act.c (upc_parse_init): Call upc_genericize_init().
2552 (upc_build_pointer_type): New.
2553 (upc_set_block_factor): Re-purpose. Move the front-end
2554 related error checks into upc_apply_layout_qualifier().
2555 (upc_apply_layout_qualifier): New.
2556 (upc_write_global_declarations): Call upc_genericize_finish().
2558 2011-08-10 Gary Funck <gary@intrepid.com>
2560 Implement additional fixes for recent merge with trunk.
2561 * explow.c (promote_mode): Do not attempt to promote
2562 the mode for UPC pointer-to-shared types.
2563 * config/i386/i386.c (function_value_64): Ditto.
2565 2011-08-07 Gary Funck <gary@intrepid.com>
2567 Merge trunk version 177548 into gupc branch.
2568 * config/i386/i386.c (ix86_promote_function_mode):
2569 Do not promote UPC pointers-to-shared to Pmode.
2570 * c-family/c-ommon.c (pointer_int_sum):
2571 Also check the pointer operand, rather than just
2572 its type, when making the decision to derive
2573 the equivalent unshared type.
2574 * tree.c (build2_stat): If the type of the result
2575 passed in as an argument is a UPC shared type,
2576 derive the unshared equivalent when calculating
2577 the result type of the node.
2579 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
2581 * config/darwin.c: Disable var_tracking option
2582 on -O0 as it is supposed to run only when optimization
2583 is applied. See GCC bug 49743.
2585 2011-07-11 Gary Funck <gary@intrepid.com>
2587 * upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
2588 qualification was incorrectly derived from the source operand.
2589 (upc_genericize_fndecl): New.
2590 (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
2591 c_genericize() more than once in the event of nested procedures.
2592 (upc_genericize_real_imag_ref): Rename,
2593 was: upc_genericize_real_image_ref.
2594 (upc_expand_put): call internal_error() with meaningful message
2596 (upc_genericize_real_imag_ref): call internal_error() with
2597 meaningful message in lieu of gcc_unreachable().
2599 2011-07-06 Gary Funck <gary@intrepid.com>
2601 Re-implement the pass that lowers trees generated by
2602 the UPC front-end into GENERIC. Previously this was
2603 done within the gimplification framework, but this
2604 required that gimplification be run before inlining
2605 and various other passes, which did not fit in well
2606 with the current design of the middle-end passes.
2607 Now, the lowering is done by a newly defined language
2608 specific genericize hook. With this change, we are
2609 are able to undo some extensions made to the gimplify
2610 logic, and thus can revert several files to trunk.
2611 * c-decl.c: Add a check for UPC deprecated names which
2612 may appear as undefined function names.
2613 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
2614 LTI_upc_getaddr): Remove definitions of unused UPC
2615 library function names. These were defined back when
2616 the libfunc interface was used to call these routines.
2617 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
2618 in UPC lowering (genericize) pass.
2619 * langhooks.h (gimplify_expr): Revert to trunk's definition.
2620 (instrument_func): Delete this hook. Now handled in
2622 * tree-pass.h: Revert to trunk.
2623 * c-typeck.c (build_unary_op): Adjust reference to
2624 upc_genericize() in a comment.
2625 * gimplify.c (create_tmp_var_raw): Delete logic that
2626 was converting UPC shared types into unshared types
2627 to be used for temporaries. Now handled in upc_genericize().
2628 Replace with an assertion check.
2629 (prepare_gimple_addressable): Revert to trunk's definition.
2630 No longer needed as an externally called function.
2631 (flag_instrument_functions_exclude_p): Re-define as
2632 an externally called function.
2633 (gimplify_function_tree): Delete code that implemented
2634 call to UPC's language specific function instrumentation hook.
2635 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
2636 (prepare_gimple_addressable): Delete extern definition;
2637 revert to trunk's definition.
2638 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
2639 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
2640 * c-family/c-gimplify.c: Revert to trunk.
2641 * cp/cp-gimplify.c: Revert to trunk.
2642 * cp/cp-tree.h: Revert to trunk.
2643 * explow.c: Revert to trunk.
2644 * langhooks.c: Revert to trunk.
2645 * libfuncs.h: Revert to trunk.
2646 * objc/objc-act.c: Revert to trunk.
2648 2011-07-06 Gary Funck <gary@intrepid.com>
2650 Improve/simplify the logic in upc_genericize.
2651 * upc/upc-genericize.c (upc_create_tmp_var): Delete the
2652 PREFIX argument. Aways use "UPC" as the prefix.
2653 (upc_genericize_compound_expr): Add a WANT_VALUE argument.
2654 (upc_genericize_cond_expr): New.
2655 (upc_genericize_decl_expr): New.
2656 (upc_genericize_stmt): New.
2657 (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
2658 to upc_create_tmp_var().
2659 (upc_genericize_expr): Change the handling
2660 of the want_value flag passed in the DATA argument.
2661 Always assert this flag after processing EXPR_P.
2662 (upc_genericize_compound_expr): Adjust call
2663 to upc_genericize_compound_expr() and call
2664 upc_genericize_cond_expr() and upc_genericize_decl_expr().
2666 2011-07-06 Gary Funck <gary@intrepid.com>
2668 Re-implement the pass that lowers trees generated by
2669 the UPC front-end into GENERIC. Previously this was
2670 done within the gimplification framework, but this
2671 required that gimplification be run before inlining
2672 and various other passes, which did not fit in well
2673 with the current design of the middle-end passes.
2674 Now, the lowering is done by a newly defined language
2675 specific genericize hook. With this change, we are
2676 are able to undo some extensions made to the gimplify
2677 logic, and thus can revert several files to trunk.
2678 * upc/upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
2679 * upc/upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
2680 * upc/Make-lang.in: Adjust to refer to upc-genericize.[cho].
2681 * upc/upc-lnag.c: refer to upc-genericize.h.
2682 (LANG_HOOKS_GENERICIZE): define as upc_genericize.
2683 (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
2684 (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
2685 * upc/upc-act.c: Minor code format fix.
2687 2011-06-30 Gary Funck <gary@intrepid.com>
2689 * c-family/c.opt: Bring options definitions up-to-date
2690 with respect to changes made in the trunk.
2692 2011-06-29 Gary Funck <gary@intrepid.com>
2694 Merge trunk version 175584 into gupc branch.
2696 2011-06-29 Gary Funck <gary@intrepid.com>
2698 Merge trunk version 175584 into gupc branch.
2699 * upc/upc-act.c (upc_handle_option): Change reference to
2700 have_named_sections so that it refers to the
2701 targetm_common structure.
2703 2011-06-28 Gary Funck <gary@intrepid.com>
2705 * upc/upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
2706 Remove extern definitions. Now declared as 'static'.
2707 * upc/upc-gimplify.c, upc/upc-lang.c,
2708 upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
2709 upc-cmd.c, upc-act.c: Improve/add comments, fix
2710 typos and spelling errors.
2712 2011-06-13 Gary Funck <gary@intrepid.com>
2715 * include/cpplib.h (enum c_lang):
2716 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
2717 This keeps all the "C" variants together.
2718 * init.c (lang_defaults): Add an entry for UPC.
2720 2011-06-10 Gary Funck <gary@intrepid.com>
2722 * upc/upc-act.c (upc_set_block_factor): Handle the case where
2723 the UPC blocking factor expression overflowed.
2725 2011-06-09 Gary Funck <gary@intrepid.com>
2727 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
2728 a 32-bit target, the size expression overflowed, the result was
2729 error_mark_node, and an ICE was triggered on an attempt to evaluate
2730 C_TYPE_VARIABLE_SIZE() on the error node.
2731 (upc_blocksizeof_expr, upc_blocksizeof_type,
2732 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
2733 Make similar changes to avoid further processing of error_mark_node.
2735 2011-06-07 Gary Funck <gary@intrepid.com>
2737 * sel-sched.c (move_op): Incorporate the following
2738 patch to eliminate ICE at -O3 on IA64/Altix.
2740 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
2742 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
2743 code_motion_path_driver returned 0 or 1.
2744 (sel_region_finish): Clear h_d_i_d.
2746 2011-06-02 Gary Funck <gary@intrepid.com>
2748 Merge trunk version 174558 into gupc branch.
2750 2011-06-02 Gary Funck <gary@intrepid.com>
2752 Merge trunk version 174558 into gupc branch.
2753 * upc/upc-lang.c (upc_check_decl_init): Use recently defined
2754 'append_to_statement_list_force' function to add UPC
2755 initialization statements to the UPC initialization
2756 statement list ('upc_init_stmt_list').
2757 (upc_build_init_func): Use recently defined
2758 'append_to_statement_list_force' function to add
2759 statements listed in 'upc_init_stmt_list' onto the
2760 function body constructed to implement initialization
2761 of UPC declarations that require active initialization
2762 at program start up. The previous methods of manipulating
2763 statement lists no longer worked, due to changes in the
2764 the statement list structure.
2766 2011-05-30 Gary Funck <gary@intrepid.com>
2768 * configure.ac: Make the default order of the virtual
2769 address field in a UPC pointer-to-shared to be "first".
2770 This reverts to the previous setting, and is a short term
2771 measure to work around a bug found on the IA64,
2772 where vaddr=last led to incorrect code generation.
2773 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
2774 in AC_DEFINE(), to agree with recent changes in files
2775 that reference this define.
2776 configure, config.in: Regenerate.
2778 2011-05-26 Gary Funck <gary@intrepid.com>
2780 * configure.ac: Fix typo when referring to $upc_vaddr_order.
2781 configure: Regenerate.
2782 * ../fixincludes/fixincl.x: Revert to trunk.
2783 This file is auto-generated, and should not be merged.
2785 2011-05-23 Gary Funck <gary@intrepid.com>
2787 * upc/upc-pts-struct.c: Revert to code that aligned the
2788 internal pointer-to-shared representation to
2789 twice the alignment of a pointer. This fixes
2790 an ICE that occurred when building the compiler
2793 2011-05-18 Gary Funck <gary@intrepid.com>
2795 Merge trunk version 173845 into gupc branch.
2797 2011-05-17 Gary Funck <gary@intrepid.com>
2799 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
2800 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
2801 * c-family/c-pragma.c: Remove conditional compilation
2802 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
2803 Test 'compiling_upc' when compiling to determine if
2804 the "upc" and "pupc" pragmas should be registered.
2805 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2806 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2807 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2808 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2809 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2810 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
2811 Move these target-dependent definitions from config/upc-conf.h
2813 * configure.ac: Improve the logic for UPC-related options.
2814 Delete references to pre-processor definitions that have
2815 been moved to "upc/upc-pts.h".
2816 * configure, config.in: Regenerate.
2817 * Makefile.in (UPC_PTS_REP): Remove definition and revert
2818 to trunk. This substitution variable was used to
2819 configure the representation-specific versions of
2820 the tree rewrites that operate on UPC pointer-to-shared
2822 * c-parser.c (c_parser_upc_forall_statement): Remove
2823 reference to UPC_FORALL_DEPTH_NAME, and call
2824 newly defined upc_rts_forall_depth_var() instead.
2825 * config/upc-config.h: Delete. Various definitions
2826 moved to "upc/upc-rts-names.h", "defaults.h", and
2828 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
2829 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
2830 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2831 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2832 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2833 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2834 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2835 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
2836 New. Document UPC target macros.
2837 doc/tm.texi: Regenerate.
2839 2011-05-17 Gary Funck <gary@intrepid.com>
2841 * upc/upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
2842 upc_pts_build_cond_expr, upc_pts_build_constant,
2843 upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
2844 upc_pts_build_threadof, upc_pts_init_type): Remove extern
2846 (upc_pts_ops_t): New. Define handler table that will
2847 implement either the 'packed' or the 'struct' representation
2848 of a UPC pointer-to-shared value.
2849 (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
2850 refers to the packed and the struct UPC pointer-to-shared
2851 representation implementation.
2852 (upc_pts): New. Define handler table that is set up at initialization
2853 to refer to the handlers for the UPC pointer-to-shared
2854 representation (packed/struct) that has been configured.
2855 Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
2856 and configure the UPC pointer-to-shared definitions that
2857 are specific to the configured UPC pointer-to-shared
2859 * upc/upc-act.h (upc_pts_is_valid_p): Rename extern definition from
2860 is_valid_pts_p to upc_pts_is_valid_p.
2861 * lang-specs.h: Reformat the UPC compilation specs.
2862 to improve readability.
2863 * upc/upc-rts-names.h: New. Define the names of UPC runtime
2864 library functions that implement UPC language statement
2865 semantics. These definitions were moved from config/upc-conf.h
2866 * upc/upc-gimplify.c: Add include of "upc-rts-names.h".
2867 Refer to newly defined pointer manipulation routines
2868 by indirecting through the newly defined "pts" handler table.
2869 Re-format, re-indent.
2870 * upc/upc-lang.c: Add include of "upc-pts.h". Fix a comment.
2871 * upc/config-lang.in: Remove logic that inserted "config/upc-conf.h"
2872 into the target include and file path.
2873 * upc/upc-pts-struct.c: Add include of "upc-rts-names.h".
2874 (upc_pts_struct_ops): Define the pointer manipulation
2875 handler table that implements operations on UPC
2876 pointers-to-shared, represented as a struct.
2877 Re-format and re-indent.
2878 * upc/upc-gasp.c: Add include of "upc-rts-names.h".
2879 Re-format and re-indent.
2880 * upc/upc-pts-packed.c: Add include of "upc-rts-names.h".
2881 (upc_pts_packed_ops): Define the pointer manipulation
2882 handler table that implements operations on UPC
2883 pointers-to-shared, represented as a packed integer.
2884 Re-format and re-indent.
2885 * upc/Make-lang.in: Compile both "upc-pts-packed.c" and
2886 "upc-pts-struct.c". One/other will be selected at
2887 compilation time to implement operations on UPC
2888 on the UPC pointer-to-shared that has been configured.
2889 Add dependencies on "upc-rts-names.h".
2890 * upc/upc-cmd.c: Re-format and re-indent.
2891 * upc/upc-act.c: Add include of "upc-rts-names.h".
2892 (upc_pts): New. Add definition of the handler
2893 table that implements representation specific
2894 operations on trees that refer to UPC pointer-to-shared
2895 objects and types. Re-format and re-indent.
2897 2011-05-07 Gary Funck <gary@intrepid.com>
2899 * ../configure.ac: Disable build of libupc
2900 on non POSIX hosted systems. Use AS_HELP_STRING
2901 to define messages. Remove 'word-pair' as a
2902 possible --with-upc-pts UPC pointer-to-shared
2904 * ../configure: Regenerate.
2905 * configure.ac: Use AS_HELP_STRING to define messages.
2906 Remove 'word-pair' as a possible --with-upc-pts
2907 UPC pointer-to-shared representation.
2908 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
2909 (UPC_MAX_BLOCK_SIZE): Correct the default value.
2910 * configure: Regenerate.
2911 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
2913 * ChangeLog.upc: Fix some typos.
2915 2011-05-07 Gary Funck <gary@intrepid.com>
2917 * ../maintainer-scripts/gcc_release: Add "upc"
2918 as one of the released languages.
2920 2011-05-06 Gary Funck <gary@intrepid.com>
2922 Eliminate compilation warnings, by fixing
2923 #include's and updating function prototypes.
2924 * c-family/c-cppbuiltin.c: Include c-upc.h.
2925 * optabs.c (gen_libfunc): Change type of 'suffix'
2926 parameter to conform with prototype.
2927 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2928 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2930 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2932 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2933 argument values to cp_gimplify_expr.
2934 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2935 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
2936 pre-processor definitions that are no longer
2937 needed to build the 'upc' command (upc-cmd.c)
2938 because the linker specs. defined in libupc
2939 take care of linking in the needed libraries.
2940 * c-parser.c (c_parser_upc_forall_statement):
2941 initialize affinity_loc to avoid "maybe unused" warning.
2942 (c_parser_upc_sync_statement): Remove un-needed
2943 'ret' variable. Cast return value from
2944 'upc_build_sync_stmt' to 'void' to avoid
2945 compile-time warning.
2946 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2947 integer constant, not a string. Range is restricted
2948 to maximum positive 32-bit integer (2+ billion) to
2949 fit in with the use of 'int' in the front-end's
2950 switch handling logic.
2952 2011-05-06 Gary Funck <gary@intrepid.com>
2954 Upgrade c-family source files to conform with modularity
2955 improvements. Mainly, remove #include of c-tree.h in files
2956 under c-family, and define a new UPC-specific #include file,
2957 c-upc.h, and use it.
2958 * c-family/stub-upc.c: Remove #include of c-tree.h and
2959 upc/upc-act.h. Replace with #include of c-common.h
2961 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2962 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2963 upc_localsizeof_expr, upc_localsizeof_type,
2964 upc_shared_type_p): Delete.
2965 * c-family/c-opts.c: Add #include of c-upc.h
2966 * c-family/c-common.c: Remove #include of c-tree.h and
2967 add #include of c-upc.h.
2968 * c-family/c-upc.h: New. Define API for UPC-specific functions
2969 (mostly implemented in upc/upc-act.c).
2970 * c-family/c-common.h (upc_cpp_builtins,
2971 upc_write_global_declarations): Remove extern definitions.
2972 * c-family/c-pragma.c: Remove #include of c-tree.h.
2973 Add #include of c-upc.h.
2974 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
2976 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
2977 upc/upc-act.c, and define as a macro.
2978 (expand_affinity_test): Remove unused external definition.
2979 (build_upc_unshared_type): Add external definition.
2980 (upc_shared_type_p): Remove external definition.
2981 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2982 * dojump.c: Remove #include of c-tree.h.
2983 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2985 (count_upc_threads_refs, is_multiple_of_upc_threads,
2986 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2987 upc_build_shared_var_addr, upc_build_sync_stmt,
2988 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2989 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2990 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2991 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2992 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2993 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2994 set_upc_consistency_mode, get_upc_consistency_mode,
2995 push_upc_consistency_mode, pop_upc_consistency_mode,
2997 Move external definitions to c-family/c-upc.h.
2998 (upc_blocksizeof_type, upc_localsizeof_type,
2999 upc_elemsizeof_type): Remove external definitions;
3000 these functions were moved to c-parser.c.
3001 * c-decl.c: Add #include of c-upc.h.
3002 * c-typeck.c: Add #include of c-upc.h.
3003 * c-convert.c: Add #include of c-upc.h.
3004 * ChangeLog.upc: Fix typo.
3005 * Makefile.in: Add references to c-family/c-upc.h, everywhere
3006 there is a reference to c-family/c-objc.h.
3007 Remove extraneous reference to upc-act.h.
3008 * c-parser.c: Add #include of c-upc.h.
3009 (upc_blocksizeof_expr, upc_blocksizeof_type,
3010 upc_elemsizeof_expr, upc_elemsizeof_type,
3011 upc_localsizeof_expr, upc_localsizeof_type):
3012 Move from upc/upc-act.c.
3013 * tree.c (build_upc_unshared_type): New.
3014 Move upc_get_unshared_type from upc/upc-act.c and rename
3015 to build_upc_unshared_type.
3016 c-family/c-common.c (pointer_int_sum): refer to renamed
3017 build_upc_unshared_type function.
3018 c-convert.c (convert): Ditto.
3019 convert.c (convert_to_pointer): Ditto.
3020 c-typeck.c (build_unary_op, build_modify_expr,
3021 really_start_incremental_init): Ditto.
3022 gimplify.c (create_tmp_var_raw): Ditto.
3023 tree.c (build1_stat): Ditto.
3024 tree.h (upc_get_unshared_type): Rename to
3025 build_upc_unshared_type.
3027 2011-05-06 Gary Funck <gary@intrepid.com>
3029 Merge trunk version 173471 into gupc branch.
3031 2011-05-06 Gary Funck <gary@intrepid.com>
3033 Eliminate compilation warnings, by fixing
3034 #include's and updating function prototypes.
3035 * upc/upc-gimplify.c: Include bitmap.h.
3036 (upc_gimplify_real_image_ref): Mark various parameters
3037 as unused. This is a stub procedure for now.
3038 * upc/upc-lang.c: Include c-family/c-upc.h.
3040 * upc/upc-cmd.c (no_start_files): Delete unused variable.
3041 The -nostartfiles switch is now handled by the linker spec.
3042 * ChangeLog: Spell check.
3044 2011-05-06 Gary Funck <gary@intrepid.com>
3046 Upgrade c-family source files to conform with modularity
3047 improvements. Mainly, remove #include of c-tree.h in files
3048 under c-family, and define a new UPC-specific #include file,
3049 c-upc.h, and use it.
3050 * upc/upc-act.h (upc_write_global_declarations,
3051 upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
3052 upc_num_threads, upc_diagnose_deprecated_stmt):
3053 Move external definitions to c-family/c-upc.h
3054 (upc_blocksizeof_expr, upc_blocksizeof_type,
3055 upc_elemsizeof_expr, upc_elemsizeof_type,
3056 upc_localsizeof_expr, upc_localsizeof_type):
3057 Remove external definitions; these functions
3058 were moved from upc-act.c to c-parser.c.
3059 * upc/upc-gimplify.c: Add #include of c-family/c-upc.h.
3060 upc-pts-packed.c: Ditto.
3061 upc-pts-struct.c: Ditto.
3062 * upc/config-lang.in: Update gtfiles to refer to c-upc.h
3064 * upc/upc-act.c: Add #include of c-family/c-upc.h.
3065 (upc_blocksize, upc_elemsizeof, upc_localsizeof):
3066 Make external so that it can be called from c-parser.c.
3067 (upc_blocksizeof_expr, upc_blocksizeof_type,
3068 upc_elemsizeof_expr, upc_elemsizeof_type,
3069 upc_localsizeof_expr, upc_localsizeof_type):
3070 Move from upc/upc-act.c to c-parser.c.
3071 (upc_set_block_factor): Fix typo in error message.
3072 (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
3073 Move to tree.h and define as a macro.
3074 (upc_get_unshared_type): Delete. renamed to
3075 build_upc_unshared_type and moved to tree.c.
3076 * upc/upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
3077 refer to renamed build_upc_unshared_type function.
3078 upc-act.c (create_unshared_var): Ditto.
3080 2011-05-05 Gary Funck <gary@intrepid.com>
3082 Make changes that bring the GUPC branch more closely in sync.
3083 with the GCC trunk. Revert any fixes that are not UPC-specific.
3084 Remove gratuitous re-formatting.
3085 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
3086 This file should have been removed in a previous merge
3088 * ../configure.ac: Remove Cray Catamount/CNL support.
3089 * ../configure: Regenerate.
3090 * ../config.sub: Remove Cray Catamount/CNL support.
3091 * config.gcc: Remove Cray Catamount/CNL support.
3092 * ../maintainer-scripts/gcc_release: Revert to trunk.
3093 * c-family/c-common.h: Define parse_optimize_options. Its definition
3094 was missed in a previous merge with the trunk.
3095 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
3097 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
3098 in addition to ARRAY_TYPE.
3099 * c-typeck.c: Remove an extra newline character.
3100 * varasm.c: Revert a fix that improved an error message
3101 when TLS common data is unimplemented.
3102 * varasm.c: Revert a gcc_assert that had been added which
3103 checked for a null DECL_SIZE_UNIT field.
3104 * emultls.c: Revert to trunk. Remove possible fix.
3105 * Makefile.in: Revert extra blank line that is present
3106 in the trunk version.
3107 * Makefile.in: Revert a fix that handled long shell
3108 argument lists for plugin headers.
3109 * config/ia64/ia64.opt: Revert an option setting
3110 that increased the default TLS address range.
3111 * config/ia64/crtbegin.asm: Revert to trunk.
3112 Removes an extra newline character.
3113 * ChangeLog.upc: Spell check.
3115 2011-05-03 Gary Funck <gary@intrepid.com>
3117 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
3118 (c_apply_type_quals_to_decl): Ditto.
3119 * c-family/c-common.h: Ditto.
3121 * c-decl.c (merge_decls): Ditto.
3122 * c-typeck.c (qualify_type, default_conversion,
3123 build_component_ref, build_unary_op,
3124 c_build_qualified_type): Ditto.
3125 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
3127 2011-05-03 Gary Funck <gary@intrepid.com>
3129 * upc/upc-lang.c: Remove extraneous FIXME/TODO comments.
3130 * upc/upc-pts-packed.c (upc_pts_build_cvt): Ditto.
3131 * upc/upc-act.c (upc_set_block_factor): Ditto.
3133 2011-04-29 Gary Funck <gary@intrepid.com>
3135 * c-decl.c (finish_decl): Improve error diagnostics.
3136 (grokdeclarator): Ditto.
3137 * c-typeck.c (build_c_cast): Improve error diagnostics.
3138 (convert_for_assignment): Ditto.
3139 (build_binary_op): Ditto.
3140 * c-parser.c (c_parser_upc_forall_statement):
3141 Improve error diagnostics.
3142 * convert.c (convert_to_integer): Improve error diagnostics.
3144 2011-04-29 Gary Funck <gary@intrepid.com>
3146 * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
3147 (upc_expand_put): Ditto.
3148 (upc_shared_addr): Ditto.
3149 (upc_gimplify_sync_stmt): Ditto.
3150 (upc_gimplify_field_ref): Ditto.
3151 * upc/upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
3152 (upc_pts_build_cvt): Ditto.
3153 * upc/upc-act.c (upc_handle_option): Improve error diagnostics.
3154 (upc_lang_init): Ditto.
3155 (upc_sizeof_type_check): Ditto.
3156 (upc_set_block_factor): Ditto.
3157 (upc_decl_init): Ditto.
3158 (upc_affinity_test): Ditto.
3159 (upc_num_threads): Ditto.
3160 (upc_diagnose_deprecated_stmt): Ditto.
3161 (upc_build_shared_var_addr): Ditto.
3162 (upc_pts_int_sum): Ditto.
3163 (upc_pts_diff): Ditto.
3165 2011-04-28 Gary Funck <gary@intrepid.com>
3167 * upc/upc-act.c (create_unshared_var): call upc_get_unshared_type()
3168 instead of using TYPE_MAIN_VARIANT() to create an equivalent type
3169 that is not a UPC shared type. This is sometimes necessary
3170 when the given shared type is derived from a typedef.
3172 2011-04-24 Gary Funck <gary@intrepid.com>
3174 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
3175 occurred if there is an error in the barrier id
3176 expression. Map error_mark_node into NULL.
3178 2011-04-24 Gary Funck <gary@intrepid.com>
3180 * upc/upc-act.c (upc_handle_option): Fix incorrect error
3181 diagnostic messages when both -fupc-debug and
3182 -fupc-inline-lib are asserted.
3184 2011-04-24 Gary Funck <gary@intrepid.com>
3186 * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
3187 to the list of switches that accept arguments.
3188 (main): Check for switches that have a following
3189 argument inside the loop that copies arguments and
3190 adds '-x upc' or '-x none' as necessary.
3191 (main): Misc. clean ups and simplifications.
3193 2011-04-22 Gary Funck <gary@intrepid.com>
3195 Merge trunk version 172873 into gupc branch.
3197 2011-04-22 Gary Funck <gary@intrepid.com>
3199 Merge trunk version 172873 into gupc branch.
3200 * upc/upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
3201 on init_func() to prevent it from being removed from
3204 2011-04-19 Gary Funck <gary@intrepid.com>
3206 Merge trunk version 172359 into gupc branch.
3208 2011-04-19 Gary Funck <gary@intrepid.com>
3210 Merge trunk version 172359 into gupc branch.
3211 * upc/upc-lang.c (upc_init_ts): New.
3212 (LANG_HOOKS_INIT_TS): use upc_init_ts.
3214 2011-04-19 Gary Funck <gary@intrepid.com>
3216 Eliminate warnings when compiling upc-cmd.c.
3217 * upc/upc-cmd.c (file_exists): Remove.
3218 (arg_copy): Remove const qualifier.
3220 2011-04-14 Gary Funck <gary@intrepid.com>
3222 * c-family/c.opt: Add UPC as a valid language for various
3223 switches where it is valid for "C", that were not updated
3224 in previous merges with trunk.
3226 2011-04-13 Gary Funck <gary@intrepid.com>
3228 * c-family/c.opt (fupc-pre-include): New option definition.
3229 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
3230 -fno-upc-pre-include is asserted.
3232 2011-04-13 Gary Funck <gary@intrepid.com>
3234 * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
3235 to the list, and alphabetize.
3237 2011-04-13 Gary Funck <gary@intrepid.com>
3239 * upc/upc-gimplify.c (upc_gimplify_real_image_ref): New.
3240 Currently, a not-yet-implemented stub.
3241 (upc_gimplify_lval): call upc_gimplify_real_image_ref to
3242 rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
3243 This will avoid an ICE when compiling regular "C"
3244 code that refers to those operators.
3246 2011-04-13 Gary Funck <gary@intrepid.com>
3248 * upc/upc-cmd.c: Do not add "-isystem <libupc_path>" if
3249 -fno-upc-pre-include is asserted.
3251 2011-04-07 Gary Funck <gary@intrepid.com>
3253 Merge trunk version 172158 into gupc branch.
3254 to bring in the following fix.
3256 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
3259 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3260 if old and new states differ.
3262 2011-04-06 Gary Funck <gary@intrepid.com>
3264 Merge trunk version 171966 into gupc branch.
3266 2011-04-01 Gary Funck <gary@intrepid.com>
3268 * tree.h (tree_base): Move UPC flag bits into bit fields
3269 located just before spare bits. Decrement spare bits.
3270 Rename 'shared_flag' -> 'upc_shared_flag',
3271 'relaxed_flag' -> 'upc_relaxed_flag',
3272 'strict_flag' -> 'upc_strict_flag, and adjust macros
3273 that reference them accordingly.
3275 2011-04-01 Gary Funck <gary@intrepid.com>
3277 * c-decl.c (grokdeclarator): Fix formatting of
3278 code that sets UPC block size on scalars.
3280 2011-04-01 Gary Funck <gary@intrepid.com>
3282 * c-decl.c (grokdeclarator): Revert use of white space
3283 to match the trunk (to rationalize diffs).
3284 * c-typeck.c (convert_for_assignment): Ditto.
3285 * tree-ssa.c (useless_type_conversion_p): Ditto.
3287 2011-03-23 Gary Funck <gary@intrepid.com>
3289 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
3290 the GCC 4.6 release branch.
3292 2011-03-22 Gary Funck <gary@intrepid.com>
3294 * upc/upc-cmd.c: Move linker switches into libupc/libupc.spec.
3295 (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
3296 (find_ld_script) Remove.
3298 2011-03-21 Gary Funck <gary@intrepid.com>
3300 Merge trunk version 171202 into gupc branch.
3302 2011-03-20 Gary Funck <gary@intrepid.com>
3304 * varasm.c: Call error() directly with a format specifier,
3305 rather than using sprintf() to format the message.
3306 This should make it easier to internationalize UPC's error messages.
3308 2011-03-20 Gary Funck <gary@intrepid.com>
3310 * configure.ac: Fix the check for gnu ld when enabling
3311 UPC link script support.
3312 configure: Regenerate (also picks up changes from previous
3315 2011-03-20 Gary Funck <gary@intrepid.com>
3317 Move UPC start files, end files, and linker specs.
3318 into libupc. This reduces the impact on common GCC
3319 configuration files, and ensures that these UPC-specific
3320 components are only built when the UPC language dialect is selected.
3321 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
3322 linker specs. Fix typo in -fupc-debug message.
3323 * config/upc-conf.h, config/darwin.h: Move defines for
3324 UPC-related section begins/ends into libupc/config/default/
3326 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
3327 UPC-related linker compiler specifications,
3328 accessed via %:include().
3329 * configure.ac, configure: Remove logic related to building
3330 upc-crtbegin/end. Remove config. tests for numa and cpu
3331 affinity (previously used by the 'upc' driver); these
3332 settings are now propagated by target-specific compiler
3333 specs. built by libupc. Regenerate autoconf.
3334 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
3335 linker compiler specifications, accessed via %:include().
3336 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
3338 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
3339 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
3340 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
3341 config/ia64/linux.h, config/mips/t-iris,
3342 config/mips/iris6.h: Revert to trunk version 167307.
3344 * configure, configure.ac, config.host, Makefile.in:
3345 Revert to trunk version 167307.
3347 2011-03-20 Gary Funck <gary@intrepid.com>
3349 * upc/upc-act.c: Call error() directly with a format specifier,
3350 rather than using sprintf() to format the message.
3351 This should make it easier to internationalize UPC's error messages.
3353 2011-03-20 Gary Funck <gary@intrepid.com>
3355 Move UPC start files, end files, and linker specs.
3356 into libupc. This reduces the impact on common GCC
3357 configuration files, and ensures that these UPC-specific
3358 components are only built when the UPC language dialect is selected.
3359 * upc/config-lang.in: Remove setting of 'upc_extra_parts', which
3360 was used to specify which upc-crtbegin and upc-crtend files
3361 need to built. Remove extraneous (commented out)
3362 settings of 'cfiles'. The listed configuration files
3363 have been reverted to trunk, and weren't referenced
3364 via cfiles in any event.
3365 * upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
3366 Simply test for the presence of the UPC link script
3367 in the current directory or the libupc directory.
3368 Add -B<path-to-libupc> to the switches passed to 'gcc';
3369 this is needed in order to find the upc-crtbegin
3370 and upc-crtend object files now built in libupc.
3371 Remove test for and inclusion of UPC_LINKER_SWITCHES.
3372 if extra switches are needed for a particular target
3373 (like SGI/Irix), they will be defined by the custom
3374 linker spec. built in libupc. Remove test for
3375 HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
3376 will be added to the custom linker specs. built
3378 * upc/upc-crtstuff.c: Move to libupc.
3380 2011-02-23 Gary Funck <gary@intrepid.com>
3382 * c-decl.c (undeclared_variable): fix typo. Inadvertently
3383 removed negation on following 'if'.
3385 2011-02-22 Gary Funck <gary@intrepid.com>
3387 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
3388 to check for the usage of certain deprecated UPC keywords.
3389 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
3390 * c-tree.h (undeclared_variable): Define prototype.
3392 2011-02-22 Gary Funck <gary@intrepid.com>
3394 * upc/upc-act.c (upc_diagnose_deprecated_stmt): New.
3395 upc-act.h (upc_diagnose_deprecated_stmt): Define.
3396 Check usage of deprecated keywords and issue
3399 2011-02-12 Gary Funck <gary@intrepid.com>
3401 * c-typeck.c: (build_c_cast, convert_for_assignment)
3402 Diagnose an attempt to convert from an integer to
3403 a pointer-to-shared as an error. Also, fix various
3404 error messages so that they use the preferred term
3405 pointer-to-shared instead of "shared pointer".
3407 2011-02-08 Gary Funck <gary@intrepid.com>
3409 * upc/upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
3410 for struct-pts representation
3411 Analysis indicated that for something like (+ ptr -80) this was
3412 being represented as (+ ptr (- 80)) and further, when the
3413 calculations were propagated into the individual operations on the
3414 components of the 'struct' pointer, it would end up with something
3415 like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
3416 "long unsigned int" because of the addition to the pointer. This
3417 caused the calculations involving the signed 'int' operand to be
3418 performed incorrectly. This fix insures that the 'int' operand is
3421 2011-02-08 Gary Funck <gary@intrepid.com>
3423 * upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
3424 upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
3425 upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
3426 upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
3427 upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
3428 upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
3429 Update copyright notices.
3431 2011-02-07 Gary Funck <gary@intrepid.com>
3433 * c-typeck.c: (convert_for_assignment)
3434 Fix typo. in error message.
3436 2011-01-23 Gary Funck <gary@intrepid.com>
3438 * c-typeck.c: (c_build_qualified_type)
3439 derive UPC block size by calling upc_get_block_size(),
3440 to ensure that the element type of an array of an array
3441 is derived correctly.
3443 2011-01-09 Gary Funck <gary@intrepid.com>
3445 Fix behavior of upc_localsizeof() when called in a dynamic
3446 threads compilation environment. This bug, and the expected
3447 behavior is documented in this bug report:
3448 https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
3449 * upc/_act.c (upc_localsizeof): Re-implement.
3451 2010-12-29 Gary Funck <gary@intrepid.com>
3453 Merge trunk version 168314 into gupc branch.
3455 2010-12-15 Gary Funck <gary@intrepid.com>
3457 Merge trunk version 167307 into gupc branch.
3459 2010-12-15 Gary Funck <gary@intrepid.com>
3461 Merge trunk version 167307 into gupc branch.
3462 * upc/_act.h: (upc_handle_option) add location and struct
3463 cl_option_handlers * parameters.
3464 (upc_finish_file) Remove.
3465 (upc_write_global_declarations) New, replaces upc_finish_file.
3466 * lang-spec.h: Disable multi-file compilation for .upc files.
3467 This fixes an issue where file-scoped static variables were
3468 diagnosed as multiply-defined. Both "C" and "ObjC" also disable
3469 multi-file compilation.
3470 * upc/upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
3471 explicitly when deciding whether a UPC shared object is addressable.
3472 is_gimple_addressable() used to do this, but now checks for MEM_REF
3473 which does not apply to UPC shared objects.
3474 (upc_gimplify_lval, upc_gimplify_expr) Delete references to
3475 ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
3476 These are no longer defined.
3477 (upc_genericize) Add call to bitmap_obstack_initialize()
3478 and bitmap_obstack_release() around call to gimplify_function_tree().
3479 * upc/upc-lang.c: Add #include of "opts.h" and "options.h".
3480 (flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
3481 flag_upc_instrument_functions) Remove. Use definitions
3482 generated by the options file.
3483 (upc_init_options) Use cl_decoded_option struct.
3484 (LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
3485 (finish_file) Delete.
3486 (upc_init_options) Call control_warning_option() to specify
3487 -Werror=pointer-arith as the default. Remove call to
3488 enable_warning_as_error().
3489 * upc/upc-pts-struct.c: (upc_pts_init_type) Move test that
3490 UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
3491 rather than an #ifdef; this macro now depends upon a
3492 target size macro which must be evaluated at runtime.
3493 * upc/Make-lang.in: (cc1-dummy) Remove make target.
3494 (cc1upc-checksum.c) Generate directly from object files.
3495 * upc/upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
3496 references to these deprecated macro definitions.
3497 (GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
3498 (all_exec_args) Delete variable.
3499 (exec_args) Re-define as (const char *).
3500 (exec_arg_list) New. Make copy of exec_args to pass to 'exec'.
3501 * upc/upc-act.c: (upc_handle_option) Update argument list to accept
3502 (cl_option_handlers *) argument.
3503 (upc_finish_file) Rename to upc_write_global_declarations.
3504 (upc_write_global_declarations) New.
3506 2010-10-19 Gary Funck <gary@intrepid.com>
3508 * c-typeck.c: Fix typo in previous fix
3509 which led to a mis-compare for equal block sizes.
3511 2010-10-18 Gary Funck <gary@intrepid.com>
3513 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
3514 diagnosed as an error
3515 The conversion from any type (shared or not) to
3516 a shared type is likely either meaningless or an error. This update
3517 makes any conversion to a shared type, an error.
3519 2010-10-18 Gary Funck <gary@intrepid.com>
3521 * c-typeck.c: Fix bug: passing int to shared pointer arg.
3522 generates spurious warning
3523 Add a #define procedure that does the same thing as
3524 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
3525 this procedure to diagnose passing an integer value to a
3526 pointer-to-shared as an error.
3528 2010-10-18 Gary Funck <gary@intrepid.com>
3530 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
3531 matching routine declaration.
3532 When checking for type compatibility, shared qualified types must
3533 have the same block factor. This check was missing from
3534 comptypes_internal(). This update adds the check for blocking
3537 2010-10-17 Gary Funck <gary@intrepid.com>
3539 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
3541 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
3543 2010-10-17 Gary Funck <gary@intrepid.com>
3545 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
3546 45869 - [4.5/4.6 Regression] type mismatch in shift expression
3547 produces ice with -O3 and -m32.
3548 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
3550 2010-10-17 Gary Funck <gary@intrepid.com>
3552 * c-common.c: Diagnose the application of the various "*sizeof"
3553 operations on generic pointer-to-shared as a compilation error.
3555 2010-10-17 Gary Funck <gary@intrepid.com>
3557 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
3558 message regarding a function parameter being declared with a shared
3560 The parameter's 'name' value is not defined at this point, and
3561 cannot be used in the error message. This update removes the
3562 reference to 'name', and eliminates the segfault.
3564 2010-10-17 Gary Funck <gary@intrepid.com>
3566 * upc/upc-act.c: Issue a compilation error on attempts to perform
3567 arithmetic on generic pointer-to-shared values.
3568 (The rest of this update is a small code clean up.)
3570 2010-10-17 Gary Funck <gary@intrepid.com>
3572 * upc/upc-lang.c: For UPC only, issue errors for arithmetic and related
3573 operations on void types.
3574 This update simulates the effect of -Werror=pointer-arith, thus
3575 causing arithmetic on void types, sizeof(void) and so on to be
3576 considered compilation errors. This meets the expectations of some
3577 harness tests and the RTED/CTED test suites. GCC is more
3578 permissive, but since this is for UPC only, we can fairly safely
3579 define this new policy.
3581 2010-10-16 Gary Funck <gary@intrepid.com>
3583 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
3584 The gcc/Makefile.in rules for install-plugin had to be re-written to
3585 break up a long list of header files that exceeded the command line
3586 limitation imposed by Irix.
3587 Access functions for TFmode types had to be implemented.
3588 Apparently, this is the mode used for the SGI/MIPS port to represent
3591 2010-10-16 Gary Funck <gary@intrepid.com>
3593 * upc/upc-act.c: Fix bug: Static initialization of shared
3594 arrays is unsupported -- issue an error message.
3595 Currently, static initialization of a shared array is not
3596 implemented correctly.
3597 We do not plan to fix this for a while, therefore the compiler will
3598 issue an error message indicating that this is an unsupported
3601 2010-10-14 Gary Funck <gary@intrepid.com>
3603 * c-decl.c: Fix bug: Multiple equal blocking factors specified
3604 via typedef chain should not be diagnosed as an error.
3605 If the block size that is given by the typedef is equal to the block
3606 size given explicitly in the variable declaration, then do not
3607 complain. The easiest way to make this check was to create a
3608 temporary type that is a clone of the element type and then set its
3609 block size using the given layout qualifier. Then compare the block
3610 size of the temporary (the declaration) to the block size specified
3611 in the typedef. This complexity is needed, because the '[*]' block
3612 size needs to be calculated, and the '[]' needs to be mapped into a
3615 2010-10-13 Gary Funck <gary@intrepid.com>
3617 * upc/upc-act.c: Fix bug: negative layout qualifiers not diagnosed
3619 The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
3620 it was not diagnosed as an error. With this fix, negative block
3621 sizes will generate a translation error.
3623 2010-10-10 Gary Funck <gary@intrepid.com>
3625 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
3627 The compiler properly detected the presence of two or more layout
3628 qualifiers as an error, but then hit an assertion check, because the
3629 code that followed the error expected to see a qualifier and not a
3630 layout specifier. The fix is simple: just return immediately after
3631 detecting the error.
3633 2010-10-10 Gary Funck <gary@intrepid.com>
3635 * c-decl.c: Improve error diagnostics for various cases of UPC
3636 shared array type declarations.
3637 Add the check for this error: "In the dynamic translation
3638 environment, THREADS may not appear in declarations of shared arrays
3639 with indefinite block size". Also, fix up a few of the other
3640 related error diagnostics.
3642 2010-10-10 Gary Funck <gary@intrepid.com>
3644 * upc/upc-act.c: Fix bug: ICE: Attempt to take the difference of
3645 shared and non-shared pointers
3646 The compiler detected the error, and then tried to return
3647 error_mark_node. This apparently is not acceptable, as there is an
3648 explicit assertion check to prevent this from happening in
3649 build_binary_op. Return the more user-friendly size_one_node
3652 2010-10-09 Gary Funck <gary@intrepid.com>
3654 * c-common.c: Fix bug: segfault on incomplete array definition.
3655 This turned out to be a bit complicated. The logic in
3656 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3657 the THREADS identifier in the case where the blocking factor has
3658 been set to indefinite ([]). This can happen when indefinite array
3659 declarations are processed for shared arrays. At that time, the
3660 file scope has been closed and THREADS is no longer in scope. Some
3661 more work is needed on upc_lang_layout_decl(). It has some
3662 duplication, and notably duplicates the two branches of the if
3663 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3664 caller of this routine (layout_decl()).
3665 The method of forcing a layout qualifier of [] in the indefinite
3666 declaration handler is odd a well. The code that just does the
3667 setting of the block factor, needs to moved into its own routine
3668 that doesn't depend upon a declspec for '[]' to be passed in, just
3669 in order to set the blocking factor to some value (in this case, 0).
3670 Also, the logic for how that shared type is constructed is strange.
3671 First the type with 0 blocking factor is set. Then the shared
3672 qualifier is removed from the type, and then added back later. The
3673 intermediate type has a blocking factor set, but it has no shared
3674 qualifier. Fixing this will require some thought. It is tempting
3675 just to make indefinite shared arrays an error, rather than forcing
3676 the dimension to be '1'.
3677 This likely fixes a serious error in the previous update to
3678 upc_lang_layout_decl(), where it didn't have the logic to set
3679 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
3680 the previous update would fail on many tests.
3682 2010-10-09 Gary Funck <gary@intrepid.com>
3684 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
3685 (decl) is null, which can happen if some layout error occurred
3688 2010-10-09 Gary Funck <gary@intrepid.com>
3690 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
3691 "variable-sized" when compiled in dynamic threads.
3692 This long-standing bug is easily fixed. Just check
3693 for the situation that the non-constant sized type is shared and
3694 that it does not have a dimension that references a multiple of
3695 threads. If this criteria is met, then issue a meaningful
3698 2010-10-09 Gary Funck <gary@intrepid.com>
3700 * upc/upc-act.c: Fix bug: segfault on incomplete array definition.
3701 This turned out to be a bit complicated. The logic in
3702 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3703 the THREADS identifier in the case where the blocking factor has
3704 been set to indefinite ([]). This can happen when indefinite array
3705 declarations are processed for shared arrays. At that time, the
3706 file scope has been closed and THREADS is no longer in scope. Some
3707 more work is needed on upc_lang_layout_decl(). It has some
3708 duplication, and notably duplicates the two branches of the if
3709 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3710 caller of this routine (layout_decl()).
3711 The method of forcing a layout qualifier of [] in the indefinite
3712 declaration handler is odd a well. The code that just does the
3713 setting of the block factor, needs to moved into its own routine
3714 that doesn't depend upon a declspec for '[]' to be passed in, just
3715 in order to set the blocking factor to some value (in this case, 0).
3716 Also, the logic for how that shared type is constructed is strange.
3717 First the type with 0 blocking factor is set. Then the shared
3718 qualifier is removed from the type, and then added back later. The
3719 intermediate type has a blocking factor set, but it has no shared
3720 qualifier. Fixing this will require some thought. It is tempting
3721 just to make indefinite shared arrays an error, rather than forcing
3722 the dimension to be '1'.
3723 This likely fixes a serious error in the previous update to
3724 upc_lang_layout_decl(), where it didn't have the logic to set
3725 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
3726 the previous update would fail on many tests.
3727 See also: gcc/c-common.c gcc/upc/upc-act.c
3729 2010-10-01 Gary Funck <gary@intrepid.com>
3731 * configure, configure.ac: Update manual page, and bug reporting
3733 Update "man" page to reflect debugging switches. Also, some general
3734 clean up. Change the bug reporting URL to point to gccupc.org.
3736 2010-10-01 Gary Funck <gary@intrepid.com>
3738 * upc/upc-manpage.html, upc.1: Update manual page, and bug reporting
3740 Update "man" page to reflect debugging switches. Also, some general
3741 clean up. Change the bug reporting URL to point to gccupc.org.
3742 See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
3745 2010-10-01 Gary Funck <gary@intrepid.com>
3747 * upc/upc-act.c: Do not zap all qualifier bits when constructing a
3748 non-shared result node.
3749 This fix was suggested by Paul H. in the following Berkeley Bugzilla
3750 report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
3751 use of "!" rather than "~" zapped all the type qualifier bits rather
3752 than just those that are related to the "shared" qualifier. This
3753 fix clears only the relevant bits.
3755 2010-09-27 Gary Funck <gary@intrepid.com>
3757 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
3758 the UPC forall depth count variable is not found.
3759 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
3760 The compiler will generate code that references this variable in
3761 order to implement nested upc_forall semantics. If there is a
3762 compiler build or install problem, this variable may not be found.
3763 In this case, terminate with an internal_error().
3765 2010-09-26 Gary Funck <gary@intrepid.com>
3767 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
3768 mis-diagnosed as syntax error.
3769 Fix a failure exhibited by the Berkeley test case,
3770 bug873a.upc, which has the code:
3772 upc_forall (;;;d) {...} The compiler did not properly handle
3773 the empty "condition" clause, and did not recover well when it was
3774 determined that the use of a double value, "d" above, was neither a
3775 pointer-to-shared nor an integer expression. The update implements a
3776 fix for both issues.
3777 See also: gcc/c-parser.c gcc/upc/upc-act.c
3779 2010-09-26 Gary Funck <gary@intrepid.com>
3781 * upc/upc-act.c: Fix bug: upc_forall with empty clauses
3782 mis-diagnosed as syntax error.
3783 A failure was exhibited by the Berkeley test case,
3784 bug873a.upc, which has the code:
3786 upc_forall (;;;d) {...} The compiler did not properly handle
3787 the empty "condition" clause, and did not recover well when it was
3788 determined that the use of a double value, "d" above, was neither a
3789 pointer-to-shared nor an integer expression. The update implements a
3790 fix for both issues.
3791 See also: gcc/c-parser.c gcc/upc/upc-act.c
3793 2010-09-25 Gary Funck <gary@intrepid.com>
3795 * upc/upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
3796 gimple check when calculating affinity for upc_forall.
3797 Intrepid test, test10.upc, failed to compile due a mis-match between
3798 the COMPONENT_REF node and the internal 'thread' field. Changed the
3799 code to make the types agree, and added a conversion to sizetype if
3802 2010-09-23 Gary Funck <gary@intrepid.com>
3804 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
3805 incorporated into the referencing type.
3806 This was semi-fixed a few times before. This update fixes a few
3807 more places where the layout qualifier wasn't being propagated
3808 through typedef's properly. What made this a bit tricky is shown in
3809 the example cited in the bug report:
3810 typedef shared [5] int A_t; A_t A[5*THREADS];
3811 In the typedef, the blocksize is being applied to a shared *scalar*,
3812 and the code was applying the blocksize only to arrays. This update
3813 handles shared scalars correctly.
3815 2010-09-23 Gary Funck <gary@intrepid.com>
3817 * upc/upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
3818 with static threads and size not a multiple of threads.
3819 Add an extra check for an attempt to apply a '[*]' layout qualifier
3820 to a shared array that does not specify a size that is a multiple of
3821 THREADS, when compiled in a static THREADS compilation environment.
3823 2010-09-22 Gary Funck <gary@intrepid.com>
3825 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
3826 upc_forall() semantics are not implemented
3827 The checkforall test in the Berkeley harness test suite indicated
3828 that GCC/UPC was not properly implementing nested upc_forall
3829 semantics. Nested upc_forall statements (both statically or
3830 dynamically nested) must implement their affinity clause as if it
3831 were "continue"; thus all steps in the loop must execute without
3832 regard for affinity. To implement these semantics a global depth
3833 counter, __upc_forall_depth, is maintained by the generated code
3834 that implements upc_forall.
3835 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3836 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3837 libupc/include/upc.h libupc/smp/upc_main.c
3839 2010-09-22 Gary Funck <gary@intrepid.com>
3841 * upc/upc-act.c, upc/upc-act.h: Fix bug: Nested upc_forall() semantics
3843 The checkforall test in the Berkeley harness test suite indicated
3844 that GCC/UPC was not properly implementing nested upc_forall
3845 semantics. Nested upc_forall statements (both statically or
3846 dynamically nested) must implement their affinity clause as if it
3847 were "continue"; thus all steps in the loop must execute without
3848 regard for affinity. To implement these semantics a global depth
3849 counter, __upc_forall_depth, is maintained by the generated code
3850 that implements upc_forall.
3851 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3852 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3853 libupc/include/upc.h libupc/smp/upc_main.c
3855 2010-09-19 Gary Funck <gary@intrepid.com>
3857 * c-decl.c: c-decl.c: zero out the layout specifier, after
3858 processing an array type.
3859 Fix the previous fix, that moved the setting of the type's layout
3860 qualifier to the outside of the array type processing loop. What is
3861 missing from the fix is that the layout_qualifier variable needs to
3862 be cleared after setting the type's blocksize.
3864 2010-09-19 Gary Funck <gary@intrepid.com>
3866 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
3867 given blocksize is greater than UPC_MAX_BLOCKSIZE.
3868 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
3869 the actual maximum block size. Therefore, the message was correct,
3870 but the underlying value that was being checked was wrong. Change
3871 the values so that they agree with the actual implementation-defined
3874 2010-09-18 Gary Funck <gary@intrepid.com>
3876 * upc/upc-act.c, upc/upc-pts-packed.c, upc/upc-pts-struct.c:
3877 Implement -fupc-debug switch.
3879 2010-09-11 Gary Funck <gary@intrepid.com>
3881 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
3882 multi-dimensional shared array with dynamic threads.
3883 This declaration caused an internal compiler error when compiled
3884 with dynamic threads:
3885 shared [*] int A[THREADS][16]; The bug was discovered when
3886 compiling the RTED_UPC test suite.
3887 The fix is to process layout qualifiers after the entire array type
3888 has been built. Otherwise, we try to calculate the blocksize on a
3889 shared array type that has not had its "size depends upon the value
3890 of THREADS" flag set.
3891 Also, added a test case.
3892 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
3894 2010-07-11 Gary Funck <gary@intrepid.com>
3896 Fix a bug where a statement in c_build_qualified_type()
3897 in the trunk had been inadvertently deleted.
3898 This bug showed up in the IA64 port, because jmpbuf's
3899 on that architecture must be 16 byte aligned, and they were not.
3900 c-typeck.c (c_build_qualified_type): Revive the deleted line.
3902 2010-07-08 Gary Funck <gary@intrepid.com>
3904 Make changes so that other language compilers
3905 will build and bootstrap.
3906 * c-family/c-common.c (compiling_upc, flag_upc,
3907 flag_upc_instrument, flag_upc_instrument_functions,
3908 use_upc_dwarf2_extensions): Move to stub-upc.c and
3910 * c-family/c-common.h (use_upc_dwarf2_extensions,
3911 compiling_upc): Add extern definitions - needed
3912 to compile/build other language front ends.
3913 * c-family/c.opt: Fix the spelling of ObjC.
3914 It had been incorrectly spelled as Objc.
3915 * c-family/c.opt: Add UPC for the various switches
3916 that are valid for both C and ObjC.
3917 * c-fmaily/c-opts.c: Add CL_UPC to the list of
3918 supported options switches when compiling assembly
3920 * lto/lto-lang.c (use_upc_dwarf2_extensions,
3921 flag_upc_instrument, flag_upc_instrument_functions):
3922 Remove these definitions. They have been moved
3923 to c-family/stub-upc.c.
3924 * upc/ChangeLog: Move relevant entries
3926 * c-family/stub-upc.c (compiling_upc, flag_upc,
3927 flag_upc_instrument, flag_upc_instrument_functions,
3928 use_upc_dwarf2_extensions): Moved from c-common.c
3929 * upc/upc-lang.c (compiling_upc, flag_upc,
3930 flag_upc_instrument, flag_upc_instrument_functions,
3931 use_upc_dwarf2_extensions): Moved from c-common.c
3932 * objc/objc-act.c (objc_gimplify_expr): Add additional
3933 parameters to c_gimplify_expr() call, that are used
3934 by upc's tree rewrites.
3935 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
3936 * gcc/cp/lex.c (init_reswords): If not compiling
3937 UPC, then mask off the UPC keywords.
3938 * cp/Make-lang.in (C_STUB_OBJS): Use this
3939 make macro to link with c-family/stub-objc.o
3940 and c-family/stub-upc.o.
3941 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
3942 * java/Make-lang.in (C_STUB_OBJS): Likewise.
3943 * objc/Make-lang.in: Link with c-family/stub-upc.o
3944 to avoid undefined references.
3945 c-parser.c: Fix line indentation.
3946 * libcpp/include/cpplib.h: Remove CL_UPC from
3947 the list of language kinds accepted by the
3948 C preprocessor. This is not necessary because
3949 UPC is a derivative of C99, and does not need
3950 a different language kind.
3951 * c-fmaily/c-opts.c (c_common_handle_option):
3952 Call set_std_c99() when processing the
3953 "--lang upc" switch, instead of setting the
3954 language kind to CL_UPC.
3955 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
3957 2010-07-03 Gary Funck <gary@intrepid.com>
3959 Merge trunk version 161517 into gupc branch.
3960 * gcc/stub-upc.c: Move to gcc/c-family/.
3961 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
3962 Add 'unused' attributes to avoid "set, but
3963 not referenced" warnings.
3964 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
3967 2010-07-03 Gary Funck <gary@intrepid.com>
3969 Merge trunk version 161517 into gupc branch.
3970 * upc/config-lang.in: Update references to files
3971 moved into c-family/.
3972 * upc/Make-lang.in: Likewise.
3973 * upc/upc-act.c: Likewise.
3974 * upc/upc-gasp.c: Likewise.
3975 * upc/upc-gimplify.c: Likewise.
3976 * upc/upc-lang.c: Likewise.
3977 * upc/upc-pts-packed.c: Likewise.
3978 * upc/upc-pts-struct.c: Likewise.
3979 * upc/upc-act.c: (upc_handle_option) add parameters to
3980 effect pass through call to c_common_handle_option.
3981 * upc/upc-act.h: (upc_handle_option) Likewise.
3982 * upc/upc-act.c: (map_unshared_var) used typed ggc allocation.
3983 * upc/upc-act.c: (upc_build_init_func) add call to
3984 to mark_decl_referenced(), to ensure that UPC shared
3985 variable initializer function is not removed from
3986 the call tree graph.
3988 2010-03-01 Gary Funck <gary@intrepid.com>
3990 Create gupc branch from trunk version 157149.