1 2013-05-13 Gary Funck <gary@intrepid.com>
3 Merge trunk version 198815 into gupc branch.
5 2013-05-06 Gary Funck <gary@intrepid.com>
7 Merge trunk version 198622 into gupc branch.
9 2013-04-29 Gary Funck <gary@intrepid.com>
11 Merge trunk version 198433 into gupc branch.
13 2013-04-15 Gary Funck <gary@intrepid.com>
15 Merge trunk version 197958 into gupc branch.
17 2013-04-08 Gary Funck <gary@intrepid.com>
19 Merge trunk version 197571 into gupc branch.
21 2013-04-04 Gary Funck <gary@intrepid.com>
23 Per the UPC 1.3 specification, the type of the
24 optional barrier/notify/wait expression is not constrained to
25 'int'. Instead, any type that is assignment compatible
26 with an 'int' type is permitted.
27 * c/c-parser.c (c_parser_upc_sync_statement): Do not check
28 the optional expression type here. Let upc_build_sync_stmt()
30 * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
31 * c/c-typeck.c (c_cvt_expr_for_assign): New. Also, call
32 error_at() in lieu of error() when the source location is known.
33 * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
34 to check/convert the optional synchronization statement
37 2013-04-02 Gary Funck <gary@intrepid.com>
39 Merge trunk version 197340 into gupc branch.
41 2013-04-02 Gary Funck <gary@intrepid.com>
43 Revert revision 178346 (2011-08-30)
44 which changed the prototype of check_qualified_type and related
45 functions so that their parameters were just 'tree' and not
46 'const_tree'. This seemed necessary at the time because of a
47 change to TYPE_BLOCK_FACTOR(), which in turn called function
48 that hashed the type node pointer. The hash functions did
49 not accept "const void *" pointers. Implement a work around
50 that removes this restriction.
51 * c/c-typeck.c: Revert.
53 * tree.h: Revert. Change prototype of upc_block_factor_lookup()
54 to accept a 'const_tree' pointer to a type node.
55 * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
56 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
57 input argument and convert this to 'tree' for use with hash function.
59 2013-03-25 Gary Funck <gary@intrepid.com>
61 Merge trunk version 197029 into gupc branch.
63 2013-03-21 Gary Funck <gary@intrepid.com>
65 Released GUPC 4.8.0.3 based on version 196601.
66 This release version was committed on 2013-03-11.
67 * DATESTAMP: Bump date stamp.
69 2013-03-18 Gary Funck <gary@intrepid.com>
71 Merge trunk version 196771 into gupc branch.
72 * DEV-PHASE: Bump release identifier to 4.9.0-1.
74 2013-03-11 Gary Funck <gary@intrepid.com>
76 Merge trunk version 196592 into gupc branch.
78 2013-03-04 Gary Funck <gary@intrepid.com>
80 Merge trunk version 196422 into gupc branch.
82 2013-02-25 Gary Funck <gary@intrepid.com>
84 Merge trunk version 196253 into gupc branch.
86 2013-02-18 Gary Funck <gary@intrepid.com>
88 Merge trunk version 196115 into gupc branch.
90 2013-02-11 Gary Funck <gary@intrepid.com>
92 Merge trunk version 195937 into gupc branch.
94 2013-02-04 Gary Funck <gary@intrepid.com>
96 Merge trunk version 195707 into gupc branch.
98 2013-01-28 Gary Funck <gary@intrepid.com>
100 Merge trunk version 195502 into gupc branch.
102 2013-01-21 Gary Funck <gary@intrepid.com>
104 Merge trunk version 195330 into gupc branch.
106 2013-01-14 Gary Funck <gary@intrepid.com>
108 Merge trunk version 195164 into gupc branch.
110 2013-01-07 Gary Funck <gary@intrepid.com>
112 Merge trunk version 194962 into gupc branch.
114 2012-12-24 Gary Funck <gary@intrepid.com>
116 Merge trunk version 194709 into gupc branch.
118 2012-12-17 Gary Funck <gary@intrepid.com>
120 Merge trunk version 194552 into gupc branch.
122 2012-12-10 Gary Funck <gary@intrepid.com>
124 Merge trunk version 194351 into gupc branch.
126 2012-12-03 Gary Funck <gary@intrepid.com>
128 Merge trunk version 194076 into gupc branch.
130 2012-11-30 Gary Funck <gary@intrepid.com>
132 Released GUPC 4.8.0.2 based on version 193446.
133 Date of release: 2012-11-12.
134 * DEV-PHASE: Bump release identifier to 4.8.0-3.
135 * DATESTAMP: Bump date stamp.
137 2012-11-26 Gary Funck <gary@intrepid.com>
139 Merge trunk version 193807 into gupc branch.
141 2012-11-20 Gary Funck <gary@intrepid.com>
143 Merge trunk version 193672 into gupc branch.
145 2012-11-19 Gary Funck <gary@intrepid.com>
147 Merge trunk version 193617 into gupc branch.
149 2012-11-15 Gary Funck <gary@intrepid.com>
151 Merge trunk version 193426 into gupc branch.
153 2012-11-12 Gary Funck <gary@intrepid.com>
155 Released GUPC 4.8.0.1 based on version 192948.
156 Date of release: 2012-10-29.
157 * DEV-PHASE: Bump release identifier to 4.8.0-2.
158 * DATESTAMP: Bump date stamp.
160 2012-11-05 Gary Funck <gary@intrepid.com>
162 Merge trunk version 193152 into gupc branch.
164 2012-10-29 Gary Funck <gary@intrepid.com>
166 Merge trunk version 192909 into gupc branch.
168 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
170 Remove unused --upc-pthreads-per-process compile switch.
171 * c-family/c.opt: Remove --upc-pthreads-per-process switch
172 that compiler/runtime do not use.
173 * c-family/c-opts.c (c_common_handle_option): Remove support for
174 --upc-pthreads-per-process switch.
175 * c-family/c-common.c: Ditto.
176 * c-family/c-common.h: Ditto.
178 2012-10-27 Gary Funck <gary@intrepid.com>
180 * defaults.h: fix typos and formatting in UPC-related entries.
182 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
184 Place shared initialization code into the .text
185 section instead of a separate .upc_init section.
186 * defaults.h (UPC_INIT_SECTION_NAME): Delete.
187 (UPC_INIT_BEGIN_NAME): Delete.
188 (UPC_INIT_END_NAME): Delete.
189 * doc/tm.texi.in: Ditto.
190 * doc/tm.texi: Ditto.
192 2012-10-22 Gary Funck <gary@intrepid.com>
194 Merge trunk version 192673 into gupc branch.
196 2012-10-15 Gary Funck <gary@intrepid.com>
198 Merge trunk version 192449 into gupc branch.
200 2012-10-08 Gary Funck <gary@intrepid.com>
202 Merge trunk version 192198 into gupc branch.
204 2012-10-01 Gary Funck <gary@intrepid.com>
206 Merge trunk version 191931 into gupc branch.
208 2012-09-26 Gary Funck <gary@intrepid.com>
210 Implement support for various UPC version 1.3 specification
211 additions and changes. Deprecate support for upc_local_alloc.
212 Add support for upc_tick (wall-clock timer) library.
213 Add support for collective de-allocation functions:
214 upc_all_free and upc_all_lock_free.
215 Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
216 libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
218 2012-09-24 Gary Funck <gary@intrepid.com>
220 Merge trunk version 191658 into gupc branch.
222 2012-09-17 Gary Funck <gary@intrepid.com>
224 Merge trunk version 191376 into gupc branch.
226 2012-09-10 Gary Funck <gary@intrepid.com>
228 Merge trunk version 191141 into gupc branch.
230 2012-08-27 Gary Funck <gary@intrepid.com>
232 Merge trunk version 190707 into gupc branch.
233 * tree.h (struct tree_base): Adjust various
234 UPC tree and type flags to refer to the
235 newly introduced u.bits field.
237 2012-08-20 Gary Funck <gary@intrepid.com>
239 Merge trunk version 190524 into gupc branch.
240 Incorporates a fix in genoutput.c (to properly use
241 CONST_CAST) that led to build failures with
242 older versions of g++.
244 2012-08-16 Gary Funck <gary@intrepid.com>
246 Merge trunk version 190437 into gupc branch.
247 Incorporates a fix for a build failure on the PPC
248 due to passing incorrect switches to the assembler.
249 Also, first merged trunk revision that compiles GCC
250 with the C++ compiler in the first stage.
252 2012-08-13 Gary Funck <gary@intrepid.com>
254 Merge trunk version 190336 into gupc branch.
256 2012-08-09 Gary Funck <gary@intrepid.com>
258 * c-family/c-common.c (c_fully_fold_internal): Do not fold
259 offsetof-like expressions when they are applied to UPC
262 2012-08-06 Gary Funck <gary@intrepid.com>
264 Merge trunk version 190173 into gupc branch.
266 2012-08-01 Gary Funck <gary@intrepid.com>
268 Merge trunk version 190063 into gupc branch.
269 Incorporates fix for build failure on IA64.
271 2012-07-30 Gary Funck <gary@intrepid.com>
273 Merge trunk version 189954 into gupc branch.
275 2012-07-27 Gary Funck <gary@intrepid.com>
277 Merge trunk version 189856 into gupc branch.
278 Incorporates fix for bootstrap with a sub-set of language
279 specific source directories present.
280 * optabs.c: Revert to trunk. Rather than defining opcodes
281 as a way of defining get/put runtime library function names,
282 generate them directly in gcc/upc/upc-genericize.c.
284 * genopinit.c: Ditto.
286 2012-07-23 Gary Funck <gary@intrepid.com>
288 Merge trunk version 189777 into gupc branch.
290 2012-07-16 Gary Funck <gary@intrepid.com>
292 Merge trunk version 189545 into gupc branch.
294 2012-07-12 Gary Funck <gary@intrepid.com>
296 Merge trunk version 189366 into gupc branch.
298 2012-07-05 Gary Funck <gary@intrepid.com>
300 Merge trunk version 189274 into gupc branch.
301 Incorporates graphite build infrastructure changes.
303 2012-07-04 Gary Funck <gary@intrepid.com>
305 Merge trunk version 189080 into gupc branch.
306 * Makefile.in: Adjust for move of C front-end files.
307 * c/Make-lang.in: Ditto.
309 2012-07-03 Gary Funck <gary@intrepid.com>
311 Merge trunk version 189078 into gupc branch.
313 2012-06-25 Gary Funck <gary@intrepid.com>
315 Merge trunk version 188931 into gupc branch.
317 2012-06-18 Gary Funck <gary@intrepid.com>
319 Merge trunk version 188721 into gupc branch.
321 2012-06-11 Gary Funck <gary@intrepid.com>
323 Merge trunk version 188380 into gupc branch.
325 2012-06-04 Gary Funck <gary@intrepid.com>
327 Merge trunk version 188168 into gupc branch.
329 2012-05-29 Gary Funck <gary@intrepid.com>
331 Merge trunk version 187927 into gupc branch.
333 2012-05-18 Gary Funck <gary@intrepid.com>
335 Merge trunk version 187666 into gupc branch.
336 Incorporates fix for ICE in tree vectorization pass
337 when processing strided loads.
339 2012-05-17 Gary Funck <gary@intrepid.com>
341 Merge trunk version 187578 into gupc branch.
343 2012-05-09 Gary Funck <gary@intrepid.com>
345 Merge trunk version 187347 into gupc branch.
346 Incorporates fix for segfault in tree vectorization pass.
348 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
350 * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
351 Appropriate libraries and include files are added on the
352 command line to make it possible to compile with the driver
355 2012-04-29 Nenad Vukicevic <nenad@intrepid.com>
357 * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
358 PPC ABI. In the UPC 'struct' pointer-to-shared representation,
359 a function returns a pointer-to-shared in memory instead
361 (rs6000_pass_by_reference): Ditto.
363 2012-04-28 Gary Funck <gary@intrepid.com>
365 * c-decl.c (grokdeclarator): Set 'type' to error node
366 after detecting "shared auto variable" error to avoid
367 downstream complications.
368 * upc-act.c: Fix a couple of spelling errors in comments.
370 2012-04-26 Gary Funck <gary@intrepid.com>
372 * c-family/c-pragma.c (handle_pragma_upc):
373 Fix typo in warning message.
375 2012-04-17 Gary Funck <gary@intrepid.com>
377 Merge trunk version 186486 into gupc branch.
379 2012-04-17 Gary Funck <gary@intrepid.com>
381 * c-family/c-pragma.c (disable_pupc_mode): Return the previous
382 value of the pupc mode. Fixes a compile-time warning.
383 * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
384 disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
385 Improve source formatting.
387 2012-04-09 Gary Funck <gary@intrepid.com>
389 Merge trunk version 186243 into gupc branch.
390 Incorporates a powerpc 'ffi' fix.
392 2012-03-16 Gary Funck <gary@intrepid.com>
394 Merge trunk version 185454 into gupc branch.
395 Incorporates a libgcc fix for builds on Darwin.
397 2012-03-13 Gary Funck <gary@intrepid.com>
399 Merge trunk version 185278 into gupc branch.
400 * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
401 call build_pointer_type() to apply UPC-specific qualifiers.
402 * top-level/configure.ac: factor the checking for posix hostst
403 out of the libgomp section so that it can also be used by libgupc.
404 * top-level/configure: Re-generate.
405 * DEV-PHASE: bump to 4.8.0-1.
407 2012-03-12 Gary Funck <gary@intrepid.com>
409 * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
410 the mode for a pointer for upc-pointer-to-shared types.
412 2012-03-04 Gary Funck <gary@intrepid.com>
414 Merge trunk version 184900 into gupc branch.
416 2012-02-17 Gary Funck <gary@intrepid.com>
418 Released GUPC 4.7.0.2 based on version 183992.
419 * DEV-PHASE: Bump release identifier to 4.7.0-3.
420 * DATESTAMP: Bump date stamp.
422 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
424 * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
425 code generation (same as #pragma pupc off).
426 (set_pupc_mode): New. Set/restore profiling mode.
427 * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
428 (set_pupc_mode): New. Prototype.
429 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
430 profiling code for shared variables initialization routines.
432 2012-01-31 Gary Funck <gary@intrepid.com>
434 Merge trunk version 183751 into gupc branch.
435 Incorporates fix for bootstrap failure on openSUSE 12.1.
437 2012-01-10 Gary Funck <gary@intrepid.com>
439 Merge trunk version 183072 into gupc branch.
440 Incorporates libcpp __BASE_FILE__ fix.
442 2011-12-20 Nenad Vukicevic <nenad@intrepid.com>
444 * top-level/Makefile.def (flags_to_pass): Added GUPC
445 defines. Fixes the make error when upc is not specified as one
446 of the languages to build.
447 * top-level/Makefile.in: Re-generate.
449 2011-11-22 Gary Funck <gary@intrepid.com>
451 * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
452 * dwarf2out.c (gen_compile_unit_die): Check for
453 the "GNU UPC" language string in lieu of "GCC UPC".
454 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
456 2011-11-18 Gary Funck <gary@intrepid.com>
458 Merge trunk version 181552 into gupc branch.
459 Incorporates libgcc/libunwind fix for IA64.
461 2011-11-19 Gary Funck <gary@intrepid.com>
463 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
464 Add check for UPC when defining the language type value
465 in a traceback entry.
467 2011-11-18 Gary Funck <gary@intrepid.com>
469 Merge trunk version 181493 into gupc branch.
470 Incorporates final fix for PR target/49992.
472 2011-11-09 Nenad Vukicevic <nenad@intrepid.com>
474 * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
475 change that converted relative include paths into absolute
476 ones, as it does not work with older version of make (3.80).
478 2011-10-27 Nenad Vukicevic <nenad@intrepid.com>
480 Apply patch for Darwin build - PR49992.
481 * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
482 * gcc/configure.ac: Ditto.
483 * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
484 * gcc/ada/gcc-interface/Makefile.in: Ditto.
485 * top-level/configure: Re-generate.
486 * gcc/configure: Re-genrate.
488 2011-10-26 Gary Funck <gary@intrepid.com>
490 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
491 "libupc" to "libgupc".
492 * top-level/configure.ac: Implement support for cross-builds, and
493 adjust for rename of libupc to libgupc.
494 * top-level/Makefile.tpl: Ditto.
495 * top-level/Makefile.def: Ditto.
496 * top-level/configure: Re-generate.
497 * top-level/Makefile.in: Re-generate.
498 * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
499 * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
500 * doc/tm.texi: Re-generate.
501 * tree-pretty-print.c (dump_block_node): Delete unused variable.
502 * gcc.c: Adjust for rename of libupc to libgupc.
503 * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
504 Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
505 Change "xupc" to "xgupc".
506 * configure.ac: Change "GCC UPC" to "GNU UPC".
507 * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
508 so that they are absolute paths. This is needed because
509 the upc-crtstuff builds are in the libgupc library build
510 directories which are not at the same level as libgcc.
511 * config/darwin.h: Adjust for rename of libupc to libgupc.
513 2011-10-20 Gary Funck <gary@intrepid.com>
515 Merge trunk version 180276 into gupc branch.
516 Incorporates fix for PR bootstrap/50709.
518 2011-10-20 Gary Funck <gary@intrepid.com>
520 Merge trunk version 180246 into gupc branch.
522 2011-10-19 Gary Funck <gary@intrepid.com>
524 Merge trunk version 180233 into gupc branch.
525 Incorporates fix for PR debug/49310 (var tracking).
527 2011-10-11 Nenad Vukicevic <nenad@intrepid.com>
529 * testsuite/lib/upc-dg.exp: Limit number of torture runs to
530 only four (O0 static/dynamic, O3 static/dynamic).
531 Detect -fupc-threads-0 as an option for dynamic threads
534 2011-10-10 Gary Funck <gary@intrepid.com>
536 * tree.c (check_qualified_type, check_aligned_type):
537 Call tree_int_cst_equal() to compare UPC blocking factors
538 if the corresponding tree pointers are not equal.
539 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
541 2011-10-07 Nenad Vukicevic <nenad@intrepid.com>
543 Add configuration checks for struct/packed builds so we can
544 use upc_struct_pts/upc_packed_pts selectors in the testsuite.
545 * testsuite/lib/target-supports.exp
546 (check_effective_target_upc_struct_pts): New.
547 (check_effective_target_upc_packed_pts): New.
549 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
551 Add to FLAGS the flags needed to disable inlining of
552 UPC run-time access routines.
553 * testsuite/lib/target-supports.exp
554 (add_options_for_upc_library_calls): New.
556 2011-09-15 Gary Funck <gary@intrepid.com>
558 Fix ICE involving shared bit field accesses.
559 * tree.c (build3_stat): Propagate TEEE_SHARED()
560 and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
562 2011-09-13 Gary Funck <gary@intrepid.com>
564 Merge trunk version 178795 into gupc branch.
565 Incorporates fix to PR bootstrap/50010 for x86-32.
567 2011-09-08 Gary Funck <gary@intrepid.com>
569 Merge trunk version 178557 into gupc branch.
571 2011-09-07 Gary Funck <gary@intrepid.com>
573 Ensure that UPC pointer-to-shared type alignment is
574 propagated to the final type. Revert to long-standing
575 alignment policy: twice the size of a "C" pointer.
576 * tree.c (build_pointer_type): Propagate the alignment
577 of the UPC pointer-to-shared representation type
578 into the newly built pointer type.
580 2011-08-30 Gary Funck <gary@intrepid.com>
582 * tree.h (check_qualified_type): Change 'const_tree'
583 argument types back to 'tree' to avoid complaints
584 of assignment drops qualifiers for invocations of the
585 newly implemented TYPE_BLOCK_FACTOR() macro, which
586 invokes hash functions with 'tree' pointer values that
587 are not const qualified.
588 * tree.c (check_qualified_type, check_aligned_type): Ditto.
589 * c-typeck.c (comptypes_internal): Ditto.
591 2011-08-29 Gary Funck <gary@intrepid.com>
593 Fixes for regressions noted running "make check"
595 * fold-const.c (fold_unary_loc): Execute UPC-specific
596 checks for a cast-of-a-cast, only if one of the
597 operands is a UPC pointer-to-shared value.
598 * opts.c (print_specific_help): Fix a comparison
599 in an assert that checks that there are enough
600 bits reserved for the number of languages defined
603 2011-08-29 Gary Funck <gary@intrepid.com>
605 Implement a hash table to record UPC block factors.
606 * c-family/stub-upc.c (upc_block_factor_insert,
607 upc_block_factor_lookup): New dummy stub procedures.
608 * c-family/c-common.c (c_sizeof_or_alignof_type):
609 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
610 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
611 to copy (hashed) UPC blocking factor.
612 (set_type_quals): Likewise.
613 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
614 TYPE_HAS_THREADS_FACTOR().
615 (type_common.block_factor): Delete.
616 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
617 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
618 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
619 UPC blocking factors greater than one.
620 * dwarf2out.c (modified_type_die): Re-implement
621 logic that records UPC blocking factor in the generated
622 DWARF2 debugging information.
623 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
624 TYPE_HAS_THREADS_FACTOR().
625 * c-decl.c (finish_decl, grokdeclarator):
626 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
627 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
628 used by UPC, and print UPC-specific information.
630 2011-08-28 Gary Funck <gary@intrepid.com>
632 Re-work the type machinery to fully support and to unify support
633 for the UPC layout qualifier (blocking factor).
634 * c-family/stub-upc.c (upc_set_block_factor): Delete.
635 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
636 and update prototype.
637 * c-family/c-common.c (complete_array_type): call newly
638 defined c_build_qualified_type_1() instead of
639 upc_set_block_factor().
640 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
641 upc_apply_layout_qualifier() and update prototype.
642 (upc_set_block_factor): Delete prototype.
643 * c-family/c-common.h (c_build_qualified_type): redefine
644 as a pre-processor macro that invokes c_build_qualified_type_1()
645 with a null UPC layout qualifier.
646 (c_build_qualified_type_1): New. Add layout qualifier argument
647 to old c_build_qualified_type() prototype.
648 * tree.c (set_type_quals, check_qualified_type):
649 Add layout qualifier as argument.
650 (check_aligned_type): Add check for UPC block factor equality.
651 (get_qualified_type_1): Rename from get_qualified_type() and
652 add layout qualifier as argument.
653 (build_qualified_type_1): Rename from build_qualified_type() and
654 add layout qualifier as argument.
655 * tree.h (check_qualified_type): Add layout qualifier as argument
657 (get_qualified_type): Re-define as a as a pre-processor macro
658 that invokes get_qualified_type_1() with a null
659 UPC layout qualifier.
660 (get_qualified_type_1): Rename from get_qualified_type() and
661 add layout qualifier as argument.
662 * cp/tree.c (c_build_qualified_type_1): Rename from
663 c_build_qualified_type() and add (unused) layout qualifier
665 * c-decl.c (finish_decl): re-format long error messages.
666 (grokdeclarator): Re-work the logic so that it calls
667 upc_grok_layout_qualifier() to handle the UPC layout
668 qualifier, if present.
669 * c-typeck.c (qualify_type, common_pointer_type,
670 build_component_ref): Re-work the logic so that it calls
671 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
673 (c_build_qualified_type_1): Rename from c_build_qualified_type()
674 and add layout qualifier argument.
675 * print_tree.c (print_node): Re-format a long line.
677 2011-08-26 Gary Funck <gary@intrepid.com>
679 Merge trunk version 177949 into gupc branch.
680 * c-family/c-common.h (enum rid): Bump the number of type modifiers
682 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
683 to add new rliterals column value.
685 2011-08-26 Gary Funck <gary@intrepid.com>
687 * convert.c (convert_to_integer): Fix the check for the
688 difference between two UPC pointers-to-shared values.
690 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
692 * configure.ac: Fix the name for --with-upc-pts-packed-bits
693 option. Support --with-upc-packed-bits as deprecated. Fix the code to
694 correctly check packed bits.
695 * configure: Re-generate.
697 2011-08-16 Gary Funck <gary@intrepid.com>
699 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
700 the barrier id expression is not an integer expression.
702 2011-08-12 Gary Funck <gary@intrepid.com>
704 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
706 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
707 Set mode of UPC pointer-to-shared rep. to an
708 integral mode of size at least as large as the
709 size of the representation's struct type.
711 2011-08-12 Gary Funck <gary@intrepid.com>
713 Rework/simplify the UPC genericize pass.
714 * c-family/stub-upc.c (upc_apply_layout_qualifier,
715 upc_build_pointer_type): New.
716 (upc_set_block_factor): Adjust to new calling sequence.
717 (upc_build_shared_var_addr): Delete.
718 * c-family/c-common.c (complete_array_type): Adjust call
719 to upc_set_block_factor().
720 * c-family/c-upc.h (upc_apply_layout_qualifier,
721 upc_build_pointer_type): New.
722 (upc_build_shared_var_addr): Delete.
723 (upc_set_block_factor): Adjust to new calling sequence.
724 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
725 * c-decl.c (grokdeclarator): Call newly defined
726 upc_apply_layout_qualifier() instead of upc_set_block_factor().
727 * c-decl.c (grokdeclarator): Split long UPC-related error
728 messages into two lines.
729 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
730 directly. Revert that change to trunk. (upc_genericize() will
731 handle lowering the expressions that take the address of a
733 * config/i386/i386.c (ix86_promote_function_mode): For UPC
734 pointers-to-shared, return the type mode of the UPC pointer-to-shared
737 2011-08-10 Gary Funck <gary@intrepid.com>
739 Implement additional fixes for recent merge with trunk.
740 * explow.c (promote_mode): Do not attempt to promote
741 the mode for UPC pointer-to-shared types.
742 * config/i386/i386.c (function_value_64): Ditto.
744 2011-08-07 Gary Funck <gary@intrepid.com>
746 Merge trunk version 177548 into gupc branch.
747 * config/i386/i386.c (ix86_promote_function_mode):
748 Do not promote UPC pointers-to-shared to Pmode.
749 * c-family/c-ommon.c (pointer_int_sum):
750 Also check the pointer operand, rather than just
751 its type, when making the decision to derive
752 the equivalent unshared type.
753 * tree.c (build2_stat): If the type of the result
754 passed in as an argument is a UPC shared type,
755 derive the unshared equivalent when calculating
756 the result type of the node.
758 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
760 * config/darwin.c: Disable var_tracking option
761 on -O0 as it is supposed to run only when optimization
762 is applied. See GCC bug 49743.
764 2011-07-06 Gary Funck <gary@intrepid.com>
766 Re-implement the pass that lowers trees generated by
767 the UPC front-end into GENERIC. Previously this was
768 done within the gimplification framework, but this
769 required that gimplification be run before inlining
770 and various other passes, which did not fit in well
771 with the current design of the middle-end passes.
772 Now, the lowering is done by a newly defined language
773 specific genericize hook. With this change, we are
774 are able to undo some extensions made to the gimplify
775 logic, and thus can revert several files to trunk.
777 * c-decl.c: Add a check for UPC deprecated names which
778 may appear as undefined function names.
779 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
780 LTI_upc_getaddr): Remove definitions of unused UPC
781 library function names. These were defined back when
782 the libfunc interface was used to call these routines.
783 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
784 in UPC lowering (genericize) pass.
785 * langhooks.h (gimplify_expr): Revert to trunk's definition.
786 (instrument_func): Delete this hook. Now handled in
788 * tree-pass.h: Revert to trunk.
789 * c-typeck.c (build_unary_op): Adjust reference to
790 upc_genericize() in a comment.
791 * gimplify.c (create_tmp_var_raw): Delete logic that
792 was converting UPC shared types into unshared types
793 to be used for temporaries. Now handled in upc_genericize().
794 Replace with an assertion check.
795 (prepare_gimple_addressable): Revert to trunk's definition.
796 No longer needed as an externally called function.
797 (flag_instrument_functions_exclude_p): Re-define as
798 an externally called function.
799 (gimplify_function_tree): Delete code that implemented
800 call to UPC's language specific function instrumentation hook.
801 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
802 (prepare_gimple_addressable): Delete extern definition;
803 revert to trunk's definition.
804 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
805 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
806 * c-family/c-gimplify.c: Revert to trunk.
807 * cp/cp-gimplify.c: Revert to trunk.
808 * cp/cp-tree.h: Revert to trunk.
809 * explow.c: Revert to trunk.
810 * langhooks.c: Revert to trunk.
811 * libfuncs.h: Revert to trunk.
812 * objc/objc-act.c: Revert to trunk.
814 2011-06-30 Gary Funck <gary@intrepid.com>
816 * c-family/c.opt: Bring options definitions up-to-date
817 with respect to changes made in the trunk.
819 2011-06-29 Gary Funck <gary@intrepid.com>
821 Merge trunk version 175584 into gupc branch.
823 2011-06-13 Gary Funck <gary@intrepid.com>
826 * include/cpplib.h (enum c_lang):
827 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
828 This keeps all the "C" variants together.
829 * init.c (lang_defaults): Add an entry for UPC.
831 2011-06-09 Gary Funck <gary@intrepid.com>
833 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
834 a 32-bit target, the size expression overflowed, the result was
835 error_mark_node, and an ICE was triggered on an attempt to evaluate
836 C_TYPE_VARIABLE_SIZE() on the error node.
837 (upc_blocksizeof_expr, upc_blocksizeof_type,
838 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
839 Make similar changes to avoid further processing of error_mark_node.
841 2011-06-07 Gary Funck <gary@intrepid.com>
843 * sel-sched.c (move_op): Incorporate the following
844 patch to eliminate ICE at -O3 on IA64/Altix.
846 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
848 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
849 code_motion_path_driver returned 0 or 1.
850 (sel_region_finish): Clear h_d_i_d.
852 2011-06-02 Gary Funck <gary@intrepid.com>
854 Merge trunk version 174558 into gupc branch.
856 2011-05-30 Gary Funck <gary@intrepid.com>
858 * configure.ac: Make the default order of the virtual
859 address field in a UPC pointer-to-shared to be "first".
860 This reverts to the previous setting, and is a short term
861 measure to work around a bug found on the IA64,
862 where vaddr=last led to incorrect code generation.
863 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
864 in AC_DEFINE(), to agree with recent changes in files
865 that reference this define.
866 configure, config.in: Regenerate.
868 2011-05-26 Gary Funck <gary@intrepid.com>
870 * configure.ac: Fix typo when referring to $upc_vaddr_order.
871 configure: Regenerate.
873 * ../fixincludes/fixincl.x: Revert to trunk.
874 This file is auto-generated, and should not be merged.
876 2011-05-18 Gary Funck <gary@intrepid.com>
878 Merge trunk version 173845 into gupc branch.
880 2011-05-17 Gary Funck <gary@intrepid.com>
882 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
883 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
885 * c-family/c-pragma.c: Remove conditional compilation
886 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
887 Test 'compiling_upc' when compiling to determine if
888 the "upc" and "pupc" pragmas should be registered.
890 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
891 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
892 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
893 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
894 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
895 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
896 Move these target-dependent definitions from config/upc-conf.h
899 * configure.ac: Improve the logic for UPC-related options.
900 Delete references to pre-processor definitions that have
901 been moved to "upc/upc-pts.h".
903 * configure, config.in: Regenerate.
905 * Makefile.in (UPC_PTS_REP): Remove definition and revert
906 to trunk. This substitution variable was used to
907 configure the representation-specific versions of
908 the tree rewrites that operate on UPC pointer-to-shared
911 * c-parser.c (c_parser_upc_forall_statement): Remove
912 reference to UPC_FORALL_DEPTH_NAME, and call
913 newly defined upc_rts_forall_depth_var() instead.
915 * config/upc-config.h: Delete. Various definitions
916 moved to "upc/upc-rts-names.h", "defaults.h", and
919 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
920 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
921 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
922 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
923 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
924 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
925 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
926 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
927 New. Document UPC target macros.
928 doc/tm.texi: Regenerate.
930 2011-05-07 Gary Funck <gary@intrepid.com>
932 * ../configure.ac: Disable build of libupc
933 on non POSIX hosted systems. Use AS_HELP_STRING
934 to define messages. Remove 'word-pair' as a
935 possible --with-upc-pts UPC pointer-to-shared
938 * ../configure: Regenerate.
940 * configure.ac: Use AS_HELP_STRING to define messages.
941 Remove 'word-pair' as a possible --with-upc-pts
942 UPC pointer-to-shared representation.
943 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
944 (UPC_MAX_BLOCK_SIZE): Correct the default value.
946 * configure: Regenerate.
948 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
951 * ChangeLog.upc: Fix some typos.
953 2011-05-07 Gary Funck <gary@intrepid.com>
955 * ../maintainer-scripts/gcc_release: Add "upc"
956 as one of the released languages.
958 2011-05-06 Gary Funck <gary@intrepid.com>
960 Eliminate compilation warnings, by fixing
961 #include's and updating function prototypes.
963 * c-family/c-cppbuiltin.c: Include c-upc.h.
965 * optabs.c (gen_libfunc): Change type of 'suffix'
966 parameter to conform with prototype.
968 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
969 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
972 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
975 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
976 argument values to cp_gimplify_expr.
978 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
979 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
980 pre-processor definitions that are no longer
981 needed to build the 'upc' command (upc-cmd.c)
982 because the linker specs. defined in libupc
983 take care of linking in the needed libraries.
985 * c-parser.c (c_parser_upc_forall_statement):
986 initialize affinity_loc to avoid "maybe unused" warning.
987 (c_parser_upc_sync_statement): Remove un-needed
988 'ret' variable. Cast return value from
989 'upc_build_sync_stmt' to 'void' to avoid
990 compile-time warning.
992 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
993 integer constant, not a string. Range is restricted
994 to maximum positive 32-bit integer (2+ billion) to
995 fit in with the use of 'int' in the front-end's
996 switch handling logic.
998 2011-05-06 Gary Funck <gary@intrepid.com>
1000 Upgrade c-family source files to conform with modularity
1001 improvements. Mainly, remove #include of c-tree.h in files
1002 under c-family, and define a new UPC-specific #include file,
1003 c-upc.h, and use it.
1005 * c-family/stub-upc.c: Remove #include of c-tree.h and
1006 upc/upc-act.h. Replace with #include of c-common.h
1008 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1009 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1010 upc_localsizeof_expr, upc_localsizeof_type,
1011 upc_shared_type_p): Delete.
1013 * c-family/c-opts.c: Add #include of c-upc.h
1015 * c-family/c-common.c: Remove #include of c-tree.h and
1016 add #include of c-upc.h.
1018 * c-family/c-upc.h: New. Define API for UPC-specific functions
1019 (mostly implemented in upc/upc-act.c).
1021 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
1022 Remove extern definitions.
1024 * c-family/c-pragma.c: Remove #include of c-tree.h.
1025 Add #include of c-upc.h.
1027 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
1029 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
1030 upc/upc-act.c, and define as a macro.
1031 (expand_affinity_test): Remove unused external definition.
1032 (build_upc_unshared_type): Add external definition.
1033 (upc_shared_type_p): Remove external definition.
1035 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1037 * dojump.c: Remove #include of c-tree.h.
1039 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1041 (count_upc_threads_refs, is_multiple_of_upc_threads,
1042 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1043 upc_build_shared_var_addr, upc_build_sync_stmt,
1044 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1045 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1046 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1047 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1048 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1049 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1050 set_upc_consistency_mode, get_upc_consistency_mode,
1051 push_upc_consistency_mode, pop_upc_consistency_mode,
1053 Move external definitions to c-family/c-upc.h.
1054 (upc_blocksizeof_type, upc_localsizeof_type,
1055 upc_elemsizeof_type): Remove external definitions;
1056 these functions were moved to c-parser.c.
1058 * c-decl.c: Add #include of c-upc.h.
1060 * c-typeck.c: Add #include of c-upc.h.
1062 * c-convert.c: Add #include of c-upc.h.
1064 * ChangeLog.upc: Fix typo.
1066 * Makefile.in: Add references to c-family/c-upc.h, everywhere
1067 there is a reference to c-family/c-objc.h.
1068 Remove extraneous reference to upc-act.h.
1070 * c-parser.c: Add #include of c-upc.h.
1071 (upc_blocksizeof_expr, upc_blocksizeof_type,
1072 upc_elemsizeof_expr, upc_elemsizeof_type,
1073 upc_localsizeof_expr, upc_localsizeof_type):
1074 Move from upc/upc-act.c.
1076 * tree.c (build_upc_unshared_type): New.
1077 Move upc_get_unshared_type from upc/upc-act.c and rename
1078 to build_upc_unshared_type.
1079 c-family/c-common.c (pointer_int_sum): refer to renamed
1080 build_upc_unshared_type function.
1081 c-convert.c (convert): Ditto.
1082 convert.c (convert_to_pointer): Ditto.
1083 c-typeck.c (build_unary_op, build_modify_expr,
1084 really_start_incremental_init): Ditto.
1085 gimplify.c (create_tmp_var_raw): Ditto.
1086 tree.c (build1_stat): Ditto.
1087 tree.h (upc_get_unshared_type): Rename to
1088 build_upc_unshared_type.
1090 2011-05-06 Gary Funck <gary@intrepid.com>
1092 Merge trunk version 173471 into gupc branch.
1094 2011-05-05 Gary Funck <gary@intrepid.com>
1096 Make changes that bring the GUPC branch more closely in sync.
1097 with the GCC trunk. Revert any fixes that are not UPC-specific.
1098 Remove gratuitous re-formatting.
1100 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1101 This file should have been removed in a previous merge
1103 * ../configure.ac: Remove Cray Catamount/CNL support.
1104 * ../configure: Regenerate.
1105 * ../config.sub: Remove Cray Catamount/CNL support.
1106 * config.gcc: Remove Cray Catamount/CNL support.
1107 * ../maintainer-scripts/gcc_release: Revert to trunk.
1108 * c-family/c-common.h: Define parse_optimize_options. Its definition
1109 was missed in a previous merge with the trunk.
1110 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1112 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1113 in addition to ARRAY_TYPE.
1114 * c-typeck.c: Remove an extra newline character.
1115 * varasm.c: Revert a fix that improved an error message
1116 when TLS common data is unimplemented.
1117 * varasm.c: Revert a gcc_assert that had been added which
1118 checked for a null DECL_SIZE_UNIT field.
1119 * emultls.c: Revert to trunk. Remove possible fix.
1120 * Makefile.in: Revert extra blank line that is present
1121 in the trunk version.
1122 * Makefile.in: Revert a fix that handled long shell
1123 argument lists for plugin headers.
1124 * config/ia64/ia64.opt: Revert an option setting
1125 that increased the default TLS address range.
1126 * config/ia64/crtbegin.asm: Revert to trunk.
1127 Removes an extra newline character.
1128 * ChangeLog.upc: Spell check.
1130 2011-05-03 Gary Funck <gary@intrepid.com>
1132 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1133 (c_apply_type_quals_to_decl): Ditto.
1134 * c-family/c-common.h: Ditto.
1136 * c-decl.c (merge_decls): Ditto.
1137 * c-typeck.c (qualify_type, default_conversion,
1138 build_component_ref, build_unary_op,
1139 c_build_qualified_type): Ditto.
1140 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1142 2011-04-29 Gary Funck <gary@intrepid.com>
1144 * c-decl.c (finish_decl): Improve error diagnostics.
1145 (grokdeclarator): Ditto.
1147 * c-typeck.c (build_c_cast): Improve error diagnostics.
1148 (convert_for_assignment): Ditto.
1149 (build_binary_op): Ditto.
1151 * c-parser.c (c_parser_upc_forall_statement):
1152 Improve error diagnostics.
1154 * convert.c (convert_to_integer): Improve error diagnostics.
1156 2011-04-24 Gary Funck <gary@intrepid.com>
1158 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1159 occurred if there is an error in the barrier id
1160 expression. Map error_mark_node into NULL.
1162 2011-04-22 Gary Funck <gary@intrepid.com>
1164 Merge trunk version 172873 into gupc branch.
1166 2011-04-19 Gary Funck <gary@intrepid.com>
1168 Merge trunk version 172359 into gupc branch.
1170 2011-04-14 Gary Funck <gary@intrepid.com>
1172 * c-family/c.opt: Add UPC as a valid language for various
1173 switches where it is valid for "C", that were not updated
1174 in previous merges with trunk.
1176 2011-04-13 Gary Funck <gary@intrepid.com>
1178 * c-family/c.opt (fupc-pre-include): New option definition.
1179 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1180 -fno-upc-pre-include is asserted.
1182 2011-04-07 Gary Funck <gary@intrepid.com>
1184 Merge trunk version 172158 into gupc branch.
1185 to bring in the following fix.
1187 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
1190 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1191 if old and new states differ.
1193 2011-04-06 Gary Funck <gary@intrepid.com>
1195 Merge trunk version 171966 into gupc branch.
1197 2011-04-01 Gary Funck <gary@intrepid.com>
1199 * tree.h (tree_base): Move UPC flag bits into bit fields
1200 located just before spare bits. Decrement spare bits.
1201 Rename 'shared_flag' -> 'upc_shared_flag',
1202 'relaxed_flag' -> 'upc_relaxed_flag',
1203 'strict_flag' -> 'upc_strict_flag, and adjust macros
1204 that reference them accordingly.
1206 2011-04-01 Gary Funck <gary@intrepid.com>
1208 * c-decl.c (grokdeclarator): Fix formatting of
1209 code that sets UPC block size on scalars.
1211 2011-04-01 Gary Funck <gary@intrepid.com>
1213 * c-decl.c (grokdeclarator): Revert use of white space
1214 to match the trunk (to rationalize diffs).
1215 * c-typeck.c (convert_for_assignment): Ditto.
1216 * tree-ssa.c (useless_type_conversion_p): Ditto.
1218 2011-03-23 Gary Funck <gary@intrepid.com>
1220 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1221 the GCC 4.6 release branch.
1223 2011-03-21 Gary Funck <gary@intrepid.com>
1225 Merge trunk version 171202 into gupc branch.
1227 2011-03-20 Gary Funck <gary@intrepid.com>
1229 * varasm.c: Call error() directly with a format specifier,
1230 rather than using sprintf() to format the message.
1231 This should make it easier to internationalize UPC's error messages.
1233 2011-03-20 Gary Funck <gary@intrepid.com>
1235 * configure.ac: Fix the check for gnu ld when enabling
1236 UPC link script support.
1237 configure: Regenerate (also picks up changes from previous
1240 2011-03-20 Gary Funck <gary@intrepid.com>
1242 Move UPC start files, end files, and linker specs.
1243 into libupc. This reduces the impact on common GCC
1244 configuration files, and ensures that these UPC-specific
1245 components are only built when the UPC language dialect is selected.
1249 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1250 linker specs. Fix typo in -fupc-debug message.
1252 * config/upc-conf.h, config/darwin.h: Move defines for
1253 UPC-related section begins/ends into libupc/config/default/
1256 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1257 UPC-related linker compiler specifications,
1258 accessed via %:include().
1260 * configure.ac, configure: Remove logic related to building
1261 upc-crtbegin/end. Remove config. tests for numa and cpu
1262 affinity (previously used by the 'upc' driver); these
1263 settings are now propagated by target-specific compiler
1264 specs. built by libupc. Regenerate autoconf.
1266 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1267 linker compiler specifications, accessed via %:include().
1268 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1271 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1273 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1274 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1275 config/ia64/linux.h, config/mips/t-iris,
1276 config/mips/iris6.h: Revert to trunk version 167307.
1279 * configure, configure.ac, config.host, Makefile.in:
1280 Revert to trunk version 167307.
1282 2011-02-23 Gary Funck <gary@intrepid.com>
1284 * c-decl.c (undeclared_variable): fix typo. Inadvertently
1285 removed negation on following 'if'.
1287 2011-02-22 Gary Funck <gary@intrepid.com>
1289 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1290 to check for the usage of certain deprecated UPC keywords.
1291 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1292 * c-tree.h (undeclared_variable): Define prototype.
1294 2011-02-12 Gary Funck <gary@intrepid.com>
1296 * c-typeck.c: (build_c_cast, convert_for_assignment)
1297 Diagnose an attempt to convert from an integer to
1298 a pointer-to-shared as an error. Also, fix various
1299 error messages so that they use the preferred term
1300 pointer-to-shared instead of "shared pointer".
1302 2011-02-07 Gary Funck <gary@intrepid.com>
1304 * c-typeck.c: (convert_for_assignment)
1305 Fix typo. in error message.
1307 2011-01-23 Gary Funck <gary@intrepid.com>
1309 * c-typeck.c: (c_build_qualified_type)
1310 derive UPC block size by calling upc_get_block_size(),
1311 to ensure that the element type of an array of an array
1312 is derived correctly.
1314 2010-12-29 Gary Funck <gary@intrepid.com>
1316 Merge trunk version 168314 into gupc branch.
1318 2010-12-15 Gary Funck <gary@intrepid.com>
1320 Merge trunk version 167307 into gupc branch.
1322 2010-10-19 Gary Funck <gary@intrepid.com>
1324 * c-typeck.c: Fix typo in previous fix
1325 which led to a mis-compare for equal block sizes.
1327 2010-10-18 Gary Funck <gary@intrepid.com>
1329 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1330 diagnosed as an error
1332 The conversion from any type (shared or not) to
1333 a shared type is likely either meaningless or an error. This update
1334 makes any conversion to a shared type, an error.
1336 2010-10-18 Gary Funck <gary@intrepid.com>
1338 * c-typeck.c: Fix bug: passing int to shared pointer arg.
1339 generates spurious warning
1341 Add a #define procedure that does the same thing as
1342 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
1343 this procedure to diagnose passing an integer value to a
1344 pointer-to-shared as an error.
1346 2010-10-18 Gary Funck <gary@intrepid.com>
1348 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1349 matching routine declaration.
1351 When checking for type compatibility, shared qualified types must
1352 have the same block factor. This check was missing from
1353 comptypes_internal(). This update adds the check for blocking
1356 2010-10-17 Gary Funck <gary@intrepid.com>
1358 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1361 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1363 2010-10-17 Gary Funck <gary@intrepid.com>
1365 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1366 45869 - [4.5/4.6 Regression] type mismatch in shift expression
1367 produces ice with -O3 and -m32.
1369 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1371 2010-10-17 Gary Funck <gary@intrepid.com>
1373 * c-common.c: Diagnose the application of the various "*sizeof"
1374 operations on generic pointer-to-shared as a compilation error.
1376 2010-10-17 Gary Funck <gary@intrepid.com>
1378 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1379 message regarding a function parameter being declared with a shared
1382 The parameter's 'name' value is not defined at this point, and
1383 cannot be used in the error message. This update removes the
1384 reference to 'name', and eliminates the segfault.
1386 2010-10-16 Gary Funck <gary@intrepid.com>
1388 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1390 The gcc/Makefile.in rules for install-plugin had to be re-written to
1391 break up a long list of header files that exceeded the command line
1392 limitation imposed by Irix.
1394 Access functions for TFmode types had to be implemented.
1395 Apparently, this is the mode used for the SGI/MIPS port to represent
1398 2010-10-14 Gary Funck <gary@intrepid.com>
1400 * c-decl.c: Fix bug: Multiple equal blocking factors specified
1401 via typedef chain should not be diagnosed as an error.
1403 If the block size that is given by the typedef is equal to the block
1404 size given explicitly in the variable declaration, then do not
1405 complain. The easiest way to make this check was to create a
1406 temporary type that is a clone of the element type and then set its
1407 block size using the given layout qualifier. Then compare the block
1408 size of the temporary (the declaration) to the block size specified
1409 in the typedef. This complexity is needed, because the '[*]' block
1410 size needs to be calculated, and the '[]' needs to be mapped into a
1413 2010-10-10 Gary Funck <gary@intrepid.com>
1415 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1418 The compiler properly detected the presence of two or more layout
1419 qualifiers as an error, but then hit an assertion check, because the
1420 code that followed the error expected to see a qualifier and not a
1421 layout specifier. The fix is simple: just return immediately after
1422 detecting the error.
1424 2010-10-10 Gary Funck <gary@intrepid.com>
1426 * c-decl.c: Improve error diagnostics for various cases of UPC
1427 shared array type declarations.
1429 Add the check for this error: "In the dynamic translation
1430 environment, THREADS may not appear in declarations of shared arrays
1431 with indefinite block size". Also, fix up a few of the other
1432 related error diagnostics.
1434 2010-10-09 Gary Funck <gary@intrepid.com>
1436 * c-common.c: Fix bug: segfault on incomplete array definition.
1438 This turned out to be a bit complicated. The logic in
1439 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1440 the THREADS identifier in the case where the blocking factor has
1441 been set to indefinite ([]). This can happen when indefinite array
1442 declarations are processed for shared arrays. At that time, the
1443 file scope has been closed and THREADS is no longer in scope. Some
1444 more work is needed on upc_lang_layout_decl(). It has some
1445 duplication, and notably duplicates the two branches of the if
1446 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1447 caller of this routine (layout_decl()).
1449 The method of forcing a layout qualifier of [] in the indefinite
1450 declaration handler is odd a well. The code that just does the
1451 setting of the block factor, needs to moved into its own routine
1452 that doesn't depend upon a declspec for '[]' to be passed in, just
1453 in order to set the blocking factor to some value (in this case, 0).
1454 Also, the logic for how that shared type is constructed is strange.
1455 First the type with 0 blocking factor is set. Then the shared
1456 qualifier is removed from the type, and then added back later. The
1457 intermediate type has a blocking factor set, but it has no shared
1458 qualifier. Fixing this will require some thought. It is tempting
1459 just to make indefinite shared arrays an error, rather than forcing
1460 the dimension to be '1'.
1462 This likely fixes a serious error in the previous update to
1463 upc_lang_layout_decl(), where it didn't have the logic to set
1464 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
1465 the previous update would fail on many tests.
1467 2010-10-09 Gary Funck <gary@intrepid.com>
1469 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1470 (decl) is null, which can happen if some layout error occurred
1473 2010-10-09 Gary Funck <gary@intrepid.com>
1475 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1476 "variable-sized" when compiled in dynamic threads.
1478 This long-standing bug is easily fixed. Just check
1479 for the situation that the non-constant sized type is shared and
1480 that it does not have a dimension that references a multiple of
1481 threads. If this criteria is met, then issue a meaningful
1484 2010-10-01 Gary Funck <gary@intrepid.com>
1486 * configure, configure.ac: Update manual page, and bug reporting
1489 Update "man" page to reflect debugging switches. Also, some general
1490 clean up. Change the bug reporting URL to point to gccupc.org.
1492 2010-09-27 Gary Funck <gary@intrepid.com>
1494 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1495 the UPC forall depth count variable is not found.
1497 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1498 The compiler will generate code that references this variable in
1499 order to implement nested upc_forall semantics. If there is a
1500 compiler build or install problem, this variable may not be found.
1501 In this case, terminate with an internal_error().
1503 2010-09-26 Gary Funck <gary@intrepid.com>
1505 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1506 mis-diagnosed as syntax error.
1508 Fix a failure exhibited by the Berkeley test case,
1509 bug873a.upc, which has the code:
1511 upc_forall (;;;d) {...} The compiler did not properly handle
1512 the empty "condition" clause, and did not recover well when it was
1513 determined that the use of a double value, "d" above, was neither a
1514 pointer-to-shared nor an integer expression. The update implements a
1515 fix for both issues.
1517 See also: gcc/c-parser.c gcc/upc/upc-act.c
1519 2010-09-23 Gary Funck <gary@intrepid.com>
1521 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1522 incorporated into the referencing type.
1524 This was semi-fixed a few times before. This update fixes a few
1525 more places where the layout qualifier wasn't being propagated
1526 through typedef's properly. What made this a bit tricky is shown in
1527 the example cited in the bug report:
1529 typedef shared [5] int A_t; A_t A[5*THREADS];
1531 In the typedef, the blocksize is being applied to a shared *scalar*,
1532 and the code was applying the blocksize only to arrays. This update
1533 handles shared scalars correctly.
1535 2010-09-22 Gary Funck <gary@intrepid.com>
1537 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1538 upc_forall() semantics are not implemented
1540 The checkforall test in the Berkeley harness test suite indicated
1541 that GCC/UPC was not properly implementing nested upc_forall
1542 semantics. Nested upc_forall statements (both statically or
1543 dynamically nested) must implement their affinity clause as if it
1544 were "continue"; thus all steps in the loop must execute without
1545 regard for affinity. To implement these semantics a global depth
1546 counter, __upc_forall_depth, is maintained by the generated code
1547 that implements upc_forall.
1549 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1550 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1551 libupc/include/upc.h libupc/smp/upc_main.c
1553 2010-09-19 Gary Funck <gary@intrepid.com>
1555 * c-decl.c: c-decl.c: zero out the layout specifier, after
1556 processing an array type.
1558 Fix the previous fix, that moved the setting of the type's layout
1559 qualifier to the outside of the array type processing loop. What is
1560 missing from the fix is that the layout_qualifier variable needs to
1561 be cleared after setting the type's blocksize.
1563 2010-09-19 Gary Funck <gary@intrepid.com>
1565 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1566 given blocksize is greater than UPC_MAX_BLOCKSIZE.
1568 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1569 the actual maximum block size. Therefore, the message was correct,
1570 but the underlying value that was being checked was wrong. Change
1571 the values so that they agree with the actual implementation-defined
1574 2010-09-11 Gary Funck <gary@intrepid.com>
1576 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1577 multi-dimensional shared array with dynamic threads.
1579 This declaration caused an internal compiler error when compiled
1580 with dynamic threads:
1581 shared [*] int A[THREADS][16]; The bug was discovered when
1582 compiling the RTED_UPC test suite.
1584 The fix is to process layout qualifiers after the entire array type
1585 has been built. Otherwise, we try to calculate the blocksize on a
1586 shared array type that has not had its "size depends upon the value
1587 of THREADS" flag set.
1589 Also, added a test case.
1591 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1593 2010-07-11 Gary Funck <gary@intrepid.com>
1595 Fix a bug where a statement in c_build_qualified_type()
1596 in the trunk had been inadvertently deleted.
1597 This bug showed up in the IA64 port, because jmpbuf's
1598 on that architecture must be 16 byte aligned, and they were not.
1599 c-typeck.c (c_build_qualified_type): Revive the deleted line.
1601 2010-07-08 Gary Funck <gary@intrepid.com>
1603 Make changes so that other language compilers
1604 will build and bootstrap.
1605 * c-family/c-common.c (compiling_upc, flag_upc,
1606 flag_upc_instrument, flag_upc_instrument_functions,
1607 use_upc_dwarf2_extensions): Move to stub-upc.c and
1609 * c-family/c-common.h (use_upc_dwarf2_extensions,
1610 compiling_upc): Add extern definitions - needed
1611 to compile/build other language front ends.
1612 * c-family/c.opt: Fix the spelling of ObjC.
1613 It had been incorrectly spelled as Objc.
1614 * c-family/c.opt: Add UPC for the various switches
1615 that are valid for both C and ObjC.
1616 * c-fmaily/c-opts.c: Add CL_UPC to the list of
1617 supported options switches when compiling assembly
1619 * lto/lto-lang.c (use_upc_dwarf2_extensions,
1620 flag_upc_instrument, flag_upc_instrument_functions):
1621 Remove these definitions. They have been moved
1622 to c-family/stub-upc.c.
1623 * upc/ChangeLog: Move relevant entries
1625 * c-family/stub-upc.c (compiling_upc, flag_upc,
1626 flag_upc_instrument, flag_upc_instrument_functions,
1627 use_upc_dwarf2_extensions): Moved from c-common.c
1628 * upc/upc-lang.c (compiling_upc, flag_upc,
1629 flag_upc_instrument, flag_upc_instrument_functions,
1630 use_upc_dwarf2_extensions): Moved from c-common.c
1631 * objc/objc-act.c (objc_gimplify_expr): Add additional
1632 parameters to c_gimplify_expr() call, that are used
1633 by upc's tree rewrites.
1634 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1635 * gcc/cp/lex.c (init_reswords): If not compiling
1636 UPC, then mask off the UPC keywords.
1637 * cp/Make-lang.in (C_STUB_OBJS): Use this
1638 make macro to link with c-family/stub-objc.o
1639 and c-family/stub-upc.o.
1640 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1641 * java/Make-lang.in (C_STUB_OBJS): Likewise.
1642 * objc/Make-lang.in: Link with c-family/stub-upc.o
1643 to avoid undefined references.
1644 c-parser.c: Fix line indentation.
1645 * libcpp/include/cpplib.h: Remove CL_UPC from
1646 the list of language kinds accepted by the
1647 C preprocessor. This is not necessary because
1648 UPC is a derivative of C99, and does not need
1649 a different language kind.
1650 * c-fmaily/c-opts.c (c_common_handle_option):
1651 Call set_std_c99() when processing the
1652 "--lang upc" switch, instead of setting the
1653 language kind to CL_UPC.
1654 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1656 2010-07-03 Gary Funck <gary@intrepid.com>
1658 Merge trunk version 161517 into gupc branch.
1659 * gcc/stub-upc.c: Move to gcc/c-family/.
1660 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1661 Add 'unused' attributes to avoid "set, but
1662 not referenced" warnings.
1663 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1666 2010-03-01 Gary Funck <gary@intrepid.com>
1668 Create gupc branch from trunk version 157149.
1669 2011-10-04 Gary Funck <gary@intrepid.com>
1671 Merge trunk version 179421 into gupc branch.
1673 * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1674 argument to the call to check_qualified_type().
1676 2011-09-22 Gary Funck <gary@intrepid.com>
1678 * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1680 (dump_upc_type_quals): New.
1682 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
1684 Add to FLAGS the flags needed to disable inlining of
1685 UPC run-time access routines.
1686 * testsuite/lib/target-supports.exp
1687 (add_options_for_upc_library_calls): New.
1689 2011-09-15 Gary Funck <gary@intrepid.com>
1691 Fix ICE involving shared bit field accesses.
1692 * tree.c (build3_stat): Propagate TEEE_SHARED()
1693 TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1695 2011-09-13 Gary Funck <gary@intrepid.com>
1697 Merge trunk version 178795 into gupc branch.
1698 Incorporates fix to PR bootstrap/50010 for x86-32.
1700 2011-09-08 Gary Funck <gary@intrepid.com>
1702 Merge trunk version 178557 into gupc branch.
1704 2011-09-07 Gary Funck <gary@intrepid.com>
1706 Ensure that UPC pointer-to-shared type alignment is
1707 propagated to the final type. Revert to long-standing
1708 alignment policy: twice the size of a "C" pointer.
1709 * tree.c (build_pointer_type): Propagate the alignment
1710 of the UPC pointer-to-shared representation type
1711 into the newly built pointer type.
1713 2011-08-30 Gary Funck <gary@intrepid.com>
1715 * tree.h (check_qualified_type): Change 'const_tree'
1716 argument types back to 'tree' to avoid complaints
1717 of assignment drops qualifiers for invocations of the
1718 newly implemented TYPE_BLOCK_FACTOR() macro, which
1719 invokes hash functions with 'tree' pointer values that
1720 are not const qualified.
1721 * tree.c (check_qualified_type, check_aligned_type): Ditto.
1722 * c-typeck.c (comptypes_internal): Ditto.
1724 2011-08-29 Gary Funck <gary@intrepid.com>
1726 Fixes for regressions noted running "make check"
1728 * fold-const.c (fold_unary_loc): Execute UPC-specific
1729 checks for a cast-of-a-cast, only if one of the
1730 operands is a UPC pointer-to-shared value.
1731 * opts.c (print_specific_help): Fix a comparison
1732 in an assert that checks that there are enough
1733 bits reserved for the number of languages defined
1736 2011-08-29 Gary Funck <gary@intrepid.com>
1738 Implement a hash table to record UPC block factors.
1739 * c-family/stub-upc.c (upc_block_factor_insert,
1740 upc_block_factor_lookup): New dummy stub procedures.
1741 * c-family/c-common.c (c_sizeof_or_alignof_type):
1742 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1743 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1744 to copy (hashed) UPC blocking factor.
1745 (set_type_quals): Likewise.
1746 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1747 TYPE_HAS_THREADS_FACTOR().
1748 (type_common.block_factor): Delete.
1749 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1750 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1751 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1752 UPC blocking factors greater than one.
1753 * dwarf2out.c (modified_type_die): Re-implement
1754 logic that records UPC blocking factor in the generated
1755 DWARF2 debugging information.
1756 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1757 TYPE_HAS_THREADS_FACTOR().
1758 * c-decl.c (finish_decl, grokdeclarator):
1759 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1760 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1761 used by UPC, and print UPC-specific information.
1763 2011-08-28 Gary Funck <gary@intrepid.com>
1765 Re-work the type machinery to fully support and to unify support
1766 for the UPC layout qualifier (blocking factor).
1767 * c-family/stub-upc.c (upc_set_block_factor): Delete.
1768 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1769 and update prototype.
1770 * c-family/c-common.c (complete_array_type): call newly
1771 defined c_build_qualified_type_1() instead of
1772 upc_set_block_factor().
1773 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1774 upc_apply_layout_qualifier() and update prototype.
1775 (upc_set_block_factor): Delete prototype.
1776 * c-family/c-common.h (c_build_qualified_type): redefine
1777 as a pre-processor macro that invokes c_build_qualified_type_1()
1778 with a null UPC layout qualifier.
1779 (c_build_qualified_type_1): New. Add layout qualifier argument
1780 to old c_build_qualified_type() prototype.
1781 * tree.c (set_type_quals, check_qualified_type):
1782 Add layout qualifier as argument.
1783 (check_aligned_type): Add check for UPC block factor equality.
1784 (get_qualified_type_1): Rename from get_qualified_type() and
1785 add layout qualifier as argument.
1786 (build_qualified_type_1): Rename from build_qualified_type() and
1787 add layout qualifier as argument.
1788 * tree.h (check_qualified_type): Add layout qualifier as argument
1790 (get_qualified_type): Re-define as a as a pre-processor macro
1791 that invokes get_qualified_type_1() with a null
1792 UPC layout qualifier.
1793 (get_qualified_type_1): Rename from get_qualified_type() and
1794 add layout qualifier as argument.
1795 * cp/tree.c (c_build_qualified_type_1): Rename from
1796 c_build_qualified_type() and add (unused) layout qualifier
1798 * c-decl.c (finish_decl): re-format long error messages.
1799 (grokdeclarator): Re-work the logic so that it calls
1800 upc_grok_layout_qualifier() to handle the UPC layout
1801 qualifier, if present.
1802 * c-typeck.c (qualify_type, common_pointer_type,
1803 build_component_ref): Re-work the logic so that it calls
1804 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1806 (c_build_qualified_type_1): Rename from c_build_qualified_type()
1807 and add layout qualifier argument.
1808 * print_tree.c (print_node): Re-format a long line.
1810 2011-08-26 Gary Funck <gary@intrepid.com>
1812 Merge trunk version 177949 into gupc branch.
1813 * c-family/c-common.h (enum rid): Bump the number of type modifiers
1815 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1816 to add new rliterals column value.
1818 2011-08-26 Gary Funck <gary@intrepid.com>
1820 * convert.c (convert_to_integer): Fix the check for the
1821 difference between two UPC pointers-to-shared values.
1823 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
1825 * configure.ac: Fix the name for --with-upc-pts-packed-bits
1826 option. Support --with-upc-packed-bits as deprecated. Fix the code to
1827 correctly check packed bits.
1828 * configure: Re-generate.
1830 2011-08-16 Gary Funck <gary@intrepid.com>
1832 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1833 the barrier id expression is not an integer expression.
1835 2011-08-12 Gary Funck <gary@intrepid.com>
1837 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1839 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1840 Set mode of UPC pointer-to-shared rep. to an
1841 integral mode of size at least as large as the
1842 size of the representation's struct type.
1844 2011-08-12 Gary Funck <gary@intrepid.com>
1846 Rework/simplify the UPC genericize pass.
1847 * c-family/stub-upc.c (upc_apply_layout_qualifier,
1848 upc_build_pointer_type): New.
1849 (upc_set_block_factor): Adjust to new calling sequence.
1850 (upc_build_shared_var_addr): Delete.
1851 * c-family/c-common.c (complete_array_type): Adjust call
1852 to upc_set_block_factor().
1853 * c-family/c-upc.h (upc_apply_layout_qualifier,
1854 upc_build_pointer_type): New.
1855 (upc_build_shared_var_addr): Delete.
1856 (upc_set_block_factor): Adjust to new calling sequence.
1857 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1858 * c-decl.c (grokdeclarator): Call newly defined
1859 upc_apply_layout_qualifier() instead of upc_set_block_factor().
1860 * c-decl.c (grokdeclarator): Split long UPC-related error
1861 messages into two lines.
1862 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1863 directly. Revert that change to trunk. (upc_genericize() will
1864 handle lowering the expressions that take the address of a
1866 * config/i386/i386.c (ix86_promote_function_mode): For UPC
1867 pointers-to-shared, return the type mode of the UPC pointer-to-shared
1868 representation type.
1870 2011-08-10 Gary Funck <gary@intrepid.com>
1872 Implement additional fixes for recent merge with trunk.
1873 * explow.c (promote_mode): Do not attempt to promote
1874 the mode for UPC pointer-to-shared types.
1875 * config/i386/i386.c (function_value_64): Ditto.
1877 2011-08-07 Gary Funck <gary@intrepid.com>
1879 Merge trunk version 177548 into gupc branch.
1880 * config/i386/i386.c (ix86_promote_function_mode):
1881 Do not promote UPC pointers-to-shared to Pmode.
1882 * c-family/c-ommon.c (pointer_int_sum):
1883 Also check the pointer operand, rather than just
1884 its type, when making the decision to derive
1885 the equivalent unshared type.
1886 * tree.c (build2_stat): If the type of the result
1887 passed in as an argument is a UPC shared type,
1888 derive the unshared equivalent when calculating
1889 the result type of the node.
1891 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
1893 * config/darwin.c: Disable var_tracking option
1894 on -O0 as it is supposed to run only when optimization
1895 is applied. See GCC bug 49743.
1897 2011-07-06 Gary Funck <gary@intrepid.com>
1899 Re-implement the pass that lowers trees generated by
1900 the UPC front-end into GENERIC. Previously this was
1901 done within the gimplification framework, but this
1902 required that gimplification be run before inlining
1903 and various other passes, which did not fit in well
1904 with the current design of the middle-end passes.
1905 Now, the lowering is done by a newly defined language
1906 specific genericize hook. With this change, we are
1907 are able to undo some extensions made to the gimplify
1908 logic, and thus can revert several files to trunk.
1910 * c-decl.c: Add a check for UPC deprecated names which
1911 may appear as undefined function names.
1912 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1913 LTI_upc_getaddr): Remove definitions of unused UPC
1914 library function names. These were defined back when
1915 the libfunc interface was used to call these routines.
1916 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1917 in UPC lowering (genericize) pass.
1918 * langhooks.h (gimplify_expr): Revert to trunk's definition.
1919 (instrument_func): Delete this hook. Now handled in
1921 * tree-pass.h: Revert to trunk.
1922 * c-typeck.c (build_unary_op): Adjust reference to
1923 upc_genericize() in a comment.
1924 * gimplify.c (create_tmp_var_raw): Delete logic that
1925 was converting UPC shared types into unshared types
1926 to be used for temporaries. Now handled in upc_genericize().
1927 Replace with an assertion check.
1928 (prepare_gimple_addressable): Revert to trunk's definition.
1929 No longer needed as an externally called function.
1930 (flag_instrument_functions_exclude_p): Re-define as
1931 an externally called function.
1932 (gimplify_function_tree): Delete code that implemented
1933 call to UPC's language specific function instrumentation hook.
1934 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1935 (prepare_gimple_addressable): Delete extern definition;
1936 revert to trunk's definition.
1937 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1938 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1939 * c-family/c-gimplify.c: Revert to trunk.
1940 * cp/cp-gimplify.c: Revert to trunk.
1941 * cp/cp-tree.h: Revert to trunk.
1942 * explow.c: Revert to trunk.
1943 * langhooks.c: Revert to trunk.
1944 * libfuncs.h: Revert to trunk.
1945 * objc/objc-act.c: Revert to trunk.
1947 2011-06-30 Gary Funck <gary@intrepid.com>
1949 * c-family/c.opt: Bring options definitions up-to-date
1950 with respect to changes made in the trunk.
1952 2011-06-29 Gary Funck <gary@intrepid.com>
1954 Merge trunk version 175584 into gupc branch.
1956 2011-06-13 Gary Funck <gary@intrepid.com>
1959 * include/cpplib.h (enum c_lang):
1960 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1961 This keeps all the "C" variants together.
1962 * init.c (lang_defaults): Add an entry for UPC.
1964 2011-06-09 Gary Funck <gary@intrepid.com>
1966 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1967 a 32-bit target, the size expression overflowed, the result was
1968 error_mark_node, and an ICE was triggered on an attempt to evaluate
1969 C_TYPE_VARIABLE_SIZE() on the error node.
1970 (upc_blocksizeof_expr, upc_blocksizeof_type,
1971 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1972 Make similar changes to avoid further processing of error_mark_node.
1974 2011-06-07 Gary Funck <gary@intrepid.com>
1976 * sel-sched.c (move_op): Incorporate the following
1977 patch to eliminate ICE at -O3 on IA64/Altix.
1979 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
1981 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1982 code_motion_path_driver returned 0 or 1.
1983 (sel_region_finish): Clear h_d_i_d.
1985 2011-06-02 Gary Funck <gary@intrepid.com>
1987 Merge trunk version 174558 into gupc branch.
1989 2011-05-30 Gary Funck <gary@intrepid.com>
1991 * configure.ac: Make the default order of the virtual
1992 address field in a UPC pointer-to-shared to be "first".
1993 This reverts to the previous setting, and is a short term
1994 measure to work around a bug found on the IA64,
1995 where vaddr=last led to incorrect code generation.
1996 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1997 in AC_DEFINE(), to agree with recent changes in files
1998 that reference this define.
1999 configure, config.in: Regenerate.
2001 2011-05-26 Gary Funck <gary@intrepid.com>
2003 * configure.ac: Fix typo when referring to $upc_vaddr_order.
2004 configure: Regenerate.
2006 * ../fixincludes/fixincl.x: Revert to trunk.
2007 This file is auto-generated, and should not be merged.
2009 2011-05-18 Gary Funck <gary@intrepid.com>
2011 Merge trunk version 173845 into gupc branch.
2013 2011-05-17 Gary Funck <gary@intrepid.com>
2015 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
2016 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
2018 * c-family/c-pragma.c: Remove conditional compilation
2019 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
2020 Test 'compiling_upc' when compiling to determine if
2021 the "upc" and "pupc" pragmas should be registered.
2023 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2024 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2025 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2026 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2027 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2028 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
2029 Move these target-dependent definitions from config/upc-conf.h
2032 * configure.ac: Improve the logic for UPC-related options.
2033 Delete references to pre-processor definitions that have
2034 been moved to "upc/upc-pts.h".
2036 * configure, config.in: Regenerate.
2038 * Makefile.in (UPC_PTS_REP): Remove definition and revert
2039 to trunk. This substitution variable was used to
2040 configure the representation-specific versions of
2041 the tree rewrites that operate on UPC pointer-to-shared
2044 * c-parser.c (c_parser_upc_forall_statement): Remove
2045 reference to UPC_FORALL_DEPTH_NAME, and call
2046 newly defined upc_rts_forall_depth_var() instead.
2048 * config/upc-config.h: Delete. Various definitions
2049 moved to "upc/upc-rts-names.h", "defaults.h", and
2052 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
2053 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
2054 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2055 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2056 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2057 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2058 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2059 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
2060 New. Document UPC target macros.
2061 doc/tm.texi: Regenerate.
2063 2011-05-07 Gary Funck <gary@intrepid.com>
2065 * ../configure.ac: Disable build of libupc
2066 on non POSIX hosted systems. Use AS_HELP_STRING
2067 to define messages. Remove 'word-pair' as a
2068 possible --with-upc-pts UPC pointer-to-shared
2071 * ../configure: Regenerate.
2073 * configure.ac: Use AS_HELP_STRING to define messages.
2074 Remove 'word-pair' as a possible --with-upc-pts
2075 UPC pointer-to-shared representation.
2076 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
2077 (UPC_MAX_BLOCK_SIZE): Correct the default value.
2079 * configure: Regenerate.
2081 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
2084 * ChangeLog.upc: Fix some typos.
2086 2011-05-07 Gary Funck <gary@intrepid.com>
2088 * ../maintainer-scripts/gcc_release: Add "upc"
2089 as one of the released languages.
2091 2011-05-06 Gary Funck <gary@intrepid.com>
2093 Eliminate compilation warnings, by fixing
2094 #include's and updating function prototypes.
2096 * c-family/c-cppbuiltin.c: Include c-upc.h.
2098 * optabs.c (gen_libfunc): Change type of 'suffix'
2099 parameter to conform with prototype.
2101 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2102 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2105 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2108 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2109 argument values to cp_gimplify_expr.
2111 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2112 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
2113 pre-processor definitions that are no longer
2114 needed to build the 'upc' command (upc-cmd.c)
2115 because the linker specs. defined in libupc
2116 take care of linking in the needed libraries.
2118 * c-parser.c (c_parser_upc_forall_statement):
2119 initialize affinity_loc to avoid "maybe unused" warning.
2120 (c_parser_upc_sync_statement): Remove un-needed
2121 'ret' variable. Cast return value from
2122 'upc_build_sync_stmt' to 'void' to avoid
2123 compile-time warning.
2125 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2126 integer constant, not a string. Range is restricted
2127 to maximum positive 32-bit integer (2+ billion) to
2128 fit in with the use of 'int' in the front-end's
2129 switch handling logic.
2131 2011-05-06 Gary Funck <gary@intrepid.com>
2133 Upgrade c-family source files to conform with modularity
2134 improvements. Mainly, remove #include of c-tree.h in files
2135 under c-family, and define a new UPC-specific #include file,
2136 c-upc.h, and use it.
2138 * c-family/stub-upc.c: Remove #include of c-tree.h and
2139 upc/upc-act.h. Replace with #include of c-common.h
2141 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2142 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2143 upc_localsizeof_expr, upc_localsizeof_type,
2144 upc_shared_type_p): Delete.
2146 * c-family/c-opts.c: Add #include of c-upc.h
2148 * c-family/c-common.c: Remove #include of c-tree.h and
2149 add #include of c-upc.h.
2151 * c-family/c-upc.h: New. Define API for UPC-specific functions
2152 (mostly implemented in upc/upc-act.c).
2154 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2155 Remove extern definitions.
2157 * c-family/c-pragma.c: Remove #include of c-tree.h.
2158 Add #include of c-upc.h.
2160 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
2162 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
2163 upc/upc-act.c, and define as a macro.
2164 (expand_affinity_test): Remove unused external definition.
2165 (build_upc_unshared_type): Add external definition.
2166 (upc_shared_type_p): Remove external definition.
2168 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2170 * dojump.c: Remove #include of c-tree.h.
2172 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2174 (count_upc_threads_refs, is_multiple_of_upc_threads,
2175 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2176 upc_build_shared_var_addr, upc_build_sync_stmt,
2177 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2178 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2179 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2180 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2181 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2182 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2183 set_upc_consistency_mode, get_upc_consistency_mode,
2184 push_upc_consistency_mode, pop_upc_consistency_mode,
2186 Move external definitions to c-family/c-upc.h.
2187 (upc_blocksizeof_type, upc_localsizeof_type,
2188 upc_elemsizeof_type): Remove external definitions;
2189 these functions were moved to c-parser.c.
2191 * c-decl.c: Add #include of c-upc.h.
2193 * c-typeck.c: Add #include of c-upc.h.
2195 * c-convert.c: Add #include of c-upc.h.
2197 * ChangeLog.upc: Fix typo.
2199 * Makefile.in: Add references to c-family/c-upc.h, everywhere
2200 there is a reference to c-family/c-objc.h.
2201 Remove extraneous reference to upc-act.h.
2203 * c-parser.c: Add #include of c-upc.h.
2204 (upc_blocksizeof_expr, upc_blocksizeof_type,
2205 upc_elemsizeof_expr, upc_elemsizeof_type,
2206 upc_localsizeof_expr, upc_localsizeof_type):
2207 Move from upc/upc-act.c.
2209 * tree.c (build_upc_unshared_type): New.
2210 Move upc_get_unshared_type from upc/upc-act.c and rename
2211 to build_upc_unshared_type.
2212 c-family/c-common.c (pointer_int_sum): refer to renamed
2213 build_upc_unshared_type function.
2214 c-convert.c (convert): Ditto.
2215 convert.c (convert_to_pointer): Ditto.
2216 c-typeck.c (build_unary_op, build_modify_expr,
2217 really_start_incremental_init): Ditto.
2218 gimplify.c (create_tmp_var_raw): Ditto.
2219 tree.c (build1_stat): Ditto.
2220 tree.h (upc_get_unshared_type): Rename to
2221 build_upc_unshared_type.
2223 2011-05-06 Gary Funck <gary@intrepid.com>
2225 Merge trunk version 173471 into gupc branch.
2227 2011-05-05 Gary Funck <gary@intrepid.com>
2229 Make changes that bring the GUPC branch more closely in sync.
2230 with the GCC trunk. Revert any fixes that are not UPC-specific.
2231 Remove gratuitous re-formatting.
2233 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2234 This file should have been removed in a previous merge
2236 * ../configure.ac: Remove Cray Catamount/CNL support.
2237 * ../configure: Regenerate.
2238 * ../config.sub: Remove Cray Catamount/CNL support.
2239 * config.gcc: Remove Cray Catamount/CNL support.
2240 * ../maintainer-scripts/gcc_release: Revert to trunk.
2241 * c-family/c-common.h: Define parse_optimize_options. Its definition
2242 was missed in a previous merge with the trunk.
2243 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2245 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2246 in addition to ARRAY_TYPE.
2247 * c-typeck.c: Remove an extra newline character.
2248 * varasm.c: Revert a fix that improved an error message
2249 when TLS common data is unimplemented.
2250 * varasm.c: Revert a gcc_assert that had been added which
2251 checked for a null DECL_SIZE_UNIT field.
2252 * emultls.c: Revert to trunk. Remove possible fix.
2253 * Makefile.in: Revert extra blank line that is present
2254 in the trunk version.
2255 * Makefile.in: Revert a fix that handled long shell
2256 argument lists for plugin headers.
2257 * config/ia64/ia64.opt: Revert an option setting
2258 that increased the default TLS address range.
2259 * config/ia64/crtbegin.asm: Revert to trunk.
2260 Removes an extra newline character.
2261 * ChangeLog.upc: Spell check.
2263 2011-05-03 Gary Funck <gary@intrepid.com>
2265 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2266 (c_apply_type_quals_to_decl): Ditto.
2267 * c-family/c-common.h: Ditto.
2269 * c-decl.c (merge_decls): Ditto.
2270 * c-typeck.c (qualify_type, default_conversion,
2271 build_component_ref, build_unary_op,
2272 c_build_qualified_type): Ditto.
2273 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2275 2011-04-29 Gary Funck <gary@intrepid.com>
2277 * c-decl.c (finish_decl): Improve error diagnostics.
2278 (grokdeclarator): Ditto.
2280 * c-typeck.c (build_c_cast): Improve error diagnostics.
2281 (convert_for_assignment): Ditto.
2282 (build_binary_op): Ditto.
2284 * c-parser.c (c_parser_upc_forall_statement):
2285 Improve error diagnostics.
2287 * convert.c (convert_to_integer): Improve error diagnostics.
2289 2011-04-24 Gary Funck <gary@intrepid.com>
2291 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2292 occurred if there is an error in the barrier id
2293 expression. Map error_mark_node into NULL.
2295 2011-04-22 Gary Funck <gary@intrepid.com>
2297 Merge trunk version 172873 into gupc branch.
2299 2011-04-19 Gary Funck <gary@intrepid.com>
2301 Merge trunk version 172359 into gupc branch.
2303 2011-04-14 Gary Funck <gary@intrepid.com>
2305 * c-family/c.opt: Add UPC as a valid language for various
2306 switches where it is valid for "C", that were not updated
2307 in previous merges with trunk.
2309 2011-04-13 Gary Funck <gary@intrepid.com>
2311 * c-family/c.opt (fupc-pre-include): New option definition.
2312 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2313 -fno-upc-pre-include is asserted.
2315 2011-04-07 Gary Funck <gary@intrepid.com>
2317 Merge trunk version 172158 into gupc branch.
2318 to bring in the following fix.
2320 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
2323 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2324 if old and new states differ.
2326 2011-04-06 Gary Funck <gary@intrepid.com>
2328 Merge trunk version 171966 into gupc branch.
2330 2011-04-01 Gary Funck <gary@intrepid.com>
2332 * tree.h (tree_base): Move UPC flag bits into bit fields
2333 located just before spare bits. Decrement spare bits.
2334 Rename 'shared_flag' -> 'upc_shared_flag',
2335 'relaxed_flag' -> 'upc_relaxed_flag',
2336 'strict_flag' -> 'upc_strict_flag, and adjust macros
2337 that reference them accordingly.
2339 2011-04-01 Gary Funck <gary@intrepid.com>
2341 * c-decl.c (grokdeclarator): Fix formatting of
2342 code that sets UPC block size on scalars.
2344 2011-04-01 Gary Funck <gary@intrepid.com>
2346 * c-decl.c (grokdeclarator): Revert use of white space
2347 to match the trunk (to rationalize diffs).
2348 * c-typeck.c (convert_for_assignment): Ditto.
2349 * tree-ssa.c (useless_type_conversion_p): Ditto.
2351 2011-03-23 Gary Funck <gary@intrepid.com>
2353 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2354 the GCC 4.6 release branch.
2356 2011-03-21 Gary Funck <gary@intrepid.com>
2358 Merge trunk version 171202 into gupc branch.
2360 2011-03-20 Gary Funck <gary@intrepid.com>
2362 * varasm.c: Call error() directly with a format specifier,
2363 rather than using sprintf() to format the message.
2364 This should make it easier to internationalize UPC's error messages.
2366 2011-03-20 Gary Funck <gary@intrepid.com>
2368 * configure.ac: Fix the check for gnu ld when enabling
2369 UPC link script support.
2370 configure: Regenerate (also picks up changes from previous
2373 2011-03-20 Gary Funck <gary@intrepid.com>
2375 Move UPC start files, end files, and linker specs.
2376 into libupc. This reduces the impact on common GCC
2377 configuration files, and ensures that these UPC-specific
2378 components are only built when the UPC language dialect is selected.
2381 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2382 linker specs. Fix typo in -fupc-debug message.
2384 * config/upc-conf.h, config/darwin.h: Move defines for
2385 UPC-related section begins/ends into libupc/config/default/
2388 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2389 UPC-related linker compiler specifications,
2390 accessed via %:include().
2392 * configure.ac, configure: Remove logic related to building
2393 upc-crtbegin/end. Remove config. tests for numa and cpu
2394 affinity (previously used by the 'upc' driver); these
2395 settings are now propagated by target-specific compiler
2396 specs. built by libupc. Regenerate autoconf.
2398 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2399 linker compiler specifications, accessed via %:include().
2400 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2403 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2405 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2406 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2407 config/ia64/linux.h, config/mips/t-iris,
2408 config/mips/iris6.h: Revert to trunk version 167307.
2411 * configure, configure.ac, config.host, Makefile.in:
2412 Revert to trunk version 167307.
2414 2011-02-23 Gary Funck <gary@intrepid.com>
2416 * c-decl.c (undeclared_variable): fix typo. Inadvertently
2417 removed negation on following 'if'.
2419 2011-02-22 Gary Funck <gary@intrepid.com>
2421 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2422 to check for the usage of certain deprecated UPC keywords.
2423 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2424 * c-tree.h (undeclared_variable): Define prototype.
2426 2011-02-12 Gary Funck <gary@intrepid.com>
2428 * c-typeck.c: (build_c_cast, convert_for_assignment)
2429 Diagnose an attempt to convert from an integer to
2430 a pointer-to-shared as an error. Also, fix various
2431 error messages so that they use the preferred term
2432 pointer-to-shared instead of "shared pointer".
2434 2011-02-07 Gary Funck <gary@intrepid.com>
2436 * c-typeck.c: (convert_for_assignment)
2437 Fix typo. in error message.
2439 2011-01-23 Gary Funck <gary@intrepid.com>
2441 * c-typeck.c: (c_build_qualified_type)
2442 derive UPC block size by calling upc_get_block_size(),
2443 to ensure that the element type of an array of an array
2444 is derived correctly.
2446 2010-12-29 Gary Funck <gary@intrepid.com>
2448 Merge trunk version 168314 into gupc branch.
2450 2010-12-15 Gary Funck <gary@intrepid.com>
2452 Merge trunk version 167307 into gupc branch.
2454 2010-10-19 Gary Funck <gary@intrepid.com>
2456 * c-typeck.c: Fix typo in previous fix
2457 which led to a mis-compare for equal block sizes.
2459 2010-10-18 Gary Funck <gary@intrepid.com>
2461 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2462 diagnosed as an error
2464 The conversion from any type (shared or not) to
2465 a shared type is likely either meaningless or an error. This update
2466 makes any conversion to a shared type, an error.
2468 2010-10-18 Gary Funck <gary@intrepid.com>
2470 * c-typeck.c: Fix bug: passing int to shared pointer arg.
2471 generates spurious warning
2473 Add a #define procedure that does the same thing as
2474 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
2475 this procedure to diagnose passing an integer value to a
2476 pointer-to-shared as an error.
2478 2010-10-18 Gary Funck <gary@intrepid.com>
2480 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2481 matching routine declaration.
2483 When checking for type compatibility, shared qualified types must
2484 have the same block factor. This check was missing from
2485 comptypes_internal(). This update adds the check for blocking
2488 2010-10-17 Gary Funck <gary@intrepid.com>
2490 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2493 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2495 2010-10-17 Gary Funck <gary@intrepid.com>
2497 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2498 45869 - [4.5/4.6 Regression] type mismatch in shift expression
2499 produces ice with -O3 and -m32.
2501 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2503 2010-10-17 Gary Funck <gary@intrepid.com>
2505 * c-common.c: Diagnose the application of the various "*sizeof"
2506 operations on generic pointer-to-shared as a compilation error.
2508 2010-10-17 Gary Funck <gary@intrepid.com>
2510 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2511 message regarding a function parameter being declared with a shared
2514 The parameter's 'name' value is not defined at this point, and
2515 cannot be used in the error message. This update removes the
2516 reference to 'name', and eliminates the segfault.
2518 2010-10-16 Gary Funck <gary@intrepid.com>
2520 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2522 The gcc/Makefile.in rules for install-plugin had to be re-written to
2523 break up a long list of header files that exceeded the command line
2524 limitation imposed by Irix.
2526 Access functions for TFmode types had to be implemented.
2527 Apparently, this is the mode used for the SGI/MIPS port to represent
2530 2010-10-14 Gary Funck <gary@intrepid.com>
2532 * c-decl.c: Fix bug: Multiple equal blocking factors specified
2533 via typedef chain should not be diagnosed as an error.
2535 If the block size that is given by the typedef is equal to the block
2536 size given explicitly in the variable declaration, then do not
2537 complain. The easiest way to make this check was to create a
2538 temporary type that is a clone of the element type and then set its
2539 block size using the given layout qualifier. Then compare the block
2540 size of the temporary (the declaration) to the block size specified
2541 in the typedef. This complexity is needed, because the '[*]' block
2542 size needs to be calculated, and the '[]' needs to be mapped into a
2545 2010-10-10 Gary Funck <gary@intrepid.com>
2547 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2550 The compiler properly detected the presence of two or more layout
2551 qualifiers as an error, but then hit an assertion check, because the
2552 code that followed the error expected to see a qualifier and not a
2553 layout specifier. The fix is simple: just return immediately after
2554 detecting the error.
2556 2010-10-10 Gary Funck <gary@intrepid.com>
2558 * c-decl.c: Improve error diagnostics for various cases of UPC
2559 shared array type declarations.
2561 Add the check for this error: "In the dynamic translation
2562 environment, THREADS may not appear in declarations of shared arrays
2563 with indefinite block size". Also, fix up a few of the other
2564 related error diagnostics.
2566 2010-10-09 Gary Funck <gary@intrepid.com>
2568 * c-common.c: Fix bug: segfault on incomplete array definition.
2570 This turned out to be a bit complicated. The logic in
2571 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2572 the THREADS identifier in the case where the blocking factor has
2573 been set to indefinite ([]). This can happen when indefinite array
2574 declarations are processed for shared arrays. At that time, the
2575 file scope has been closed and THREADS is no longer in scope. Some
2576 more work is needed on upc_lang_layout_decl(). It has some
2577 duplication, and notably duplicates the two branches of the if
2578 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2579 caller of this routine (layout_decl()).
2581 The method of forcing a layout qualifier of [] in the indefinite
2582 declaration handler is odd a well. The code that just does the
2583 setting of the block factor, needs to moved into its own routine
2584 that doesn't depend upon a declspec for '[]' to be passed in, just
2585 in order to set the blocking factor to some value (in this case, 0).
2586 Also, the logic for how that shared type is constructed is strange.
2587 First the type with 0 blocking factor is set. Then the shared
2588 qualifier is removed from the type, and then added back later. The
2589 intermediate type has a blocking factor set, but it has no shared
2590 qualifier. Fixing this will require some thought. It is tempting
2591 just to make indefinite shared arrays an error, rather than forcing
2592 the dimension to be '1'.
2594 This likely fixes a serious error in the previous update to
2595 upc_lang_layout_decl(), where it didn't have the logic to set
2596 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
2597 the previous update would fail on many tests.
2599 2010-10-09 Gary Funck <gary@intrepid.com>
2601 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2602 (decl) is null, which can happen if some layout error occurred
2605 2010-10-09 Gary Funck <gary@intrepid.com>
2607 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2608 "variable-sized" when compiled in dynamic threads.
2610 This long-standing bug is easily fixed. Just check
2611 for the situation that the non-constant sized type is shared and
2612 that it does not have a dimension that references a multiple of
2613 threads. If this criteria is met, then issue a meaningful
2616 2010-10-01 Gary Funck <gary@intrepid.com>
2618 * configure, configure.ac: Update manual page, and bug reporting
2621 Update "man" page to reflect debugging switches. Also, some general
2622 clean up. Change the bug reporting URL to point to gccupc.org.
2624 2010-09-27 Gary Funck <gary@intrepid.com>
2626 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2627 the UPC forall depth count variable is not found.
2629 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2630 The compiler will generate code that references this variable in
2631 order to implement nested upc_forall semantics. If there is a
2632 compiler build or install problem, this variable may not be found.
2633 In this case, terminate with an internal_error().
2635 2010-09-26 Gary Funck <gary@intrepid.com>
2637 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2638 mis-diagnosed as syntax error.
2640 Fix a failure exhibited by the Berkeley test case,
2641 bug873a.upc, which has the code:
2643 upc_forall (;;;d) {...} The compiler did not properly handle
2644 the empty "condition" clause, and did not recover well when it was
2645 determined that the use of a double value, "d" above, was neither a
2646 pointer-to-shared nor an integer expression. The update implements a
2647 fix for both issues.
2649 See also: gcc/c-parser.c gcc/upc/upc-act.c
2651 2010-09-23 Gary Funck <gary@intrepid.com>
2653 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2654 incorporated into the referencing type.
2656 This was semi-fixed a few times before. This update fixes a few
2657 more places where the layout qualifier wasn't being propagated
2658 through typedef's properly. What made this a bit tricky is shown in
2659 the example cited in the bug report:
2661 typedef shared [5] int A_t; A_t A[5*THREADS];
2663 In the typedef, the blocksize is being applied to a shared *scalar*,
2664 and the code was applying the blocksize only to arrays. This update
2665 handles shared scalars correctly.
2667 2010-09-22 Gary Funck <gary@intrepid.com>
2669 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2670 upc_forall() semantics are not implemented
2672 The checkforall test in the Berkeley harness test suite indicated
2673 that GCC/UPC was not properly implementing nested upc_forall
2674 semantics. Nested upc_forall statements (both statically or
2675 dynamically nested) must implement their affinity clause as if it
2676 were "continue"; thus all steps in the loop must execute without
2677 regard for affinity. To implement these semantics a global depth
2678 counter, __upc_forall_depth, is maintained by the generated code
2679 that implements upc_forall.
2681 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2682 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2683 libupc/include/upc.h libupc/smp/upc_main.c
2685 2010-09-19 Gary Funck <gary@intrepid.com>
2687 * c-decl.c: c-decl.c: zero out the layout specifier, after
2688 processing an array type.
2690 Fix the previous fix, that moved the setting of the type's layout
2691 qualifier to the outside of the array type processing loop. What is
2692 missing from the fix is that the layout_qualifier variable needs to
2693 be cleared after setting the type's blocksize.
2695 2010-09-19 Gary Funck <gary@intrepid.com>
2697 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2698 given blocksize is greater than UPC_MAX_BLOCKSIZE.
2700 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2701 the actual maximum block size. Therefore, the message was correct,
2702 but the underlying value that was being checked was wrong. Change
2703 the values so that they agree with the actual implementation-defined
2706 2010-09-11 Gary Funck <gary@intrepid.com>
2708 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2709 multi-dimensional shared array with dynamic threads.
2711 This declaration caused an internal compiler error when compiled
2712 with dynamic threads:
2713 shared [*] int A[THREADS][16]; The bug was discovered when
2714 compiling the RTED_UPC test suite.
2716 The fix is to process layout qualifiers after the entire array type
2717 has been built. Otherwise, we try to calculate the blocksize on a
2718 shared array type that has not had its "size depends upon the value
2719 of THREADS" flag set.
2721 Also, added a test case.
2723 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2725 2010-07-11 Gary Funck <gary@intrepid.com>
2727 Fix a bug where a statement in c_build_qualified_type()
2728 in the trunk had been inadvertently deleted.
2729 This bug showed up in the IA64 port, because jmpbuf's
2730 on that architecture must be 16 byte aligned, and they were not.
2731 c-typeck.c (c_build_qualified_type): Revive the deleted line.
2733 2010-07-08 Gary Funck <gary@intrepid.com>
2735 Make changes so that other language compilers
2736 will build and bootstrap.
2737 * c-family/c-common.c (compiling_upc, flag_upc,
2738 flag_upc_instrument, flag_upc_instrument_functions,
2739 use_upc_dwarf2_extensions): Move to stub-upc.c and
2741 * c-family/c-common.h (use_upc_dwarf2_extensions,
2742 compiling_upc): Add extern definitions - needed
2743 to compile/build other language front ends.
2744 * c-family/c.opt: Fix the spelling of ObjC.
2745 It had been incorrectly spelled as Objc.
2746 * c-family/c.opt: Add UPC for the various switches
2747 that are valid for both C and ObjC.
2748 * c-fmaily/c-opts.c: Add CL_UPC to the list of
2749 supported options switches when compiling assembly
2751 * lto/lto-lang.c (use_upc_dwarf2_extensions,
2752 flag_upc_instrument, flag_upc_instrument_functions):
2753 Remove these definitions. They have been moved
2754 to c-family/stub-upc.c.
2755 * upc/ChangeLog: Move relevant entries
2757 * c-family/stub-upc.c (compiling_upc, flag_upc,
2758 flag_upc_instrument, flag_upc_instrument_functions,
2759 use_upc_dwarf2_extensions): Moved from c-common.c
2760 * upc/upc-lang.c (compiling_upc, flag_upc,
2761 flag_upc_instrument, flag_upc_instrument_functions,
2762 use_upc_dwarf2_extensions): Moved from c-common.c
2763 * objc/objc-act.c (objc_gimplify_expr): Add additional
2764 parameters to c_gimplify_expr() call, that are used
2765 by upc's tree rewrites.
2766 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2767 * gcc/cp/lex.c (init_reswords): If not compiling
2768 UPC, then mask off the UPC keywords.
2769 * cp/Make-lang.in (C_STUB_OBJS): Use this
2770 make macro to link with c-family/stub-objc.o
2771 and c-family/stub-upc.o.
2772 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2773 * java/Make-lang.in (C_STUB_OBJS): Likewise.
2774 * objc/Make-lang.in: Link with c-family/stub-upc.o
2775 to avoid undefined references.
2776 c-parser.c: Fix line indentation.
2777 * libcpp/include/cpplib.h: Remove CL_UPC from
2778 the list of language kinds accepted by the
2779 C preprocessor. This is not necessary because
2780 UPC is a derivative of C99, and does not need
2781 a different language kind.
2782 * c-fmaily/c-opts.c (c_common_handle_option):
2783 Call set_std_c99() when processing the
2784 "--lang upc" switch, instead of setting the
2785 language kind to CL_UPC.
2786 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2788 2010-07-03 Gary Funck <gary@intrepid.com>
2790 Merge trunk version 161517 into gupc branch.
2791 * gcc/stub-upc.c: Move to gcc/c-family/.
2792 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2793 Add 'unused' attributes to avoid "set, but
2794 not referenced" warnings.
2795 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2798 2010-03-01 Gary Funck <gary@intrepid.com>
2800 Create gupc branch from trunk version 157149.