1 2013-01-14 Gary Funck <gary@intrepid.com>
3 Merge trunk version 195164 into gupc branch.
5 2013-01-07 Gary Funck <gary@intrepid.com>
7 Merge trunk version 194962 into gupc branch.
9 2012-12-24 Gary Funck <gary@intrepid.com>
11 Merge trunk version 194709 into gupc branch.
13 2012-12-17 Gary Funck <gary@intrepid.com>
15 Merge trunk version 194552 into gupc branch.
17 2012-12-10 Gary Funck <gary@intrepid.com>
19 Merge trunk version 194351 into gupc branch.
21 2012-12-03 Gary Funck <gary@intrepid.com>
23 Merge trunk version 194076 into gupc branch.
25 2012-11-30 Gary Funck <gary@intrepid.com>
27 Released GUPC 4.8.0.2 based on version 193446.
28 Date of release: 2012-11-12.
29 * DEV-PHASE: Bump release identifier to 4.8.0-3.
30 * DATESTAMP: Bump date stamp.
32 2012-11-26 Gary Funck <gary@intrepid.com>
34 Merge trunk version 193807 into gupc branch.
36 2012-11-20 Gary Funck <gary@intrepid.com>
38 Merge trunk version 193672 into gupc branch.
40 2012-11-19 Gary Funck <gary@intrepid.com>
42 Merge trunk version 193617 into gupc branch.
44 2012-11-15 Gary Funck <gary@intrepid.com>
46 Merge trunk version 193426 into gupc branch.
48 2012-11-12 Gary Funck <gary@intrepid.com>
50 Released GUPC 4.8.0.1 based on version 192948.
51 Date of release: 2012-10-29.
52 * DEV-PHASE: Bump release identifier to 4.8.0-2.
53 * DATESTAMP: Bump date stamp.
55 2012-11-05 Gary Funck <gary@intrepid.com>
57 Merge trunk version 193152 into gupc branch.
59 2012-10-29 Gary Funck <gary@intrepid.com>
61 Merge trunk version 192909 into gupc branch.
63 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
65 Remove unused --upc-pthreads-per-process compile switch.
66 * c-family/c.opt: Remove --upc-pthreads-per-process switch
67 that compiler/runtime do not use.
68 * c-family/c-opts.c (c_common_handle_option): Remove support for
69 --upc-pthreads-per-process switch.
70 * c-family/c-common.c: Ditto.
71 * c-family/c-common.h: Ditto.
73 2012-10-27 Gary Funck <gary@intrepid.com>
75 * defaults.h: fix typos and formatting in UPC-related entries.
77 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
79 Place shared initialization code into the .text
80 section instead of a separate .upc_init section.
81 * defaults.h (UPC_INIT_SECTION_NAME): Delete.
82 (UPC_INIT_BEGIN_NAME): Delete.
83 (UPC_INIT_END_NAME): Delete.
84 * doc/tm.texi.in: Ditto.
87 2012-10-22 Gary Funck <gary@intrepid.com>
89 Merge trunk version 192673 into gupc branch.
91 2012-10-15 Gary Funck <gary@intrepid.com>
93 Merge trunk version 192449 into gupc branch.
95 2012-10-08 Gary Funck <gary@intrepid.com>
97 Merge trunk version 192198 into gupc branch.
99 2012-10-01 Gary Funck <gary@intrepid.com>
101 Merge trunk version 191931 into gupc branch.
103 2012-09-26 Gary Funck <gary@intrepid.com>
105 Implement support for various UPC version 1.3 specification
106 additions and changes. Deprecate support for upc_local_alloc.
107 Add support for upc_tick (wall-clock timer) library.
108 Add support for collective de-allocation functions:
109 upc_all_free and upc_all_lock_free.
110 Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
111 libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
113 2012-09-24 Gary Funck <gary@intrepid.com>
115 Merge trunk version 191658 into gupc branch.
117 2012-09-17 Gary Funck <gary@intrepid.com>
119 Merge trunk version 191376 into gupc branch.
121 2012-09-10 Gary Funck <gary@intrepid.com>
123 Merge trunk version 191141 into gupc branch.
125 2012-08-27 Gary Funck <gary@intrepid.com>
127 Merge trunk version 190707 into gupc branch.
128 * tree.h (struct tree_base): Adjust various
129 UPC tree and type flags to refer to the
130 newly introduced u.bits field.
132 2012-08-20 Gary Funck <gary@intrepid.com>
134 Merge trunk version 190524 into gupc branch.
135 Incorporates a fix in genoutput.c (to properly use
136 CONST_CAST) that led to build failures with
137 older versions of g++.
139 2012-08-16 Gary Funck <gary@intrepid.com>
141 Merge trunk version 190437 into gupc branch.
142 Incorporates a fix for a build failure on the PPC
143 due to passing incorrect switches to the assembler.
144 Also, first merged trunk revision that compiles GCC
145 with the C++ compiler in the first stage.
147 2012-08-13 Gary Funck <gary@intrepid.com>
149 Merge trunk version 190336 into gupc branch.
151 2012-08-09 Gary Funck <gary@intrepid.com>
153 * c-family/c-common.c (c_fully_fold_internal): Do not fold
154 offsetof-like expressions when they are applied to UPC
157 2012-08-06 Gary Funck <gary@intrepid.com>
159 Merge trunk version 190173 into gupc branch.
161 2012-08-01 Gary Funck <gary@intrepid.com>
163 Merge trunk version 190063 into gupc branch.
164 Incorporates fix for build failure on IA64.
166 2012-07-30 Gary Funck <gary@intrepid.com>
168 Merge trunk version 189954 into gupc branch.
170 2012-07-27 Gary Funck <gary@intrepid.com>
172 Merge trunk version 189856 into gupc branch.
173 Incorporates fix for bootstrap with a sub-set of language
174 specific source directories present.
175 * optabs.c: Revert to trunk. Rather than defining opcodes
176 as a way of defining get/put runtime library function names,
177 generate them directly in gcc/upc/upc-genericize.c.
179 * genopinit.c: Ditto.
181 2012-07-23 Gary Funck <gary@intrepid.com>
183 Merge trunk version 189777 into gupc branch.
185 2012-07-16 Gary Funck <gary@intrepid.com>
187 Merge trunk version 189545 into gupc branch.
189 2012-07-12 Gary Funck <gary@intrepid.com>
191 Merge trunk version 189366 into gupc branch.
193 2012-07-05 Gary Funck <gary@intrepid.com>
195 Merge trunk version 189274 into gupc branch.
196 Incorporates graphite build infrastructure changes.
198 2012-07-04 Gary Funck <gary@intrepid.com>
200 Merge trunk version 189080 into gupc branch.
201 * Makefile.in: Adjust for move of C front-end files.
202 * c/Make-lang.in: Ditto.
204 2012-07-03 Gary Funck <gary@intrepid.com>
206 Merge trunk version 189078 into gupc branch.
208 2012-06-25 Gary Funck <gary@intrepid.com>
210 Merge trunk version 188931 into gupc branch.
212 2012-06-18 Gary Funck <gary@intrepid.com>
214 Merge trunk version 188721 into gupc branch.
216 2012-06-11 Gary Funck <gary@intrepid.com>
218 Merge trunk version 188380 into gupc branch.
220 2012-06-04 Gary Funck <gary@intrepid.com>
222 Merge trunk version 188168 into gupc branch.
224 2012-05-29 Gary Funck <gary@intrepid.com>
226 Merge trunk version 187927 into gupc branch.
228 2012-05-18 Gary Funck <gary@intrepid.com>
230 Merge trunk version 187666 into gupc branch.
231 Incorporates fix for ICE in tree vectorization pass
232 when processing strided loads.
234 2012-05-17 Gary Funck <gary@intrepid.com>
236 Merge trunk version 187578 into gupc branch.
238 2012-05-09 Gary Funck <gary@intrepid.com>
240 Merge trunk version 187347 into gupc branch.
241 Incorporates fix for segfault in tree vectorization pass.
243 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
245 * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
246 Appropriate libraries and include files are added on the
247 command line to make it possible to compile with the driver
250 2012-04-29 Nenad Vukicevic <nenad@intrepid.com>
252 * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
253 PPC ABI. In the UPC 'struct' pointer-to-shared representation,
254 a function returns a pointer-to-shared in memory instead
256 (rs6000_pass_by_reference): Ditto.
258 2012-04-28 Gary Funck <gary@intrepid.com>
260 * c-decl.c (grokdeclarator): Set 'type' to error node
261 after detecting "shared auto variable" error to avoid
262 downstream complications.
263 * upc-act.c: Fix a couple of spelling errors in comments.
265 2012-04-26 Gary Funck <gary@intrepid.com>
267 * c-family/c-pragma.c (handle_pragma_upc):
268 Fix typo in warning message.
270 2012-04-17 Gary Funck <gary@intrepid.com>
272 Merge trunk version 186486 into gupc branch.
274 2012-04-17 Gary Funck <gary@intrepid.com>
276 * c-family/c-pragma.c (disable_pupc_mode): Return the previous
277 value of the pupc mode. Fixes a compile-time warning.
278 * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
279 disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
280 Improve source formatting.
282 2012-04-09 Gary Funck <gary@intrepid.com>
284 Merge trunk version 186243 into gupc branch.
285 Incorporates a powerpc 'ffi' fix.
287 2012-03-16 Gary Funck <gary@intrepid.com>
289 Merge trunk version 185454 into gupc branch.
290 Incorporates a libgcc fix for builds on Darwin.
292 2012-03-13 Gary Funck <gary@intrepid.com>
294 Merge trunk version 185278 into gupc branch.
295 * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
296 call build_pointer_type() to apply UPC-specific qualifiers.
297 * top-level/configure.ac: factor the checking for posix hostst
298 out of the libgomp section so that it can also be used by libgupc.
299 * top-level/configure: Re-generate.
300 * DEV-PHASE: bump to 4.8.0-1.
302 2012-03-12 Gary Funck <gary@intrepid.com>
304 * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
305 the mode for a pointer for upc-pointer-to-shared types.
307 2012-03-04 Gary Funck <gary@intrepid.com>
309 Merge trunk version 184900 into gupc branch.
311 2012-02-17 Gary Funck <gary@intrepid.com>
313 Released GUPC 4.7.0.2 based on version 183992.
314 * DEV-PHASE: Bump release identifier to 4.7.0-3.
315 * DATESTAMP: Bump date stamp.
317 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
319 * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
320 code generation (same as #pragma pupc off).
321 (set_pupc_mode): New. Set/restore profiling mode.
322 * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
323 (set_pupc_mode): New. Prototype.
324 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
325 profiling code for shared variables initialization routines.
327 2012-01-31 Gary Funck <gary@intrepid.com>
329 Merge trunk version 183751 into gupc branch.
330 Incorporates fix for bootstrap failure on openSUSE 12.1.
332 2012-01-10 Gary Funck <gary@intrepid.com>
334 Merge trunk version 183072 into gupc branch.
335 Incorporates libcpp __BASE_FILE__ fix.
337 2011-12-20 Nenad Vukicevic <nenad@intrepid.com>
339 * top-level/Makefile.def (flags_to_pass): Added GUPC
340 defines. Fixes the make error when upc is not specified as one
341 of the languages to build.
342 * top-level/Makefile.in: Re-generate.
344 2011-11-22 Gary Funck <gary@intrepid.com>
346 * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
347 * dwarf2out.c (gen_compile_unit_die): Check for
348 the "GNU UPC" language string in lieu of "GCC UPC".
349 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
351 2011-11-18 Gary Funck <gary@intrepid.com>
353 Merge trunk version 181552 into gupc branch.
354 Incorporates libgcc/libunwind fix for IA64.
356 2011-11-19 Gary Funck <gary@intrepid.com>
358 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
359 Add check for UPC when defining the language type value
360 in a traceback entry.
362 2011-11-18 Gary Funck <gary@intrepid.com>
364 Merge trunk version 181493 into gupc branch.
365 Incorporates final fix for PR target/49992.
367 2011-11-09 Nenad Vukicevic <nenad@intrepid.com>
369 * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
370 change that converted relative include paths into absolute
371 ones, as it does not work with older version of make (3.80).
373 2011-10-27 Nenad Vukicevic <nenad@intrepid.com>
375 Apply patch for Darwin build - PR49992.
376 * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
377 * gcc/configure.ac: Ditto.
378 * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
379 * gcc/ada/gcc-interface/Makefile.in: Ditto.
380 * top-level/configure: Re-generate.
381 * gcc/configure: Re-genrate.
383 2011-10-26 Gary Funck <gary@intrepid.com>
385 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
386 "libupc" to "libgupc".
387 * top-level/configure.ac: Implement support for cross-builds, and
388 adjust for rename of libupc to libgupc.
389 * top-level/Makefile.tpl: Ditto.
390 * top-level/Makefile.def: Ditto.
391 * top-level/configure: Re-generate.
392 * top-level/Makefile.in: Re-generate.
393 * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
394 * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
395 * doc/tm.texi: Re-generate.
396 * tree-pretty-print.c (dump_block_node): Delete unused variable.
397 * gcc.c: Adjust for rename of libupc to libgupc.
398 * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
399 Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
400 Change "xupc" to "xgupc".
401 * configure.ac: Change "GCC UPC" to "GNU UPC".
402 * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
403 so that they are absolute paths. This is needed because
404 the upc-crtstuff builds are in the libgupc library build
405 directories which are not at the same level as libgcc.
406 * config/darwin.h: Adjust for rename of libupc to libgupc.
408 2011-10-20 Gary Funck <gary@intrepid.com>
410 Merge trunk version 180276 into gupc branch.
411 Incorporates fix for PR bootstrap/50709.
413 2011-10-20 Gary Funck <gary@intrepid.com>
415 Merge trunk version 180246 into gupc branch.
417 2011-10-19 Gary Funck <gary@intrepid.com>
419 Merge trunk version 180233 into gupc branch.
420 Incorporates fix for PR debug/49310 (var tracking).
422 2011-10-11 Nenad Vukicevic <nenad@intrepid.com>
424 * testsuite/lib/upc-dg.exp: Limit number of torture runs to
425 only four (O0 static/dynamic, O3 static/dynamic).
426 Detect -fupc-threads-0 as an option for dynamic threads
429 2011-10-10 Gary Funck <gary@intrepid.com>
431 * tree.c (check_qualified_type, check_aligned_type):
432 Call tree_int_cst_equal() to compare UPC blocking factors
433 if the corresponding tree pointers are not equal.
434 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
436 2011-10-07 Nenad Vukicevic <nenad@intrepid.com>
438 Add configuration checks for struct/packed builds so we can
439 use upc_struct_pts/upc_packed_pts selectors in the testsuite.
440 * testsuite/lib/target-supports.exp
441 (check_effective_target_upc_struct_pts): New.
442 (check_effective_target_upc_packed_pts): New.
444 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
446 Add to FLAGS the flags needed to disable inlining of
447 UPC run-time access routines.
448 * testsuite/lib/target-supports.exp
449 (add_options_for_upc_library_calls): New.
451 2011-09-15 Gary Funck <gary@intrepid.com>
453 Fix ICE involving shared bit field accesses.
454 * tree.c (build3_stat): Propagate TEEE_SHARED()
455 and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
457 2011-09-13 Gary Funck <gary@intrepid.com>
459 Merge trunk version 178795 into gupc branch.
460 Incorporates fix to PR bootstrap/50010 for x86-32.
462 2011-09-08 Gary Funck <gary@intrepid.com>
464 Merge trunk version 178557 into gupc branch.
466 2011-09-07 Gary Funck <gary@intrepid.com>
468 Ensure that UPC pointer-to-shared type alignment is
469 propagated to the final type. Revert to long-standing
470 alignment policy: twice the size of a "C" pointer.
471 * tree.c (build_pointer_type): Propagate the alignment
472 of the UPC pointer-to-shared representation type
473 into the newly built pointer type.
475 2011-08-30 Gary Funck <gary@intrepid.com>
477 * tree.h (check_qualified_type): Change 'const_tree'
478 argument types back to 'tree' to avoid complaints
479 of assignment drops qualifiers for invocations of the
480 newly implemented TYPE_BLOCK_FACTOR() macro, which
481 invokes hash functions with 'tree' pointer values that
482 are not const qualified.
483 * tree.c (check_qualified_type, check_aligned_type): Ditto.
484 * c-typeck.c (comptypes_internal): Ditto.
486 2011-08-29 Gary Funck <gary@intrepid.com>
488 Fixes for regressions noted running "make check"
490 * fold-const.c (fold_unary_loc): Execute UPC-specific
491 checks for a cast-of-a-cast, only if one of the
492 operands is a UPC pointer-to-shared value.
493 * opts.c (print_specific_help): Fix a comparison
494 in an assert that checks that there are enough
495 bits reserved for the number of languages defined
498 2011-08-29 Gary Funck <gary@intrepid.com>
500 Implement a hash table to record UPC block factors.
501 * c-family/stub-upc.c (upc_block_factor_insert,
502 upc_block_factor_lookup): New dummy stub procedures.
503 * c-family/c-common.c (c_sizeof_or_alignof_type):
504 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
505 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
506 to copy (hashed) UPC blocking factor.
507 (set_type_quals): Likewise.
508 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
509 TYPE_HAS_THREADS_FACTOR().
510 (type_common.block_factor): Delete.
511 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
512 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
513 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
514 UPC blocking factors greater than one.
515 * dwarf2out.c (modified_type_die): Re-implement
516 logic that records UPC blocking factor in the generated
517 DWARF2 debugging information.
518 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
519 TYPE_HAS_THREADS_FACTOR().
520 * c-decl.c (finish_decl, grokdeclarator):
521 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
522 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
523 used by UPC, and print UPC-specific information.
525 2011-08-28 Gary Funck <gary@intrepid.com>
527 Re-work the type machinery to fully support and to unify support
528 for the UPC layout qualifier (blocking factor).
529 * c-family/stub-upc.c (upc_set_block_factor): Delete.
530 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
531 and update prototype.
532 * c-family/c-common.c (complete_array_type): call newly
533 defined c_build_qualified_type_1() instead of
534 upc_set_block_factor().
535 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
536 upc_apply_layout_qualifier() and update prototype.
537 (upc_set_block_factor): Delete prototype.
538 * c-family/c-common.h (c_build_qualified_type): redefine
539 as a pre-processor macro that invokes c_build_qualified_type_1()
540 with a null UPC layout qualifier.
541 (c_build_qualified_type_1): New. Add layout qualifier argument
542 to old c_build_qualified_type() prototype.
543 * tree.c (set_type_quals, check_qualified_type):
544 Add layout qualifier as argument.
545 (check_aligned_type): Add check for UPC block factor equality.
546 (get_qualified_type_1): Rename from get_qualified_type() and
547 add layout qualifier as argument.
548 (build_qualified_type_1): Rename from build_qualified_type() and
549 add layout qualifier as argument.
550 * tree.h (check_qualified_type): Add layout qualifier as argument
552 (get_qualified_type): Re-define as a as a pre-processor macro
553 that invokes get_qualified_type_1() with a null
554 UPC layout qualifier.
555 (get_qualified_type_1): Rename from get_qualified_type() and
556 add layout qualifier as argument.
557 * cp/tree.c (c_build_qualified_type_1): Rename from
558 c_build_qualified_type() and add (unused) layout qualifier
560 * c-decl.c (finish_decl): re-format long error messages.
561 (grokdeclarator): Re-work the logic so that it calls
562 upc_grok_layout_qualifier() to handle the UPC layout
563 qualifier, if present.
564 * c-typeck.c (qualify_type, common_pointer_type,
565 build_component_ref): Re-work the logic so that it calls
566 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
568 (c_build_qualified_type_1): Rename from c_build_qualified_type()
569 and add layout qualifier argument.
570 * print_tree.c (print_node): Re-format a long line.
572 2011-08-26 Gary Funck <gary@intrepid.com>
574 Merge trunk version 177949 into gupc branch.
575 * c-family/c-common.h (enum rid): Bump the number of type modifiers
577 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
578 to add new rliterals column value.
580 2011-08-26 Gary Funck <gary@intrepid.com>
582 * convert.c (convert_to_integer): Fix the check for the
583 difference between two UPC pointers-to-shared values.
585 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
587 * configure.ac: Fix the name for --with-upc-pts-packed-bits
588 option. Support --with-upc-packed-bits as deprecated. Fix the code to
589 correctly check packed bits.
590 * configure: Re-generate.
592 2011-08-16 Gary Funck <gary@intrepid.com>
594 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
595 the barrier id expression is not an integer expression.
597 2011-08-12 Gary Funck <gary@intrepid.com>
599 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
601 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
602 Set mode of UPC pointer-to-shared rep. to an
603 integral mode of size at least as large as the
604 size of the representation's struct type.
606 2011-08-12 Gary Funck <gary@intrepid.com>
608 Rework/simplify the UPC genericize pass.
609 * c-family/stub-upc.c (upc_apply_layout_qualifier,
610 upc_build_pointer_type): New.
611 (upc_set_block_factor): Adjust to new calling sequence.
612 (upc_build_shared_var_addr): Delete.
613 * c-family/c-common.c (complete_array_type): Adjust call
614 to upc_set_block_factor().
615 * c-family/c-upc.h (upc_apply_layout_qualifier,
616 upc_build_pointer_type): New.
617 (upc_build_shared_var_addr): Delete.
618 (upc_set_block_factor): Adjust to new calling sequence.
619 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
620 * c-decl.c (grokdeclarator): Call newly defined
621 upc_apply_layout_qualifier() instead of upc_set_block_factor().
622 * c-decl.c (grokdeclarator): Split long UPC-related error
623 messages into two lines.
624 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
625 directly. Revert that change to trunk. (upc_genericize() will
626 handle lowering the expressions that take the address of a
628 * config/i386/i386.c (ix86_promote_function_mode): For UPC
629 pointers-to-shared, return the type mode of the UPC pointer-to-shared
632 2011-08-10 Gary Funck <gary@intrepid.com>
634 Implement additional fixes for recent merge with trunk.
635 * explow.c (promote_mode): Do not attempt to promote
636 the mode for UPC pointer-to-shared types.
637 * config/i386/i386.c (function_value_64): Ditto.
639 2011-08-07 Gary Funck <gary@intrepid.com>
641 Merge trunk version 177548 into gupc branch.
642 * config/i386/i386.c (ix86_promote_function_mode):
643 Do not promote UPC pointers-to-shared to Pmode.
644 * c-family/c-ommon.c (pointer_int_sum):
645 Also check the pointer operand, rather than just
646 its type, when making the decision to derive
647 the equivalent unshared type.
648 * tree.c (build2_stat): If the type of the result
649 passed in as an argument is a UPC shared type,
650 derive the unshared equivalent when calculating
651 the result type of the node.
653 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
655 * config/darwin.c: Disable var_tracking option
656 on -O0 as it is supposed to run only when optimization
657 is applied. See GCC bug 49743.
659 2011-07-06 Gary Funck <gary@intrepid.com>
661 Re-implement the pass that lowers trees generated by
662 the UPC front-end into GENERIC. Previously this was
663 done within the gimplification framework, but this
664 required that gimplification be run before inlining
665 and various other passes, which did not fit in well
666 with the current design of the middle-end passes.
667 Now, the lowering is done by a newly defined language
668 specific genericize hook. With this change, we are
669 are able to undo some extensions made to the gimplify
670 logic, and thus can revert several files to trunk.
672 * c-decl.c: Add a check for UPC deprecated names which
673 may appear as undefined function names.
674 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
675 LTI_upc_getaddr): Remove definitions of unused UPC
676 library function names. These were defined back when
677 the libfunc interface was used to call these routines.
678 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
679 in UPC lowering (genericize) pass.
680 * langhooks.h (gimplify_expr): Revert to trunk's definition.
681 (instrument_func): Delete this hook. Now handled in
683 * tree-pass.h: Revert to trunk.
684 * c-typeck.c (build_unary_op): Adjust reference to
685 upc_genericize() in a comment.
686 * gimplify.c (create_tmp_var_raw): Delete logic that
687 was converting UPC shared types into unshared types
688 to be used for temporaries. Now handled in upc_genericize().
689 Replace with an assertion check.
690 (prepare_gimple_addressable): Revert to trunk's definition.
691 No longer needed as an externally called function.
692 (flag_instrument_functions_exclude_p): Re-define as
693 an externally called function.
694 (gimplify_function_tree): Delete code that implemented
695 call to UPC's language specific function instrumentation hook.
696 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
697 (prepare_gimple_addressable): Delete extern definition;
698 revert to trunk's definition.
699 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
700 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
701 * c-family/c-gimplify.c: Revert to trunk.
702 * cp/cp-gimplify.c: Revert to trunk.
703 * cp/cp-tree.h: Revert to trunk.
704 * explow.c: Revert to trunk.
705 * langhooks.c: Revert to trunk.
706 * libfuncs.h: Revert to trunk.
707 * objc/objc-act.c: Revert to trunk.
709 2011-06-30 Gary Funck <gary@intrepid.com>
711 * c-family/c.opt: Bring options definitions up-to-date
712 with respect to changes made in the trunk.
714 2011-06-29 Gary Funck <gary@intrepid.com>
716 Merge trunk version 175584 into gupc branch.
718 2011-06-13 Gary Funck <gary@intrepid.com>
721 * include/cpplib.h (enum c_lang):
722 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
723 This keeps all the "C" variants together.
724 * init.c (lang_defaults): Add an entry for UPC.
726 2011-06-09 Gary Funck <gary@intrepid.com>
728 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
729 a 32-bit target, the size expression overflowed, the result was
730 error_mark_node, and an ICE was triggered on an attempt to evaluate
731 C_TYPE_VARIABLE_SIZE() on the error node.
732 (upc_blocksizeof_expr, upc_blocksizeof_type,
733 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
734 Make similar changes to avoid further processing of error_mark_node.
736 2011-06-07 Gary Funck <gary@intrepid.com>
738 * sel-sched.c (move_op): Incorporate the following
739 patch to eliminate ICE at -O3 on IA64/Altix.
741 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
743 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
744 code_motion_path_driver returned 0 or 1.
745 (sel_region_finish): Clear h_d_i_d.
747 2011-06-02 Gary Funck <gary@intrepid.com>
749 Merge trunk version 174558 into gupc branch.
751 2011-05-30 Gary Funck <gary@intrepid.com>
753 * configure.ac: Make the default order of the virtual
754 address field in a UPC pointer-to-shared to be "first".
755 This reverts to the previous setting, and is a short term
756 measure to work around a bug found on the IA64,
757 where vaddr=last led to incorrect code generation.
758 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
759 in AC_DEFINE(), to agree with recent changes in files
760 that reference this define.
761 configure, config.in: Regenerate.
763 2011-05-26 Gary Funck <gary@intrepid.com>
765 * configure.ac: Fix typo when referring to $upc_vaddr_order.
766 configure: Regenerate.
768 * ../fixincludes/fixincl.x: Revert to trunk.
769 This file is auto-generated, and should not be merged.
771 2011-05-18 Gary Funck <gary@intrepid.com>
773 Merge trunk version 173845 into gupc branch.
775 2011-05-17 Gary Funck <gary@intrepid.com>
777 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
778 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
780 * c-family/c-pragma.c: Remove conditional compilation
781 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
782 Test 'compiling_upc' when compiling to determine if
783 the "upc" and "pupc" pragmas should be registered.
785 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
786 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
787 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
788 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
789 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
790 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
791 Move these target-dependent definitions from config/upc-conf.h
794 * configure.ac: Improve the logic for UPC-related options.
795 Delete references to pre-processor definitions that have
796 been moved to "upc/upc-pts.h".
798 * configure, config.in: Regenerate.
800 * Makefile.in (UPC_PTS_REP): Remove definition and revert
801 to trunk. This substitution variable was used to
802 configure the representation-specific versions of
803 the tree rewrites that operate on UPC pointer-to-shared
806 * c-parser.c (c_parser_upc_forall_statement): Remove
807 reference to UPC_FORALL_DEPTH_NAME, and call
808 newly defined upc_rts_forall_depth_var() instead.
810 * config/upc-config.h: Delete. Various definitions
811 moved to "upc/upc-rts-names.h", "defaults.h", and
814 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
815 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
816 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
817 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
818 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
819 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
820 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
821 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
822 New. Document UPC target macros.
823 doc/tm.texi: Regenerate.
825 2011-05-07 Gary Funck <gary@intrepid.com>
827 * ../configure.ac: Disable build of libupc
828 on non POSIX hosted systems. Use AS_HELP_STRING
829 to define messages. Remove 'word-pair' as a
830 possible --with-upc-pts UPC pointer-to-shared
833 * ../configure: Regenerate.
835 * configure.ac: Use AS_HELP_STRING to define messages.
836 Remove 'word-pair' as a possible --with-upc-pts
837 UPC pointer-to-shared representation.
838 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
839 (UPC_MAX_BLOCK_SIZE): Correct the default value.
841 * configure: Regenerate.
843 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
846 * ChangeLog.upc: Fix some typos.
848 2011-05-07 Gary Funck <gary@intrepid.com>
850 * ../maintainer-scripts/gcc_release: Add "upc"
851 as one of the released languages.
853 2011-05-06 Gary Funck <gary@intrepid.com>
855 Eliminate compilation warnings, by fixing
856 #include's and updating function prototypes.
858 * c-family/c-cppbuiltin.c: Include c-upc.h.
860 * optabs.c (gen_libfunc): Change type of 'suffix'
861 parameter to conform with prototype.
863 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
864 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
867 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
870 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
871 argument values to cp_gimplify_expr.
873 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
874 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
875 pre-processor definitions that are no longer
876 needed to build the 'upc' command (upc-cmd.c)
877 because the linker specs. defined in libupc
878 take care of linking in the needed libraries.
880 * c-parser.c (c_parser_upc_forall_statement):
881 initialize affinity_loc to avoid "maybe unused" warning.
882 (c_parser_upc_sync_statement): Remove un-needed
883 'ret' variable. Cast return value from
884 'upc_build_sync_stmt' to 'void' to avoid
885 compile-time warning.
887 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
888 integer constant, not a string. Range is restricted
889 to maximum positive 32-bit integer (2+ billion) to
890 fit in with the use of 'int' in the front-end's
891 switch handling logic.
893 2011-05-06 Gary Funck <gary@intrepid.com>
895 Upgrade c-family source files to conform with modularity
896 improvements. Mainly, remove #include of c-tree.h in files
897 under c-family, and define a new UPC-specific #include file,
900 * c-family/stub-upc.c: Remove #include of c-tree.h and
901 upc/upc-act.h. Replace with #include of c-common.h
903 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
904 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
905 upc_localsizeof_expr, upc_localsizeof_type,
906 upc_shared_type_p): Delete.
908 * c-family/c-opts.c: Add #include of c-upc.h
910 * c-family/c-common.c: Remove #include of c-tree.h and
911 add #include of c-upc.h.
913 * c-family/c-upc.h: New. Define API for UPC-specific functions
914 (mostly implemented in upc/upc-act.c).
916 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
917 Remove extern definitions.
919 * c-family/c-pragma.c: Remove #include of c-tree.h.
920 Add #include of c-upc.h.
922 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
924 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
925 upc/upc-act.c, and define as a macro.
926 (expand_affinity_test): Remove unused external definition.
927 (build_upc_unshared_type): Add external definition.
928 (upc_shared_type_p): Remove external definition.
930 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
932 * dojump.c: Remove #include of c-tree.h.
934 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
936 (count_upc_threads_refs, is_multiple_of_upc_threads,
937 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
938 upc_build_shared_var_addr, upc_build_sync_stmt,
939 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
940 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
941 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
942 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
943 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
944 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
945 set_upc_consistency_mode, get_upc_consistency_mode,
946 push_upc_consistency_mode, pop_upc_consistency_mode,
948 Move external definitions to c-family/c-upc.h.
949 (upc_blocksizeof_type, upc_localsizeof_type,
950 upc_elemsizeof_type): Remove external definitions;
951 these functions were moved to c-parser.c.
953 * c-decl.c: Add #include of c-upc.h.
955 * c-typeck.c: Add #include of c-upc.h.
957 * c-convert.c: Add #include of c-upc.h.
959 * ChangeLog.upc: Fix typo.
961 * Makefile.in: Add references to c-family/c-upc.h, everywhere
962 there is a reference to c-family/c-objc.h.
963 Remove extraneous reference to upc-act.h.
965 * c-parser.c: Add #include of c-upc.h.
966 (upc_blocksizeof_expr, upc_blocksizeof_type,
967 upc_elemsizeof_expr, upc_elemsizeof_type,
968 upc_localsizeof_expr, upc_localsizeof_type):
969 Move from upc/upc-act.c.
971 * tree.c (build_upc_unshared_type): New.
972 Move upc_get_unshared_type from upc/upc-act.c and rename
973 to build_upc_unshared_type.
974 c-family/c-common.c (pointer_int_sum): refer to renamed
975 build_upc_unshared_type function.
976 c-convert.c (convert): Ditto.
977 convert.c (convert_to_pointer): Ditto.
978 c-typeck.c (build_unary_op, build_modify_expr,
979 really_start_incremental_init): Ditto.
980 gimplify.c (create_tmp_var_raw): Ditto.
981 tree.c (build1_stat): Ditto.
982 tree.h (upc_get_unshared_type): Rename to
983 build_upc_unshared_type.
985 2011-05-06 Gary Funck <gary@intrepid.com>
987 Merge trunk version 173471 into gupc branch.
989 2011-05-05 Gary Funck <gary@intrepid.com>
991 Make changes that bring the GUPC branch more closely in sync.
992 with the GCC trunk. Revert any fixes that are not UPC-specific.
993 Remove gratuitous re-formatting.
995 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
996 This file should have been removed in a previous merge
998 * ../configure.ac: Remove Cray Catamount/CNL support.
999 * ../configure: Regenerate.
1000 * ../config.sub: Remove Cray Catamount/CNL support.
1001 * config.gcc: Remove Cray Catamount/CNL support.
1002 * ../maintainer-scripts/gcc_release: Revert to trunk.
1003 * c-family/c-common.h: Define parse_optimize_options. Its definition
1004 was missed in a previous merge with the trunk.
1005 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1007 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1008 in addition to ARRAY_TYPE.
1009 * c-typeck.c: Remove an extra newline character.
1010 * varasm.c: Revert a fix that improved an error message
1011 when TLS common data is unimplemented.
1012 * varasm.c: Revert a gcc_assert that had been added which
1013 checked for a null DECL_SIZE_UNIT field.
1014 * emultls.c: Revert to trunk. Remove possible fix.
1015 * Makefile.in: Revert extra blank line that is present
1016 in the trunk version.
1017 * Makefile.in: Revert a fix that handled long shell
1018 argument lists for plugin headers.
1019 * config/ia64/ia64.opt: Revert an option setting
1020 that increased the default TLS address range.
1021 * config/ia64/crtbegin.asm: Revert to trunk.
1022 Removes an extra newline character.
1023 * ChangeLog.upc: Spell check.
1025 2011-05-03 Gary Funck <gary@intrepid.com>
1027 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1028 (c_apply_type_quals_to_decl): Ditto.
1029 * c-family/c-common.h: Ditto.
1031 * c-decl.c (merge_decls): Ditto.
1032 * c-typeck.c (qualify_type, default_conversion,
1033 build_component_ref, build_unary_op,
1034 c_build_qualified_type): Ditto.
1035 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1037 2011-04-29 Gary Funck <gary@intrepid.com>
1039 * c-decl.c (finish_decl): Improve error diagnostics.
1040 (grokdeclarator): Ditto.
1042 * c-typeck.c (build_c_cast): Improve error diagnostics.
1043 (convert_for_assignment): Ditto.
1044 (build_binary_op): Ditto.
1046 * c-parser.c (c_parser_upc_forall_statement):
1047 Improve error diagnostics.
1049 * convert.c (convert_to_integer): Improve error diagnostics.
1051 2011-04-24 Gary Funck <gary@intrepid.com>
1053 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1054 occurred if there is an error in the barrier id
1055 expression. Map error_mark_node into NULL.
1057 2011-04-22 Gary Funck <gary@intrepid.com>
1059 Merge trunk version 172873 into gupc branch.
1061 2011-04-19 Gary Funck <gary@intrepid.com>
1063 Merge trunk version 172359 into gupc branch.
1065 2011-04-14 Gary Funck <gary@intrepid.com>
1067 * c-family/c.opt: Add UPC as a valid language for various
1068 switches where it is valid for "C", that were not updated
1069 in previous merges with trunk.
1071 2011-04-13 Gary Funck <gary@intrepid.com>
1073 * c-family/c.opt (fupc-pre-include): New option definition.
1074 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1075 -fno-upc-pre-include is asserted.
1077 2011-04-07 Gary Funck <gary@intrepid.com>
1079 Merge trunk version 172158 into gupc branch.
1080 to bring in the following fix.
1082 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
1085 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1086 if old and new states differ.
1088 2011-04-06 Gary Funck <gary@intrepid.com>
1090 Merge trunk version 171966 into gupc branch.
1092 2011-04-01 Gary Funck <gary@intrepid.com>
1094 * tree.h (tree_base): Move UPC flag bits into bit fields
1095 located just before spare bits. Decrement spare bits.
1096 Rename 'shared_flag' -> 'upc_shared_flag',
1097 'relaxed_flag' -> 'upc_relaxed_flag',
1098 'strict_flag' -> 'upc_strict_flag, and adjust macros
1099 that reference them accordingly.
1101 2011-04-01 Gary Funck <gary@intrepid.com>
1103 * c-decl.c (grokdeclarator): Fix formatting of
1104 code that sets UPC block size on scalars.
1106 2011-04-01 Gary Funck <gary@intrepid.com>
1108 * c-decl.c (grokdeclarator): Revert use of white space
1109 to match the trunk (to rationalize diffs).
1110 * c-typeck.c (convert_for_assignment): Ditto.
1111 * tree-ssa.c (useless_type_conversion_p): Ditto.
1113 2011-03-23 Gary Funck <gary@intrepid.com>
1115 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1116 the GCC 4.6 release branch.
1118 2011-03-21 Gary Funck <gary@intrepid.com>
1120 Merge trunk version 171202 into gupc branch.
1122 2011-03-20 Gary Funck <gary@intrepid.com>
1124 * varasm.c: Call error() directly with a format specifier,
1125 rather than using sprintf() to format the message.
1126 This should make it easier to internationalize UPC's error messages.
1128 2011-03-20 Gary Funck <gary@intrepid.com>
1130 * configure.ac: Fix the check for gnu ld when enabling
1131 UPC link script support.
1132 configure: Regenerate (also picks up changes from previous
1135 2011-03-20 Gary Funck <gary@intrepid.com>
1137 Move UPC start files, end files, and linker specs.
1138 into libupc. This reduces the impact on common GCC
1139 configuration files, and ensures that these UPC-specific
1140 components are only built when the UPC language dialect is selected.
1144 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1145 linker specs. Fix typo in -fupc-debug message.
1147 * config/upc-conf.h, config/darwin.h: Move defines for
1148 UPC-related section begins/ends into libupc/config/default/
1151 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1152 UPC-related linker compiler specifications,
1153 accessed via %:include().
1155 * configure.ac, configure: Remove logic related to building
1156 upc-crtbegin/end. Remove config. tests for numa and cpu
1157 affinity (previously used by the 'upc' driver); these
1158 settings are now propagated by target-specific compiler
1159 specs. built by libupc. Regenerate autoconf.
1161 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1162 linker compiler specifications, accessed via %:include().
1163 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1166 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1168 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1169 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1170 config/ia64/linux.h, config/mips/t-iris,
1171 config/mips/iris6.h: Revert to trunk version 167307.
1174 * configure, configure.ac, config.host, Makefile.in:
1175 Revert to trunk version 167307.
1177 2011-02-23 Gary Funck <gary@intrepid.com>
1179 * c-decl.c (undeclared_variable): fix typo. Inadvertently
1180 removed negation on following 'if'.
1182 2011-02-22 Gary Funck <gary@intrepid.com>
1184 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1185 to check for the usage of certain deprecated UPC keywords.
1186 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1187 * c-tree.h (undeclared_variable): Define prototype.
1189 2011-02-12 Gary Funck <gary@intrepid.com>
1191 * c-typeck.c: (build_c_cast, convert_for_assignment)
1192 Diagnose an attempt to convert from an integer to
1193 a pointer-to-shared as an error. Also, fix various
1194 error messages so that they use the preferred term
1195 pointer-to-shared instead of "shared pointer".
1197 2011-02-07 Gary Funck <gary@intrepid.com>
1199 * c-typeck.c: (convert_for_assignment)
1200 Fix typo. in error message.
1202 2011-01-23 Gary Funck <gary@intrepid.com>
1204 * c-typeck.c: (c_build_qualified_type)
1205 derive UPC block size by calling upc_get_block_size(),
1206 to ensure that the element type of an array of an array
1207 is derived correctly.
1209 2010-12-29 Gary Funck <gary@intrepid.com>
1211 Merge trunk version 168314 into gupc branch.
1213 2010-12-15 Gary Funck <gary@intrepid.com>
1215 Merge trunk version 167307 into gupc branch.
1217 2010-10-19 Gary Funck <gary@intrepid.com>
1219 * c-typeck.c: Fix typo in previous fix
1220 which led to a mis-compare for equal block sizes.
1222 2010-10-18 Gary Funck <gary@intrepid.com>
1224 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1225 diagnosed as an error
1227 The conversion from any type (shared or not) to
1228 a shared type is likely either meaningless or an error. This update
1229 makes any conversion to a shared type, an error.
1231 2010-10-18 Gary Funck <gary@intrepid.com>
1233 * c-typeck.c: Fix bug: passing int to shared pointer arg.
1234 generates spurious warning
1236 Add a #define procedure that does the same thing as
1237 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
1238 this procedure to diagnose passing an integer value to a
1239 pointer-to-shared as an error.
1241 2010-10-18 Gary Funck <gary@intrepid.com>
1243 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1244 matching routine declaration.
1246 When checking for type compatibility, shared qualified types must
1247 have the same block factor. This check was missing from
1248 comptypes_internal(). This update adds the check for blocking
1251 2010-10-17 Gary Funck <gary@intrepid.com>
1253 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1256 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1258 2010-10-17 Gary Funck <gary@intrepid.com>
1260 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1261 45869 - [4.5/4.6 Regression] type mismatch in shift expression
1262 produces ice with -O3 and -m32.
1264 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1266 2010-10-17 Gary Funck <gary@intrepid.com>
1268 * c-common.c: Diagnose the application of the various "*sizeof"
1269 operations on generic pointer-to-shared as a compilation error.
1271 2010-10-17 Gary Funck <gary@intrepid.com>
1273 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1274 message regarding a function parameter being declared with a shared
1277 The parameter's 'name' value is not defined at this point, and
1278 cannot be used in the error message. This update removes the
1279 reference to 'name', and eliminates the segfault.
1281 2010-10-16 Gary Funck <gary@intrepid.com>
1283 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1285 The gcc/Makefile.in rules for install-plugin had to be re-written to
1286 break up a long list of header files that exceeded the command line
1287 limitation imposed by Irix.
1289 Access functions for TFmode types had to be implemented.
1290 Apparently, this is the mode used for the SGI/MIPS port to represent
1293 2010-10-14 Gary Funck <gary@intrepid.com>
1295 * c-decl.c: Fix bug: Multiple equal blocking factors specified
1296 via typedef chain should not be diagnosed as an error.
1298 If the block size that is given by the typedef is equal to the block
1299 size given explicitly in the variable declaration, then do not
1300 complain. The easiest way to make this check was to create a
1301 temporary type that is a clone of the element type and then set its
1302 block size using the given layout qualifier. Then compare the block
1303 size of the temporary (the declaration) to the block size specified
1304 in the typedef. This complexity is needed, because the '[*]' block
1305 size needs to be calculated, and the '[]' needs to be mapped into a
1308 2010-10-10 Gary Funck <gary@intrepid.com>
1310 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1313 The compiler properly detected the presence of two or more layout
1314 qualifiers as an error, but then hit an assertion check, because the
1315 code that followed the error expected to see a qualifier and not a
1316 layout specifier. The fix is simple: just return immediately after
1317 detecting the error.
1319 2010-10-10 Gary Funck <gary@intrepid.com>
1321 * c-decl.c: Improve error diagnostics for various cases of UPC
1322 shared array type declarations.
1324 Add the check for this error: "In the dynamic translation
1325 environment, THREADS may not appear in declarations of shared arrays
1326 with indefinite block size". Also, fix up a few of the other
1327 related error diagnostics.
1329 2010-10-09 Gary Funck <gary@intrepid.com>
1331 * c-common.c: Fix bug: segfault on incomplete array definition.
1333 This turned out to be a bit complicated. The logic in
1334 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1335 the THREADS identifier in the case where the blocking factor has
1336 been set to indefinite ([]). This can happen when indefinite array
1337 declarations are processed for shared arrays. At that time, the
1338 file scope has been closed and THREADS is no longer in scope. Some
1339 more work is needed on upc_lang_layout_decl(). It has some
1340 duplication, and notably duplicates the two branches of the if
1341 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1342 caller of this routine (layout_decl()).
1344 The method of forcing a layout qualifier of [] in the indefinite
1345 declaration handler is odd a well. The code that just does the
1346 setting of the block factor, needs to moved into its own routine
1347 that doesn't depend upon a declspec for '[]' to be passed in, just
1348 in order to set the blocking factor to some value (in this case, 0).
1349 Also, the logic for how that shared type is constructed is strange.
1350 First the type with 0 blocking factor is set. Then the shared
1351 qualifier is removed from the type, and then added back later. The
1352 intermediate type has a blocking factor set, but it has no shared
1353 qualifier. Fixing this will require some thought. It is tempting
1354 just to make indefinite shared arrays an error, rather than forcing
1355 the dimension to be '1'.
1357 This likely fixes a serious error in the previous update to
1358 upc_lang_layout_decl(), where it didn't have the logic to set
1359 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
1360 the previous update would fail on many tests.
1362 2010-10-09 Gary Funck <gary@intrepid.com>
1364 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1365 (decl) is null, which can happen if some layout error occurred
1368 2010-10-09 Gary Funck <gary@intrepid.com>
1370 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1371 "variable-sized" when compiled in dynamic threads.
1373 This long-standing bug is easily fixed. Just check
1374 for the situation that the non-constant sized type is shared and
1375 that it does not have a dimension that references a multiple of
1376 threads. If this criteria is met, then issue a meaningful
1379 2010-10-01 Gary Funck <gary@intrepid.com>
1381 * configure, configure.ac: Update manual page, and bug reporting
1384 Update "man" page to reflect debugging switches. Also, some general
1385 clean up. Change the bug reporting URL to point to gccupc.org.
1387 2010-09-27 Gary Funck <gary@intrepid.com>
1389 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1390 the UPC forall depth count variable is not found.
1392 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1393 The compiler will generate code that references this variable in
1394 order to implement nested upc_forall semantics. If there is a
1395 compiler build or install problem, this variable may not be found.
1396 In this case, terminate with an internal_error().
1398 2010-09-26 Gary Funck <gary@intrepid.com>
1400 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1401 mis-diagnosed as syntax error.
1403 Fix a failure exhibited by the Berkeley test case,
1404 bug873a.upc, which has the code:
1406 upc_forall (;;;d) {...} The compiler did not properly handle
1407 the empty "condition" clause, and did not recover well when it was
1408 determined that the use of a double value, "d" above, was neither a
1409 pointer-to-shared nor an integer expression. The update implements a
1410 fix for both issues.
1412 See also: gcc/c-parser.c gcc/upc/upc-act.c
1414 2010-09-23 Gary Funck <gary@intrepid.com>
1416 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1417 incorporated into the referencing type.
1419 This was semi-fixed a few times before. This update fixes a few
1420 more places where the layout qualifier wasn't being propagated
1421 through typedef's properly. What made this a bit tricky is shown in
1422 the example cited in the bug report:
1424 typedef shared [5] int A_t; A_t A[5*THREADS];
1426 In the typedef, the blocksize is being applied to a shared *scalar*,
1427 and the code was applying the blocksize only to arrays. This update
1428 handles shared scalars correctly.
1430 2010-09-22 Gary Funck <gary@intrepid.com>
1432 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1433 upc_forall() semantics are not implemented
1435 The checkforall test in the Berkeley harness test suite indicated
1436 that GCC/UPC was not properly implementing nested upc_forall
1437 semantics. Nested upc_forall statements (both statically or
1438 dynamically nested) must implement their affinity clause as if it
1439 were "continue"; thus all steps in the loop must execute without
1440 regard for affinity. To implement these semantics a global depth
1441 counter, __upc_forall_depth, is maintained by the generated code
1442 that implements upc_forall.
1444 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1445 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1446 libupc/include/upc.h libupc/smp/upc_main.c
1448 2010-09-19 Gary Funck <gary@intrepid.com>
1450 * c-decl.c: c-decl.c: zero out the layout specifier, after
1451 processing an array type.
1453 Fix the previous fix, that moved the setting of the type's layout
1454 qualifier to the outside of the array type processing loop. What is
1455 missing from the fix is that the layout_qualifier variable needs to
1456 be cleared after setting the type's blocksize.
1458 2010-09-19 Gary Funck <gary@intrepid.com>
1460 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1461 given blocksize is greater than UPC_MAX_BLOCKSIZE.
1463 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1464 the actual maximum block size. Therefore, the message was correct,
1465 but the underlying value that was being checked was wrong. Change
1466 the values so that they agree with the actual implementation-defined
1469 2010-09-11 Gary Funck <gary@intrepid.com>
1471 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1472 multi-dimensional shared array with dynamic threads.
1474 This declaration caused an internal compiler error when compiled
1475 with dynamic threads:
1476 shared [*] int A[THREADS][16]; The bug was discovered when
1477 compiling the RTED_UPC test suite.
1479 The fix is to process layout qualifiers after the entire array type
1480 has been built. Otherwise, we try to calculate the blocksize on a
1481 shared array type that has not had its "size depends upon the value
1482 of THREADS" flag set.
1484 Also, added a test case.
1486 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1488 2010-07-11 Gary Funck <gary@intrepid.com>
1490 Fix a bug where a statement in c_build_qualified_type()
1491 in the trunk had been inadvertently deleted.
1492 This bug showed up in the IA64 port, because jmpbuf's
1493 on that architecture must be 16 byte aligned, and they were not.
1494 c-typeck.c (c_build_qualified_type): Revive the deleted line.
1496 2010-07-08 Gary Funck <gary@intrepid.com>
1498 Make changes so that other language compilers
1499 will build and bootstrap.
1500 * c-family/c-common.c (compiling_upc, flag_upc,
1501 flag_upc_instrument, flag_upc_instrument_functions,
1502 use_upc_dwarf2_extensions): Move to stub-upc.c and
1504 * c-family/c-common.h (use_upc_dwarf2_extensions,
1505 compiling_upc): Add extern definitions - needed
1506 to compile/build other language front ends.
1507 * c-family/c.opt: Fix the spelling of ObjC.
1508 It had been incorrectly spelled as Objc.
1509 * c-family/c.opt: Add UPC for the various switches
1510 that are valid for both C and ObjC.
1511 * c-fmaily/c-opts.c: Add CL_UPC to the list of
1512 supported options switches when compiling assembly
1514 * lto/lto-lang.c (use_upc_dwarf2_extensions,
1515 flag_upc_instrument, flag_upc_instrument_functions):
1516 Remove these definitions. They have been moved
1517 to c-family/stub-upc.c.
1518 * upc/ChangeLog: Move relevant entries
1520 * c-family/stub-upc.c (compiling_upc, flag_upc,
1521 flag_upc_instrument, flag_upc_instrument_functions,
1522 use_upc_dwarf2_extensions): Moved from c-common.c
1523 * upc/upc-lang.c (compiling_upc, flag_upc,
1524 flag_upc_instrument, flag_upc_instrument_functions,
1525 use_upc_dwarf2_extensions): Moved from c-common.c
1526 * objc/objc-act.c (objc_gimplify_expr): Add additional
1527 parameters to c_gimplify_expr() call, that are used
1528 by upc's tree rewrites.
1529 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1530 * gcc/cp/lex.c (init_reswords): If not compiling
1531 UPC, then mask off the UPC keywords.
1532 * cp/Make-lang.in (C_STUB_OBJS): Use this
1533 make macro to link with c-family/stub-objc.o
1534 and c-family/stub-upc.o.
1535 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1536 * java/Make-lang.in (C_STUB_OBJS): Likewise.
1537 * objc/Make-lang.in: Link with c-family/stub-upc.o
1538 to avoid undefined references.
1539 c-parser.c: Fix line indentation.
1540 * libcpp/include/cpplib.h: Remove CL_UPC from
1541 the list of language kinds accepted by the
1542 C preprocessor. This is not necessary because
1543 UPC is a derivative of C99, and does not need
1544 a different language kind.
1545 * c-fmaily/c-opts.c (c_common_handle_option):
1546 Call set_std_c99() when processing the
1547 "--lang upc" switch, instead of setting the
1548 language kind to CL_UPC.
1549 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1551 2010-07-03 Gary Funck <gary@intrepid.com>
1553 Merge trunk version 161517 into gupc branch.
1554 * gcc/stub-upc.c: Move to gcc/c-family/.
1555 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1556 Add 'unused' attributes to avoid "set, but
1557 not referenced" warnings.
1558 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1561 2010-03-01 Gary Funck <gary@intrepid.com>
1563 Create gupc branch from trunk version 157149.
1564 2011-10-04 Gary Funck <gary@intrepid.com>
1566 Merge trunk version 179421 into gupc branch.
1568 * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1569 argument to the call to check_qualified_type().
1571 2011-09-22 Gary Funck <gary@intrepid.com>
1573 * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1575 (dump_upc_type_quals): New.
1577 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
1579 Add to FLAGS the flags needed to disable inlining of
1580 UPC run-time access routines.
1581 * testsuite/lib/target-supports.exp
1582 (add_options_for_upc_library_calls): New.
1584 2011-09-15 Gary Funck <gary@intrepid.com>
1586 Fix ICE involving shared bit field accesses.
1587 * tree.c (build3_stat): Propagate TEEE_SHARED()
1588 TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1590 2011-09-13 Gary Funck <gary@intrepid.com>
1592 Merge trunk version 178795 into gupc branch.
1593 Incorporates fix to PR bootstrap/50010 for x86-32.
1595 2011-09-08 Gary Funck <gary@intrepid.com>
1597 Merge trunk version 178557 into gupc branch.
1599 2011-09-07 Gary Funck <gary@intrepid.com>
1601 Ensure that UPC pointer-to-shared type alignment is
1602 propagated to the final type. Revert to long-standing
1603 alignment policy: twice the size of a "C" pointer.
1604 * tree.c (build_pointer_type): Propagate the alignment
1605 of the UPC pointer-to-shared representation type
1606 into the newly built pointer type.
1608 2011-08-30 Gary Funck <gary@intrepid.com>
1610 * tree.h (check_qualified_type): Change 'const_tree'
1611 argument types back to 'tree' to avoid complaints
1612 of assignment drops qualifiers for invocations of the
1613 newly implemented TYPE_BLOCK_FACTOR() macro, which
1614 invokes hash functions with 'tree' pointer values that
1615 are not const qualified.
1616 * tree.c (check_qualified_type, check_aligned_type): Ditto.
1617 * c-typeck.c (comptypes_internal): Ditto.
1619 2011-08-29 Gary Funck <gary@intrepid.com>
1621 Fixes for regressions noted running "make check"
1623 * fold-const.c (fold_unary_loc): Execute UPC-specific
1624 checks for a cast-of-a-cast, only if one of the
1625 operands is a UPC pointer-to-shared value.
1626 * opts.c (print_specific_help): Fix a comparison
1627 in an assert that checks that there are enough
1628 bits reserved for the number of languages defined
1631 2011-08-29 Gary Funck <gary@intrepid.com>
1633 Implement a hash table to record UPC block factors.
1634 * c-family/stub-upc.c (upc_block_factor_insert,
1635 upc_block_factor_lookup): New dummy stub procedures.
1636 * c-family/c-common.c (c_sizeof_or_alignof_type):
1637 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1638 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1639 to copy (hashed) UPC blocking factor.
1640 (set_type_quals): Likewise.
1641 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1642 TYPE_HAS_THREADS_FACTOR().
1643 (type_common.block_factor): Delete.
1644 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1645 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1646 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1647 UPC blocking factors greater than one.
1648 * dwarf2out.c (modified_type_die): Re-implement
1649 logic that records UPC blocking factor in the generated
1650 DWARF2 debugging information.
1651 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1652 TYPE_HAS_THREADS_FACTOR().
1653 * c-decl.c (finish_decl, grokdeclarator):
1654 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1655 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1656 used by UPC, and print UPC-specific information.
1658 2011-08-28 Gary Funck <gary@intrepid.com>
1660 Re-work the type machinery to fully support and to unify support
1661 for the UPC layout qualifier (blocking factor).
1662 * c-family/stub-upc.c (upc_set_block_factor): Delete.
1663 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1664 and update prototype.
1665 * c-family/c-common.c (complete_array_type): call newly
1666 defined c_build_qualified_type_1() instead of
1667 upc_set_block_factor().
1668 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1669 upc_apply_layout_qualifier() and update prototype.
1670 (upc_set_block_factor): Delete prototype.
1671 * c-family/c-common.h (c_build_qualified_type): redefine
1672 as a pre-processor macro that invokes c_build_qualified_type_1()
1673 with a null UPC layout qualifier.
1674 (c_build_qualified_type_1): New. Add layout qualifier argument
1675 to old c_build_qualified_type() prototype.
1676 * tree.c (set_type_quals, check_qualified_type):
1677 Add layout qualifier as argument.
1678 (check_aligned_type): Add check for UPC block factor equality.
1679 (get_qualified_type_1): Rename from get_qualified_type() and
1680 add layout qualifier as argument.
1681 (build_qualified_type_1): Rename from build_qualified_type() and
1682 add layout qualifier as argument.
1683 * tree.h (check_qualified_type): Add layout qualifier as argument
1685 (get_qualified_type): Re-define as a as a pre-processor macro
1686 that invokes get_qualified_type_1() with a null
1687 UPC layout qualifier.
1688 (get_qualified_type_1): Rename from get_qualified_type() and
1689 add layout qualifier as argument.
1690 * cp/tree.c (c_build_qualified_type_1): Rename from
1691 c_build_qualified_type() and add (unused) layout qualifier
1693 * c-decl.c (finish_decl): re-format long error messages.
1694 (grokdeclarator): Re-work the logic so that it calls
1695 upc_grok_layout_qualifier() to handle the UPC layout
1696 qualifier, if present.
1697 * c-typeck.c (qualify_type, common_pointer_type,
1698 build_component_ref): Re-work the logic so that it calls
1699 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1701 (c_build_qualified_type_1): Rename from c_build_qualified_type()
1702 and add layout qualifier argument.
1703 * print_tree.c (print_node): Re-format a long line.
1705 2011-08-26 Gary Funck <gary@intrepid.com>
1707 Merge trunk version 177949 into gupc branch.
1708 * c-family/c-common.h (enum rid): Bump the number of type modifiers
1710 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1711 to add new rliterals column value.
1713 2011-08-26 Gary Funck <gary@intrepid.com>
1715 * convert.c (convert_to_integer): Fix the check for the
1716 difference between two UPC pointers-to-shared values.
1718 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
1720 * configure.ac: Fix the name for --with-upc-pts-packed-bits
1721 option. Support --with-upc-packed-bits as deprecated. Fix the code to
1722 correctly check packed bits.
1723 * configure: Re-generate.
1725 2011-08-16 Gary Funck <gary@intrepid.com>
1727 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1728 the barrier id expression is not an integer expression.
1730 2011-08-12 Gary Funck <gary@intrepid.com>
1732 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1734 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1735 Set mode of UPC pointer-to-shared rep. to an
1736 integral mode of size at least as large as the
1737 size of the representation's struct type.
1739 2011-08-12 Gary Funck <gary@intrepid.com>
1741 Rework/simplify the UPC genericize pass.
1742 * c-family/stub-upc.c (upc_apply_layout_qualifier,
1743 upc_build_pointer_type): New.
1744 (upc_set_block_factor): Adjust to new calling sequence.
1745 (upc_build_shared_var_addr): Delete.
1746 * c-family/c-common.c (complete_array_type): Adjust call
1747 to upc_set_block_factor().
1748 * c-family/c-upc.h (upc_apply_layout_qualifier,
1749 upc_build_pointer_type): New.
1750 (upc_build_shared_var_addr): Delete.
1751 (upc_set_block_factor): Adjust to new calling sequence.
1752 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1753 * c-decl.c (grokdeclarator): Call newly defined
1754 upc_apply_layout_qualifier() instead of upc_set_block_factor().
1755 * c-decl.c (grokdeclarator): Split long UPC-related error
1756 messages into two lines.
1757 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1758 directly. Revert that change to trunk. (upc_genericize() will
1759 handle lowering the expressions that take the address of a
1761 * config/i386/i386.c (ix86_promote_function_mode): For UPC
1762 pointers-to-shared, return the type mode of the UPC pointer-to-shared
1763 representation type.
1765 2011-08-10 Gary Funck <gary@intrepid.com>
1767 Implement additional fixes for recent merge with trunk.
1768 * explow.c (promote_mode): Do not attempt to promote
1769 the mode for UPC pointer-to-shared types.
1770 * config/i386/i386.c (function_value_64): Ditto.
1772 2011-08-07 Gary Funck <gary@intrepid.com>
1774 Merge trunk version 177548 into gupc branch.
1775 * config/i386/i386.c (ix86_promote_function_mode):
1776 Do not promote UPC pointers-to-shared to Pmode.
1777 * c-family/c-ommon.c (pointer_int_sum):
1778 Also check the pointer operand, rather than just
1779 its type, when making the decision to derive
1780 the equivalent unshared type.
1781 * tree.c (build2_stat): If the type of the result
1782 passed in as an argument is a UPC shared type,
1783 derive the unshared equivalent when calculating
1784 the result type of the node.
1786 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
1788 * config/darwin.c: Disable var_tracking option
1789 on -O0 as it is supposed to run only when optimization
1790 is applied. See GCC bug 49743.
1792 2011-07-06 Gary Funck <gary@intrepid.com>
1794 Re-implement the pass that lowers trees generated by
1795 the UPC front-end into GENERIC. Previously this was
1796 done within the gimplification framework, but this
1797 required that gimplification be run before inlining
1798 and various other passes, which did not fit in well
1799 with the current design of the middle-end passes.
1800 Now, the lowering is done by a newly defined language
1801 specific genericize hook. With this change, we are
1802 are able to undo some extensions made to the gimplify
1803 logic, and thus can revert several files to trunk.
1805 * c-decl.c: Add a check for UPC deprecated names which
1806 may appear as undefined function names.
1807 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1808 LTI_upc_getaddr): Remove definitions of unused UPC
1809 library function names. These were defined back when
1810 the libfunc interface was used to call these routines.
1811 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1812 in UPC lowering (genericize) pass.
1813 * langhooks.h (gimplify_expr): Revert to trunk's definition.
1814 (instrument_func): Delete this hook. Now handled in
1816 * tree-pass.h: Revert to trunk.
1817 * c-typeck.c (build_unary_op): Adjust reference to
1818 upc_genericize() in a comment.
1819 * gimplify.c (create_tmp_var_raw): Delete logic that
1820 was converting UPC shared types into unshared types
1821 to be used for temporaries. Now handled in upc_genericize().
1822 Replace with an assertion check.
1823 (prepare_gimple_addressable): Revert to trunk's definition.
1824 No longer needed as an externally called function.
1825 (flag_instrument_functions_exclude_p): Re-define as
1826 an externally called function.
1827 (gimplify_function_tree): Delete code that implemented
1828 call to UPC's language specific function instrumentation hook.
1829 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1830 (prepare_gimple_addressable): Delete extern definition;
1831 revert to trunk's definition.
1832 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1833 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1834 * c-family/c-gimplify.c: Revert to trunk.
1835 * cp/cp-gimplify.c: Revert to trunk.
1836 * cp/cp-tree.h: Revert to trunk.
1837 * explow.c: Revert to trunk.
1838 * langhooks.c: Revert to trunk.
1839 * libfuncs.h: Revert to trunk.
1840 * objc/objc-act.c: Revert to trunk.
1842 2011-06-30 Gary Funck <gary@intrepid.com>
1844 * c-family/c.opt: Bring options definitions up-to-date
1845 with respect to changes made in the trunk.
1847 2011-06-29 Gary Funck <gary@intrepid.com>
1849 Merge trunk version 175584 into gupc branch.
1851 2011-06-13 Gary Funck <gary@intrepid.com>
1854 * include/cpplib.h (enum c_lang):
1855 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1856 This keeps all the "C" variants together.
1857 * init.c (lang_defaults): Add an entry for UPC.
1859 2011-06-09 Gary Funck <gary@intrepid.com>
1861 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1862 a 32-bit target, the size expression overflowed, the result was
1863 error_mark_node, and an ICE was triggered on an attempt to evaluate
1864 C_TYPE_VARIABLE_SIZE() on the error node.
1865 (upc_blocksizeof_expr, upc_blocksizeof_type,
1866 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1867 Make similar changes to avoid further processing of error_mark_node.
1869 2011-06-07 Gary Funck <gary@intrepid.com>
1871 * sel-sched.c (move_op): Incorporate the following
1872 patch to eliminate ICE at -O3 on IA64/Altix.
1874 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
1876 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1877 code_motion_path_driver returned 0 or 1.
1878 (sel_region_finish): Clear h_d_i_d.
1880 2011-06-02 Gary Funck <gary@intrepid.com>
1882 Merge trunk version 174558 into gupc branch.
1884 2011-05-30 Gary Funck <gary@intrepid.com>
1886 * configure.ac: Make the default order of the virtual
1887 address field in a UPC pointer-to-shared to be "first".
1888 This reverts to the previous setting, and is a short term
1889 measure to work around a bug found on the IA64,
1890 where vaddr=last led to incorrect code generation.
1891 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1892 in AC_DEFINE(), to agree with recent changes in files
1893 that reference this define.
1894 configure, config.in: Regenerate.
1896 2011-05-26 Gary Funck <gary@intrepid.com>
1898 * configure.ac: Fix typo when referring to $upc_vaddr_order.
1899 configure: Regenerate.
1901 * ../fixincludes/fixincl.x: Revert to trunk.
1902 This file is auto-generated, and should not be merged.
1904 2011-05-18 Gary Funck <gary@intrepid.com>
1906 Merge trunk version 173845 into gupc branch.
1908 2011-05-17 Gary Funck <gary@intrepid.com>
1910 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1911 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1913 * c-family/c-pragma.c: Remove conditional compilation
1914 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1915 Test 'compiling_upc' when compiling to determine if
1916 the "upc" and "pupc" pragmas should be registered.
1918 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1919 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1920 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1921 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1922 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1923 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1924 Move these target-dependent definitions from config/upc-conf.h
1927 * configure.ac: Improve the logic for UPC-related options.
1928 Delete references to pre-processor definitions that have
1929 been moved to "upc/upc-pts.h".
1931 * configure, config.in: Regenerate.
1933 * Makefile.in (UPC_PTS_REP): Remove definition and revert
1934 to trunk. This substitution variable was used to
1935 configure the representation-specific versions of
1936 the tree rewrites that operate on UPC pointer-to-shared
1939 * c-parser.c (c_parser_upc_forall_statement): Remove
1940 reference to UPC_FORALL_DEPTH_NAME, and call
1941 newly defined upc_rts_forall_depth_var() instead.
1943 * config/upc-config.h: Delete. Various definitions
1944 moved to "upc/upc-rts-names.h", "defaults.h", and
1947 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1948 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1949 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1950 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1951 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1952 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1953 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1954 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1955 New. Document UPC target macros.
1956 doc/tm.texi: Regenerate.
1958 2011-05-07 Gary Funck <gary@intrepid.com>
1960 * ../configure.ac: Disable build of libupc
1961 on non POSIX hosted systems. Use AS_HELP_STRING
1962 to define messages. Remove 'word-pair' as a
1963 possible --with-upc-pts UPC pointer-to-shared
1966 * ../configure: Regenerate.
1968 * configure.ac: Use AS_HELP_STRING to define messages.
1969 Remove 'word-pair' as a possible --with-upc-pts
1970 UPC pointer-to-shared representation.
1971 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1972 (UPC_MAX_BLOCK_SIZE): Correct the default value.
1974 * configure: Regenerate.
1976 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1979 * ChangeLog.upc: Fix some typos.
1981 2011-05-07 Gary Funck <gary@intrepid.com>
1983 * ../maintainer-scripts/gcc_release: Add "upc"
1984 as one of the released languages.
1986 2011-05-06 Gary Funck <gary@intrepid.com>
1988 Eliminate compilation warnings, by fixing
1989 #include's and updating function prototypes.
1991 * c-family/c-cppbuiltin.c: Include c-upc.h.
1993 * optabs.c (gen_libfunc): Change type of 'suffix'
1994 parameter to conform with prototype.
1996 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1997 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2000 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2003 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2004 argument values to cp_gimplify_expr.
2006 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2007 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
2008 pre-processor definitions that are no longer
2009 needed to build the 'upc' command (upc-cmd.c)
2010 because the linker specs. defined in libupc
2011 take care of linking in the needed libraries.
2013 * c-parser.c (c_parser_upc_forall_statement):
2014 initialize affinity_loc to avoid "maybe unused" warning.
2015 (c_parser_upc_sync_statement): Remove un-needed
2016 'ret' variable. Cast return value from
2017 'upc_build_sync_stmt' to 'void' to avoid
2018 compile-time warning.
2020 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2021 integer constant, not a string. Range is restricted
2022 to maximum positive 32-bit integer (2+ billion) to
2023 fit in with the use of 'int' in the front-end's
2024 switch handling logic.
2026 2011-05-06 Gary Funck <gary@intrepid.com>
2028 Upgrade c-family source files to conform with modularity
2029 improvements. Mainly, remove #include of c-tree.h in files
2030 under c-family, and define a new UPC-specific #include file,
2031 c-upc.h, and use it.
2033 * c-family/stub-upc.c: Remove #include of c-tree.h and
2034 upc/upc-act.h. Replace with #include of c-common.h
2036 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2037 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2038 upc_localsizeof_expr, upc_localsizeof_type,
2039 upc_shared_type_p): Delete.
2041 * c-family/c-opts.c: Add #include of c-upc.h
2043 * c-family/c-common.c: Remove #include of c-tree.h and
2044 add #include of c-upc.h.
2046 * c-family/c-upc.h: New. Define API for UPC-specific functions
2047 (mostly implemented in upc/upc-act.c).
2049 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2050 Remove extern definitions.
2052 * c-family/c-pragma.c: Remove #include of c-tree.h.
2053 Add #include of c-upc.h.
2055 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
2057 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
2058 upc/upc-act.c, and define as a macro.
2059 (expand_affinity_test): Remove unused external definition.
2060 (build_upc_unshared_type): Add external definition.
2061 (upc_shared_type_p): Remove external definition.
2063 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2065 * dojump.c: Remove #include of c-tree.h.
2067 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2069 (count_upc_threads_refs, is_multiple_of_upc_threads,
2070 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2071 upc_build_shared_var_addr, upc_build_sync_stmt,
2072 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2073 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2074 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2075 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2076 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2077 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2078 set_upc_consistency_mode, get_upc_consistency_mode,
2079 push_upc_consistency_mode, pop_upc_consistency_mode,
2081 Move external definitions to c-family/c-upc.h.
2082 (upc_blocksizeof_type, upc_localsizeof_type,
2083 upc_elemsizeof_type): Remove external definitions;
2084 these functions were moved to c-parser.c.
2086 * c-decl.c: Add #include of c-upc.h.
2088 * c-typeck.c: Add #include of c-upc.h.
2090 * c-convert.c: Add #include of c-upc.h.
2092 * ChangeLog.upc: Fix typo.
2094 * Makefile.in: Add references to c-family/c-upc.h, everywhere
2095 there is a reference to c-family/c-objc.h.
2096 Remove extraneous reference to upc-act.h.
2098 * c-parser.c: Add #include of c-upc.h.
2099 (upc_blocksizeof_expr, upc_blocksizeof_type,
2100 upc_elemsizeof_expr, upc_elemsizeof_type,
2101 upc_localsizeof_expr, upc_localsizeof_type):
2102 Move from upc/upc-act.c.
2104 * tree.c (build_upc_unshared_type): New.
2105 Move upc_get_unshared_type from upc/upc-act.c and rename
2106 to build_upc_unshared_type.
2107 c-family/c-common.c (pointer_int_sum): refer to renamed
2108 build_upc_unshared_type function.
2109 c-convert.c (convert): Ditto.
2110 convert.c (convert_to_pointer): Ditto.
2111 c-typeck.c (build_unary_op, build_modify_expr,
2112 really_start_incremental_init): Ditto.
2113 gimplify.c (create_tmp_var_raw): Ditto.
2114 tree.c (build1_stat): Ditto.
2115 tree.h (upc_get_unshared_type): Rename to
2116 build_upc_unshared_type.
2118 2011-05-06 Gary Funck <gary@intrepid.com>
2120 Merge trunk version 173471 into gupc branch.
2122 2011-05-05 Gary Funck <gary@intrepid.com>
2124 Make changes that bring the GUPC branch more closely in sync.
2125 with the GCC trunk. Revert any fixes that are not UPC-specific.
2126 Remove gratuitous re-formatting.
2128 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2129 This file should have been removed in a previous merge
2131 * ../configure.ac: Remove Cray Catamount/CNL support.
2132 * ../configure: Regenerate.
2133 * ../config.sub: Remove Cray Catamount/CNL support.
2134 * config.gcc: Remove Cray Catamount/CNL support.
2135 * ../maintainer-scripts/gcc_release: Revert to trunk.
2136 * c-family/c-common.h: Define parse_optimize_options. Its definition
2137 was missed in a previous merge with the trunk.
2138 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2140 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2141 in addition to ARRAY_TYPE.
2142 * c-typeck.c: Remove an extra newline character.
2143 * varasm.c: Revert a fix that improved an error message
2144 when TLS common data is unimplemented.
2145 * varasm.c: Revert a gcc_assert that had been added which
2146 checked for a null DECL_SIZE_UNIT field.
2147 * emultls.c: Revert to trunk. Remove possible fix.
2148 * Makefile.in: Revert extra blank line that is present
2149 in the trunk version.
2150 * Makefile.in: Revert a fix that handled long shell
2151 argument lists for plugin headers.
2152 * config/ia64/ia64.opt: Revert an option setting
2153 that increased the default TLS address range.
2154 * config/ia64/crtbegin.asm: Revert to trunk.
2155 Removes an extra newline character.
2156 * ChangeLog.upc: Spell check.
2158 2011-05-03 Gary Funck <gary@intrepid.com>
2160 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2161 (c_apply_type_quals_to_decl): Ditto.
2162 * c-family/c-common.h: Ditto.
2164 * c-decl.c (merge_decls): Ditto.
2165 * c-typeck.c (qualify_type, default_conversion,
2166 build_component_ref, build_unary_op,
2167 c_build_qualified_type): Ditto.
2168 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2170 2011-04-29 Gary Funck <gary@intrepid.com>
2172 * c-decl.c (finish_decl): Improve error diagnostics.
2173 (grokdeclarator): Ditto.
2175 * c-typeck.c (build_c_cast): Improve error diagnostics.
2176 (convert_for_assignment): Ditto.
2177 (build_binary_op): Ditto.
2179 * c-parser.c (c_parser_upc_forall_statement):
2180 Improve error diagnostics.
2182 * convert.c (convert_to_integer): Improve error diagnostics.
2184 2011-04-24 Gary Funck <gary@intrepid.com>
2186 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2187 occurred if there is an error in the barrier id
2188 expression. Map error_mark_node into NULL.
2190 2011-04-22 Gary Funck <gary@intrepid.com>
2192 Merge trunk version 172873 into gupc branch.
2194 2011-04-19 Gary Funck <gary@intrepid.com>
2196 Merge trunk version 172359 into gupc branch.
2198 2011-04-14 Gary Funck <gary@intrepid.com>
2200 * c-family/c.opt: Add UPC as a valid language for various
2201 switches where it is valid for "C", that were not updated
2202 in previous merges with trunk.
2204 2011-04-13 Gary Funck <gary@intrepid.com>
2206 * c-family/c.opt (fupc-pre-include): New option definition.
2207 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2208 -fno-upc-pre-include is asserted.
2210 2011-04-07 Gary Funck <gary@intrepid.com>
2212 Merge trunk version 172158 into gupc branch.
2213 to bring in the following fix.
2215 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
2218 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2219 if old and new states differ.
2221 2011-04-06 Gary Funck <gary@intrepid.com>
2223 Merge trunk version 171966 into gupc branch.
2225 2011-04-01 Gary Funck <gary@intrepid.com>
2227 * tree.h (tree_base): Move UPC flag bits into bit fields
2228 located just before spare bits. Decrement spare bits.
2229 Rename 'shared_flag' -> 'upc_shared_flag',
2230 'relaxed_flag' -> 'upc_relaxed_flag',
2231 'strict_flag' -> 'upc_strict_flag, and adjust macros
2232 that reference them accordingly.
2234 2011-04-01 Gary Funck <gary@intrepid.com>
2236 * c-decl.c (grokdeclarator): Fix formatting of
2237 code that sets UPC block size on scalars.
2239 2011-04-01 Gary Funck <gary@intrepid.com>
2241 * c-decl.c (grokdeclarator): Revert use of white space
2242 to match the trunk (to rationalize diffs).
2243 * c-typeck.c (convert_for_assignment): Ditto.
2244 * tree-ssa.c (useless_type_conversion_p): Ditto.
2246 2011-03-23 Gary Funck <gary@intrepid.com>
2248 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2249 the GCC 4.6 release branch.
2251 2011-03-21 Gary Funck <gary@intrepid.com>
2253 Merge trunk version 171202 into gupc branch.
2255 2011-03-20 Gary Funck <gary@intrepid.com>
2257 * varasm.c: Call error() directly with a format specifier,
2258 rather than using sprintf() to format the message.
2259 This should make it easier to internationalize UPC's error messages.
2261 2011-03-20 Gary Funck <gary@intrepid.com>
2263 * configure.ac: Fix the check for gnu ld when enabling
2264 UPC link script support.
2265 configure: Regenerate (also picks up changes from previous
2268 2011-03-20 Gary Funck <gary@intrepid.com>
2270 Move UPC start files, end files, and linker specs.
2271 into libupc. This reduces the impact on common GCC
2272 configuration files, and ensures that these UPC-specific
2273 components are only built when the UPC language dialect is selected.
2276 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2277 linker specs. Fix typo in -fupc-debug message.
2279 * config/upc-conf.h, config/darwin.h: Move defines for
2280 UPC-related section begins/ends into libupc/config/default/
2283 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2284 UPC-related linker compiler specifications,
2285 accessed via %:include().
2287 * configure.ac, configure: Remove logic related to building
2288 upc-crtbegin/end. Remove config. tests for numa and cpu
2289 affinity (previously used by the 'upc' driver); these
2290 settings are now propagated by target-specific compiler
2291 specs. built by libupc. Regenerate autoconf.
2293 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2294 linker compiler specifications, accessed via %:include().
2295 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2298 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2300 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2301 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2302 config/ia64/linux.h, config/mips/t-iris,
2303 config/mips/iris6.h: Revert to trunk version 167307.
2306 * configure, configure.ac, config.host, Makefile.in:
2307 Revert to trunk version 167307.
2309 2011-02-23 Gary Funck <gary@intrepid.com>
2311 * c-decl.c (undeclared_variable): fix typo. Inadvertently
2312 removed negation on following 'if'.
2314 2011-02-22 Gary Funck <gary@intrepid.com>
2316 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2317 to check for the usage of certain deprecated UPC keywords.
2318 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2319 * c-tree.h (undeclared_variable): Define prototype.
2321 2011-02-12 Gary Funck <gary@intrepid.com>
2323 * c-typeck.c: (build_c_cast, convert_for_assignment)
2324 Diagnose an attempt to convert from an integer to
2325 a pointer-to-shared as an error. Also, fix various
2326 error messages so that they use the preferred term
2327 pointer-to-shared instead of "shared pointer".
2329 2011-02-07 Gary Funck <gary@intrepid.com>
2331 * c-typeck.c: (convert_for_assignment)
2332 Fix typo. in error message.
2334 2011-01-23 Gary Funck <gary@intrepid.com>
2336 * c-typeck.c: (c_build_qualified_type)
2337 derive UPC block size by calling upc_get_block_size(),
2338 to ensure that the element type of an array of an array
2339 is derived correctly.
2341 2010-12-29 Gary Funck <gary@intrepid.com>
2343 Merge trunk version 168314 into gupc branch.
2345 2010-12-15 Gary Funck <gary@intrepid.com>
2347 Merge trunk version 167307 into gupc branch.
2349 2010-10-19 Gary Funck <gary@intrepid.com>
2351 * c-typeck.c: Fix typo in previous fix
2352 which led to a mis-compare for equal block sizes.
2354 2010-10-18 Gary Funck <gary@intrepid.com>
2356 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2357 diagnosed as an error
2359 The conversion from any type (shared or not) to
2360 a shared type is likely either meaningless or an error. This update
2361 makes any conversion to a shared type, an error.
2363 2010-10-18 Gary Funck <gary@intrepid.com>
2365 * c-typeck.c: Fix bug: passing int to shared pointer arg.
2366 generates spurious warning
2368 Add a #define procedure that does the same thing as
2369 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
2370 this procedure to diagnose passing an integer value to a
2371 pointer-to-shared as an error.
2373 2010-10-18 Gary Funck <gary@intrepid.com>
2375 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2376 matching routine declaration.
2378 When checking for type compatibility, shared qualified types must
2379 have the same block factor. This check was missing from
2380 comptypes_internal(). This update adds the check for blocking
2383 2010-10-17 Gary Funck <gary@intrepid.com>
2385 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2388 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2390 2010-10-17 Gary Funck <gary@intrepid.com>
2392 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2393 45869 - [4.5/4.6 Regression] type mismatch in shift expression
2394 produces ice with -O3 and -m32.
2396 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2398 2010-10-17 Gary Funck <gary@intrepid.com>
2400 * c-common.c: Diagnose the application of the various "*sizeof"
2401 operations on generic pointer-to-shared as a compilation error.
2403 2010-10-17 Gary Funck <gary@intrepid.com>
2405 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2406 message regarding a function parameter being declared with a shared
2409 The parameter's 'name' value is not defined at this point, and
2410 cannot be used in the error message. This update removes the
2411 reference to 'name', and eliminates the segfault.
2413 2010-10-16 Gary Funck <gary@intrepid.com>
2415 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2417 The gcc/Makefile.in rules for install-plugin had to be re-written to
2418 break up a long list of header files that exceeded the command line
2419 limitation imposed by Irix.
2421 Access functions for TFmode types had to be implemented.
2422 Apparently, this is the mode used for the SGI/MIPS port to represent
2425 2010-10-14 Gary Funck <gary@intrepid.com>
2427 * c-decl.c: Fix bug: Multiple equal blocking factors specified
2428 via typedef chain should not be diagnosed as an error.
2430 If the block size that is given by the typedef is equal to the block
2431 size given explicitly in the variable declaration, then do not
2432 complain. The easiest way to make this check was to create a
2433 temporary type that is a clone of the element type and then set its
2434 block size using the given layout qualifier. Then compare the block
2435 size of the temporary (the declaration) to the block size specified
2436 in the typedef. This complexity is needed, because the '[*]' block
2437 size needs to be calculated, and the '[]' needs to be mapped into a
2440 2010-10-10 Gary Funck <gary@intrepid.com>
2442 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2445 The compiler properly detected the presence of two or more layout
2446 qualifiers as an error, but then hit an assertion check, because the
2447 code that followed the error expected to see a qualifier and not a
2448 layout specifier. The fix is simple: just return immediately after
2449 detecting the error.
2451 2010-10-10 Gary Funck <gary@intrepid.com>
2453 * c-decl.c: Improve error diagnostics for various cases of UPC
2454 shared array type declarations.
2456 Add the check for this error: "In the dynamic translation
2457 environment, THREADS may not appear in declarations of shared arrays
2458 with indefinite block size". Also, fix up a few of the other
2459 related error diagnostics.
2461 2010-10-09 Gary Funck <gary@intrepid.com>
2463 * c-common.c: Fix bug: segfault on incomplete array definition.
2465 This turned out to be a bit complicated. The logic in
2466 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2467 the THREADS identifier in the case where the blocking factor has
2468 been set to indefinite ([]). This can happen when indefinite array
2469 declarations are processed for shared arrays. At that time, the
2470 file scope has been closed and THREADS is no longer in scope. Some
2471 more work is needed on upc_lang_layout_decl(). It has some
2472 duplication, and notably duplicates the two branches of the if
2473 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2474 caller of this routine (layout_decl()).
2476 The method of forcing a layout qualifier of [] in the indefinite
2477 declaration handler is odd a well. The code that just does the
2478 setting of the block factor, needs to moved into its own routine
2479 that doesn't depend upon a declspec for '[]' to be passed in, just
2480 in order to set the blocking factor to some value (in this case, 0).
2481 Also, the logic for how that shared type is constructed is strange.
2482 First the type with 0 blocking factor is set. Then the shared
2483 qualifier is removed from the type, and then added back later. The
2484 intermediate type has a blocking factor set, but it has no shared
2485 qualifier. Fixing this will require some thought. It is tempting
2486 just to make indefinite shared arrays an error, rather than forcing
2487 the dimension to be '1'.
2489 This likely fixes a serious error in the previous update to
2490 upc_lang_layout_decl(), where it didn't have the logic to set
2491 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
2492 the previous update would fail on many tests.
2494 2010-10-09 Gary Funck <gary@intrepid.com>
2496 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2497 (decl) is null, which can happen if some layout error occurred
2500 2010-10-09 Gary Funck <gary@intrepid.com>
2502 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2503 "variable-sized" when compiled in dynamic threads.
2505 This long-standing bug is easily fixed. Just check
2506 for the situation that the non-constant sized type is shared and
2507 that it does not have a dimension that references a multiple of
2508 threads. If this criteria is met, then issue a meaningful
2511 2010-10-01 Gary Funck <gary@intrepid.com>
2513 * configure, configure.ac: Update manual page, and bug reporting
2516 Update "man" page to reflect debugging switches. Also, some general
2517 clean up. Change the bug reporting URL to point to gccupc.org.
2519 2010-09-27 Gary Funck <gary@intrepid.com>
2521 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2522 the UPC forall depth count variable is not found.
2524 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2525 The compiler will generate code that references this variable in
2526 order to implement nested upc_forall semantics. If there is a
2527 compiler build or install problem, this variable may not be found.
2528 In this case, terminate with an internal_error().
2530 2010-09-26 Gary Funck <gary@intrepid.com>
2532 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2533 mis-diagnosed as syntax error.
2535 Fix a failure exhibited by the Berkeley test case,
2536 bug873a.upc, which has the code:
2538 upc_forall (;;;d) {...} The compiler did not properly handle
2539 the empty "condition" clause, and did not recover well when it was
2540 determined that the use of a double value, "d" above, was neither a
2541 pointer-to-shared nor an integer expression. The update implements a
2542 fix for both issues.
2544 See also: gcc/c-parser.c gcc/upc/upc-act.c
2546 2010-09-23 Gary Funck <gary@intrepid.com>
2548 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2549 incorporated into the referencing type.
2551 This was semi-fixed a few times before. This update fixes a few
2552 more places where the layout qualifier wasn't being propagated
2553 through typedef's properly. What made this a bit tricky is shown in
2554 the example cited in the bug report:
2556 typedef shared [5] int A_t; A_t A[5*THREADS];
2558 In the typedef, the blocksize is being applied to a shared *scalar*,
2559 and the code was applying the blocksize only to arrays. This update
2560 handles shared scalars correctly.
2562 2010-09-22 Gary Funck <gary@intrepid.com>
2564 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2565 upc_forall() semantics are not implemented
2567 The checkforall test in the Berkeley harness test suite indicated
2568 that GCC/UPC was not properly implementing nested upc_forall
2569 semantics. Nested upc_forall statements (both statically or
2570 dynamically nested) must implement their affinity clause as if it
2571 were "continue"; thus all steps in the loop must execute without
2572 regard for affinity. To implement these semantics a global depth
2573 counter, __upc_forall_depth, is maintained by the generated code
2574 that implements upc_forall.
2576 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2577 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2578 libupc/include/upc.h libupc/smp/upc_main.c
2580 2010-09-19 Gary Funck <gary@intrepid.com>
2582 * c-decl.c: c-decl.c: zero out the layout specifier, after
2583 processing an array type.
2585 Fix the previous fix, that moved the setting of the type's layout
2586 qualifier to the outside of the array type processing loop. What is
2587 missing from the fix is that the layout_qualifier variable needs to
2588 be cleared after setting the type's blocksize.
2590 2010-09-19 Gary Funck <gary@intrepid.com>
2592 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2593 given blocksize is greater than UPC_MAX_BLOCKSIZE.
2595 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2596 the actual maximum block size. Therefore, the message was correct,
2597 but the underlying value that was being checked was wrong. Change
2598 the values so that they agree with the actual implementation-defined
2601 2010-09-11 Gary Funck <gary@intrepid.com>
2603 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2604 multi-dimensional shared array with dynamic threads.
2606 This declaration caused an internal compiler error when compiled
2607 with dynamic threads:
2608 shared [*] int A[THREADS][16]; The bug was discovered when
2609 compiling the RTED_UPC test suite.
2611 The fix is to process layout qualifiers after the entire array type
2612 has been built. Otherwise, we try to calculate the blocksize on a
2613 shared array type that has not had its "size depends upon the value
2614 of THREADS" flag set.
2616 Also, added a test case.
2618 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2620 2010-07-11 Gary Funck <gary@intrepid.com>
2622 Fix a bug where a statement in c_build_qualified_type()
2623 in the trunk had been inadvertently deleted.
2624 This bug showed up in the IA64 port, because jmpbuf's
2625 on that architecture must be 16 byte aligned, and they were not.
2626 c-typeck.c (c_build_qualified_type): Revive the deleted line.
2628 2010-07-08 Gary Funck <gary@intrepid.com>
2630 Make changes so that other language compilers
2631 will build and bootstrap.
2632 * c-family/c-common.c (compiling_upc, flag_upc,
2633 flag_upc_instrument, flag_upc_instrument_functions,
2634 use_upc_dwarf2_extensions): Move to stub-upc.c and
2636 * c-family/c-common.h (use_upc_dwarf2_extensions,
2637 compiling_upc): Add extern definitions - needed
2638 to compile/build other language front ends.
2639 * c-family/c.opt: Fix the spelling of ObjC.
2640 It had been incorrectly spelled as Objc.
2641 * c-family/c.opt: Add UPC for the various switches
2642 that are valid for both C and ObjC.
2643 * c-fmaily/c-opts.c: Add CL_UPC to the list of
2644 supported options switches when compiling assembly
2646 * lto/lto-lang.c (use_upc_dwarf2_extensions,
2647 flag_upc_instrument, flag_upc_instrument_functions):
2648 Remove these definitions. They have been moved
2649 to c-family/stub-upc.c.
2650 * upc/ChangeLog: Move relevant entries
2652 * c-family/stub-upc.c (compiling_upc, flag_upc,
2653 flag_upc_instrument, flag_upc_instrument_functions,
2654 use_upc_dwarf2_extensions): Moved from c-common.c
2655 * upc/upc-lang.c (compiling_upc, flag_upc,
2656 flag_upc_instrument, flag_upc_instrument_functions,
2657 use_upc_dwarf2_extensions): Moved from c-common.c
2658 * objc/objc-act.c (objc_gimplify_expr): Add additional
2659 parameters to c_gimplify_expr() call, that are used
2660 by upc's tree rewrites.
2661 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2662 * gcc/cp/lex.c (init_reswords): If not compiling
2663 UPC, then mask off the UPC keywords.
2664 * cp/Make-lang.in (C_STUB_OBJS): Use this
2665 make macro to link with c-family/stub-objc.o
2666 and c-family/stub-upc.o.
2667 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2668 * java/Make-lang.in (C_STUB_OBJS): Likewise.
2669 * objc/Make-lang.in: Link with c-family/stub-upc.o
2670 to avoid undefined references.
2671 c-parser.c: Fix line indentation.
2672 * libcpp/include/cpplib.h: Remove CL_UPC from
2673 the list of language kinds accepted by the
2674 C preprocessor. This is not necessary because
2675 UPC is a derivative of C99, and does not need
2676 a different language kind.
2677 * c-fmaily/c-opts.c (c_common_handle_option):
2678 Call set_std_c99() when processing the
2679 "--lang upc" switch, instead of setting the
2680 language kind to CL_UPC.
2681 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2683 2010-07-03 Gary Funck <gary@intrepid.com>
2685 Merge trunk version 161517 into gupc branch.
2686 * gcc/stub-upc.c: Move to gcc/c-family/.
2687 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2688 Add 'unused' attributes to avoid "set, but
2689 not referenced" warnings.
2690 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2693 2010-03-01 Gary Funck <gary@intrepid.com>
2695 Create gupc branch from trunk version 157149.