1 2013-04-04 Gary Funck <gary@intrepid.com>
3 Per the UPC 1.3 specification, the type of the
4 optional barrier/notify/wait expression is not constrained to
5 'int'. Instead, any type that is assignment compatible
6 with an 'int' type is permitted.
7 * c/c-parser.c (c_parser_upc_sync_statement): Do not check
8 the optional expression type here. Let upc_build_sync_stmt()
10 * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
11 * c/c-typeck.c (c_cvt_expr_for_assign): New. Also, call
12 error_at() in lieu of error() when the source location is known.
13 * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
14 to check/convert the optional synchronization statement
17 2013-04-02 Gary Funck <gary@intrepid.com>
19 Merge trunk version 197340 into gupc branch.
21 2013-04-02 Gary Funck <gary@intrepid.com>
23 Revert revision 178346 (2011-08-30)
24 which changed the prototype of check_qualified_type and related
25 functions so that their parameters were just 'tree' and not
26 'const_tree'. This seemed necessary at the time because of a
27 change to TYPE_BLOCK_FACTOR(), which in turn called function
28 that hashed the type node pointer. The hash functions did
29 not accept "const void *" pointers. Implement a work around
30 that removes this restriction.
31 * c/c-typeck.c: Revert.
33 * tree.h: Revert. Change prototype of upc_block_factor_lookup()
34 to accept a 'const_tree' pointer to a type node.
35 * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
36 * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
37 input argument and convert this to 'tree' for use with hash function.
39 2013-03-25 Gary Funck <gary@intrepid.com>
41 Merge trunk version 197029 into gupc branch.
43 2013-03-21 Gary Funck <gary@intrepid.com>
45 Released GUPC 4.8.0.3 based on version 196601.
46 This release version was committed on 2013-03-11.
47 * DATESTAMP: Bump date stamp.
49 2013-03-18 Gary Funck <gary@intrepid.com>
51 Merge trunk version 196771 into gupc branch.
52 * DEV-PHASE: Bump release identifier to 4.9.0-1.
54 2013-03-11 Gary Funck <gary@intrepid.com>
56 Merge trunk version 196592 into gupc branch.
58 2013-03-04 Gary Funck <gary@intrepid.com>
60 Merge trunk version 196422 into gupc branch.
62 2013-02-25 Gary Funck <gary@intrepid.com>
64 Merge trunk version 196253 into gupc branch.
66 2013-02-18 Gary Funck <gary@intrepid.com>
68 Merge trunk version 196115 into gupc branch.
70 2013-02-11 Gary Funck <gary@intrepid.com>
72 Merge trunk version 195937 into gupc branch.
74 2013-02-04 Gary Funck <gary@intrepid.com>
76 Merge trunk version 195707 into gupc branch.
78 2013-01-28 Gary Funck <gary@intrepid.com>
80 Merge trunk version 195502 into gupc branch.
82 2013-01-21 Gary Funck <gary@intrepid.com>
84 Merge trunk version 195330 into gupc branch.
86 2013-01-14 Gary Funck <gary@intrepid.com>
88 Merge trunk version 195164 into gupc branch.
90 2013-01-07 Gary Funck <gary@intrepid.com>
92 Merge trunk version 194962 into gupc branch.
94 2012-12-24 Gary Funck <gary@intrepid.com>
96 Merge trunk version 194709 into gupc branch.
98 2012-12-17 Gary Funck <gary@intrepid.com>
100 Merge trunk version 194552 into gupc branch.
102 2012-12-10 Gary Funck <gary@intrepid.com>
104 Merge trunk version 194351 into gupc branch.
106 2012-12-03 Gary Funck <gary@intrepid.com>
108 Merge trunk version 194076 into gupc branch.
110 2012-11-30 Gary Funck <gary@intrepid.com>
112 Released GUPC 4.8.0.2 based on version 193446.
113 Date of release: 2012-11-12.
114 * DEV-PHASE: Bump release identifier to 4.8.0-3.
115 * DATESTAMP: Bump date stamp.
117 2012-11-26 Gary Funck <gary@intrepid.com>
119 Merge trunk version 193807 into gupc branch.
121 2012-11-20 Gary Funck <gary@intrepid.com>
123 Merge trunk version 193672 into gupc branch.
125 2012-11-19 Gary Funck <gary@intrepid.com>
127 Merge trunk version 193617 into gupc branch.
129 2012-11-15 Gary Funck <gary@intrepid.com>
131 Merge trunk version 193426 into gupc branch.
133 2012-11-12 Gary Funck <gary@intrepid.com>
135 Released GUPC 4.8.0.1 based on version 192948.
136 Date of release: 2012-10-29.
137 * DEV-PHASE: Bump release identifier to 4.8.0-2.
138 * DATESTAMP: Bump date stamp.
140 2012-11-05 Gary Funck <gary@intrepid.com>
142 Merge trunk version 193152 into gupc branch.
144 2012-10-29 Gary Funck <gary@intrepid.com>
146 Merge trunk version 192909 into gupc branch.
148 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
150 Remove unused --upc-pthreads-per-process compile switch.
151 * c-family/c.opt: Remove --upc-pthreads-per-process switch
152 that compiler/runtime do not use.
153 * c-family/c-opts.c (c_common_handle_option): Remove support for
154 --upc-pthreads-per-process switch.
155 * c-family/c-common.c: Ditto.
156 * c-family/c-common.h: Ditto.
158 2012-10-27 Gary Funck <gary@intrepid.com>
160 * defaults.h: fix typos and formatting in UPC-related entries.
162 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
164 Place shared initialization code into the .text
165 section instead of a separate .upc_init section.
166 * defaults.h (UPC_INIT_SECTION_NAME): Delete.
167 (UPC_INIT_BEGIN_NAME): Delete.
168 (UPC_INIT_END_NAME): Delete.
169 * doc/tm.texi.in: Ditto.
170 * doc/tm.texi: Ditto.
172 2012-10-22 Gary Funck <gary@intrepid.com>
174 Merge trunk version 192673 into gupc branch.
176 2012-10-15 Gary Funck <gary@intrepid.com>
178 Merge trunk version 192449 into gupc branch.
180 2012-10-08 Gary Funck <gary@intrepid.com>
182 Merge trunk version 192198 into gupc branch.
184 2012-10-01 Gary Funck <gary@intrepid.com>
186 Merge trunk version 191931 into gupc branch.
188 2012-09-26 Gary Funck <gary@intrepid.com>
190 Implement support for various UPC version 1.3 specification
191 additions and changes. Deprecate support for upc_local_alloc.
192 Add support for upc_tick (wall-clock timer) library.
193 Add support for collective de-allocation functions:
194 upc_all_free and upc_all_lock_free.
195 Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
196 libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
198 2012-09-24 Gary Funck <gary@intrepid.com>
200 Merge trunk version 191658 into gupc branch.
202 2012-09-17 Gary Funck <gary@intrepid.com>
204 Merge trunk version 191376 into gupc branch.
206 2012-09-10 Gary Funck <gary@intrepid.com>
208 Merge trunk version 191141 into gupc branch.
210 2012-08-27 Gary Funck <gary@intrepid.com>
212 Merge trunk version 190707 into gupc branch.
213 * tree.h (struct tree_base): Adjust various
214 UPC tree and type flags to refer to the
215 newly introduced u.bits field.
217 2012-08-20 Gary Funck <gary@intrepid.com>
219 Merge trunk version 190524 into gupc branch.
220 Incorporates a fix in genoutput.c (to properly use
221 CONST_CAST) that led to build failures with
222 older versions of g++.
224 2012-08-16 Gary Funck <gary@intrepid.com>
226 Merge trunk version 190437 into gupc branch.
227 Incorporates a fix for a build failure on the PPC
228 due to passing incorrect switches to the assembler.
229 Also, first merged trunk revision that compiles GCC
230 with the C++ compiler in the first stage.
232 2012-08-13 Gary Funck <gary@intrepid.com>
234 Merge trunk version 190336 into gupc branch.
236 2012-08-09 Gary Funck <gary@intrepid.com>
238 * c-family/c-common.c (c_fully_fold_internal): Do not fold
239 offsetof-like expressions when they are applied to UPC
242 2012-08-06 Gary Funck <gary@intrepid.com>
244 Merge trunk version 190173 into gupc branch.
246 2012-08-01 Gary Funck <gary@intrepid.com>
248 Merge trunk version 190063 into gupc branch.
249 Incorporates fix for build failure on IA64.
251 2012-07-30 Gary Funck <gary@intrepid.com>
253 Merge trunk version 189954 into gupc branch.
255 2012-07-27 Gary Funck <gary@intrepid.com>
257 Merge trunk version 189856 into gupc branch.
258 Incorporates fix for bootstrap with a sub-set of language
259 specific source directories present.
260 * optabs.c: Revert to trunk. Rather than defining opcodes
261 as a way of defining get/put runtime library function names,
262 generate them directly in gcc/upc/upc-genericize.c.
264 * genopinit.c: Ditto.
266 2012-07-23 Gary Funck <gary@intrepid.com>
268 Merge trunk version 189777 into gupc branch.
270 2012-07-16 Gary Funck <gary@intrepid.com>
272 Merge trunk version 189545 into gupc branch.
274 2012-07-12 Gary Funck <gary@intrepid.com>
276 Merge trunk version 189366 into gupc branch.
278 2012-07-05 Gary Funck <gary@intrepid.com>
280 Merge trunk version 189274 into gupc branch.
281 Incorporates graphite build infrastructure changes.
283 2012-07-04 Gary Funck <gary@intrepid.com>
285 Merge trunk version 189080 into gupc branch.
286 * Makefile.in: Adjust for move of C front-end files.
287 * c/Make-lang.in: Ditto.
289 2012-07-03 Gary Funck <gary@intrepid.com>
291 Merge trunk version 189078 into gupc branch.
293 2012-06-25 Gary Funck <gary@intrepid.com>
295 Merge trunk version 188931 into gupc branch.
297 2012-06-18 Gary Funck <gary@intrepid.com>
299 Merge trunk version 188721 into gupc branch.
301 2012-06-11 Gary Funck <gary@intrepid.com>
303 Merge trunk version 188380 into gupc branch.
305 2012-06-04 Gary Funck <gary@intrepid.com>
307 Merge trunk version 188168 into gupc branch.
309 2012-05-29 Gary Funck <gary@intrepid.com>
311 Merge trunk version 187927 into gupc branch.
313 2012-05-18 Gary Funck <gary@intrepid.com>
315 Merge trunk version 187666 into gupc branch.
316 Incorporates fix for ICE in tree vectorization pass
317 when processing strided loads.
319 2012-05-17 Gary Funck <gary@intrepid.com>
321 Merge trunk version 187578 into gupc branch.
323 2012-05-09 Gary Funck <gary@intrepid.com>
325 Merge trunk version 187347 into gupc branch.
326 Incorporates fix for segfault in tree vectorization pass.
328 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
330 * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
331 Appropriate libraries and include files are added on the
332 command line to make it possible to compile with the driver
335 2012-04-29 Nenad Vukicevic <nenad@intrepid.com>
337 * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
338 PPC ABI. In the UPC 'struct' pointer-to-shared representation,
339 a function returns a pointer-to-shared in memory instead
341 (rs6000_pass_by_reference): Ditto.
343 2012-04-28 Gary Funck <gary@intrepid.com>
345 * c-decl.c (grokdeclarator): Set 'type' to error node
346 after detecting "shared auto variable" error to avoid
347 downstream complications.
348 * upc-act.c: Fix a couple of spelling errors in comments.
350 2012-04-26 Gary Funck <gary@intrepid.com>
352 * c-family/c-pragma.c (handle_pragma_upc):
353 Fix typo in warning message.
355 2012-04-17 Gary Funck <gary@intrepid.com>
357 Merge trunk version 186486 into gupc branch.
359 2012-04-17 Gary Funck <gary@intrepid.com>
361 * c-family/c-pragma.c (disable_pupc_mode): Return the previous
362 value of the pupc mode. Fixes a compile-time warning.
363 * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
364 disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
365 Improve source formatting.
367 2012-04-09 Gary Funck <gary@intrepid.com>
369 Merge trunk version 186243 into gupc branch.
370 Incorporates a powerpc 'ffi' fix.
372 2012-03-16 Gary Funck <gary@intrepid.com>
374 Merge trunk version 185454 into gupc branch.
375 Incorporates a libgcc fix for builds on Darwin.
377 2012-03-13 Gary Funck <gary@intrepid.com>
379 Merge trunk version 185278 into gupc branch.
380 * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
381 call build_pointer_type() to apply UPC-specific qualifiers.
382 * top-level/configure.ac: factor the checking for posix hostst
383 out of the libgomp section so that it can also be used by libgupc.
384 * top-level/configure: Re-generate.
385 * DEV-PHASE: bump to 4.8.0-1.
387 2012-03-12 Gary Funck <gary@intrepid.com>
389 * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
390 the mode for a pointer for upc-pointer-to-shared types.
392 2012-03-04 Gary Funck <gary@intrepid.com>
394 Merge trunk version 184900 into gupc branch.
396 2012-02-17 Gary Funck <gary@intrepid.com>
398 Released GUPC 4.7.0.2 based on version 183992.
399 * DEV-PHASE: Bump release identifier to 4.7.0-3.
400 * DATESTAMP: Bump date stamp.
402 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
404 * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
405 code generation (same as #pragma pupc off).
406 (set_pupc_mode): New. Set/restore profiling mode.
407 * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
408 (set_pupc_mode): New. Prototype.
409 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
410 profiling code for shared variables initialization routines.
412 2012-01-31 Gary Funck <gary@intrepid.com>
414 Merge trunk version 183751 into gupc branch.
415 Incorporates fix for bootstrap failure on openSUSE 12.1.
417 2012-01-10 Gary Funck <gary@intrepid.com>
419 Merge trunk version 183072 into gupc branch.
420 Incorporates libcpp __BASE_FILE__ fix.
422 2011-12-20 Nenad Vukicevic <nenad@intrepid.com>
424 * top-level/Makefile.def (flags_to_pass): Added GUPC
425 defines. Fixes the make error when upc is not specified as one
426 of the languages to build.
427 * top-level/Makefile.in: Re-generate.
429 2011-11-22 Gary Funck <gary@intrepid.com>
431 * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
432 * dwarf2out.c (gen_compile_unit_die): Check for
433 the "GNU UPC" language string in lieu of "GCC UPC".
434 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
436 2011-11-18 Gary Funck <gary@intrepid.com>
438 Merge trunk version 181552 into gupc branch.
439 Incorporates libgcc/libunwind fix for IA64.
441 2011-11-19 Gary Funck <gary@intrepid.com>
443 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
444 Add check for UPC when defining the language type value
445 in a traceback entry.
447 2011-11-18 Gary Funck <gary@intrepid.com>
449 Merge trunk version 181493 into gupc branch.
450 Incorporates final fix for PR target/49992.
452 2011-11-09 Nenad Vukicevic <nenad@intrepid.com>
454 * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
455 change that converted relative include paths into absolute
456 ones, as it does not work with older version of make (3.80).
458 2011-10-27 Nenad Vukicevic <nenad@intrepid.com>
460 Apply patch for Darwin build - PR49992.
461 * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
462 * gcc/configure.ac: Ditto.
463 * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
464 * gcc/ada/gcc-interface/Makefile.in: Ditto.
465 * top-level/configure: Re-generate.
466 * gcc/configure: Re-genrate.
468 2011-10-26 Gary Funck <gary@intrepid.com>
470 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
471 "libupc" to "libgupc".
472 * top-level/configure.ac: Implement support for cross-builds, and
473 adjust for rename of libupc to libgupc.
474 * top-level/Makefile.tpl: Ditto.
475 * top-level/Makefile.def: Ditto.
476 * top-level/configure: Re-generate.
477 * top-level/Makefile.in: Re-generate.
478 * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
479 * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
480 * doc/tm.texi: Re-generate.
481 * tree-pretty-print.c (dump_block_node): Delete unused variable.
482 * gcc.c: Adjust for rename of libupc to libgupc.
483 * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
484 Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
485 Change "xupc" to "xgupc".
486 * configure.ac: Change "GCC UPC" to "GNU UPC".
487 * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
488 so that they are absolute paths. This is needed because
489 the upc-crtstuff builds are in the libgupc library build
490 directories which are not at the same level as libgcc.
491 * config/darwin.h: Adjust for rename of libupc to libgupc.
493 2011-10-20 Gary Funck <gary@intrepid.com>
495 Merge trunk version 180276 into gupc branch.
496 Incorporates fix for PR bootstrap/50709.
498 2011-10-20 Gary Funck <gary@intrepid.com>
500 Merge trunk version 180246 into gupc branch.
502 2011-10-19 Gary Funck <gary@intrepid.com>
504 Merge trunk version 180233 into gupc branch.
505 Incorporates fix for PR debug/49310 (var tracking).
507 2011-10-11 Nenad Vukicevic <nenad@intrepid.com>
509 * testsuite/lib/upc-dg.exp: Limit number of torture runs to
510 only four (O0 static/dynamic, O3 static/dynamic).
511 Detect -fupc-threads-0 as an option for dynamic threads
514 2011-10-10 Gary Funck <gary@intrepid.com>
516 * tree.c (check_qualified_type, check_aligned_type):
517 Call tree_int_cst_equal() to compare UPC blocking factors
518 if the corresponding tree pointers are not equal.
519 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
521 2011-10-07 Nenad Vukicevic <nenad@intrepid.com>
523 Add configuration checks for struct/packed builds so we can
524 use upc_struct_pts/upc_packed_pts selectors in the testsuite.
525 * testsuite/lib/target-supports.exp
526 (check_effective_target_upc_struct_pts): New.
527 (check_effective_target_upc_packed_pts): New.
529 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
531 Add to FLAGS the flags needed to disable inlining of
532 UPC run-time access routines.
533 * testsuite/lib/target-supports.exp
534 (add_options_for_upc_library_calls): New.
536 2011-09-15 Gary Funck <gary@intrepid.com>
538 Fix ICE involving shared bit field accesses.
539 * tree.c (build3_stat): Propagate TEEE_SHARED()
540 and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
542 2011-09-13 Gary Funck <gary@intrepid.com>
544 Merge trunk version 178795 into gupc branch.
545 Incorporates fix to PR bootstrap/50010 for x86-32.
547 2011-09-08 Gary Funck <gary@intrepid.com>
549 Merge trunk version 178557 into gupc branch.
551 2011-09-07 Gary Funck <gary@intrepid.com>
553 Ensure that UPC pointer-to-shared type alignment is
554 propagated to the final type. Revert to long-standing
555 alignment policy: twice the size of a "C" pointer.
556 * tree.c (build_pointer_type): Propagate the alignment
557 of the UPC pointer-to-shared representation type
558 into the newly built pointer type.
560 2011-08-30 Gary Funck <gary@intrepid.com>
562 * tree.h (check_qualified_type): Change 'const_tree'
563 argument types back to 'tree' to avoid complaints
564 of assignment drops qualifiers for invocations of the
565 newly implemented TYPE_BLOCK_FACTOR() macro, which
566 invokes hash functions with 'tree' pointer values that
567 are not const qualified.
568 * tree.c (check_qualified_type, check_aligned_type): Ditto.
569 * c-typeck.c (comptypes_internal): Ditto.
571 2011-08-29 Gary Funck <gary@intrepid.com>
573 Fixes for regressions noted running "make check"
575 * fold-const.c (fold_unary_loc): Execute UPC-specific
576 checks for a cast-of-a-cast, only if one of the
577 operands is a UPC pointer-to-shared value.
578 * opts.c (print_specific_help): Fix a comparison
579 in an assert that checks that there are enough
580 bits reserved for the number of languages defined
583 2011-08-29 Gary Funck <gary@intrepid.com>
585 Implement a hash table to record UPC block factors.
586 * c-family/stub-upc.c (upc_block_factor_insert,
587 upc_block_factor_lookup): New dummy stub procedures.
588 * c-family/c-common.c (c_sizeof_or_alignof_type):
589 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
590 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
591 to copy (hashed) UPC blocking factor.
592 (set_type_quals): Likewise.
593 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
594 TYPE_HAS_THREADS_FACTOR().
595 (type_common.block_factor): Delete.
596 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
597 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
598 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
599 UPC blocking factors greater than one.
600 * dwarf2out.c (modified_type_die): Re-implement
601 logic that records UPC blocking factor in the generated
602 DWARF2 debugging information.
603 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
604 TYPE_HAS_THREADS_FACTOR().
605 * c-decl.c (finish_decl, grokdeclarator):
606 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
607 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
608 used by UPC, and print UPC-specific information.
610 2011-08-28 Gary Funck <gary@intrepid.com>
612 Re-work the type machinery to fully support and to unify support
613 for the UPC layout qualifier (blocking factor).
614 * c-family/stub-upc.c (upc_set_block_factor): Delete.
615 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
616 and update prototype.
617 * c-family/c-common.c (complete_array_type): call newly
618 defined c_build_qualified_type_1() instead of
619 upc_set_block_factor().
620 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
621 upc_apply_layout_qualifier() and update prototype.
622 (upc_set_block_factor): Delete prototype.
623 * c-family/c-common.h (c_build_qualified_type): redefine
624 as a pre-processor macro that invokes c_build_qualified_type_1()
625 with a null UPC layout qualifier.
626 (c_build_qualified_type_1): New. Add layout qualifier argument
627 to old c_build_qualified_type() prototype.
628 * tree.c (set_type_quals, check_qualified_type):
629 Add layout qualifier as argument.
630 (check_aligned_type): Add check for UPC block factor equality.
631 (get_qualified_type_1): Rename from get_qualified_type() and
632 add layout qualifier as argument.
633 (build_qualified_type_1): Rename from build_qualified_type() and
634 add layout qualifier as argument.
635 * tree.h (check_qualified_type): Add layout qualifier as argument
637 (get_qualified_type): Re-define as a as a pre-processor macro
638 that invokes get_qualified_type_1() with a null
639 UPC layout qualifier.
640 (get_qualified_type_1): Rename from get_qualified_type() and
641 add layout qualifier as argument.
642 * cp/tree.c (c_build_qualified_type_1): Rename from
643 c_build_qualified_type() and add (unused) layout qualifier
645 * c-decl.c (finish_decl): re-format long error messages.
646 (grokdeclarator): Re-work the logic so that it calls
647 upc_grok_layout_qualifier() to handle the UPC layout
648 qualifier, if present.
649 * c-typeck.c (qualify_type, common_pointer_type,
650 build_component_ref): Re-work the logic so that it calls
651 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
653 (c_build_qualified_type_1): Rename from c_build_qualified_type()
654 and add layout qualifier argument.
655 * print_tree.c (print_node): Re-format a long line.
657 2011-08-26 Gary Funck <gary@intrepid.com>
659 Merge trunk version 177949 into gupc branch.
660 * c-family/c-common.h (enum rid): Bump the number of type modifiers
662 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
663 to add new rliterals column value.
665 2011-08-26 Gary Funck <gary@intrepid.com>
667 * convert.c (convert_to_integer): Fix the check for the
668 difference between two UPC pointers-to-shared values.
670 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
672 * configure.ac: Fix the name for --with-upc-pts-packed-bits
673 option. Support --with-upc-packed-bits as deprecated. Fix the code to
674 correctly check packed bits.
675 * configure: Re-generate.
677 2011-08-16 Gary Funck <gary@intrepid.com>
679 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
680 the barrier id expression is not an integer expression.
682 2011-08-12 Gary Funck <gary@intrepid.com>
684 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
686 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
687 Set mode of UPC pointer-to-shared rep. to an
688 integral mode of size at least as large as the
689 size of the representation's struct type.
691 2011-08-12 Gary Funck <gary@intrepid.com>
693 Rework/simplify the UPC genericize pass.
694 * c-family/stub-upc.c (upc_apply_layout_qualifier,
695 upc_build_pointer_type): New.
696 (upc_set_block_factor): Adjust to new calling sequence.
697 (upc_build_shared_var_addr): Delete.
698 * c-family/c-common.c (complete_array_type): Adjust call
699 to upc_set_block_factor().
700 * c-family/c-upc.h (upc_apply_layout_qualifier,
701 upc_build_pointer_type): New.
702 (upc_build_shared_var_addr): Delete.
703 (upc_set_block_factor): Adjust to new calling sequence.
704 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
705 * c-decl.c (grokdeclarator): Call newly defined
706 upc_apply_layout_qualifier() instead of upc_set_block_factor().
707 * c-decl.c (grokdeclarator): Split long UPC-related error
708 messages into two lines.
709 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
710 directly. Revert that change to trunk. (upc_genericize() will
711 handle lowering the expressions that take the address of a
713 * config/i386/i386.c (ix86_promote_function_mode): For UPC
714 pointers-to-shared, return the type mode of the UPC pointer-to-shared
717 2011-08-10 Gary Funck <gary@intrepid.com>
719 Implement additional fixes for recent merge with trunk.
720 * explow.c (promote_mode): Do not attempt to promote
721 the mode for UPC pointer-to-shared types.
722 * config/i386/i386.c (function_value_64): Ditto.
724 2011-08-07 Gary Funck <gary@intrepid.com>
726 Merge trunk version 177548 into gupc branch.
727 * config/i386/i386.c (ix86_promote_function_mode):
728 Do not promote UPC pointers-to-shared to Pmode.
729 * c-family/c-ommon.c (pointer_int_sum):
730 Also check the pointer operand, rather than just
731 its type, when making the decision to derive
732 the equivalent unshared type.
733 * tree.c (build2_stat): If the type of the result
734 passed in as an argument is a UPC shared type,
735 derive the unshared equivalent when calculating
736 the result type of the node.
738 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
740 * config/darwin.c: Disable var_tracking option
741 on -O0 as it is supposed to run only when optimization
742 is applied. See GCC bug 49743.
744 2011-07-06 Gary Funck <gary@intrepid.com>
746 Re-implement the pass that lowers trees generated by
747 the UPC front-end into GENERIC. Previously this was
748 done within the gimplification framework, but this
749 required that gimplification be run before inlining
750 and various other passes, which did not fit in well
751 with the current design of the middle-end passes.
752 Now, the lowering is done by a newly defined language
753 specific genericize hook. With this change, we are
754 are able to undo some extensions made to the gimplify
755 logic, and thus can revert several files to trunk.
757 * c-decl.c: Add a check for UPC deprecated names which
758 may appear as undefined function names.
759 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
760 LTI_upc_getaddr): Remove definitions of unused UPC
761 library function names. These were defined back when
762 the libfunc interface was used to call these routines.
763 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
764 in UPC lowering (genericize) pass.
765 * langhooks.h (gimplify_expr): Revert to trunk's definition.
766 (instrument_func): Delete this hook. Now handled in
768 * tree-pass.h: Revert to trunk.
769 * c-typeck.c (build_unary_op): Adjust reference to
770 upc_genericize() in a comment.
771 * gimplify.c (create_tmp_var_raw): Delete logic that
772 was converting UPC shared types into unshared types
773 to be used for temporaries. Now handled in upc_genericize().
774 Replace with an assertion check.
775 (prepare_gimple_addressable): Revert to trunk's definition.
776 No longer needed as an externally called function.
777 (flag_instrument_functions_exclude_p): Re-define as
778 an externally called function.
779 (gimplify_function_tree): Delete code that implemented
780 call to UPC's language specific function instrumentation hook.
781 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
782 (prepare_gimple_addressable): Delete extern definition;
783 revert to trunk's definition.
784 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
785 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
786 * c-family/c-gimplify.c: Revert to trunk.
787 * cp/cp-gimplify.c: Revert to trunk.
788 * cp/cp-tree.h: Revert to trunk.
789 * explow.c: Revert to trunk.
790 * langhooks.c: Revert to trunk.
791 * libfuncs.h: Revert to trunk.
792 * objc/objc-act.c: Revert to trunk.
794 2011-06-30 Gary Funck <gary@intrepid.com>
796 * c-family/c.opt: Bring options definitions up-to-date
797 with respect to changes made in the trunk.
799 2011-06-29 Gary Funck <gary@intrepid.com>
801 Merge trunk version 175584 into gupc branch.
803 2011-06-13 Gary Funck <gary@intrepid.com>
806 * include/cpplib.h (enum c_lang):
807 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
808 This keeps all the "C" variants together.
809 * init.c (lang_defaults): Add an entry for UPC.
811 2011-06-09 Gary Funck <gary@intrepid.com>
813 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
814 a 32-bit target, the size expression overflowed, the result was
815 error_mark_node, and an ICE was triggered on an attempt to evaluate
816 C_TYPE_VARIABLE_SIZE() on the error node.
817 (upc_blocksizeof_expr, upc_blocksizeof_type,
818 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
819 Make similar changes to avoid further processing of error_mark_node.
821 2011-06-07 Gary Funck <gary@intrepid.com>
823 * sel-sched.c (move_op): Incorporate the following
824 patch to eliminate ICE at -O3 on IA64/Altix.
826 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
828 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
829 code_motion_path_driver returned 0 or 1.
830 (sel_region_finish): Clear h_d_i_d.
832 2011-06-02 Gary Funck <gary@intrepid.com>
834 Merge trunk version 174558 into gupc branch.
836 2011-05-30 Gary Funck <gary@intrepid.com>
838 * configure.ac: Make the default order of the virtual
839 address field in a UPC pointer-to-shared to be "first".
840 This reverts to the previous setting, and is a short term
841 measure to work around a bug found on the IA64,
842 where vaddr=last led to incorrect code generation.
843 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
844 in AC_DEFINE(), to agree with recent changes in files
845 that reference this define.
846 configure, config.in: Regenerate.
848 2011-05-26 Gary Funck <gary@intrepid.com>
850 * configure.ac: Fix typo when referring to $upc_vaddr_order.
851 configure: Regenerate.
853 * ../fixincludes/fixincl.x: Revert to trunk.
854 This file is auto-generated, and should not be merged.
856 2011-05-18 Gary Funck <gary@intrepid.com>
858 Merge trunk version 173845 into gupc branch.
860 2011-05-17 Gary Funck <gary@intrepid.com>
862 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
863 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
865 * c-family/c-pragma.c: Remove conditional compilation
866 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
867 Test 'compiling_upc' when compiling to determine if
868 the "upc" and "pupc" pragmas should be registered.
870 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
871 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
872 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
873 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
874 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
875 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
876 Move these target-dependent definitions from config/upc-conf.h
879 * configure.ac: Improve the logic for UPC-related options.
880 Delete references to pre-processor definitions that have
881 been moved to "upc/upc-pts.h".
883 * configure, config.in: Regenerate.
885 * Makefile.in (UPC_PTS_REP): Remove definition and revert
886 to trunk. This substitution variable was used to
887 configure the representation-specific versions of
888 the tree rewrites that operate on UPC pointer-to-shared
891 * c-parser.c (c_parser_upc_forall_statement): Remove
892 reference to UPC_FORALL_DEPTH_NAME, and call
893 newly defined upc_rts_forall_depth_var() instead.
895 * config/upc-config.h: Delete. Various definitions
896 moved to "upc/upc-rts-names.h", "defaults.h", and
899 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
900 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
901 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
902 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
903 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
904 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
905 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
906 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
907 New. Document UPC target macros.
908 doc/tm.texi: Regenerate.
910 2011-05-07 Gary Funck <gary@intrepid.com>
912 * ../configure.ac: Disable build of libupc
913 on non POSIX hosted systems. Use AS_HELP_STRING
914 to define messages. Remove 'word-pair' as a
915 possible --with-upc-pts UPC pointer-to-shared
918 * ../configure: Regenerate.
920 * configure.ac: Use AS_HELP_STRING to define messages.
921 Remove 'word-pair' as a possible --with-upc-pts
922 UPC pointer-to-shared representation.
923 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
924 (UPC_MAX_BLOCK_SIZE): Correct the default value.
926 * configure: Regenerate.
928 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
931 * ChangeLog.upc: Fix some typos.
933 2011-05-07 Gary Funck <gary@intrepid.com>
935 * ../maintainer-scripts/gcc_release: Add "upc"
936 as one of the released languages.
938 2011-05-06 Gary Funck <gary@intrepid.com>
940 Eliminate compilation warnings, by fixing
941 #include's and updating function prototypes.
943 * c-family/c-cppbuiltin.c: Include c-upc.h.
945 * optabs.c (gen_libfunc): Change type of 'suffix'
946 parameter to conform with prototype.
948 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
949 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
952 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
955 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
956 argument values to cp_gimplify_expr.
958 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
959 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
960 pre-processor definitions that are no longer
961 needed to build the 'upc' command (upc-cmd.c)
962 because the linker specs. defined in libupc
963 take care of linking in the needed libraries.
965 * c-parser.c (c_parser_upc_forall_statement):
966 initialize affinity_loc to avoid "maybe unused" warning.
967 (c_parser_upc_sync_statement): Remove un-needed
968 'ret' variable. Cast return value from
969 'upc_build_sync_stmt' to 'void' to avoid
970 compile-time warning.
972 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
973 integer constant, not a string. Range is restricted
974 to maximum positive 32-bit integer (2+ billion) to
975 fit in with the use of 'int' in the front-end's
976 switch handling logic.
978 2011-05-06 Gary Funck <gary@intrepid.com>
980 Upgrade c-family source files to conform with modularity
981 improvements. Mainly, remove #include of c-tree.h in files
982 under c-family, and define a new UPC-specific #include file,
985 * c-family/stub-upc.c: Remove #include of c-tree.h and
986 upc/upc-act.h. Replace with #include of c-common.h
988 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
989 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
990 upc_localsizeof_expr, upc_localsizeof_type,
991 upc_shared_type_p): Delete.
993 * c-family/c-opts.c: Add #include of c-upc.h
995 * c-family/c-common.c: Remove #include of c-tree.h and
996 add #include of c-upc.h.
998 * c-family/c-upc.h: New. Define API for UPC-specific functions
999 (mostly implemented in upc/upc-act.c).
1001 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
1002 Remove extern definitions.
1004 * c-family/c-pragma.c: Remove #include of c-tree.h.
1005 Add #include of c-upc.h.
1007 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
1009 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
1010 upc/upc-act.c, and define as a macro.
1011 (expand_affinity_test): Remove unused external definition.
1012 (build_upc_unshared_type): Add external definition.
1013 (upc_shared_type_p): Remove external definition.
1015 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1017 * dojump.c: Remove #include of c-tree.h.
1019 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1021 (count_upc_threads_refs, is_multiple_of_upc_threads,
1022 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1023 upc_build_shared_var_addr, upc_build_sync_stmt,
1024 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1025 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1026 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1027 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1028 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1029 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1030 set_upc_consistency_mode, get_upc_consistency_mode,
1031 push_upc_consistency_mode, pop_upc_consistency_mode,
1033 Move external definitions to c-family/c-upc.h.
1034 (upc_blocksizeof_type, upc_localsizeof_type,
1035 upc_elemsizeof_type): Remove external definitions;
1036 these functions were moved to c-parser.c.
1038 * c-decl.c: Add #include of c-upc.h.
1040 * c-typeck.c: Add #include of c-upc.h.
1042 * c-convert.c: Add #include of c-upc.h.
1044 * ChangeLog.upc: Fix typo.
1046 * Makefile.in: Add references to c-family/c-upc.h, everywhere
1047 there is a reference to c-family/c-objc.h.
1048 Remove extraneous reference to upc-act.h.
1050 * c-parser.c: Add #include of c-upc.h.
1051 (upc_blocksizeof_expr, upc_blocksizeof_type,
1052 upc_elemsizeof_expr, upc_elemsizeof_type,
1053 upc_localsizeof_expr, upc_localsizeof_type):
1054 Move from upc/upc-act.c.
1056 * tree.c (build_upc_unshared_type): New.
1057 Move upc_get_unshared_type from upc/upc-act.c and rename
1058 to build_upc_unshared_type.
1059 c-family/c-common.c (pointer_int_sum): refer to renamed
1060 build_upc_unshared_type function.
1061 c-convert.c (convert): Ditto.
1062 convert.c (convert_to_pointer): Ditto.
1063 c-typeck.c (build_unary_op, build_modify_expr,
1064 really_start_incremental_init): Ditto.
1065 gimplify.c (create_tmp_var_raw): Ditto.
1066 tree.c (build1_stat): Ditto.
1067 tree.h (upc_get_unshared_type): Rename to
1068 build_upc_unshared_type.
1070 2011-05-06 Gary Funck <gary@intrepid.com>
1072 Merge trunk version 173471 into gupc branch.
1074 2011-05-05 Gary Funck <gary@intrepid.com>
1076 Make changes that bring the GUPC branch more closely in sync.
1077 with the GCC trunk. Revert any fixes that are not UPC-specific.
1078 Remove gratuitous re-formatting.
1080 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1081 This file should have been removed in a previous merge
1083 * ../configure.ac: Remove Cray Catamount/CNL support.
1084 * ../configure: Regenerate.
1085 * ../config.sub: Remove Cray Catamount/CNL support.
1086 * config.gcc: Remove Cray Catamount/CNL support.
1087 * ../maintainer-scripts/gcc_release: Revert to trunk.
1088 * c-family/c-common.h: Define parse_optimize_options. Its definition
1089 was missed in a previous merge with the trunk.
1090 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1092 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1093 in addition to ARRAY_TYPE.
1094 * c-typeck.c: Remove an extra newline character.
1095 * varasm.c: Revert a fix that improved an error message
1096 when TLS common data is unimplemented.
1097 * varasm.c: Revert a gcc_assert that had been added which
1098 checked for a null DECL_SIZE_UNIT field.
1099 * emultls.c: Revert to trunk. Remove possible fix.
1100 * Makefile.in: Revert extra blank line that is present
1101 in the trunk version.
1102 * Makefile.in: Revert a fix that handled long shell
1103 argument lists for plugin headers.
1104 * config/ia64/ia64.opt: Revert an option setting
1105 that increased the default TLS address range.
1106 * config/ia64/crtbegin.asm: Revert to trunk.
1107 Removes an extra newline character.
1108 * ChangeLog.upc: Spell check.
1110 2011-05-03 Gary Funck <gary@intrepid.com>
1112 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1113 (c_apply_type_quals_to_decl): Ditto.
1114 * c-family/c-common.h: Ditto.
1116 * c-decl.c (merge_decls): Ditto.
1117 * c-typeck.c (qualify_type, default_conversion,
1118 build_component_ref, build_unary_op,
1119 c_build_qualified_type): Ditto.
1120 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1122 2011-04-29 Gary Funck <gary@intrepid.com>
1124 * c-decl.c (finish_decl): Improve error diagnostics.
1125 (grokdeclarator): Ditto.
1127 * c-typeck.c (build_c_cast): Improve error diagnostics.
1128 (convert_for_assignment): Ditto.
1129 (build_binary_op): Ditto.
1131 * c-parser.c (c_parser_upc_forall_statement):
1132 Improve error diagnostics.
1134 * convert.c (convert_to_integer): Improve error diagnostics.
1136 2011-04-24 Gary Funck <gary@intrepid.com>
1138 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1139 occurred if there is an error in the barrier id
1140 expression. Map error_mark_node into NULL.
1142 2011-04-22 Gary Funck <gary@intrepid.com>
1144 Merge trunk version 172873 into gupc branch.
1146 2011-04-19 Gary Funck <gary@intrepid.com>
1148 Merge trunk version 172359 into gupc branch.
1150 2011-04-14 Gary Funck <gary@intrepid.com>
1152 * c-family/c.opt: Add UPC as a valid language for various
1153 switches where it is valid for "C", that were not updated
1154 in previous merges with trunk.
1156 2011-04-13 Gary Funck <gary@intrepid.com>
1158 * c-family/c.opt (fupc-pre-include): New option definition.
1159 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1160 -fno-upc-pre-include is asserted.
1162 2011-04-07 Gary Funck <gary@intrepid.com>
1164 Merge trunk version 172158 into gupc branch.
1165 to bring in the following fix.
1167 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
1170 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1171 if old and new states differ.
1173 2011-04-06 Gary Funck <gary@intrepid.com>
1175 Merge trunk version 171966 into gupc branch.
1177 2011-04-01 Gary Funck <gary@intrepid.com>
1179 * tree.h (tree_base): Move UPC flag bits into bit fields
1180 located just before spare bits. Decrement spare bits.
1181 Rename 'shared_flag' -> 'upc_shared_flag',
1182 'relaxed_flag' -> 'upc_relaxed_flag',
1183 'strict_flag' -> 'upc_strict_flag, and adjust macros
1184 that reference them accordingly.
1186 2011-04-01 Gary Funck <gary@intrepid.com>
1188 * c-decl.c (grokdeclarator): Fix formatting of
1189 code that sets UPC block size on scalars.
1191 2011-04-01 Gary Funck <gary@intrepid.com>
1193 * c-decl.c (grokdeclarator): Revert use of white space
1194 to match the trunk (to rationalize diffs).
1195 * c-typeck.c (convert_for_assignment): Ditto.
1196 * tree-ssa.c (useless_type_conversion_p): Ditto.
1198 2011-03-23 Gary Funck <gary@intrepid.com>
1200 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1201 the GCC 4.6 release branch.
1203 2011-03-21 Gary Funck <gary@intrepid.com>
1205 Merge trunk version 171202 into gupc branch.
1207 2011-03-20 Gary Funck <gary@intrepid.com>
1209 * varasm.c: Call error() directly with a format specifier,
1210 rather than using sprintf() to format the message.
1211 This should make it easier to internationalize UPC's error messages.
1213 2011-03-20 Gary Funck <gary@intrepid.com>
1215 * configure.ac: Fix the check for gnu ld when enabling
1216 UPC link script support.
1217 configure: Regenerate (also picks up changes from previous
1220 2011-03-20 Gary Funck <gary@intrepid.com>
1222 Move UPC start files, end files, and linker specs.
1223 into libupc. This reduces the impact on common GCC
1224 configuration files, and ensures that these UPC-specific
1225 components are only built when the UPC language dialect is selected.
1229 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1230 linker specs. Fix typo in -fupc-debug message.
1232 * config/upc-conf.h, config/darwin.h: Move defines for
1233 UPC-related section begins/ends into libupc/config/default/
1236 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1237 UPC-related linker compiler specifications,
1238 accessed via %:include().
1240 * configure.ac, configure: Remove logic related to building
1241 upc-crtbegin/end. Remove config. tests for numa and cpu
1242 affinity (previously used by the 'upc' driver); these
1243 settings are now propagated by target-specific compiler
1244 specs. built by libupc. Regenerate autoconf.
1246 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1247 linker compiler specifications, accessed via %:include().
1248 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1251 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1253 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1254 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1255 config/ia64/linux.h, config/mips/t-iris,
1256 config/mips/iris6.h: Revert to trunk version 167307.
1259 * configure, configure.ac, config.host, Makefile.in:
1260 Revert to trunk version 167307.
1262 2011-02-23 Gary Funck <gary@intrepid.com>
1264 * c-decl.c (undeclared_variable): fix typo. Inadvertently
1265 removed negation on following 'if'.
1267 2011-02-22 Gary Funck <gary@intrepid.com>
1269 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1270 to check for the usage of certain deprecated UPC keywords.
1271 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1272 * c-tree.h (undeclared_variable): Define prototype.
1274 2011-02-12 Gary Funck <gary@intrepid.com>
1276 * c-typeck.c: (build_c_cast, convert_for_assignment)
1277 Diagnose an attempt to convert from an integer to
1278 a pointer-to-shared as an error. Also, fix various
1279 error messages so that they use the preferred term
1280 pointer-to-shared instead of "shared pointer".
1282 2011-02-07 Gary Funck <gary@intrepid.com>
1284 * c-typeck.c: (convert_for_assignment)
1285 Fix typo. in error message.
1287 2011-01-23 Gary Funck <gary@intrepid.com>
1289 * c-typeck.c: (c_build_qualified_type)
1290 derive UPC block size by calling upc_get_block_size(),
1291 to ensure that the element type of an array of an array
1292 is derived correctly.
1294 2010-12-29 Gary Funck <gary@intrepid.com>
1296 Merge trunk version 168314 into gupc branch.
1298 2010-12-15 Gary Funck <gary@intrepid.com>
1300 Merge trunk version 167307 into gupc branch.
1302 2010-10-19 Gary Funck <gary@intrepid.com>
1304 * c-typeck.c: Fix typo in previous fix
1305 which led to a mis-compare for equal block sizes.
1307 2010-10-18 Gary Funck <gary@intrepid.com>
1309 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1310 diagnosed as an error
1312 The conversion from any type (shared or not) to
1313 a shared type is likely either meaningless or an error. This update
1314 makes any conversion to a shared type, an error.
1316 2010-10-18 Gary Funck <gary@intrepid.com>
1318 * c-typeck.c: Fix bug: passing int to shared pointer arg.
1319 generates spurious warning
1321 Add a #define procedure that does the same thing as
1322 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
1323 this procedure to diagnose passing an integer value to a
1324 pointer-to-shared as an error.
1326 2010-10-18 Gary Funck <gary@intrepid.com>
1328 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1329 matching routine declaration.
1331 When checking for type compatibility, shared qualified types must
1332 have the same block factor. This check was missing from
1333 comptypes_internal(). This update adds the check for blocking
1336 2010-10-17 Gary Funck <gary@intrepid.com>
1338 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1341 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1343 2010-10-17 Gary Funck <gary@intrepid.com>
1345 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1346 45869 - [4.5/4.6 Regression] type mismatch in shift expression
1347 produces ice with -O3 and -m32.
1349 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1351 2010-10-17 Gary Funck <gary@intrepid.com>
1353 * c-common.c: Diagnose the application of the various "*sizeof"
1354 operations on generic pointer-to-shared as a compilation error.
1356 2010-10-17 Gary Funck <gary@intrepid.com>
1358 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1359 message regarding a function parameter being declared with a shared
1362 The parameter's 'name' value is not defined at this point, and
1363 cannot be used in the error message. This update removes the
1364 reference to 'name', and eliminates the segfault.
1366 2010-10-16 Gary Funck <gary@intrepid.com>
1368 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1370 The gcc/Makefile.in rules for install-plugin had to be re-written to
1371 break up a long list of header files that exceeded the command line
1372 limitation imposed by Irix.
1374 Access functions for TFmode types had to be implemented.
1375 Apparently, this is the mode used for the SGI/MIPS port to represent
1378 2010-10-14 Gary Funck <gary@intrepid.com>
1380 * c-decl.c: Fix bug: Multiple equal blocking factors specified
1381 via typedef chain should not be diagnosed as an error.
1383 If the block size that is given by the typedef is equal to the block
1384 size given explicitly in the variable declaration, then do not
1385 complain. The easiest way to make this check was to create a
1386 temporary type that is a clone of the element type and then set its
1387 block size using the given layout qualifier. Then compare the block
1388 size of the temporary (the declaration) to the block size specified
1389 in the typedef. This complexity is needed, because the '[*]' block
1390 size needs to be calculated, and the '[]' needs to be mapped into a
1393 2010-10-10 Gary Funck <gary@intrepid.com>
1395 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1398 The compiler properly detected the presence of two or more layout
1399 qualifiers as an error, but then hit an assertion check, because the
1400 code that followed the error expected to see a qualifier and not a
1401 layout specifier. The fix is simple: just return immediately after
1402 detecting the error.
1404 2010-10-10 Gary Funck <gary@intrepid.com>
1406 * c-decl.c: Improve error diagnostics for various cases of UPC
1407 shared array type declarations.
1409 Add the check for this error: "In the dynamic translation
1410 environment, THREADS may not appear in declarations of shared arrays
1411 with indefinite block size". Also, fix up a few of the other
1412 related error diagnostics.
1414 2010-10-09 Gary Funck <gary@intrepid.com>
1416 * c-common.c: Fix bug: segfault on incomplete array definition.
1418 This turned out to be a bit complicated. The logic in
1419 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1420 the THREADS identifier in the case where the blocking factor has
1421 been set to indefinite ([]). This can happen when indefinite array
1422 declarations are processed for shared arrays. At that time, the
1423 file scope has been closed and THREADS is no longer in scope. Some
1424 more work is needed on upc_lang_layout_decl(). It has some
1425 duplication, and notably duplicates the two branches of the if
1426 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1427 caller of this routine (layout_decl()).
1429 The method of forcing a layout qualifier of [] in the indefinite
1430 declaration handler is odd a well. The code that just does the
1431 setting of the block factor, needs to moved into its own routine
1432 that doesn't depend upon a declspec for '[]' to be passed in, just
1433 in order to set the blocking factor to some value (in this case, 0).
1434 Also, the logic for how that shared type is constructed is strange.
1435 First the type with 0 blocking factor is set. Then the shared
1436 qualifier is removed from the type, and then added back later. The
1437 intermediate type has a blocking factor set, but it has no shared
1438 qualifier. Fixing this will require some thought. It is tempting
1439 just to make indefinite shared arrays an error, rather than forcing
1440 the dimension to be '1'.
1442 This likely fixes a serious error in the previous update to
1443 upc_lang_layout_decl(), where it didn't have the logic to set
1444 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
1445 the previous update would fail on many tests.
1447 2010-10-09 Gary Funck <gary@intrepid.com>
1449 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1450 (decl) is null, which can happen if some layout error occurred
1453 2010-10-09 Gary Funck <gary@intrepid.com>
1455 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1456 "variable-sized" when compiled in dynamic threads.
1458 This long-standing bug is easily fixed. Just check
1459 for the situation that the non-constant sized type is shared and
1460 that it does not have a dimension that references a multiple of
1461 threads. If this criteria is met, then issue a meaningful
1464 2010-10-01 Gary Funck <gary@intrepid.com>
1466 * configure, configure.ac: Update manual page, and bug reporting
1469 Update "man" page to reflect debugging switches. Also, some general
1470 clean up. Change the bug reporting URL to point to gccupc.org.
1472 2010-09-27 Gary Funck <gary@intrepid.com>
1474 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1475 the UPC forall depth count variable is not found.
1477 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1478 The compiler will generate code that references this variable in
1479 order to implement nested upc_forall semantics. If there is a
1480 compiler build or install problem, this variable may not be found.
1481 In this case, terminate with an internal_error().
1483 2010-09-26 Gary Funck <gary@intrepid.com>
1485 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1486 mis-diagnosed as syntax error.
1488 Fix a failure exhibited by the Berkeley test case,
1489 bug873a.upc, which has the code:
1491 upc_forall (;;;d) {...} The compiler did not properly handle
1492 the empty "condition" clause, and did not recover well when it was
1493 determined that the use of a double value, "d" above, was neither a
1494 pointer-to-shared nor an integer expression. The update implements a
1495 fix for both issues.
1497 See also: gcc/c-parser.c gcc/upc/upc-act.c
1499 2010-09-23 Gary Funck <gary@intrepid.com>
1501 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1502 incorporated into the referencing type.
1504 This was semi-fixed a few times before. This update fixes a few
1505 more places where the layout qualifier wasn't being propagated
1506 through typedef's properly. What made this a bit tricky is shown in
1507 the example cited in the bug report:
1509 typedef shared [5] int A_t; A_t A[5*THREADS];
1511 In the typedef, the blocksize is being applied to a shared *scalar*,
1512 and the code was applying the blocksize only to arrays. This update
1513 handles shared scalars correctly.
1515 2010-09-22 Gary Funck <gary@intrepid.com>
1517 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1518 upc_forall() semantics are not implemented
1520 The checkforall test in the Berkeley harness test suite indicated
1521 that GCC/UPC was not properly implementing nested upc_forall
1522 semantics. Nested upc_forall statements (both statically or
1523 dynamically nested) must implement their affinity clause as if it
1524 were "continue"; thus all steps in the loop must execute without
1525 regard for affinity. To implement these semantics a global depth
1526 counter, __upc_forall_depth, is maintained by the generated code
1527 that implements upc_forall.
1529 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1530 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1531 libupc/include/upc.h libupc/smp/upc_main.c
1533 2010-09-19 Gary Funck <gary@intrepid.com>
1535 * c-decl.c: c-decl.c: zero out the layout specifier, after
1536 processing an array type.
1538 Fix the previous fix, that moved the setting of the type's layout
1539 qualifier to the outside of the array type processing loop. What is
1540 missing from the fix is that the layout_qualifier variable needs to
1541 be cleared after setting the type's blocksize.
1543 2010-09-19 Gary Funck <gary@intrepid.com>
1545 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1546 given blocksize is greater than UPC_MAX_BLOCKSIZE.
1548 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1549 the actual maximum block size. Therefore, the message was correct,
1550 but the underlying value that was being checked was wrong. Change
1551 the values so that they agree with the actual implementation-defined
1554 2010-09-11 Gary Funck <gary@intrepid.com>
1556 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1557 multi-dimensional shared array with dynamic threads.
1559 This declaration caused an internal compiler error when compiled
1560 with dynamic threads:
1561 shared [*] int A[THREADS][16]; The bug was discovered when
1562 compiling the RTED_UPC test suite.
1564 The fix is to process layout qualifiers after the entire array type
1565 has been built. Otherwise, we try to calculate the blocksize on a
1566 shared array type that has not had its "size depends upon the value
1567 of THREADS" flag set.
1569 Also, added a test case.
1571 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1573 2010-07-11 Gary Funck <gary@intrepid.com>
1575 Fix a bug where a statement in c_build_qualified_type()
1576 in the trunk had been inadvertently deleted.
1577 This bug showed up in the IA64 port, because jmpbuf's
1578 on that architecture must be 16 byte aligned, and they were not.
1579 c-typeck.c (c_build_qualified_type): Revive the deleted line.
1581 2010-07-08 Gary Funck <gary@intrepid.com>
1583 Make changes so that other language compilers
1584 will build and bootstrap.
1585 * c-family/c-common.c (compiling_upc, flag_upc,
1586 flag_upc_instrument, flag_upc_instrument_functions,
1587 use_upc_dwarf2_extensions): Move to stub-upc.c and
1589 * c-family/c-common.h (use_upc_dwarf2_extensions,
1590 compiling_upc): Add extern definitions - needed
1591 to compile/build other language front ends.
1592 * c-family/c.opt: Fix the spelling of ObjC.
1593 It had been incorrectly spelled as Objc.
1594 * c-family/c.opt: Add UPC for the various switches
1595 that are valid for both C and ObjC.
1596 * c-fmaily/c-opts.c: Add CL_UPC to the list of
1597 supported options switches when compiling assembly
1599 * lto/lto-lang.c (use_upc_dwarf2_extensions,
1600 flag_upc_instrument, flag_upc_instrument_functions):
1601 Remove these definitions. They have been moved
1602 to c-family/stub-upc.c.
1603 * upc/ChangeLog: Move relevant entries
1605 * c-family/stub-upc.c (compiling_upc, flag_upc,
1606 flag_upc_instrument, flag_upc_instrument_functions,
1607 use_upc_dwarf2_extensions): Moved from c-common.c
1608 * upc/upc-lang.c (compiling_upc, flag_upc,
1609 flag_upc_instrument, flag_upc_instrument_functions,
1610 use_upc_dwarf2_extensions): Moved from c-common.c
1611 * objc/objc-act.c (objc_gimplify_expr): Add additional
1612 parameters to c_gimplify_expr() call, that are used
1613 by upc's tree rewrites.
1614 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1615 * gcc/cp/lex.c (init_reswords): If not compiling
1616 UPC, then mask off the UPC keywords.
1617 * cp/Make-lang.in (C_STUB_OBJS): Use this
1618 make macro to link with c-family/stub-objc.o
1619 and c-family/stub-upc.o.
1620 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1621 * java/Make-lang.in (C_STUB_OBJS): Likewise.
1622 * objc/Make-lang.in: Link with c-family/stub-upc.o
1623 to avoid undefined references.
1624 c-parser.c: Fix line indentation.
1625 * libcpp/include/cpplib.h: Remove CL_UPC from
1626 the list of language kinds accepted by the
1627 C preprocessor. This is not necessary because
1628 UPC is a derivative of C99, and does not need
1629 a different language kind.
1630 * c-fmaily/c-opts.c (c_common_handle_option):
1631 Call set_std_c99() when processing the
1632 "--lang upc" switch, instead of setting the
1633 language kind to CL_UPC.
1634 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1636 2010-07-03 Gary Funck <gary@intrepid.com>
1638 Merge trunk version 161517 into gupc branch.
1639 * gcc/stub-upc.c: Move to gcc/c-family/.
1640 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1641 Add 'unused' attributes to avoid "set, but
1642 not referenced" warnings.
1643 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1646 2010-03-01 Gary Funck <gary@intrepid.com>
1648 Create gupc branch from trunk version 157149.
1649 2011-10-04 Gary Funck <gary@intrepid.com>
1651 Merge trunk version 179421 into gupc branch.
1653 * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1654 argument to the call to check_qualified_type().
1656 2011-09-22 Gary Funck <gary@intrepid.com>
1658 * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1660 (dump_upc_type_quals): New.
1662 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
1664 Add to FLAGS the flags needed to disable inlining of
1665 UPC run-time access routines.
1666 * testsuite/lib/target-supports.exp
1667 (add_options_for_upc_library_calls): New.
1669 2011-09-15 Gary Funck <gary@intrepid.com>
1671 Fix ICE involving shared bit field accesses.
1672 * tree.c (build3_stat): Propagate TEEE_SHARED()
1673 TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1675 2011-09-13 Gary Funck <gary@intrepid.com>
1677 Merge trunk version 178795 into gupc branch.
1678 Incorporates fix to PR bootstrap/50010 for x86-32.
1680 2011-09-08 Gary Funck <gary@intrepid.com>
1682 Merge trunk version 178557 into gupc branch.
1684 2011-09-07 Gary Funck <gary@intrepid.com>
1686 Ensure that UPC pointer-to-shared type alignment is
1687 propagated to the final type. Revert to long-standing
1688 alignment policy: twice the size of a "C" pointer.
1689 * tree.c (build_pointer_type): Propagate the alignment
1690 of the UPC pointer-to-shared representation type
1691 into the newly built pointer type.
1693 2011-08-30 Gary Funck <gary@intrepid.com>
1695 * tree.h (check_qualified_type): Change 'const_tree'
1696 argument types back to 'tree' to avoid complaints
1697 of assignment drops qualifiers for invocations of the
1698 newly implemented TYPE_BLOCK_FACTOR() macro, which
1699 invokes hash functions with 'tree' pointer values that
1700 are not const qualified.
1701 * tree.c (check_qualified_type, check_aligned_type): Ditto.
1702 * c-typeck.c (comptypes_internal): Ditto.
1704 2011-08-29 Gary Funck <gary@intrepid.com>
1706 Fixes for regressions noted running "make check"
1708 * fold-const.c (fold_unary_loc): Execute UPC-specific
1709 checks for a cast-of-a-cast, only if one of the
1710 operands is a UPC pointer-to-shared value.
1711 * opts.c (print_specific_help): Fix a comparison
1712 in an assert that checks that there are enough
1713 bits reserved for the number of languages defined
1716 2011-08-29 Gary Funck <gary@intrepid.com>
1718 Implement a hash table to record UPC block factors.
1719 * c-family/stub-upc.c (upc_block_factor_insert,
1720 upc_block_factor_lookup): New dummy stub procedures.
1721 * c-family/c-common.c (c_sizeof_or_alignof_type):
1722 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1723 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1724 to copy (hashed) UPC blocking factor.
1725 (set_type_quals): Likewise.
1726 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1727 TYPE_HAS_THREADS_FACTOR().
1728 (type_common.block_factor): Delete.
1729 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1730 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1731 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1732 UPC blocking factors greater than one.
1733 * dwarf2out.c (modified_type_die): Re-implement
1734 logic that records UPC blocking factor in the generated
1735 DWARF2 debugging information.
1736 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1737 TYPE_HAS_THREADS_FACTOR().
1738 * c-decl.c (finish_decl, grokdeclarator):
1739 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1740 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1741 used by UPC, and print UPC-specific information.
1743 2011-08-28 Gary Funck <gary@intrepid.com>
1745 Re-work the type machinery to fully support and to unify support
1746 for the UPC layout qualifier (blocking factor).
1747 * c-family/stub-upc.c (upc_set_block_factor): Delete.
1748 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1749 and update prototype.
1750 * c-family/c-common.c (complete_array_type): call newly
1751 defined c_build_qualified_type_1() instead of
1752 upc_set_block_factor().
1753 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1754 upc_apply_layout_qualifier() and update prototype.
1755 (upc_set_block_factor): Delete prototype.
1756 * c-family/c-common.h (c_build_qualified_type): redefine
1757 as a pre-processor macro that invokes c_build_qualified_type_1()
1758 with a null UPC layout qualifier.
1759 (c_build_qualified_type_1): New. Add layout qualifier argument
1760 to old c_build_qualified_type() prototype.
1761 * tree.c (set_type_quals, check_qualified_type):
1762 Add layout qualifier as argument.
1763 (check_aligned_type): Add check for UPC block factor equality.
1764 (get_qualified_type_1): Rename from get_qualified_type() and
1765 add layout qualifier as argument.
1766 (build_qualified_type_1): Rename from build_qualified_type() and
1767 add layout qualifier as argument.
1768 * tree.h (check_qualified_type): Add layout qualifier as argument
1770 (get_qualified_type): Re-define as a as a pre-processor macro
1771 that invokes get_qualified_type_1() with a null
1772 UPC layout qualifier.
1773 (get_qualified_type_1): Rename from get_qualified_type() and
1774 add layout qualifier as argument.
1775 * cp/tree.c (c_build_qualified_type_1): Rename from
1776 c_build_qualified_type() and add (unused) layout qualifier
1778 * c-decl.c (finish_decl): re-format long error messages.
1779 (grokdeclarator): Re-work the logic so that it calls
1780 upc_grok_layout_qualifier() to handle the UPC layout
1781 qualifier, if present.
1782 * c-typeck.c (qualify_type, common_pointer_type,
1783 build_component_ref): Re-work the logic so that it calls
1784 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1786 (c_build_qualified_type_1): Rename from c_build_qualified_type()
1787 and add layout qualifier argument.
1788 * print_tree.c (print_node): Re-format a long line.
1790 2011-08-26 Gary Funck <gary@intrepid.com>
1792 Merge trunk version 177949 into gupc branch.
1793 * c-family/c-common.h (enum rid): Bump the number of type modifiers
1795 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1796 to add new rliterals column value.
1798 2011-08-26 Gary Funck <gary@intrepid.com>
1800 * convert.c (convert_to_integer): Fix the check for the
1801 difference between two UPC pointers-to-shared values.
1803 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
1805 * configure.ac: Fix the name for --with-upc-pts-packed-bits
1806 option. Support --with-upc-packed-bits as deprecated. Fix the code to
1807 correctly check packed bits.
1808 * configure: Re-generate.
1810 2011-08-16 Gary Funck <gary@intrepid.com>
1812 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1813 the barrier id expression is not an integer expression.
1815 2011-08-12 Gary Funck <gary@intrepid.com>
1817 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1819 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1820 Set mode of UPC pointer-to-shared rep. to an
1821 integral mode of size at least as large as the
1822 size of the representation's struct type.
1824 2011-08-12 Gary Funck <gary@intrepid.com>
1826 Rework/simplify the UPC genericize pass.
1827 * c-family/stub-upc.c (upc_apply_layout_qualifier,
1828 upc_build_pointer_type): New.
1829 (upc_set_block_factor): Adjust to new calling sequence.
1830 (upc_build_shared_var_addr): Delete.
1831 * c-family/c-common.c (complete_array_type): Adjust call
1832 to upc_set_block_factor().
1833 * c-family/c-upc.h (upc_apply_layout_qualifier,
1834 upc_build_pointer_type): New.
1835 (upc_build_shared_var_addr): Delete.
1836 (upc_set_block_factor): Adjust to new calling sequence.
1837 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1838 * c-decl.c (grokdeclarator): Call newly defined
1839 upc_apply_layout_qualifier() instead of upc_set_block_factor().
1840 * c-decl.c (grokdeclarator): Split long UPC-related error
1841 messages into two lines.
1842 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1843 directly. Revert that change to trunk. (upc_genericize() will
1844 handle lowering the expressions that take the address of a
1846 * config/i386/i386.c (ix86_promote_function_mode): For UPC
1847 pointers-to-shared, return the type mode of the UPC pointer-to-shared
1848 representation type.
1850 2011-08-10 Gary Funck <gary@intrepid.com>
1852 Implement additional fixes for recent merge with trunk.
1853 * explow.c (promote_mode): Do not attempt to promote
1854 the mode for UPC pointer-to-shared types.
1855 * config/i386/i386.c (function_value_64): Ditto.
1857 2011-08-07 Gary Funck <gary@intrepid.com>
1859 Merge trunk version 177548 into gupc branch.
1860 * config/i386/i386.c (ix86_promote_function_mode):
1861 Do not promote UPC pointers-to-shared to Pmode.
1862 * c-family/c-ommon.c (pointer_int_sum):
1863 Also check the pointer operand, rather than just
1864 its type, when making the decision to derive
1865 the equivalent unshared type.
1866 * tree.c (build2_stat): If the type of the result
1867 passed in as an argument is a UPC shared type,
1868 derive the unshared equivalent when calculating
1869 the result type of the node.
1871 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
1873 * config/darwin.c: Disable var_tracking option
1874 on -O0 as it is supposed to run only when optimization
1875 is applied. See GCC bug 49743.
1877 2011-07-06 Gary Funck <gary@intrepid.com>
1879 Re-implement the pass that lowers trees generated by
1880 the UPC front-end into GENERIC. Previously this was
1881 done within the gimplification framework, but this
1882 required that gimplification be run before inlining
1883 and various other passes, which did not fit in well
1884 with the current design of the middle-end passes.
1885 Now, the lowering is done by a newly defined language
1886 specific genericize hook. With this change, we are
1887 are able to undo some extensions made to the gimplify
1888 logic, and thus can revert several files to trunk.
1890 * c-decl.c: Add a check for UPC deprecated names which
1891 may appear as undefined function names.
1892 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1893 LTI_upc_getaddr): Remove definitions of unused UPC
1894 library function names. These were defined back when
1895 the libfunc interface was used to call these routines.
1896 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1897 in UPC lowering (genericize) pass.
1898 * langhooks.h (gimplify_expr): Revert to trunk's definition.
1899 (instrument_func): Delete this hook. Now handled in
1901 * tree-pass.h: Revert to trunk.
1902 * c-typeck.c (build_unary_op): Adjust reference to
1903 upc_genericize() in a comment.
1904 * gimplify.c (create_tmp_var_raw): Delete logic that
1905 was converting UPC shared types into unshared types
1906 to be used for temporaries. Now handled in upc_genericize().
1907 Replace with an assertion check.
1908 (prepare_gimple_addressable): Revert to trunk's definition.
1909 No longer needed as an externally called function.
1910 (flag_instrument_functions_exclude_p): Re-define as
1911 an externally called function.
1912 (gimplify_function_tree): Delete code that implemented
1913 call to UPC's language specific function instrumentation hook.
1914 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1915 (prepare_gimple_addressable): Delete extern definition;
1916 revert to trunk's definition.
1917 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1918 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1919 * c-family/c-gimplify.c: Revert to trunk.
1920 * cp/cp-gimplify.c: Revert to trunk.
1921 * cp/cp-tree.h: Revert to trunk.
1922 * explow.c: Revert to trunk.
1923 * langhooks.c: Revert to trunk.
1924 * libfuncs.h: Revert to trunk.
1925 * objc/objc-act.c: Revert to trunk.
1927 2011-06-30 Gary Funck <gary@intrepid.com>
1929 * c-family/c.opt: Bring options definitions up-to-date
1930 with respect to changes made in the trunk.
1932 2011-06-29 Gary Funck <gary@intrepid.com>
1934 Merge trunk version 175584 into gupc branch.
1936 2011-06-13 Gary Funck <gary@intrepid.com>
1939 * include/cpplib.h (enum c_lang):
1940 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1941 This keeps all the "C" variants together.
1942 * init.c (lang_defaults): Add an entry for UPC.
1944 2011-06-09 Gary Funck <gary@intrepid.com>
1946 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1947 a 32-bit target, the size expression overflowed, the result was
1948 error_mark_node, and an ICE was triggered on an attempt to evaluate
1949 C_TYPE_VARIABLE_SIZE() on the error node.
1950 (upc_blocksizeof_expr, upc_blocksizeof_type,
1951 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1952 Make similar changes to avoid further processing of error_mark_node.
1954 2011-06-07 Gary Funck <gary@intrepid.com>
1956 * sel-sched.c (move_op): Incorporate the following
1957 patch to eliminate ICE at -O3 on IA64/Altix.
1959 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
1961 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1962 code_motion_path_driver returned 0 or 1.
1963 (sel_region_finish): Clear h_d_i_d.
1965 2011-06-02 Gary Funck <gary@intrepid.com>
1967 Merge trunk version 174558 into gupc branch.
1969 2011-05-30 Gary Funck <gary@intrepid.com>
1971 * configure.ac: Make the default order of the virtual
1972 address field in a UPC pointer-to-shared to be "first".
1973 This reverts to the previous setting, and is a short term
1974 measure to work around a bug found on the IA64,
1975 where vaddr=last led to incorrect code generation.
1976 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1977 in AC_DEFINE(), to agree with recent changes in files
1978 that reference this define.
1979 configure, config.in: Regenerate.
1981 2011-05-26 Gary Funck <gary@intrepid.com>
1983 * configure.ac: Fix typo when referring to $upc_vaddr_order.
1984 configure: Regenerate.
1986 * ../fixincludes/fixincl.x: Revert to trunk.
1987 This file is auto-generated, and should not be merged.
1989 2011-05-18 Gary Funck <gary@intrepid.com>
1991 Merge trunk version 173845 into gupc branch.
1993 2011-05-17 Gary Funck <gary@intrepid.com>
1995 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1996 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1998 * c-family/c-pragma.c: Remove conditional compilation
1999 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
2000 Test 'compiling_upc' when compiling to determine if
2001 the "upc" and "pupc" pragmas should be registered.
2003 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2004 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2005 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2006 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2007 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2008 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
2009 Move these target-dependent definitions from config/upc-conf.h
2012 * configure.ac: Improve the logic for UPC-related options.
2013 Delete references to pre-processor definitions that have
2014 been moved to "upc/upc-pts.h".
2016 * configure, config.in: Regenerate.
2018 * Makefile.in (UPC_PTS_REP): Remove definition and revert
2019 to trunk. This substitution variable was used to
2020 configure the representation-specific versions of
2021 the tree rewrites that operate on UPC pointer-to-shared
2024 * c-parser.c (c_parser_upc_forall_statement): Remove
2025 reference to UPC_FORALL_DEPTH_NAME, and call
2026 newly defined upc_rts_forall_depth_var() instead.
2028 * config/upc-config.h: Delete. Various definitions
2029 moved to "upc/upc-rts-names.h", "defaults.h", and
2032 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
2033 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
2034 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2035 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2036 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2037 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2038 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2039 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
2040 New. Document UPC target macros.
2041 doc/tm.texi: Regenerate.
2043 2011-05-07 Gary Funck <gary@intrepid.com>
2045 * ../configure.ac: Disable build of libupc
2046 on non POSIX hosted systems. Use AS_HELP_STRING
2047 to define messages. Remove 'word-pair' as a
2048 possible --with-upc-pts UPC pointer-to-shared
2051 * ../configure: Regenerate.
2053 * configure.ac: Use AS_HELP_STRING to define messages.
2054 Remove 'word-pair' as a possible --with-upc-pts
2055 UPC pointer-to-shared representation.
2056 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
2057 (UPC_MAX_BLOCK_SIZE): Correct the default value.
2059 * configure: Regenerate.
2061 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
2064 * ChangeLog.upc: Fix some typos.
2066 2011-05-07 Gary Funck <gary@intrepid.com>
2068 * ../maintainer-scripts/gcc_release: Add "upc"
2069 as one of the released languages.
2071 2011-05-06 Gary Funck <gary@intrepid.com>
2073 Eliminate compilation warnings, by fixing
2074 #include's and updating function prototypes.
2076 * c-family/c-cppbuiltin.c: Include c-upc.h.
2078 * optabs.c (gen_libfunc): Change type of 'suffix'
2079 parameter to conform with prototype.
2081 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2082 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2085 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2088 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2089 argument values to cp_gimplify_expr.
2091 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2092 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
2093 pre-processor definitions that are no longer
2094 needed to build the 'upc' command (upc-cmd.c)
2095 because the linker specs. defined in libupc
2096 take care of linking in the needed libraries.
2098 * c-parser.c (c_parser_upc_forall_statement):
2099 initialize affinity_loc to avoid "maybe unused" warning.
2100 (c_parser_upc_sync_statement): Remove un-needed
2101 'ret' variable. Cast return value from
2102 'upc_build_sync_stmt' to 'void' to avoid
2103 compile-time warning.
2105 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2106 integer constant, not a string. Range is restricted
2107 to maximum positive 32-bit integer (2+ billion) to
2108 fit in with the use of 'int' in the front-end's
2109 switch handling logic.
2111 2011-05-06 Gary Funck <gary@intrepid.com>
2113 Upgrade c-family source files to conform with modularity
2114 improvements. Mainly, remove #include of c-tree.h in files
2115 under c-family, and define a new UPC-specific #include file,
2116 c-upc.h, and use it.
2118 * c-family/stub-upc.c: Remove #include of c-tree.h and
2119 upc/upc-act.h. Replace with #include of c-common.h
2121 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2122 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2123 upc_localsizeof_expr, upc_localsizeof_type,
2124 upc_shared_type_p): Delete.
2126 * c-family/c-opts.c: Add #include of c-upc.h
2128 * c-family/c-common.c: Remove #include of c-tree.h and
2129 add #include of c-upc.h.
2131 * c-family/c-upc.h: New. Define API for UPC-specific functions
2132 (mostly implemented in upc/upc-act.c).
2134 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2135 Remove extern definitions.
2137 * c-family/c-pragma.c: Remove #include of c-tree.h.
2138 Add #include of c-upc.h.
2140 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
2142 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
2143 upc/upc-act.c, and define as a macro.
2144 (expand_affinity_test): Remove unused external definition.
2145 (build_upc_unshared_type): Add external definition.
2146 (upc_shared_type_p): Remove external definition.
2148 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2150 * dojump.c: Remove #include of c-tree.h.
2152 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2154 (count_upc_threads_refs, is_multiple_of_upc_threads,
2155 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2156 upc_build_shared_var_addr, upc_build_sync_stmt,
2157 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2158 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2159 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2160 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2161 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2162 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2163 set_upc_consistency_mode, get_upc_consistency_mode,
2164 push_upc_consistency_mode, pop_upc_consistency_mode,
2166 Move external definitions to c-family/c-upc.h.
2167 (upc_blocksizeof_type, upc_localsizeof_type,
2168 upc_elemsizeof_type): Remove external definitions;
2169 these functions were moved to c-parser.c.
2171 * c-decl.c: Add #include of c-upc.h.
2173 * c-typeck.c: Add #include of c-upc.h.
2175 * c-convert.c: Add #include of c-upc.h.
2177 * ChangeLog.upc: Fix typo.
2179 * Makefile.in: Add references to c-family/c-upc.h, everywhere
2180 there is a reference to c-family/c-objc.h.
2181 Remove extraneous reference to upc-act.h.
2183 * c-parser.c: Add #include of c-upc.h.
2184 (upc_blocksizeof_expr, upc_blocksizeof_type,
2185 upc_elemsizeof_expr, upc_elemsizeof_type,
2186 upc_localsizeof_expr, upc_localsizeof_type):
2187 Move from upc/upc-act.c.
2189 * tree.c (build_upc_unshared_type): New.
2190 Move upc_get_unshared_type from upc/upc-act.c and rename
2191 to build_upc_unshared_type.
2192 c-family/c-common.c (pointer_int_sum): refer to renamed
2193 build_upc_unshared_type function.
2194 c-convert.c (convert): Ditto.
2195 convert.c (convert_to_pointer): Ditto.
2196 c-typeck.c (build_unary_op, build_modify_expr,
2197 really_start_incremental_init): Ditto.
2198 gimplify.c (create_tmp_var_raw): Ditto.
2199 tree.c (build1_stat): Ditto.
2200 tree.h (upc_get_unshared_type): Rename to
2201 build_upc_unshared_type.
2203 2011-05-06 Gary Funck <gary@intrepid.com>
2205 Merge trunk version 173471 into gupc branch.
2207 2011-05-05 Gary Funck <gary@intrepid.com>
2209 Make changes that bring the GUPC branch more closely in sync.
2210 with the GCC trunk. Revert any fixes that are not UPC-specific.
2211 Remove gratuitous re-formatting.
2213 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2214 This file should have been removed in a previous merge
2216 * ../configure.ac: Remove Cray Catamount/CNL support.
2217 * ../configure: Regenerate.
2218 * ../config.sub: Remove Cray Catamount/CNL support.
2219 * config.gcc: Remove Cray Catamount/CNL support.
2220 * ../maintainer-scripts/gcc_release: Revert to trunk.
2221 * c-family/c-common.h: Define parse_optimize_options. Its definition
2222 was missed in a previous merge with the trunk.
2223 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2225 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2226 in addition to ARRAY_TYPE.
2227 * c-typeck.c: Remove an extra newline character.
2228 * varasm.c: Revert a fix that improved an error message
2229 when TLS common data is unimplemented.
2230 * varasm.c: Revert a gcc_assert that had been added which
2231 checked for a null DECL_SIZE_UNIT field.
2232 * emultls.c: Revert to trunk. Remove possible fix.
2233 * Makefile.in: Revert extra blank line that is present
2234 in the trunk version.
2235 * Makefile.in: Revert a fix that handled long shell
2236 argument lists for plugin headers.
2237 * config/ia64/ia64.opt: Revert an option setting
2238 that increased the default TLS address range.
2239 * config/ia64/crtbegin.asm: Revert to trunk.
2240 Removes an extra newline character.
2241 * ChangeLog.upc: Spell check.
2243 2011-05-03 Gary Funck <gary@intrepid.com>
2245 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2246 (c_apply_type_quals_to_decl): Ditto.
2247 * c-family/c-common.h: Ditto.
2249 * c-decl.c (merge_decls): Ditto.
2250 * c-typeck.c (qualify_type, default_conversion,
2251 build_component_ref, build_unary_op,
2252 c_build_qualified_type): Ditto.
2253 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2255 2011-04-29 Gary Funck <gary@intrepid.com>
2257 * c-decl.c (finish_decl): Improve error diagnostics.
2258 (grokdeclarator): Ditto.
2260 * c-typeck.c (build_c_cast): Improve error diagnostics.
2261 (convert_for_assignment): Ditto.
2262 (build_binary_op): Ditto.
2264 * c-parser.c (c_parser_upc_forall_statement):
2265 Improve error diagnostics.
2267 * convert.c (convert_to_integer): Improve error diagnostics.
2269 2011-04-24 Gary Funck <gary@intrepid.com>
2271 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2272 occurred if there is an error in the barrier id
2273 expression. Map error_mark_node into NULL.
2275 2011-04-22 Gary Funck <gary@intrepid.com>
2277 Merge trunk version 172873 into gupc branch.
2279 2011-04-19 Gary Funck <gary@intrepid.com>
2281 Merge trunk version 172359 into gupc branch.
2283 2011-04-14 Gary Funck <gary@intrepid.com>
2285 * c-family/c.opt: Add UPC as a valid language for various
2286 switches where it is valid for "C", that were not updated
2287 in previous merges with trunk.
2289 2011-04-13 Gary Funck <gary@intrepid.com>
2291 * c-family/c.opt (fupc-pre-include): New option definition.
2292 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2293 -fno-upc-pre-include is asserted.
2295 2011-04-07 Gary Funck <gary@intrepid.com>
2297 Merge trunk version 172158 into gupc branch.
2298 to bring in the following fix.
2300 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
2303 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2304 if old and new states differ.
2306 2011-04-06 Gary Funck <gary@intrepid.com>
2308 Merge trunk version 171966 into gupc branch.
2310 2011-04-01 Gary Funck <gary@intrepid.com>
2312 * tree.h (tree_base): Move UPC flag bits into bit fields
2313 located just before spare bits. Decrement spare bits.
2314 Rename 'shared_flag' -> 'upc_shared_flag',
2315 'relaxed_flag' -> 'upc_relaxed_flag',
2316 'strict_flag' -> 'upc_strict_flag, and adjust macros
2317 that reference them accordingly.
2319 2011-04-01 Gary Funck <gary@intrepid.com>
2321 * c-decl.c (grokdeclarator): Fix formatting of
2322 code that sets UPC block size on scalars.
2324 2011-04-01 Gary Funck <gary@intrepid.com>
2326 * c-decl.c (grokdeclarator): Revert use of white space
2327 to match the trunk (to rationalize diffs).
2328 * c-typeck.c (convert_for_assignment): Ditto.
2329 * tree-ssa.c (useless_type_conversion_p): Ditto.
2331 2011-03-23 Gary Funck <gary@intrepid.com>
2333 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2334 the GCC 4.6 release branch.
2336 2011-03-21 Gary Funck <gary@intrepid.com>
2338 Merge trunk version 171202 into gupc branch.
2340 2011-03-20 Gary Funck <gary@intrepid.com>
2342 * varasm.c: Call error() directly with a format specifier,
2343 rather than using sprintf() to format the message.
2344 This should make it easier to internationalize UPC's error messages.
2346 2011-03-20 Gary Funck <gary@intrepid.com>
2348 * configure.ac: Fix the check for gnu ld when enabling
2349 UPC link script support.
2350 configure: Regenerate (also picks up changes from previous
2353 2011-03-20 Gary Funck <gary@intrepid.com>
2355 Move UPC start files, end files, and linker specs.
2356 into libupc. This reduces the impact on common GCC
2357 configuration files, and ensures that these UPC-specific
2358 components are only built when the UPC language dialect is selected.
2361 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2362 linker specs. Fix typo in -fupc-debug message.
2364 * config/upc-conf.h, config/darwin.h: Move defines for
2365 UPC-related section begins/ends into libupc/config/default/
2368 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2369 UPC-related linker compiler specifications,
2370 accessed via %:include().
2372 * configure.ac, configure: Remove logic related to building
2373 upc-crtbegin/end. Remove config. tests for numa and cpu
2374 affinity (previously used by the 'upc' driver); these
2375 settings are now propagated by target-specific compiler
2376 specs. built by libupc. Regenerate autoconf.
2378 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2379 linker compiler specifications, accessed via %:include().
2380 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2383 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2385 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2386 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2387 config/ia64/linux.h, config/mips/t-iris,
2388 config/mips/iris6.h: Revert to trunk version 167307.
2391 * configure, configure.ac, config.host, Makefile.in:
2392 Revert to trunk version 167307.
2394 2011-02-23 Gary Funck <gary@intrepid.com>
2396 * c-decl.c (undeclared_variable): fix typo. Inadvertently
2397 removed negation on following 'if'.
2399 2011-02-22 Gary Funck <gary@intrepid.com>
2401 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2402 to check for the usage of certain deprecated UPC keywords.
2403 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2404 * c-tree.h (undeclared_variable): Define prototype.
2406 2011-02-12 Gary Funck <gary@intrepid.com>
2408 * c-typeck.c: (build_c_cast, convert_for_assignment)
2409 Diagnose an attempt to convert from an integer to
2410 a pointer-to-shared as an error. Also, fix various
2411 error messages so that they use the preferred term
2412 pointer-to-shared instead of "shared pointer".
2414 2011-02-07 Gary Funck <gary@intrepid.com>
2416 * c-typeck.c: (convert_for_assignment)
2417 Fix typo. in error message.
2419 2011-01-23 Gary Funck <gary@intrepid.com>
2421 * c-typeck.c: (c_build_qualified_type)
2422 derive UPC block size by calling upc_get_block_size(),
2423 to ensure that the element type of an array of an array
2424 is derived correctly.
2426 2010-12-29 Gary Funck <gary@intrepid.com>
2428 Merge trunk version 168314 into gupc branch.
2430 2010-12-15 Gary Funck <gary@intrepid.com>
2432 Merge trunk version 167307 into gupc branch.
2434 2010-10-19 Gary Funck <gary@intrepid.com>
2436 * c-typeck.c: Fix typo in previous fix
2437 which led to a mis-compare for equal block sizes.
2439 2010-10-18 Gary Funck <gary@intrepid.com>
2441 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2442 diagnosed as an error
2444 The conversion from any type (shared or not) to
2445 a shared type is likely either meaningless or an error. This update
2446 makes any conversion to a shared type, an error.
2448 2010-10-18 Gary Funck <gary@intrepid.com>
2450 * c-typeck.c: Fix bug: passing int to shared pointer arg.
2451 generates spurious warning
2453 Add a #define procedure that does the same thing as
2454 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
2455 this procedure to diagnose passing an integer value to a
2456 pointer-to-shared as an error.
2458 2010-10-18 Gary Funck <gary@intrepid.com>
2460 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2461 matching routine declaration.
2463 When checking for type compatibility, shared qualified types must
2464 have the same block factor. This check was missing from
2465 comptypes_internal(). This update adds the check for blocking
2468 2010-10-17 Gary Funck <gary@intrepid.com>
2470 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2473 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2475 2010-10-17 Gary Funck <gary@intrepid.com>
2477 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2478 45869 - [4.5/4.6 Regression] type mismatch in shift expression
2479 produces ice with -O3 and -m32.
2481 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2483 2010-10-17 Gary Funck <gary@intrepid.com>
2485 * c-common.c: Diagnose the application of the various "*sizeof"
2486 operations on generic pointer-to-shared as a compilation error.
2488 2010-10-17 Gary Funck <gary@intrepid.com>
2490 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2491 message regarding a function parameter being declared with a shared
2494 The parameter's 'name' value is not defined at this point, and
2495 cannot be used in the error message. This update removes the
2496 reference to 'name', and eliminates the segfault.
2498 2010-10-16 Gary Funck <gary@intrepid.com>
2500 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2502 The gcc/Makefile.in rules for install-plugin had to be re-written to
2503 break up a long list of header files that exceeded the command line
2504 limitation imposed by Irix.
2506 Access functions for TFmode types had to be implemented.
2507 Apparently, this is the mode used for the SGI/MIPS port to represent
2510 2010-10-14 Gary Funck <gary@intrepid.com>
2512 * c-decl.c: Fix bug: Multiple equal blocking factors specified
2513 via typedef chain should not be diagnosed as an error.
2515 If the block size that is given by the typedef is equal to the block
2516 size given explicitly in the variable declaration, then do not
2517 complain. The easiest way to make this check was to create a
2518 temporary type that is a clone of the element type and then set its
2519 block size using the given layout qualifier. Then compare the block
2520 size of the temporary (the declaration) to the block size specified
2521 in the typedef. This complexity is needed, because the '[*]' block
2522 size needs to be calculated, and the '[]' needs to be mapped into a
2525 2010-10-10 Gary Funck <gary@intrepid.com>
2527 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2530 The compiler properly detected the presence of two or more layout
2531 qualifiers as an error, but then hit an assertion check, because the
2532 code that followed the error expected to see a qualifier and not a
2533 layout specifier. The fix is simple: just return immediately after
2534 detecting the error.
2536 2010-10-10 Gary Funck <gary@intrepid.com>
2538 * c-decl.c: Improve error diagnostics for various cases of UPC
2539 shared array type declarations.
2541 Add the check for this error: "In the dynamic translation
2542 environment, THREADS may not appear in declarations of shared arrays
2543 with indefinite block size". Also, fix up a few of the other
2544 related error diagnostics.
2546 2010-10-09 Gary Funck <gary@intrepid.com>
2548 * c-common.c: Fix bug: segfault on incomplete array definition.
2550 This turned out to be a bit complicated. The logic in
2551 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2552 the THREADS identifier in the case where the blocking factor has
2553 been set to indefinite ([]). This can happen when indefinite array
2554 declarations are processed for shared arrays. At that time, the
2555 file scope has been closed and THREADS is no longer in scope. Some
2556 more work is needed on upc_lang_layout_decl(). It has some
2557 duplication, and notably duplicates the two branches of the if
2558 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2559 caller of this routine (layout_decl()).
2561 The method of forcing a layout qualifier of [] in the indefinite
2562 declaration handler is odd a well. The code that just does the
2563 setting of the block factor, needs to moved into its own routine
2564 that doesn't depend upon a declspec for '[]' to be passed in, just
2565 in order to set the blocking factor to some value (in this case, 0).
2566 Also, the logic for how that shared type is constructed is strange.
2567 First the type with 0 blocking factor is set. Then the shared
2568 qualifier is removed from the type, and then added back later. The
2569 intermediate type has a blocking factor set, but it has no shared
2570 qualifier. Fixing this will require some thought. It is tempting
2571 just to make indefinite shared arrays an error, rather than forcing
2572 the dimension to be '1'.
2574 This likely fixes a serious error in the previous update to
2575 upc_lang_layout_decl(), where it didn't have the logic to set
2576 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
2577 the previous update would fail on many tests.
2579 2010-10-09 Gary Funck <gary@intrepid.com>
2581 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2582 (decl) is null, which can happen if some layout error occurred
2585 2010-10-09 Gary Funck <gary@intrepid.com>
2587 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2588 "variable-sized" when compiled in dynamic threads.
2590 This long-standing bug is easily fixed. Just check
2591 for the situation that the non-constant sized type is shared and
2592 that it does not have a dimension that references a multiple of
2593 threads. If this criteria is met, then issue a meaningful
2596 2010-10-01 Gary Funck <gary@intrepid.com>
2598 * configure, configure.ac: Update manual page, and bug reporting
2601 Update "man" page to reflect debugging switches. Also, some general
2602 clean up. Change the bug reporting URL to point to gccupc.org.
2604 2010-09-27 Gary Funck <gary@intrepid.com>
2606 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2607 the UPC forall depth count variable is not found.
2609 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2610 The compiler will generate code that references this variable in
2611 order to implement nested upc_forall semantics. If there is a
2612 compiler build or install problem, this variable may not be found.
2613 In this case, terminate with an internal_error().
2615 2010-09-26 Gary Funck <gary@intrepid.com>
2617 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2618 mis-diagnosed as syntax error.
2620 Fix a failure exhibited by the Berkeley test case,
2621 bug873a.upc, which has the code:
2623 upc_forall (;;;d) {...} The compiler did not properly handle
2624 the empty "condition" clause, and did not recover well when it was
2625 determined that the use of a double value, "d" above, was neither a
2626 pointer-to-shared nor an integer expression. The update implements a
2627 fix for both issues.
2629 See also: gcc/c-parser.c gcc/upc/upc-act.c
2631 2010-09-23 Gary Funck <gary@intrepid.com>
2633 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2634 incorporated into the referencing type.
2636 This was semi-fixed a few times before. This update fixes a few
2637 more places where the layout qualifier wasn't being propagated
2638 through typedef's properly. What made this a bit tricky is shown in
2639 the example cited in the bug report:
2641 typedef shared [5] int A_t; A_t A[5*THREADS];
2643 In the typedef, the blocksize is being applied to a shared *scalar*,
2644 and the code was applying the blocksize only to arrays. This update
2645 handles shared scalars correctly.
2647 2010-09-22 Gary Funck <gary@intrepid.com>
2649 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2650 upc_forall() semantics are not implemented
2652 The checkforall test in the Berkeley harness test suite indicated
2653 that GCC/UPC was not properly implementing nested upc_forall
2654 semantics. Nested upc_forall statements (both statically or
2655 dynamically nested) must implement their affinity clause as if it
2656 were "continue"; thus all steps in the loop must execute without
2657 regard for affinity. To implement these semantics a global depth
2658 counter, __upc_forall_depth, is maintained by the generated code
2659 that implements upc_forall.
2661 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2662 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2663 libupc/include/upc.h libupc/smp/upc_main.c
2665 2010-09-19 Gary Funck <gary@intrepid.com>
2667 * c-decl.c: c-decl.c: zero out the layout specifier, after
2668 processing an array type.
2670 Fix the previous fix, that moved the setting of the type's layout
2671 qualifier to the outside of the array type processing loop. What is
2672 missing from the fix is that the layout_qualifier variable needs to
2673 be cleared after setting the type's blocksize.
2675 2010-09-19 Gary Funck <gary@intrepid.com>
2677 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2678 given blocksize is greater than UPC_MAX_BLOCKSIZE.
2680 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2681 the actual maximum block size. Therefore, the message was correct,
2682 but the underlying value that was being checked was wrong. Change
2683 the values so that they agree with the actual implementation-defined
2686 2010-09-11 Gary Funck <gary@intrepid.com>
2688 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2689 multi-dimensional shared array with dynamic threads.
2691 This declaration caused an internal compiler error when compiled
2692 with dynamic threads:
2693 shared [*] int A[THREADS][16]; The bug was discovered when
2694 compiling the RTED_UPC test suite.
2696 The fix is to process layout qualifiers after the entire array type
2697 has been built. Otherwise, we try to calculate the blocksize on a
2698 shared array type that has not had its "size depends upon the value
2699 of THREADS" flag set.
2701 Also, added a test case.
2703 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2705 2010-07-11 Gary Funck <gary@intrepid.com>
2707 Fix a bug where a statement in c_build_qualified_type()
2708 in the trunk had been inadvertently deleted.
2709 This bug showed up in the IA64 port, because jmpbuf's
2710 on that architecture must be 16 byte aligned, and they were not.
2711 c-typeck.c (c_build_qualified_type): Revive the deleted line.
2713 2010-07-08 Gary Funck <gary@intrepid.com>
2715 Make changes so that other language compilers
2716 will build and bootstrap.
2717 * c-family/c-common.c (compiling_upc, flag_upc,
2718 flag_upc_instrument, flag_upc_instrument_functions,
2719 use_upc_dwarf2_extensions): Move to stub-upc.c and
2721 * c-family/c-common.h (use_upc_dwarf2_extensions,
2722 compiling_upc): Add extern definitions - needed
2723 to compile/build other language front ends.
2724 * c-family/c.opt: Fix the spelling of ObjC.
2725 It had been incorrectly spelled as Objc.
2726 * c-family/c.opt: Add UPC for the various switches
2727 that are valid for both C and ObjC.
2728 * c-fmaily/c-opts.c: Add CL_UPC to the list of
2729 supported options switches when compiling assembly
2731 * lto/lto-lang.c (use_upc_dwarf2_extensions,
2732 flag_upc_instrument, flag_upc_instrument_functions):
2733 Remove these definitions. They have been moved
2734 to c-family/stub-upc.c.
2735 * upc/ChangeLog: Move relevant entries
2737 * c-family/stub-upc.c (compiling_upc, flag_upc,
2738 flag_upc_instrument, flag_upc_instrument_functions,
2739 use_upc_dwarf2_extensions): Moved from c-common.c
2740 * upc/upc-lang.c (compiling_upc, flag_upc,
2741 flag_upc_instrument, flag_upc_instrument_functions,
2742 use_upc_dwarf2_extensions): Moved from c-common.c
2743 * objc/objc-act.c (objc_gimplify_expr): Add additional
2744 parameters to c_gimplify_expr() call, that are used
2745 by upc's tree rewrites.
2746 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2747 * gcc/cp/lex.c (init_reswords): If not compiling
2748 UPC, then mask off the UPC keywords.
2749 * cp/Make-lang.in (C_STUB_OBJS): Use this
2750 make macro to link with c-family/stub-objc.o
2751 and c-family/stub-upc.o.
2752 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2753 * java/Make-lang.in (C_STUB_OBJS): Likewise.
2754 * objc/Make-lang.in: Link with c-family/stub-upc.o
2755 to avoid undefined references.
2756 c-parser.c: Fix line indentation.
2757 * libcpp/include/cpplib.h: Remove CL_UPC from
2758 the list of language kinds accepted by the
2759 C preprocessor. This is not necessary because
2760 UPC is a derivative of C99, and does not need
2761 a different language kind.
2762 * c-fmaily/c-opts.c (c_common_handle_option):
2763 Call set_std_c99() when processing the
2764 "--lang upc" switch, instead of setting the
2765 language kind to CL_UPC.
2766 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2768 2010-07-03 Gary Funck <gary@intrepid.com>
2770 Merge trunk version 161517 into gupc branch.
2771 * gcc/stub-upc.c: Move to gcc/c-family/.
2772 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2773 Add 'unused' attributes to avoid "set, but
2774 not referenced" warnings.
2775 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2778 2010-03-01 Gary Funck <gary@intrepid.com>
2780 Create gupc branch from trunk version 157149.