1 2013-01-21 Gary Funck <gary@intrepid.com>
3 Merge trunk version 195330 into gupc branch.
5 2013-01-14 Gary Funck <gary@intrepid.com>
7 Merge trunk version 195164 into gupc branch.
9 2013-01-07 Gary Funck <gary@intrepid.com>
11 Merge trunk version 194962 into gupc branch.
13 2012-12-24 Gary Funck <gary@intrepid.com>
15 Merge trunk version 194709 into gupc branch.
17 2012-12-17 Gary Funck <gary@intrepid.com>
19 Merge trunk version 194552 into gupc branch.
21 2012-12-10 Gary Funck <gary@intrepid.com>
23 Merge trunk version 194351 into gupc branch.
25 2012-12-03 Gary Funck <gary@intrepid.com>
27 Merge trunk version 194076 into gupc branch.
29 2012-11-30 Gary Funck <gary@intrepid.com>
31 Released GUPC 4.8.0.2 based on version 193446.
32 Date of release: 2012-11-12.
33 * DEV-PHASE: Bump release identifier to 4.8.0-3.
34 * DATESTAMP: Bump date stamp.
36 2012-11-26 Gary Funck <gary@intrepid.com>
38 Merge trunk version 193807 into gupc branch.
40 2012-11-20 Gary Funck <gary@intrepid.com>
42 Merge trunk version 193672 into gupc branch.
44 2012-11-19 Gary Funck <gary@intrepid.com>
46 Merge trunk version 193617 into gupc branch.
48 2012-11-15 Gary Funck <gary@intrepid.com>
50 Merge trunk version 193426 into gupc branch.
52 2012-11-12 Gary Funck <gary@intrepid.com>
54 Released GUPC 4.8.0.1 based on version 192948.
55 Date of release: 2012-10-29.
56 * DEV-PHASE: Bump release identifier to 4.8.0-2.
57 * DATESTAMP: Bump date stamp.
59 2012-11-05 Gary Funck <gary@intrepid.com>
61 Merge trunk version 193152 into gupc branch.
63 2012-10-29 Gary Funck <gary@intrepid.com>
65 Merge trunk version 192909 into gupc branch.
67 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
69 Remove unused --upc-pthreads-per-process compile switch.
70 * c-family/c.opt: Remove --upc-pthreads-per-process switch
71 that compiler/runtime do not use.
72 * c-family/c-opts.c (c_common_handle_option): Remove support for
73 --upc-pthreads-per-process switch.
74 * c-family/c-common.c: Ditto.
75 * c-family/c-common.h: Ditto.
77 2012-10-27 Gary Funck <gary@intrepid.com>
79 * defaults.h: fix typos and formatting in UPC-related entries.
81 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
83 Place shared initialization code into the .text
84 section instead of a separate .upc_init section.
85 * defaults.h (UPC_INIT_SECTION_NAME): Delete.
86 (UPC_INIT_BEGIN_NAME): Delete.
87 (UPC_INIT_END_NAME): Delete.
88 * doc/tm.texi.in: Ditto.
91 2012-10-22 Gary Funck <gary@intrepid.com>
93 Merge trunk version 192673 into gupc branch.
95 2012-10-15 Gary Funck <gary@intrepid.com>
97 Merge trunk version 192449 into gupc branch.
99 2012-10-08 Gary Funck <gary@intrepid.com>
101 Merge trunk version 192198 into gupc branch.
103 2012-10-01 Gary Funck <gary@intrepid.com>
105 Merge trunk version 191931 into gupc branch.
107 2012-09-26 Gary Funck <gary@intrepid.com>
109 Implement support for various UPC version 1.3 specification
110 additions and changes. Deprecate support for upc_local_alloc.
111 Add support for upc_tick (wall-clock timer) library.
112 Add support for collective de-allocation functions:
113 upc_all_free and upc_all_lock_free.
114 Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
115 libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
117 2012-09-24 Gary Funck <gary@intrepid.com>
119 Merge trunk version 191658 into gupc branch.
121 2012-09-17 Gary Funck <gary@intrepid.com>
123 Merge trunk version 191376 into gupc branch.
125 2012-09-10 Gary Funck <gary@intrepid.com>
127 Merge trunk version 191141 into gupc branch.
129 2012-08-27 Gary Funck <gary@intrepid.com>
131 Merge trunk version 190707 into gupc branch.
132 * tree.h (struct tree_base): Adjust various
133 UPC tree and type flags to refer to the
134 newly introduced u.bits field.
136 2012-08-20 Gary Funck <gary@intrepid.com>
138 Merge trunk version 190524 into gupc branch.
139 Incorporates a fix in genoutput.c (to properly use
140 CONST_CAST) that led to build failures with
141 older versions of g++.
143 2012-08-16 Gary Funck <gary@intrepid.com>
145 Merge trunk version 190437 into gupc branch.
146 Incorporates a fix for a build failure on the PPC
147 due to passing incorrect switches to the assembler.
148 Also, first merged trunk revision that compiles GCC
149 with the C++ compiler in the first stage.
151 2012-08-13 Gary Funck <gary@intrepid.com>
153 Merge trunk version 190336 into gupc branch.
155 2012-08-09 Gary Funck <gary@intrepid.com>
157 * c-family/c-common.c (c_fully_fold_internal): Do not fold
158 offsetof-like expressions when they are applied to UPC
161 2012-08-06 Gary Funck <gary@intrepid.com>
163 Merge trunk version 190173 into gupc branch.
165 2012-08-01 Gary Funck <gary@intrepid.com>
167 Merge trunk version 190063 into gupc branch.
168 Incorporates fix for build failure on IA64.
170 2012-07-30 Gary Funck <gary@intrepid.com>
172 Merge trunk version 189954 into gupc branch.
174 2012-07-27 Gary Funck <gary@intrepid.com>
176 Merge trunk version 189856 into gupc branch.
177 Incorporates fix for bootstrap with a sub-set of language
178 specific source directories present.
179 * optabs.c: Revert to trunk. Rather than defining opcodes
180 as a way of defining get/put runtime library function names,
181 generate them directly in gcc/upc/upc-genericize.c.
183 * genopinit.c: Ditto.
185 2012-07-23 Gary Funck <gary@intrepid.com>
187 Merge trunk version 189777 into gupc branch.
189 2012-07-16 Gary Funck <gary@intrepid.com>
191 Merge trunk version 189545 into gupc branch.
193 2012-07-12 Gary Funck <gary@intrepid.com>
195 Merge trunk version 189366 into gupc branch.
197 2012-07-05 Gary Funck <gary@intrepid.com>
199 Merge trunk version 189274 into gupc branch.
200 Incorporates graphite build infrastructure changes.
202 2012-07-04 Gary Funck <gary@intrepid.com>
204 Merge trunk version 189080 into gupc branch.
205 * Makefile.in: Adjust for move of C front-end files.
206 * c/Make-lang.in: Ditto.
208 2012-07-03 Gary Funck <gary@intrepid.com>
210 Merge trunk version 189078 into gupc branch.
212 2012-06-25 Gary Funck <gary@intrepid.com>
214 Merge trunk version 188931 into gupc branch.
216 2012-06-18 Gary Funck <gary@intrepid.com>
218 Merge trunk version 188721 into gupc branch.
220 2012-06-11 Gary Funck <gary@intrepid.com>
222 Merge trunk version 188380 into gupc branch.
224 2012-06-04 Gary Funck <gary@intrepid.com>
226 Merge trunk version 188168 into gupc branch.
228 2012-05-29 Gary Funck <gary@intrepid.com>
230 Merge trunk version 187927 into gupc branch.
232 2012-05-18 Gary Funck <gary@intrepid.com>
234 Merge trunk version 187666 into gupc branch.
235 Incorporates fix for ICE in tree vectorization pass
236 when processing strided loads.
238 2012-05-17 Gary Funck <gary@intrepid.com>
240 Merge trunk version 187578 into gupc branch.
242 2012-05-09 Gary Funck <gary@intrepid.com>
244 Merge trunk version 187347 into gupc branch.
245 Incorporates fix for segfault in tree vectorization pass.
247 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
249 * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
250 Appropriate libraries and include files are added on the
251 command line to make it possible to compile with the driver
254 2012-04-29 Nenad Vukicevic <nenad@intrepid.com>
256 * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
257 PPC ABI. In the UPC 'struct' pointer-to-shared representation,
258 a function returns a pointer-to-shared in memory instead
260 (rs6000_pass_by_reference): Ditto.
262 2012-04-28 Gary Funck <gary@intrepid.com>
264 * c-decl.c (grokdeclarator): Set 'type' to error node
265 after detecting "shared auto variable" error to avoid
266 downstream complications.
267 * upc-act.c: Fix a couple of spelling errors in comments.
269 2012-04-26 Gary Funck <gary@intrepid.com>
271 * c-family/c-pragma.c (handle_pragma_upc):
272 Fix typo in warning message.
274 2012-04-17 Gary Funck <gary@intrepid.com>
276 Merge trunk version 186486 into gupc branch.
278 2012-04-17 Gary Funck <gary@intrepid.com>
280 * c-family/c-pragma.c (disable_pupc_mode): Return the previous
281 value of the pupc mode. Fixes a compile-time warning.
282 * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
283 disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
284 Improve source formatting.
286 2012-04-09 Gary Funck <gary@intrepid.com>
288 Merge trunk version 186243 into gupc branch.
289 Incorporates a powerpc 'ffi' fix.
291 2012-03-16 Gary Funck <gary@intrepid.com>
293 Merge trunk version 185454 into gupc branch.
294 Incorporates a libgcc fix for builds on Darwin.
296 2012-03-13 Gary Funck <gary@intrepid.com>
298 Merge trunk version 185278 into gupc branch.
299 * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
300 call build_pointer_type() to apply UPC-specific qualifiers.
301 * top-level/configure.ac: factor the checking for posix hostst
302 out of the libgomp section so that it can also be used by libgupc.
303 * top-level/configure: Re-generate.
304 * DEV-PHASE: bump to 4.8.0-1.
306 2012-03-12 Gary Funck <gary@intrepid.com>
308 * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
309 the mode for a pointer for upc-pointer-to-shared types.
311 2012-03-04 Gary Funck <gary@intrepid.com>
313 Merge trunk version 184900 into gupc branch.
315 2012-02-17 Gary Funck <gary@intrepid.com>
317 Released GUPC 4.7.0.2 based on version 183992.
318 * DEV-PHASE: Bump release identifier to 4.7.0-3.
319 * DATESTAMP: Bump date stamp.
321 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
323 * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
324 code generation (same as #pragma pupc off).
325 (set_pupc_mode): New. Set/restore profiling mode.
326 * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
327 (set_pupc_mode): New. Prototype.
328 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
329 profiling code for shared variables initialization routines.
331 2012-01-31 Gary Funck <gary@intrepid.com>
333 Merge trunk version 183751 into gupc branch.
334 Incorporates fix for bootstrap failure on openSUSE 12.1.
336 2012-01-10 Gary Funck <gary@intrepid.com>
338 Merge trunk version 183072 into gupc branch.
339 Incorporates libcpp __BASE_FILE__ fix.
341 2011-12-20 Nenad Vukicevic <nenad@intrepid.com>
343 * top-level/Makefile.def (flags_to_pass): Added GUPC
344 defines. Fixes the make error when upc is not specified as one
345 of the languages to build.
346 * top-level/Makefile.in: Re-generate.
348 2011-11-22 Gary Funck <gary@intrepid.com>
350 * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
351 * dwarf2out.c (gen_compile_unit_die): Check for
352 the "GNU UPC" language string in lieu of "GCC UPC".
353 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
355 2011-11-18 Gary Funck <gary@intrepid.com>
357 Merge trunk version 181552 into gupc branch.
358 Incorporates libgcc/libunwind fix for IA64.
360 2011-11-19 Gary Funck <gary@intrepid.com>
362 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
363 Add check for UPC when defining the language type value
364 in a traceback entry.
366 2011-11-18 Gary Funck <gary@intrepid.com>
368 Merge trunk version 181493 into gupc branch.
369 Incorporates final fix for PR target/49992.
371 2011-11-09 Nenad Vukicevic <nenad@intrepid.com>
373 * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
374 change that converted relative include paths into absolute
375 ones, as it does not work with older version of make (3.80).
377 2011-10-27 Nenad Vukicevic <nenad@intrepid.com>
379 Apply patch for Darwin build - PR49992.
380 * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
381 * gcc/configure.ac: Ditto.
382 * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
383 * gcc/ada/gcc-interface/Makefile.in: Ditto.
384 * top-level/configure: Re-generate.
385 * gcc/configure: Re-genrate.
387 2011-10-26 Gary Funck <gary@intrepid.com>
389 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
390 "libupc" to "libgupc".
391 * top-level/configure.ac: Implement support for cross-builds, and
392 adjust for rename of libupc to libgupc.
393 * top-level/Makefile.tpl: Ditto.
394 * top-level/Makefile.def: Ditto.
395 * top-level/configure: Re-generate.
396 * top-level/Makefile.in: Re-generate.
397 * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
398 * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
399 * doc/tm.texi: Re-generate.
400 * tree-pretty-print.c (dump_block_node): Delete unused variable.
401 * gcc.c: Adjust for rename of libupc to libgupc.
402 * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
403 Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
404 Change "xupc" to "xgupc".
405 * configure.ac: Change "GCC UPC" to "GNU UPC".
406 * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
407 so that they are absolute paths. This is needed because
408 the upc-crtstuff builds are in the libgupc library build
409 directories which are not at the same level as libgcc.
410 * config/darwin.h: Adjust for rename of libupc to libgupc.
412 2011-10-20 Gary Funck <gary@intrepid.com>
414 Merge trunk version 180276 into gupc branch.
415 Incorporates fix for PR bootstrap/50709.
417 2011-10-20 Gary Funck <gary@intrepid.com>
419 Merge trunk version 180246 into gupc branch.
421 2011-10-19 Gary Funck <gary@intrepid.com>
423 Merge trunk version 180233 into gupc branch.
424 Incorporates fix for PR debug/49310 (var tracking).
426 2011-10-11 Nenad Vukicevic <nenad@intrepid.com>
428 * testsuite/lib/upc-dg.exp: Limit number of torture runs to
429 only four (O0 static/dynamic, O3 static/dynamic).
430 Detect -fupc-threads-0 as an option for dynamic threads
433 2011-10-10 Gary Funck <gary@intrepid.com>
435 * tree.c (check_qualified_type, check_aligned_type):
436 Call tree_int_cst_equal() to compare UPC blocking factors
437 if the corresponding tree pointers are not equal.
438 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
440 2011-10-07 Nenad Vukicevic <nenad@intrepid.com>
442 Add configuration checks for struct/packed builds so we can
443 use upc_struct_pts/upc_packed_pts selectors in the testsuite.
444 * testsuite/lib/target-supports.exp
445 (check_effective_target_upc_struct_pts): New.
446 (check_effective_target_upc_packed_pts): New.
448 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
450 Add to FLAGS the flags needed to disable inlining of
451 UPC run-time access routines.
452 * testsuite/lib/target-supports.exp
453 (add_options_for_upc_library_calls): New.
455 2011-09-15 Gary Funck <gary@intrepid.com>
457 Fix ICE involving shared bit field accesses.
458 * tree.c (build3_stat): Propagate TEEE_SHARED()
459 and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
461 2011-09-13 Gary Funck <gary@intrepid.com>
463 Merge trunk version 178795 into gupc branch.
464 Incorporates fix to PR bootstrap/50010 for x86-32.
466 2011-09-08 Gary Funck <gary@intrepid.com>
468 Merge trunk version 178557 into gupc branch.
470 2011-09-07 Gary Funck <gary@intrepid.com>
472 Ensure that UPC pointer-to-shared type alignment is
473 propagated to the final type. Revert to long-standing
474 alignment policy: twice the size of a "C" pointer.
475 * tree.c (build_pointer_type): Propagate the alignment
476 of the UPC pointer-to-shared representation type
477 into the newly built pointer type.
479 2011-08-30 Gary Funck <gary@intrepid.com>
481 * tree.h (check_qualified_type): Change 'const_tree'
482 argument types back to 'tree' to avoid complaints
483 of assignment drops qualifiers for invocations of the
484 newly implemented TYPE_BLOCK_FACTOR() macro, which
485 invokes hash functions with 'tree' pointer values that
486 are not const qualified.
487 * tree.c (check_qualified_type, check_aligned_type): Ditto.
488 * c-typeck.c (comptypes_internal): Ditto.
490 2011-08-29 Gary Funck <gary@intrepid.com>
492 Fixes for regressions noted running "make check"
494 * fold-const.c (fold_unary_loc): Execute UPC-specific
495 checks for a cast-of-a-cast, only if one of the
496 operands is a UPC pointer-to-shared value.
497 * opts.c (print_specific_help): Fix a comparison
498 in an assert that checks that there are enough
499 bits reserved for the number of languages defined
502 2011-08-29 Gary Funck <gary@intrepid.com>
504 Implement a hash table to record UPC block factors.
505 * c-family/stub-upc.c (upc_block_factor_insert,
506 upc_block_factor_lookup): New dummy stub procedures.
507 * c-family/c-common.c (c_sizeof_or_alignof_type):
508 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
509 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
510 to copy (hashed) UPC blocking factor.
511 (set_type_quals): Likewise.
512 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
513 TYPE_HAS_THREADS_FACTOR().
514 (type_common.block_factor): Delete.
515 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
516 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
517 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
518 UPC blocking factors greater than one.
519 * dwarf2out.c (modified_type_die): Re-implement
520 logic that records UPC blocking factor in the generated
521 DWARF2 debugging information.
522 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
523 TYPE_HAS_THREADS_FACTOR().
524 * c-decl.c (finish_decl, grokdeclarator):
525 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
526 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
527 used by UPC, and print UPC-specific information.
529 2011-08-28 Gary Funck <gary@intrepid.com>
531 Re-work the type machinery to fully support and to unify support
532 for the UPC layout qualifier (blocking factor).
533 * c-family/stub-upc.c (upc_set_block_factor): Delete.
534 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
535 and update prototype.
536 * c-family/c-common.c (complete_array_type): call newly
537 defined c_build_qualified_type_1() instead of
538 upc_set_block_factor().
539 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
540 upc_apply_layout_qualifier() and update prototype.
541 (upc_set_block_factor): Delete prototype.
542 * c-family/c-common.h (c_build_qualified_type): redefine
543 as a pre-processor macro that invokes c_build_qualified_type_1()
544 with a null UPC layout qualifier.
545 (c_build_qualified_type_1): New. Add layout qualifier argument
546 to old c_build_qualified_type() prototype.
547 * tree.c (set_type_quals, check_qualified_type):
548 Add layout qualifier as argument.
549 (check_aligned_type): Add check for UPC block factor equality.
550 (get_qualified_type_1): Rename from get_qualified_type() and
551 add layout qualifier as argument.
552 (build_qualified_type_1): Rename from build_qualified_type() and
553 add layout qualifier as argument.
554 * tree.h (check_qualified_type): Add layout qualifier as argument
556 (get_qualified_type): Re-define as a as a pre-processor macro
557 that invokes get_qualified_type_1() with a null
558 UPC layout qualifier.
559 (get_qualified_type_1): Rename from get_qualified_type() and
560 add layout qualifier as argument.
561 * cp/tree.c (c_build_qualified_type_1): Rename from
562 c_build_qualified_type() and add (unused) layout qualifier
564 * c-decl.c (finish_decl): re-format long error messages.
565 (grokdeclarator): Re-work the logic so that it calls
566 upc_grok_layout_qualifier() to handle the UPC layout
567 qualifier, if present.
568 * c-typeck.c (qualify_type, common_pointer_type,
569 build_component_ref): Re-work the logic so that it calls
570 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
572 (c_build_qualified_type_1): Rename from c_build_qualified_type()
573 and add layout qualifier argument.
574 * print_tree.c (print_node): Re-format a long line.
576 2011-08-26 Gary Funck <gary@intrepid.com>
578 Merge trunk version 177949 into gupc branch.
579 * c-family/c-common.h (enum rid): Bump the number of type modifiers
581 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
582 to add new rliterals column value.
584 2011-08-26 Gary Funck <gary@intrepid.com>
586 * convert.c (convert_to_integer): Fix the check for the
587 difference between two UPC pointers-to-shared values.
589 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
591 * configure.ac: Fix the name for --with-upc-pts-packed-bits
592 option. Support --with-upc-packed-bits as deprecated. Fix the code to
593 correctly check packed bits.
594 * configure: Re-generate.
596 2011-08-16 Gary Funck <gary@intrepid.com>
598 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
599 the barrier id expression is not an integer expression.
601 2011-08-12 Gary Funck <gary@intrepid.com>
603 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
605 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
606 Set mode of UPC pointer-to-shared rep. to an
607 integral mode of size at least as large as the
608 size of the representation's struct type.
610 2011-08-12 Gary Funck <gary@intrepid.com>
612 Rework/simplify the UPC genericize pass.
613 * c-family/stub-upc.c (upc_apply_layout_qualifier,
614 upc_build_pointer_type): New.
615 (upc_set_block_factor): Adjust to new calling sequence.
616 (upc_build_shared_var_addr): Delete.
617 * c-family/c-common.c (complete_array_type): Adjust call
618 to upc_set_block_factor().
619 * c-family/c-upc.h (upc_apply_layout_qualifier,
620 upc_build_pointer_type): New.
621 (upc_build_shared_var_addr): Delete.
622 (upc_set_block_factor): Adjust to new calling sequence.
623 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
624 * c-decl.c (grokdeclarator): Call newly defined
625 upc_apply_layout_qualifier() instead of upc_set_block_factor().
626 * c-decl.c (grokdeclarator): Split long UPC-related error
627 messages into two lines.
628 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
629 directly. Revert that change to trunk. (upc_genericize() will
630 handle lowering the expressions that take the address of a
632 * config/i386/i386.c (ix86_promote_function_mode): For UPC
633 pointers-to-shared, return the type mode of the UPC pointer-to-shared
636 2011-08-10 Gary Funck <gary@intrepid.com>
638 Implement additional fixes for recent merge with trunk.
639 * explow.c (promote_mode): Do not attempt to promote
640 the mode for UPC pointer-to-shared types.
641 * config/i386/i386.c (function_value_64): Ditto.
643 2011-08-07 Gary Funck <gary@intrepid.com>
645 Merge trunk version 177548 into gupc branch.
646 * config/i386/i386.c (ix86_promote_function_mode):
647 Do not promote UPC pointers-to-shared to Pmode.
648 * c-family/c-ommon.c (pointer_int_sum):
649 Also check the pointer operand, rather than just
650 its type, when making the decision to derive
651 the equivalent unshared type.
652 * tree.c (build2_stat): If the type of the result
653 passed in as an argument is a UPC shared type,
654 derive the unshared equivalent when calculating
655 the result type of the node.
657 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
659 * config/darwin.c: Disable var_tracking option
660 on -O0 as it is supposed to run only when optimization
661 is applied. See GCC bug 49743.
663 2011-07-06 Gary Funck <gary@intrepid.com>
665 Re-implement the pass that lowers trees generated by
666 the UPC front-end into GENERIC. Previously this was
667 done within the gimplification framework, but this
668 required that gimplification be run before inlining
669 and various other passes, which did not fit in well
670 with the current design of the middle-end passes.
671 Now, the lowering is done by a newly defined language
672 specific genericize hook. With this change, we are
673 are able to undo some extensions made to the gimplify
674 logic, and thus can revert several files to trunk.
676 * c-decl.c: Add a check for UPC deprecated names which
677 may appear as undefined function names.
678 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
679 LTI_upc_getaddr): Remove definitions of unused UPC
680 library function names. These were defined back when
681 the libfunc interface was used to call these routines.
682 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
683 in UPC lowering (genericize) pass.
684 * langhooks.h (gimplify_expr): Revert to trunk's definition.
685 (instrument_func): Delete this hook. Now handled in
687 * tree-pass.h: Revert to trunk.
688 * c-typeck.c (build_unary_op): Adjust reference to
689 upc_genericize() in a comment.
690 * gimplify.c (create_tmp_var_raw): Delete logic that
691 was converting UPC shared types into unshared types
692 to be used for temporaries. Now handled in upc_genericize().
693 Replace with an assertion check.
694 (prepare_gimple_addressable): Revert to trunk's definition.
695 No longer needed as an externally called function.
696 (flag_instrument_functions_exclude_p): Re-define as
697 an externally called function.
698 (gimplify_function_tree): Delete code that implemented
699 call to UPC's language specific function instrumentation hook.
700 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
701 (prepare_gimple_addressable): Delete extern definition;
702 revert to trunk's definition.
703 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
704 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
705 * c-family/c-gimplify.c: Revert to trunk.
706 * cp/cp-gimplify.c: Revert to trunk.
707 * cp/cp-tree.h: Revert to trunk.
708 * explow.c: Revert to trunk.
709 * langhooks.c: Revert to trunk.
710 * libfuncs.h: Revert to trunk.
711 * objc/objc-act.c: Revert to trunk.
713 2011-06-30 Gary Funck <gary@intrepid.com>
715 * c-family/c.opt: Bring options definitions up-to-date
716 with respect to changes made in the trunk.
718 2011-06-29 Gary Funck <gary@intrepid.com>
720 Merge trunk version 175584 into gupc branch.
722 2011-06-13 Gary Funck <gary@intrepid.com>
725 * include/cpplib.h (enum c_lang):
726 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
727 This keeps all the "C" variants together.
728 * init.c (lang_defaults): Add an entry for UPC.
730 2011-06-09 Gary Funck <gary@intrepid.com>
732 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
733 a 32-bit target, the size expression overflowed, the result was
734 error_mark_node, and an ICE was triggered on an attempt to evaluate
735 C_TYPE_VARIABLE_SIZE() on the error node.
736 (upc_blocksizeof_expr, upc_blocksizeof_type,
737 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
738 Make similar changes to avoid further processing of error_mark_node.
740 2011-06-07 Gary Funck <gary@intrepid.com>
742 * sel-sched.c (move_op): Incorporate the following
743 patch to eliminate ICE at -O3 on IA64/Altix.
745 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
747 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
748 code_motion_path_driver returned 0 or 1.
749 (sel_region_finish): Clear h_d_i_d.
751 2011-06-02 Gary Funck <gary@intrepid.com>
753 Merge trunk version 174558 into gupc branch.
755 2011-05-30 Gary Funck <gary@intrepid.com>
757 * configure.ac: Make the default order of the virtual
758 address field in a UPC pointer-to-shared to be "first".
759 This reverts to the previous setting, and is a short term
760 measure to work around a bug found on the IA64,
761 where vaddr=last led to incorrect code generation.
762 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
763 in AC_DEFINE(), to agree with recent changes in files
764 that reference this define.
765 configure, config.in: Regenerate.
767 2011-05-26 Gary Funck <gary@intrepid.com>
769 * configure.ac: Fix typo when referring to $upc_vaddr_order.
770 configure: Regenerate.
772 * ../fixincludes/fixincl.x: Revert to trunk.
773 This file is auto-generated, and should not be merged.
775 2011-05-18 Gary Funck <gary@intrepid.com>
777 Merge trunk version 173845 into gupc branch.
779 2011-05-17 Gary Funck <gary@intrepid.com>
781 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
782 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
784 * c-family/c-pragma.c: Remove conditional compilation
785 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
786 Test 'compiling_upc' when compiling to determine if
787 the "upc" and "pupc" pragmas should be registered.
789 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
790 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
791 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
792 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
793 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
794 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
795 Move these target-dependent definitions from config/upc-conf.h
798 * configure.ac: Improve the logic for UPC-related options.
799 Delete references to pre-processor definitions that have
800 been moved to "upc/upc-pts.h".
802 * configure, config.in: Regenerate.
804 * Makefile.in (UPC_PTS_REP): Remove definition and revert
805 to trunk. This substitution variable was used to
806 configure the representation-specific versions of
807 the tree rewrites that operate on UPC pointer-to-shared
810 * c-parser.c (c_parser_upc_forall_statement): Remove
811 reference to UPC_FORALL_DEPTH_NAME, and call
812 newly defined upc_rts_forall_depth_var() instead.
814 * config/upc-config.h: Delete. Various definitions
815 moved to "upc/upc-rts-names.h", "defaults.h", and
818 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
819 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
820 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
821 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
822 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
823 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
824 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
825 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
826 New. Document UPC target macros.
827 doc/tm.texi: Regenerate.
829 2011-05-07 Gary Funck <gary@intrepid.com>
831 * ../configure.ac: Disable build of libupc
832 on non POSIX hosted systems. Use AS_HELP_STRING
833 to define messages. Remove 'word-pair' as a
834 possible --with-upc-pts UPC pointer-to-shared
837 * ../configure: Regenerate.
839 * configure.ac: Use AS_HELP_STRING to define messages.
840 Remove 'word-pair' as a possible --with-upc-pts
841 UPC pointer-to-shared representation.
842 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
843 (UPC_MAX_BLOCK_SIZE): Correct the default value.
845 * configure: Regenerate.
847 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
850 * ChangeLog.upc: Fix some typos.
852 2011-05-07 Gary Funck <gary@intrepid.com>
854 * ../maintainer-scripts/gcc_release: Add "upc"
855 as one of the released languages.
857 2011-05-06 Gary Funck <gary@intrepid.com>
859 Eliminate compilation warnings, by fixing
860 #include's and updating function prototypes.
862 * c-family/c-cppbuiltin.c: Include c-upc.h.
864 * optabs.c (gen_libfunc): Change type of 'suffix'
865 parameter to conform with prototype.
867 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
868 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
871 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
874 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
875 argument values to cp_gimplify_expr.
877 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
878 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
879 pre-processor definitions that are no longer
880 needed to build the 'upc' command (upc-cmd.c)
881 because the linker specs. defined in libupc
882 take care of linking in the needed libraries.
884 * c-parser.c (c_parser_upc_forall_statement):
885 initialize affinity_loc to avoid "maybe unused" warning.
886 (c_parser_upc_sync_statement): Remove un-needed
887 'ret' variable. Cast return value from
888 'upc_build_sync_stmt' to 'void' to avoid
889 compile-time warning.
891 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
892 integer constant, not a string. Range is restricted
893 to maximum positive 32-bit integer (2+ billion) to
894 fit in with the use of 'int' in the front-end's
895 switch handling logic.
897 2011-05-06 Gary Funck <gary@intrepid.com>
899 Upgrade c-family source files to conform with modularity
900 improvements. Mainly, remove #include of c-tree.h in files
901 under c-family, and define a new UPC-specific #include file,
904 * c-family/stub-upc.c: Remove #include of c-tree.h and
905 upc/upc-act.h. Replace with #include of c-common.h
907 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
908 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
909 upc_localsizeof_expr, upc_localsizeof_type,
910 upc_shared_type_p): Delete.
912 * c-family/c-opts.c: Add #include of c-upc.h
914 * c-family/c-common.c: Remove #include of c-tree.h and
915 add #include of c-upc.h.
917 * c-family/c-upc.h: New. Define API for UPC-specific functions
918 (mostly implemented in upc/upc-act.c).
920 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
921 Remove extern definitions.
923 * c-family/c-pragma.c: Remove #include of c-tree.h.
924 Add #include of c-upc.h.
926 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
928 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
929 upc/upc-act.c, and define as a macro.
930 (expand_affinity_test): Remove unused external definition.
931 (build_upc_unshared_type): Add external definition.
932 (upc_shared_type_p): Remove external definition.
934 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
936 * dojump.c: Remove #include of c-tree.h.
938 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
940 (count_upc_threads_refs, is_multiple_of_upc_threads,
941 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
942 upc_build_shared_var_addr, upc_build_sync_stmt,
943 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
944 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
945 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
946 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
947 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
948 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
949 set_upc_consistency_mode, get_upc_consistency_mode,
950 push_upc_consistency_mode, pop_upc_consistency_mode,
952 Move external definitions to c-family/c-upc.h.
953 (upc_blocksizeof_type, upc_localsizeof_type,
954 upc_elemsizeof_type): Remove external definitions;
955 these functions were moved to c-parser.c.
957 * c-decl.c: Add #include of c-upc.h.
959 * c-typeck.c: Add #include of c-upc.h.
961 * c-convert.c: Add #include of c-upc.h.
963 * ChangeLog.upc: Fix typo.
965 * Makefile.in: Add references to c-family/c-upc.h, everywhere
966 there is a reference to c-family/c-objc.h.
967 Remove extraneous reference to upc-act.h.
969 * c-parser.c: Add #include of c-upc.h.
970 (upc_blocksizeof_expr, upc_blocksizeof_type,
971 upc_elemsizeof_expr, upc_elemsizeof_type,
972 upc_localsizeof_expr, upc_localsizeof_type):
973 Move from upc/upc-act.c.
975 * tree.c (build_upc_unshared_type): New.
976 Move upc_get_unshared_type from upc/upc-act.c and rename
977 to build_upc_unshared_type.
978 c-family/c-common.c (pointer_int_sum): refer to renamed
979 build_upc_unshared_type function.
980 c-convert.c (convert): Ditto.
981 convert.c (convert_to_pointer): Ditto.
982 c-typeck.c (build_unary_op, build_modify_expr,
983 really_start_incremental_init): Ditto.
984 gimplify.c (create_tmp_var_raw): Ditto.
985 tree.c (build1_stat): Ditto.
986 tree.h (upc_get_unshared_type): Rename to
987 build_upc_unshared_type.
989 2011-05-06 Gary Funck <gary@intrepid.com>
991 Merge trunk version 173471 into gupc branch.
993 2011-05-05 Gary Funck <gary@intrepid.com>
995 Make changes that bring the GUPC branch more closely in sync.
996 with the GCC trunk. Revert any fixes that are not UPC-specific.
997 Remove gratuitous re-formatting.
999 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1000 This file should have been removed in a previous merge
1002 * ../configure.ac: Remove Cray Catamount/CNL support.
1003 * ../configure: Regenerate.
1004 * ../config.sub: Remove Cray Catamount/CNL support.
1005 * config.gcc: Remove Cray Catamount/CNL support.
1006 * ../maintainer-scripts/gcc_release: Revert to trunk.
1007 * c-family/c-common.h: Define parse_optimize_options. Its definition
1008 was missed in a previous merge with the trunk.
1009 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1011 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1012 in addition to ARRAY_TYPE.
1013 * c-typeck.c: Remove an extra newline character.
1014 * varasm.c: Revert a fix that improved an error message
1015 when TLS common data is unimplemented.
1016 * varasm.c: Revert a gcc_assert that had been added which
1017 checked for a null DECL_SIZE_UNIT field.
1018 * emultls.c: Revert to trunk. Remove possible fix.
1019 * Makefile.in: Revert extra blank line that is present
1020 in the trunk version.
1021 * Makefile.in: Revert a fix that handled long shell
1022 argument lists for plugin headers.
1023 * config/ia64/ia64.opt: Revert an option setting
1024 that increased the default TLS address range.
1025 * config/ia64/crtbegin.asm: Revert to trunk.
1026 Removes an extra newline character.
1027 * ChangeLog.upc: Spell check.
1029 2011-05-03 Gary Funck <gary@intrepid.com>
1031 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1032 (c_apply_type_quals_to_decl): Ditto.
1033 * c-family/c-common.h: Ditto.
1035 * c-decl.c (merge_decls): Ditto.
1036 * c-typeck.c (qualify_type, default_conversion,
1037 build_component_ref, build_unary_op,
1038 c_build_qualified_type): Ditto.
1039 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1041 2011-04-29 Gary Funck <gary@intrepid.com>
1043 * c-decl.c (finish_decl): Improve error diagnostics.
1044 (grokdeclarator): Ditto.
1046 * c-typeck.c (build_c_cast): Improve error diagnostics.
1047 (convert_for_assignment): Ditto.
1048 (build_binary_op): Ditto.
1050 * c-parser.c (c_parser_upc_forall_statement):
1051 Improve error diagnostics.
1053 * convert.c (convert_to_integer): Improve error diagnostics.
1055 2011-04-24 Gary Funck <gary@intrepid.com>
1057 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1058 occurred if there is an error in the barrier id
1059 expression. Map error_mark_node into NULL.
1061 2011-04-22 Gary Funck <gary@intrepid.com>
1063 Merge trunk version 172873 into gupc branch.
1065 2011-04-19 Gary Funck <gary@intrepid.com>
1067 Merge trunk version 172359 into gupc branch.
1069 2011-04-14 Gary Funck <gary@intrepid.com>
1071 * c-family/c.opt: Add UPC as a valid language for various
1072 switches where it is valid for "C", that were not updated
1073 in previous merges with trunk.
1075 2011-04-13 Gary Funck <gary@intrepid.com>
1077 * c-family/c.opt (fupc-pre-include): New option definition.
1078 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1079 -fno-upc-pre-include is asserted.
1081 2011-04-07 Gary Funck <gary@intrepid.com>
1083 Merge trunk version 172158 into gupc branch.
1084 to bring in the following fix.
1086 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
1089 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1090 if old and new states differ.
1092 2011-04-06 Gary Funck <gary@intrepid.com>
1094 Merge trunk version 171966 into gupc branch.
1096 2011-04-01 Gary Funck <gary@intrepid.com>
1098 * tree.h (tree_base): Move UPC flag bits into bit fields
1099 located just before spare bits. Decrement spare bits.
1100 Rename 'shared_flag' -> 'upc_shared_flag',
1101 'relaxed_flag' -> 'upc_relaxed_flag',
1102 'strict_flag' -> 'upc_strict_flag, and adjust macros
1103 that reference them accordingly.
1105 2011-04-01 Gary Funck <gary@intrepid.com>
1107 * c-decl.c (grokdeclarator): Fix formatting of
1108 code that sets UPC block size on scalars.
1110 2011-04-01 Gary Funck <gary@intrepid.com>
1112 * c-decl.c (grokdeclarator): Revert use of white space
1113 to match the trunk (to rationalize diffs).
1114 * c-typeck.c (convert_for_assignment): Ditto.
1115 * tree-ssa.c (useless_type_conversion_p): Ditto.
1117 2011-03-23 Gary Funck <gary@intrepid.com>
1119 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1120 the GCC 4.6 release branch.
1122 2011-03-21 Gary Funck <gary@intrepid.com>
1124 Merge trunk version 171202 into gupc branch.
1126 2011-03-20 Gary Funck <gary@intrepid.com>
1128 * varasm.c: Call error() directly with a format specifier,
1129 rather than using sprintf() to format the message.
1130 This should make it easier to internationalize UPC's error messages.
1132 2011-03-20 Gary Funck <gary@intrepid.com>
1134 * configure.ac: Fix the check for gnu ld when enabling
1135 UPC link script support.
1136 configure: Regenerate (also picks up changes from previous
1139 2011-03-20 Gary Funck <gary@intrepid.com>
1141 Move UPC start files, end files, and linker specs.
1142 into libupc. This reduces the impact on common GCC
1143 configuration files, and ensures that these UPC-specific
1144 components are only built when the UPC language dialect is selected.
1148 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1149 linker specs. Fix typo in -fupc-debug message.
1151 * config/upc-conf.h, config/darwin.h: Move defines for
1152 UPC-related section begins/ends into libupc/config/default/
1155 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1156 UPC-related linker compiler specifications,
1157 accessed via %:include().
1159 * configure.ac, configure: Remove logic related to building
1160 upc-crtbegin/end. Remove config. tests for numa and cpu
1161 affinity (previously used by the 'upc' driver); these
1162 settings are now propagated by target-specific compiler
1163 specs. built by libupc. Regenerate autoconf.
1165 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1166 linker compiler specifications, accessed via %:include().
1167 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1170 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1172 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1173 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1174 config/ia64/linux.h, config/mips/t-iris,
1175 config/mips/iris6.h: Revert to trunk version 167307.
1178 * configure, configure.ac, config.host, Makefile.in:
1179 Revert to trunk version 167307.
1181 2011-02-23 Gary Funck <gary@intrepid.com>
1183 * c-decl.c (undeclared_variable): fix typo. Inadvertently
1184 removed negation on following 'if'.
1186 2011-02-22 Gary Funck <gary@intrepid.com>
1188 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1189 to check for the usage of certain deprecated UPC keywords.
1190 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1191 * c-tree.h (undeclared_variable): Define prototype.
1193 2011-02-12 Gary Funck <gary@intrepid.com>
1195 * c-typeck.c: (build_c_cast, convert_for_assignment)
1196 Diagnose an attempt to convert from an integer to
1197 a pointer-to-shared as an error. Also, fix various
1198 error messages so that they use the preferred term
1199 pointer-to-shared instead of "shared pointer".
1201 2011-02-07 Gary Funck <gary@intrepid.com>
1203 * c-typeck.c: (convert_for_assignment)
1204 Fix typo. in error message.
1206 2011-01-23 Gary Funck <gary@intrepid.com>
1208 * c-typeck.c: (c_build_qualified_type)
1209 derive UPC block size by calling upc_get_block_size(),
1210 to ensure that the element type of an array of an array
1211 is derived correctly.
1213 2010-12-29 Gary Funck <gary@intrepid.com>
1215 Merge trunk version 168314 into gupc branch.
1217 2010-12-15 Gary Funck <gary@intrepid.com>
1219 Merge trunk version 167307 into gupc branch.
1221 2010-10-19 Gary Funck <gary@intrepid.com>
1223 * c-typeck.c: Fix typo in previous fix
1224 which led to a mis-compare for equal block sizes.
1226 2010-10-18 Gary Funck <gary@intrepid.com>
1228 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1229 diagnosed as an error
1231 The conversion from any type (shared or not) to
1232 a shared type is likely either meaningless or an error. This update
1233 makes any conversion to a shared type, an error.
1235 2010-10-18 Gary Funck <gary@intrepid.com>
1237 * c-typeck.c: Fix bug: passing int to shared pointer arg.
1238 generates spurious warning
1240 Add a #define procedure that does the same thing as
1241 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
1242 this procedure to diagnose passing an integer value to a
1243 pointer-to-shared as an error.
1245 2010-10-18 Gary Funck <gary@intrepid.com>
1247 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1248 matching routine declaration.
1250 When checking for type compatibility, shared qualified types must
1251 have the same block factor. This check was missing from
1252 comptypes_internal(). This update adds the check for blocking
1255 2010-10-17 Gary Funck <gary@intrepid.com>
1257 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1260 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1262 2010-10-17 Gary Funck <gary@intrepid.com>
1264 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1265 45869 - [4.5/4.6 Regression] type mismatch in shift expression
1266 produces ice with -O3 and -m32.
1268 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1270 2010-10-17 Gary Funck <gary@intrepid.com>
1272 * c-common.c: Diagnose the application of the various "*sizeof"
1273 operations on generic pointer-to-shared as a compilation error.
1275 2010-10-17 Gary Funck <gary@intrepid.com>
1277 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1278 message regarding a function parameter being declared with a shared
1281 The parameter's 'name' value is not defined at this point, and
1282 cannot be used in the error message. This update removes the
1283 reference to 'name', and eliminates the segfault.
1285 2010-10-16 Gary Funck <gary@intrepid.com>
1287 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1289 The gcc/Makefile.in rules for install-plugin had to be re-written to
1290 break up a long list of header files that exceeded the command line
1291 limitation imposed by Irix.
1293 Access functions for TFmode types had to be implemented.
1294 Apparently, this is the mode used for the SGI/MIPS port to represent
1297 2010-10-14 Gary Funck <gary@intrepid.com>
1299 * c-decl.c: Fix bug: Multiple equal blocking factors specified
1300 via typedef chain should not be diagnosed as an error.
1302 If the block size that is given by the typedef is equal to the block
1303 size given explicitly in the variable declaration, then do not
1304 complain. The easiest way to make this check was to create a
1305 temporary type that is a clone of the element type and then set its
1306 block size using the given layout qualifier. Then compare the block
1307 size of the temporary (the declaration) to the block size specified
1308 in the typedef. This complexity is needed, because the '[*]' block
1309 size needs to be calculated, and the '[]' needs to be mapped into a
1312 2010-10-10 Gary Funck <gary@intrepid.com>
1314 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1317 The compiler properly detected the presence of two or more layout
1318 qualifiers as an error, but then hit an assertion check, because the
1319 code that followed the error expected to see a qualifier and not a
1320 layout specifier. The fix is simple: just return immediately after
1321 detecting the error.
1323 2010-10-10 Gary Funck <gary@intrepid.com>
1325 * c-decl.c: Improve error diagnostics for various cases of UPC
1326 shared array type declarations.
1328 Add the check for this error: "In the dynamic translation
1329 environment, THREADS may not appear in declarations of shared arrays
1330 with indefinite block size". Also, fix up a few of the other
1331 related error diagnostics.
1333 2010-10-09 Gary Funck <gary@intrepid.com>
1335 * c-common.c: Fix bug: segfault on incomplete array definition.
1337 This turned out to be a bit complicated. The logic in
1338 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1339 the THREADS identifier in the case where the blocking factor has
1340 been set to indefinite ([]). This can happen when indefinite array
1341 declarations are processed for shared arrays. At that time, the
1342 file scope has been closed and THREADS is no longer in scope. Some
1343 more work is needed on upc_lang_layout_decl(). It has some
1344 duplication, and notably duplicates the two branches of the if
1345 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1346 caller of this routine (layout_decl()).
1348 The method of forcing a layout qualifier of [] in the indefinite
1349 declaration handler is odd a well. The code that just does the
1350 setting of the block factor, needs to moved into its own routine
1351 that doesn't depend upon a declspec for '[]' to be passed in, just
1352 in order to set the blocking factor to some value (in this case, 0).
1353 Also, the logic for how that shared type is constructed is strange.
1354 First the type with 0 blocking factor is set. Then the shared
1355 qualifier is removed from the type, and then added back later. The
1356 intermediate type has a blocking factor set, but it has no shared
1357 qualifier. Fixing this will require some thought. It is tempting
1358 just to make indefinite shared arrays an error, rather than forcing
1359 the dimension to be '1'.
1361 This likely fixes a serious error in the previous update to
1362 upc_lang_layout_decl(), where it didn't have the logic to set
1363 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
1364 the previous update would fail on many tests.
1366 2010-10-09 Gary Funck <gary@intrepid.com>
1368 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1369 (decl) is null, which can happen if some layout error occurred
1372 2010-10-09 Gary Funck <gary@intrepid.com>
1374 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1375 "variable-sized" when compiled in dynamic threads.
1377 This long-standing bug is easily fixed. Just check
1378 for the situation that the non-constant sized type is shared and
1379 that it does not have a dimension that references a multiple of
1380 threads. If this criteria is met, then issue a meaningful
1383 2010-10-01 Gary Funck <gary@intrepid.com>
1385 * configure, configure.ac: Update manual page, and bug reporting
1388 Update "man" page to reflect debugging switches. Also, some general
1389 clean up. Change the bug reporting URL to point to gccupc.org.
1391 2010-09-27 Gary Funck <gary@intrepid.com>
1393 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1394 the UPC forall depth count variable is not found.
1396 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1397 The compiler will generate code that references this variable in
1398 order to implement nested upc_forall semantics. If there is a
1399 compiler build or install problem, this variable may not be found.
1400 In this case, terminate with an internal_error().
1402 2010-09-26 Gary Funck <gary@intrepid.com>
1404 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1405 mis-diagnosed as syntax error.
1407 Fix a failure exhibited by the Berkeley test case,
1408 bug873a.upc, which has the code:
1410 upc_forall (;;;d) {...} The compiler did not properly handle
1411 the empty "condition" clause, and did not recover well when it was
1412 determined that the use of a double value, "d" above, was neither a
1413 pointer-to-shared nor an integer expression. The update implements a
1414 fix for both issues.
1416 See also: gcc/c-parser.c gcc/upc/upc-act.c
1418 2010-09-23 Gary Funck <gary@intrepid.com>
1420 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1421 incorporated into the referencing type.
1423 This was semi-fixed a few times before. This update fixes a few
1424 more places where the layout qualifier wasn't being propagated
1425 through typedef's properly. What made this a bit tricky is shown in
1426 the example cited in the bug report:
1428 typedef shared [5] int A_t; A_t A[5*THREADS];
1430 In the typedef, the blocksize is being applied to a shared *scalar*,
1431 and the code was applying the blocksize only to arrays. This update
1432 handles shared scalars correctly.
1434 2010-09-22 Gary Funck <gary@intrepid.com>
1436 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1437 upc_forall() semantics are not implemented
1439 The checkforall test in the Berkeley harness test suite indicated
1440 that GCC/UPC was not properly implementing nested upc_forall
1441 semantics. Nested upc_forall statements (both statically or
1442 dynamically nested) must implement their affinity clause as if it
1443 were "continue"; thus all steps in the loop must execute without
1444 regard for affinity. To implement these semantics a global depth
1445 counter, __upc_forall_depth, is maintained by the generated code
1446 that implements upc_forall.
1448 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1449 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1450 libupc/include/upc.h libupc/smp/upc_main.c
1452 2010-09-19 Gary Funck <gary@intrepid.com>
1454 * c-decl.c: c-decl.c: zero out the layout specifier, after
1455 processing an array type.
1457 Fix the previous fix, that moved the setting of the type's layout
1458 qualifier to the outside of the array type processing loop. What is
1459 missing from the fix is that the layout_qualifier variable needs to
1460 be cleared after setting the type's blocksize.
1462 2010-09-19 Gary Funck <gary@intrepid.com>
1464 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1465 given blocksize is greater than UPC_MAX_BLOCKSIZE.
1467 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1468 the actual maximum block size. Therefore, the message was correct,
1469 but the underlying value that was being checked was wrong. Change
1470 the values so that they agree with the actual implementation-defined
1473 2010-09-11 Gary Funck <gary@intrepid.com>
1475 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1476 multi-dimensional shared array with dynamic threads.
1478 This declaration caused an internal compiler error when compiled
1479 with dynamic threads:
1480 shared [*] int A[THREADS][16]; The bug was discovered when
1481 compiling the RTED_UPC test suite.
1483 The fix is to process layout qualifiers after the entire array type
1484 has been built. Otherwise, we try to calculate the blocksize on a
1485 shared array type that has not had its "size depends upon the value
1486 of THREADS" flag set.
1488 Also, added a test case.
1490 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1492 2010-07-11 Gary Funck <gary@intrepid.com>
1494 Fix a bug where a statement in c_build_qualified_type()
1495 in the trunk had been inadvertently deleted.
1496 This bug showed up in the IA64 port, because jmpbuf's
1497 on that architecture must be 16 byte aligned, and they were not.
1498 c-typeck.c (c_build_qualified_type): Revive the deleted line.
1500 2010-07-08 Gary Funck <gary@intrepid.com>
1502 Make changes so that other language compilers
1503 will build and bootstrap.
1504 * c-family/c-common.c (compiling_upc, flag_upc,
1505 flag_upc_instrument, flag_upc_instrument_functions,
1506 use_upc_dwarf2_extensions): Move to stub-upc.c and
1508 * c-family/c-common.h (use_upc_dwarf2_extensions,
1509 compiling_upc): Add extern definitions - needed
1510 to compile/build other language front ends.
1511 * c-family/c.opt: Fix the spelling of ObjC.
1512 It had been incorrectly spelled as Objc.
1513 * c-family/c.opt: Add UPC for the various switches
1514 that are valid for both C and ObjC.
1515 * c-fmaily/c-opts.c: Add CL_UPC to the list of
1516 supported options switches when compiling assembly
1518 * lto/lto-lang.c (use_upc_dwarf2_extensions,
1519 flag_upc_instrument, flag_upc_instrument_functions):
1520 Remove these definitions. They have been moved
1521 to c-family/stub-upc.c.
1522 * upc/ChangeLog: Move relevant entries
1524 * c-family/stub-upc.c (compiling_upc, flag_upc,
1525 flag_upc_instrument, flag_upc_instrument_functions,
1526 use_upc_dwarf2_extensions): Moved from c-common.c
1527 * upc/upc-lang.c (compiling_upc, flag_upc,
1528 flag_upc_instrument, flag_upc_instrument_functions,
1529 use_upc_dwarf2_extensions): Moved from c-common.c
1530 * objc/objc-act.c (objc_gimplify_expr): Add additional
1531 parameters to c_gimplify_expr() call, that are used
1532 by upc's tree rewrites.
1533 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1534 * gcc/cp/lex.c (init_reswords): If not compiling
1535 UPC, then mask off the UPC keywords.
1536 * cp/Make-lang.in (C_STUB_OBJS): Use this
1537 make macro to link with c-family/stub-objc.o
1538 and c-family/stub-upc.o.
1539 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1540 * java/Make-lang.in (C_STUB_OBJS): Likewise.
1541 * objc/Make-lang.in: Link with c-family/stub-upc.o
1542 to avoid undefined references.
1543 c-parser.c: Fix line indentation.
1544 * libcpp/include/cpplib.h: Remove CL_UPC from
1545 the list of language kinds accepted by the
1546 C preprocessor. This is not necessary because
1547 UPC is a derivative of C99, and does not need
1548 a different language kind.
1549 * c-fmaily/c-opts.c (c_common_handle_option):
1550 Call set_std_c99() when processing the
1551 "--lang upc" switch, instead of setting the
1552 language kind to CL_UPC.
1553 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1555 2010-07-03 Gary Funck <gary@intrepid.com>
1557 Merge trunk version 161517 into gupc branch.
1558 * gcc/stub-upc.c: Move to gcc/c-family/.
1559 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1560 Add 'unused' attributes to avoid "set, but
1561 not referenced" warnings.
1562 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1565 2010-03-01 Gary Funck <gary@intrepid.com>
1567 Create gupc branch from trunk version 157149.
1568 2011-10-04 Gary Funck <gary@intrepid.com>
1570 Merge trunk version 179421 into gupc branch.
1572 * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1573 argument to the call to check_qualified_type().
1575 2011-09-22 Gary Funck <gary@intrepid.com>
1577 * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1579 (dump_upc_type_quals): New.
1581 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
1583 Add to FLAGS the flags needed to disable inlining of
1584 UPC run-time access routines.
1585 * testsuite/lib/target-supports.exp
1586 (add_options_for_upc_library_calls): New.
1588 2011-09-15 Gary Funck <gary@intrepid.com>
1590 Fix ICE involving shared bit field accesses.
1591 * tree.c (build3_stat): Propagate TEEE_SHARED()
1592 TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1594 2011-09-13 Gary Funck <gary@intrepid.com>
1596 Merge trunk version 178795 into gupc branch.
1597 Incorporates fix to PR bootstrap/50010 for x86-32.
1599 2011-09-08 Gary Funck <gary@intrepid.com>
1601 Merge trunk version 178557 into gupc branch.
1603 2011-09-07 Gary Funck <gary@intrepid.com>
1605 Ensure that UPC pointer-to-shared type alignment is
1606 propagated to the final type. Revert to long-standing
1607 alignment policy: twice the size of a "C" pointer.
1608 * tree.c (build_pointer_type): Propagate the alignment
1609 of the UPC pointer-to-shared representation type
1610 into the newly built pointer type.
1612 2011-08-30 Gary Funck <gary@intrepid.com>
1614 * tree.h (check_qualified_type): Change 'const_tree'
1615 argument types back to 'tree' to avoid complaints
1616 of assignment drops qualifiers for invocations of the
1617 newly implemented TYPE_BLOCK_FACTOR() macro, which
1618 invokes hash functions with 'tree' pointer values that
1619 are not const qualified.
1620 * tree.c (check_qualified_type, check_aligned_type): Ditto.
1621 * c-typeck.c (comptypes_internal): Ditto.
1623 2011-08-29 Gary Funck <gary@intrepid.com>
1625 Fixes for regressions noted running "make check"
1627 * fold-const.c (fold_unary_loc): Execute UPC-specific
1628 checks for a cast-of-a-cast, only if one of the
1629 operands is a UPC pointer-to-shared value.
1630 * opts.c (print_specific_help): Fix a comparison
1631 in an assert that checks that there are enough
1632 bits reserved for the number of languages defined
1635 2011-08-29 Gary Funck <gary@intrepid.com>
1637 Implement a hash table to record UPC block factors.
1638 * c-family/stub-upc.c (upc_block_factor_insert,
1639 upc_block_factor_lookup): New dummy stub procedures.
1640 * c-family/c-common.c (c_sizeof_or_alignof_type):
1641 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1642 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1643 to copy (hashed) UPC blocking factor.
1644 (set_type_quals): Likewise.
1645 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1646 TYPE_HAS_THREADS_FACTOR().
1647 (type_common.block_factor): Delete.
1648 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1649 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1650 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1651 UPC blocking factors greater than one.
1652 * dwarf2out.c (modified_type_die): Re-implement
1653 logic that records UPC blocking factor in the generated
1654 DWARF2 debugging information.
1655 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1656 TYPE_HAS_THREADS_FACTOR().
1657 * c-decl.c (finish_decl, grokdeclarator):
1658 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1659 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1660 used by UPC, and print UPC-specific information.
1662 2011-08-28 Gary Funck <gary@intrepid.com>
1664 Re-work the type machinery to fully support and to unify support
1665 for the UPC layout qualifier (blocking factor).
1666 * c-family/stub-upc.c (upc_set_block_factor): Delete.
1667 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1668 and update prototype.
1669 * c-family/c-common.c (complete_array_type): call newly
1670 defined c_build_qualified_type_1() instead of
1671 upc_set_block_factor().
1672 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1673 upc_apply_layout_qualifier() and update prototype.
1674 (upc_set_block_factor): Delete prototype.
1675 * c-family/c-common.h (c_build_qualified_type): redefine
1676 as a pre-processor macro that invokes c_build_qualified_type_1()
1677 with a null UPC layout qualifier.
1678 (c_build_qualified_type_1): New. Add layout qualifier argument
1679 to old c_build_qualified_type() prototype.
1680 * tree.c (set_type_quals, check_qualified_type):
1681 Add layout qualifier as argument.
1682 (check_aligned_type): Add check for UPC block factor equality.
1683 (get_qualified_type_1): Rename from get_qualified_type() and
1684 add layout qualifier as argument.
1685 (build_qualified_type_1): Rename from build_qualified_type() and
1686 add layout qualifier as argument.
1687 * tree.h (check_qualified_type): Add layout qualifier as argument
1689 (get_qualified_type): Re-define as a as a pre-processor macro
1690 that invokes get_qualified_type_1() with a null
1691 UPC layout qualifier.
1692 (get_qualified_type_1): Rename from get_qualified_type() and
1693 add layout qualifier as argument.
1694 * cp/tree.c (c_build_qualified_type_1): Rename from
1695 c_build_qualified_type() and add (unused) layout qualifier
1697 * c-decl.c (finish_decl): re-format long error messages.
1698 (grokdeclarator): Re-work the logic so that it calls
1699 upc_grok_layout_qualifier() to handle the UPC layout
1700 qualifier, if present.
1701 * c-typeck.c (qualify_type, common_pointer_type,
1702 build_component_ref): Re-work the logic so that it calls
1703 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1705 (c_build_qualified_type_1): Rename from c_build_qualified_type()
1706 and add layout qualifier argument.
1707 * print_tree.c (print_node): Re-format a long line.
1709 2011-08-26 Gary Funck <gary@intrepid.com>
1711 Merge trunk version 177949 into gupc branch.
1712 * c-family/c-common.h (enum rid): Bump the number of type modifiers
1714 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1715 to add new rliterals column value.
1717 2011-08-26 Gary Funck <gary@intrepid.com>
1719 * convert.c (convert_to_integer): Fix the check for the
1720 difference between two UPC pointers-to-shared values.
1722 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
1724 * configure.ac: Fix the name for --with-upc-pts-packed-bits
1725 option. Support --with-upc-packed-bits as deprecated. Fix the code to
1726 correctly check packed bits.
1727 * configure: Re-generate.
1729 2011-08-16 Gary Funck <gary@intrepid.com>
1731 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1732 the barrier id expression is not an integer expression.
1734 2011-08-12 Gary Funck <gary@intrepid.com>
1736 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1738 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1739 Set mode of UPC pointer-to-shared rep. to an
1740 integral mode of size at least as large as the
1741 size of the representation's struct type.
1743 2011-08-12 Gary Funck <gary@intrepid.com>
1745 Rework/simplify the UPC genericize pass.
1746 * c-family/stub-upc.c (upc_apply_layout_qualifier,
1747 upc_build_pointer_type): New.
1748 (upc_set_block_factor): Adjust to new calling sequence.
1749 (upc_build_shared_var_addr): Delete.
1750 * c-family/c-common.c (complete_array_type): Adjust call
1751 to upc_set_block_factor().
1752 * c-family/c-upc.h (upc_apply_layout_qualifier,
1753 upc_build_pointer_type): New.
1754 (upc_build_shared_var_addr): Delete.
1755 (upc_set_block_factor): Adjust to new calling sequence.
1756 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1757 * c-decl.c (grokdeclarator): Call newly defined
1758 upc_apply_layout_qualifier() instead of upc_set_block_factor().
1759 * c-decl.c (grokdeclarator): Split long UPC-related error
1760 messages into two lines.
1761 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1762 directly. Revert that change to trunk. (upc_genericize() will
1763 handle lowering the expressions that take the address of a
1765 * config/i386/i386.c (ix86_promote_function_mode): For UPC
1766 pointers-to-shared, return the type mode of the UPC pointer-to-shared
1767 representation type.
1769 2011-08-10 Gary Funck <gary@intrepid.com>
1771 Implement additional fixes for recent merge with trunk.
1772 * explow.c (promote_mode): Do not attempt to promote
1773 the mode for UPC pointer-to-shared types.
1774 * config/i386/i386.c (function_value_64): Ditto.
1776 2011-08-07 Gary Funck <gary@intrepid.com>
1778 Merge trunk version 177548 into gupc branch.
1779 * config/i386/i386.c (ix86_promote_function_mode):
1780 Do not promote UPC pointers-to-shared to Pmode.
1781 * c-family/c-ommon.c (pointer_int_sum):
1782 Also check the pointer operand, rather than just
1783 its type, when making the decision to derive
1784 the equivalent unshared type.
1785 * tree.c (build2_stat): If the type of the result
1786 passed in as an argument is a UPC shared type,
1787 derive the unshared equivalent when calculating
1788 the result type of the node.
1790 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
1792 * config/darwin.c: Disable var_tracking option
1793 on -O0 as it is supposed to run only when optimization
1794 is applied. See GCC bug 49743.
1796 2011-07-06 Gary Funck <gary@intrepid.com>
1798 Re-implement the pass that lowers trees generated by
1799 the UPC front-end into GENERIC. Previously this was
1800 done within the gimplification framework, but this
1801 required that gimplification be run before inlining
1802 and various other passes, which did not fit in well
1803 with the current design of the middle-end passes.
1804 Now, the lowering is done by a newly defined language
1805 specific genericize hook. With this change, we are
1806 are able to undo some extensions made to the gimplify
1807 logic, and thus can revert several files to trunk.
1809 * c-decl.c: Add a check for UPC deprecated names which
1810 may appear as undefined function names.
1811 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1812 LTI_upc_getaddr): Remove definitions of unused UPC
1813 library function names. These were defined back when
1814 the libfunc interface was used to call these routines.
1815 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1816 in UPC lowering (genericize) pass.
1817 * langhooks.h (gimplify_expr): Revert to trunk's definition.
1818 (instrument_func): Delete this hook. Now handled in
1820 * tree-pass.h: Revert to trunk.
1821 * c-typeck.c (build_unary_op): Adjust reference to
1822 upc_genericize() in a comment.
1823 * gimplify.c (create_tmp_var_raw): Delete logic that
1824 was converting UPC shared types into unshared types
1825 to be used for temporaries. Now handled in upc_genericize().
1826 Replace with an assertion check.
1827 (prepare_gimple_addressable): Revert to trunk's definition.
1828 No longer needed as an externally called function.
1829 (flag_instrument_functions_exclude_p): Re-define as
1830 an externally called function.
1831 (gimplify_function_tree): Delete code that implemented
1832 call to UPC's language specific function instrumentation hook.
1833 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1834 (prepare_gimple_addressable): Delete extern definition;
1835 revert to trunk's definition.
1836 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1837 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1838 * c-family/c-gimplify.c: Revert to trunk.
1839 * cp/cp-gimplify.c: Revert to trunk.
1840 * cp/cp-tree.h: Revert to trunk.
1841 * explow.c: Revert to trunk.
1842 * langhooks.c: Revert to trunk.
1843 * libfuncs.h: Revert to trunk.
1844 * objc/objc-act.c: Revert to trunk.
1846 2011-06-30 Gary Funck <gary@intrepid.com>
1848 * c-family/c.opt: Bring options definitions up-to-date
1849 with respect to changes made in the trunk.
1851 2011-06-29 Gary Funck <gary@intrepid.com>
1853 Merge trunk version 175584 into gupc branch.
1855 2011-06-13 Gary Funck <gary@intrepid.com>
1858 * include/cpplib.h (enum c_lang):
1859 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1860 This keeps all the "C" variants together.
1861 * init.c (lang_defaults): Add an entry for UPC.
1863 2011-06-09 Gary Funck <gary@intrepid.com>
1865 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1866 a 32-bit target, the size expression overflowed, the result was
1867 error_mark_node, and an ICE was triggered on an attempt to evaluate
1868 C_TYPE_VARIABLE_SIZE() on the error node.
1869 (upc_blocksizeof_expr, upc_blocksizeof_type,
1870 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1871 Make similar changes to avoid further processing of error_mark_node.
1873 2011-06-07 Gary Funck <gary@intrepid.com>
1875 * sel-sched.c (move_op): Incorporate the following
1876 patch to eliminate ICE at -O3 on IA64/Altix.
1878 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
1880 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1881 code_motion_path_driver returned 0 or 1.
1882 (sel_region_finish): Clear h_d_i_d.
1884 2011-06-02 Gary Funck <gary@intrepid.com>
1886 Merge trunk version 174558 into gupc branch.
1888 2011-05-30 Gary Funck <gary@intrepid.com>
1890 * configure.ac: Make the default order of the virtual
1891 address field in a UPC pointer-to-shared to be "first".
1892 This reverts to the previous setting, and is a short term
1893 measure to work around a bug found on the IA64,
1894 where vaddr=last led to incorrect code generation.
1895 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1896 in AC_DEFINE(), to agree with recent changes in files
1897 that reference this define.
1898 configure, config.in: Regenerate.
1900 2011-05-26 Gary Funck <gary@intrepid.com>
1902 * configure.ac: Fix typo when referring to $upc_vaddr_order.
1903 configure: Regenerate.
1905 * ../fixincludes/fixincl.x: Revert to trunk.
1906 This file is auto-generated, and should not be merged.
1908 2011-05-18 Gary Funck <gary@intrepid.com>
1910 Merge trunk version 173845 into gupc branch.
1912 2011-05-17 Gary Funck <gary@intrepid.com>
1914 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1915 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1917 * c-family/c-pragma.c: Remove conditional compilation
1918 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1919 Test 'compiling_upc' when compiling to determine if
1920 the "upc" and "pupc" pragmas should be registered.
1922 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1923 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1924 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1925 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1926 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1927 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1928 Move these target-dependent definitions from config/upc-conf.h
1931 * configure.ac: Improve the logic for UPC-related options.
1932 Delete references to pre-processor definitions that have
1933 been moved to "upc/upc-pts.h".
1935 * configure, config.in: Regenerate.
1937 * Makefile.in (UPC_PTS_REP): Remove definition and revert
1938 to trunk. This substitution variable was used to
1939 configure the representation-specific versions of
1940 the tree rewrites that operate on UPC pointer-to-shared
1943 * c-parser.c (c_parser_upc_forall_statement): Remove
1944 reference to UPC_FORALL_DEPTH_NAME, and call
1945 newly defined upc_rts_forall_depth_var() instead.
1947 * config/upc-config.h: Delete. Various definitions
1948 moved to "upc/upc-rts-names.h", "defaults.h", and
1951 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1952 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1953 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1954 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1955 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1956 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1957 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1958 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1959 New. Document UPC target macros.
1960 doc/tm.texi: Regenerate.
1962 2011-05-07 Gary Funck <gary@intrepid.com>
1964 * ../configure.ac: Disable build of libupc
1965 on non POSIX hosted systems. Use AS_HELP_STRING
1966 to define messages. Remove 'word-pair' as a
1967 possible --with-upc-pts UPC pointer-to-shared
1970 * ../configure: Regenerate.
1972 * configure.ac: Use AS_HELP_STRING to define messages.
1973 Remove 'word-pair' as a possible --with-upc-pts
1974 UPC pointer-to-shared representation.
1975 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1976 (UPC_MAX_BLOCK_SIZE): Correct the default value.
1978 * configure: Regenerate.
1980 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1983 * ChangeLog.upc: Fix some typos.
1985 2011-05-07 Gary Funck <gary@intrepid.com>
1987 * ../maintainer-scripts/gcc_release: Add "upc"
1988 as one of the released languages.
1990 2011-05-06 Gary Funck <gary@intrepid.com>
1992 Eliminate compilation warnings, by fixing
1993 #include's and updating function prototypes.
1995 * c-family/c-cppbuiltin.c: Include c-upc.h.
1997 * optabs.c (gen_libfunc): Change type of 'suffix'
1998 parameter to conform with prototype.
2000 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2001 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2004 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2007 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2008 argument values to cp_gimplify_expr.
2010 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2011 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
2012 pre-processor definitions that are no longer
2013 needed to build the 'upc' command (upc-cmd.c)
2014 because the linker specs. defined in libupc
2015 take care of linking in the needed libraries.
2017 * c-parser.c (c_parser_upc_forall_statement):
2018 initialize affinity_loc to avoid "maybe unused" warning.
2019 (c_parser_upc_sync_statement): Remove un-needed
2020 'ret' variable. Cast return value from
2021 'upc_build_sync_stmt' to 'void' to avoid
2022 compile-time warning.
2024 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2025 integer constant, not a string. Range is restricted
2026 to maximum positive 32-bit integer (2+ billion) to
2027 fit in with the use of 'int' in the front-end's
2028 switch handling logic.
2030 2011-05-06 Gary Funck <gary@intrepid.com>
2032 Upgrade c-family source files to conform with modularity
2033 improvements. Mainly, remove #include of c-tree.h in files
2034 under c-family, and define a new UPC-specific #include file,
2035 c-upc.h, and use it.
2037 * c-family/stub-upc.c: Remove #include of c-tree.h and
2038 upc/upc-act.h. Replace with #include of c-common.h
2040 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2041 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2042 upc_localsizeof_expr, upc_localsizeof_type,
2043 upc_shared_type_p): Delete.
2045 * c-family/c-opts.c: Add #include of c-upc.h
2047 * c-family/c-common.c: Remove #include of c-tree.h and
2048 add #include of c-upc.h.
2050 * c-family/c-upc.h: New. Define API for UPC-specific functions
2051 (mostly implemented in upc/upc-act.c).
2053 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2054 Remove extern definitions.
2056 * c-family/c-pragma.c: Remove #include of c-tree.h.
2057 Add #include of c-upc.h.
2059 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
2061 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
2062 upc/upc-act.c, and define as a macro.
2063 (expand_affinity_test): Remove unused external definition.
2064 (build_upc_unshared_type): Add external definition.
2065 (upc_shared_type_p): Remove external definition.
2067 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2069 * dojump.c: Remove #include of c-tree.h.
2071 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2073 (count_upc_threads_refs, is_multiple_of_upc_threads,
2074 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2075 upc_build_shared_var_addr, upc_build_sync_stmt,
2076 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2077 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2078 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2079 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2080 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2081 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2082 set_upc_consistency_mode, get_upc_consistency_mode,
2083 push_upc_consistency_mode, pop_upc_consistency_mode,
2085 Move external definitions to c-family/c-upc.h.
2086 (upc_blocksizeof_type, upc_localsizeof_type,
2087 upc_elemsizeof_type): Remove external definitions;
2088 these functions were moved to c-parser.c.
2090 * c-decl.c: Add #include of c-upc.h.
2092 * c-typeck.c: Add #include of c-upc.h.
2094 * c-convert.c: Add #include of c-upc.h.
2096 * ChangeLog.upc: Fix typo.
2098 * Makefile.in: Add references to c-family/c-upc.h, everywhere
2099 there is a reference to c-family/c-objc.h.
2100 Remove extraneous reference to upc-act.h.
2102 * c-parser.c: Add #include of c-upc.h.
2103 (upc_blocksizeof_expr, upc_blocksizeof_type,
2104 upc_elemsizeof_expr, upc_elemsizeof_type,
2105 upc_localsizeof_expr, upc_localsizeof_type):
2106 Move from upc/upc-act.c.
2108 * tree.c (build_upc_unshared_type): New.
2109 Move upc_get_unshared_type from upc/upc-act.c and rename
2110 to build_upc_unshared_type.
2111 c-family/c-common.c (pointer_int_sum): refer to renamed
2112 build_upc_unshared_type function.
2113 c-convert.c (convert): Ditto.
2114 convert.c (convert_to_pointer): Ditto.
2115 c-typeck.c (build_unary_op, build_modify_expr,
2116 really_start_incremental_init): Ditto.
2117 gimplify.c (create_tmp_var_raw): Ditto.
2118 tree.c (build1_stat): Ditto.
2119 tree.h (upc_get_unshared_type): Rename to
2120 build_upc_unshared_type.
2122 2011-05-06 Gary Funck <gary@intrepid.com>
2124 Merge trunk version 173471 into gupc branch.
2126 2011-05-05 Gary Funck <gary@intrepid.com>
2128 Make changes that bring the GUPC branch more closely in sync.
2129 with the GCC trunk. Revert any fixes that are not UPC-specific.
2130 Remove gratuitous re-formatting.
2132 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2133 This file should have been removed in a previous merge
2135 * ../configure.ac: Remove Cray Catamount/CNL support.
2136 * ../configure: Regenerate.
2137 * ../config.sub: Remove Cray Catamount/CNL support.
2138 * config.gcc: Remove Cray Catamount/CNL support.
2139 * ../maintainer-scripts/gcc_release: Revert to trunk.
2140 * c-family/c-common.h: Define parse_optimize_options. Its definition
2141 was missed in a previous merge with the trunk.
2142 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2144 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2145 in addition to ARRAY_TYPE.
2146 * c-typeck.c: Remove an extra newline character.
2147 * varasm.c: Revert a fix that improved an error message
2148 when TLS common data is unimplemented.
2149 * varasm.c: Revert a gcc_assert that had been added which
2150 checked for a null DECL_SIZE_UNIT field.
2151 * emultls.c: Revert to trunk. Remove possible fix.
2152 * Makefile.in: Revert extra blank line that is present
2153 in the trunk version.
2154 * Makefile.in: Revert a fix that handled long shell
2155 argument lists for plugin headers.
2156 * config/ia64/ia64.opt: Revert an option setting
2157 that increased the default TLS address range.
2158 * config/ia64/crtbegin.asm: Revert to trunk.
2159 Removes an extra newline character.
2160 * ChangeLog.upc: Spell check.
2162 2011-05-03 Gary Funck <gary@intrepid.com>
2164 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2165 (c_apply_type_quals_to_decl): Ditto.
2166 * c-family/c-common.h: Ditto.
2168 * c-decl.c (merge_decls): Ditto.
2169 * c-typeck.c (qualify_type, default_conversion,
2170 build_component_ref, build_unary_op,
2171 c_build_qualified_type): Ditto.
2172 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2174 2011-04-29 Gary Funck <gary@intrepid.com>
2176 * c-decl.c (finish_decl): Improve error diagnostics.
2177 (grokdeclarator): Ditto.
2179 * c-typeck.c (build_c_cast): Improve error diagnostics.
2180 (convert_for_assignment): Ditto.
2181 (build_binary_op): Ditto.
2183 * c-parser.c (c_parser_upc_forall_statement):
2184 Improve error diagnostics.
2186 * convert.c (convert_to_integer): Improve error diagnostics.
2188 2011-04-24 Gary Funck <gary@intrepid.com>
2190 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2191 occurred if there is an error in the barrier id
2192 expression. Map error_mark_node into NULL.
2194 2011-04-22 Gary Funck <gary@intrepid.com>
2196 Merge trunk version 172873 into gupc branch.
2198 2011-04-19 Gary Funck <gary@intrepid.com>
2200 Merge trunk version 172359 into gupc branch.
2202 2011-04-14 Gary Funck <gary@intrepid.com>
2204 * c-family/c.opt: Add UPC as a valid language for various
2205 switches where it is valid for "C", that were not updated
2206 in previous merges with trunk.
2208 2011-04-13 Gary Funck <gary@intrepid.com>
2210 * c-family/c.opt (fupc-pre-include): New option definition.
2211 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2212 -fno-upc-pre-include is asserted.
2214 2011-04-07 Gary Funck <gary@intrepid.com>
2216 Merge trunk version 172158 into gupc branch.
2217 to bring in the following fix.
2219 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
2222 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2223 if old and new states differ.
2225 2011-04-06 Gary Funck <gary@intrepid.com>
2227 Merge trunk version 171966 into gupc branch.
2229 2011-04-01 Gary Funck <gary@intrepid.com>
2231 * tree.h (tree_base): Move UPC flag bits into bit fields
2232 located just before spare bits. Decrement spare bits.
2233 Rename 'shared_flag' -> 'upc_shared_flag',
2234 'relaxed_flag' -> 'upc_relaxed_flag',
2235 'strict_flag' -> 'upc_strict_flag, and adjust macros
2236 that reference them accordingly.
2238 2011-04-01 Gary Funck <gary@intrepid.com>
2240 * c-decl.c (grokdeclarator): Fix formatting of
2241 code that sets UPC block size on scalars.
2243 2011-04-01 Gary Funck <gary@intrepid.com>
2245 * c-decl.c (grokdeclarator): Revert use of white space
2246 to match the trunk (to rationalize diffs).
2247 * c-typeck.c (convert_for_assignment): Ditto.
2248 * tree-ssa.c (useless_type_conversion_p): Ditto.
2250 2011-03-23 Gary Funck <gary@intrepid.com>
2252 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2253 the GCC 4.6 release branch.
2255 2011-03-21 Gary Funck <gary@intrepid.com>
2257 Merge trunk version 171202 into gupc branch.
2259 2011-03-20 Gary Funck <gary@intrepid.com>
2261 * varasm.c: Call error() directly with a format specifier,
2262 rather than using sprintf() to format the message.
2263 This should make it easier to internationalize UPC's error messages.
2265 2011-03-20 Gary Funck <gary@intrepid.com>
2267 * configure.ac: Fix the check for gnu ld when enabling
2268 UPC link script support.
2269 configure: Regenerate (also picks up changes from previous
2272 2011-03-20 Gary Funck <gary@intrepid.com>
2274 Move UPC start files, end files, and linker specs.
2275 into libupc. This reduces the impact on common GCC
2276 configuration files, and ensures that these UPC-specific
2277 components are only built when the UPC language dialect is selected.
2280 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2281 linker specs. Fix typo in -fupc-debug message.
2283 * config/upc-conf.h, config/darwin.h: Move defines for
2284 UPC-related section begins/ends into libupc/config/default/
2287 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2288 UPC-related linker compiler specifications,
2289 accessed via %:include().
2291 * configure.ac, configure: Remove logic related to building
2292 upc-crtbegin/end. Remove config. tests for numa and cpu
2293 affinity (previously used by the 'upc' driver); these
2294 settings are now propagated by target-specific compiler
2295 specs. built by libupc. Regenerate autoconf.
2297 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2298 linker compiler specifications, accessed via %:include().
2299 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2302 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2304 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2305 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2306 config/ia64/linux.h, config/mips/t-iris,
2307 config/mips/iris6.h: Revert to trunk version 167307.
2310 * configure, configure.ac, config.host, Makefile.in:
2311 Revert to trunk version 167307.
2313 2011-02-23 Gary Funck <gary@intrepid.com>
2315 * c-decl.c (undeclared_variable): fix typo. Inadvertently
2316 removed negation on following 'if'.
2318 2011-02-22 Gary Funck <gary@intrepid.com>
2320 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2321 to check for the usage of certain deprecated UPC keywords.
2322 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2323 * c-tree.h (undeclared_variable): Define prototype.
2325 2011-02-12 Gary Funck <gary@intrepid.com>
2327 * c-typeck.c: (build_c_cast, convert_for_assignment)
2328 Diagnose an attempt to convert from an integer to
2329 a pointer-to-shared as an error. Also, fix various
2330 error messages so that they use the preferred term
2331 pointer-to-shared instead of "shared pointer".
2333 2011-02-07 Gary Funck <gary@intrepid.com>
2335 * c-typeck.c: (convert_for_assignment)
2336 Fix typo. in error message.
2338 2011-01-23 Gary Funck <gary@intrepid.com>
2340 * c-typeck.c: (c_build_qualified_type)
2341 derive UPC block size by calling upc_get_block_size(),
2342 to ensure that the element type of an array of an array
2343 is derived correctly.
2345 2010-12-29 Gary Funck <gary@intrepid.com>
2347 Merge trunk version 168314 into gupc branch.
2349 2010-12-15 Gary Funck <gary@intrepid.com>
2351 Merge trunk version 167307 into gupc branch.
2353 2010-10-19 Gary Funck <gary@intrepid.com>
2355 * c-typeck.c: Fix typo in previous fix
2356 which led to a mis-compare for equal block sizes.
2358 2010-10-18 Gary Funck <gary@intrepid.com>
2360 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2361 diagnosed as an error
2363 The conversion from any type (shared or not) to
2364 a shared type is likely either meaningless or an error. This update
2365 makes any conversion to a shared type, an error.
2367 2010-10-18 Gary Funck <gary@intrepid.com>
2369 * c-typeck.c: Fix bug: passing int to shared pointer arg.
2370 generates spurious warning
2372 Add a #define procedure that does the same thing as
2373 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
2374 this procedure to diagnose passing an integer value to a
2375 pointer-to-shared as an error.
2377 2010-10-18 Gary Funck <gary@intrepid.com>
2379 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2380 matching routine declaration.
2382 When checking for type compatibility, shared qualified types must
2383 have the same block factor. This check was missing from
2384 comptypes_internal(). This update adds the check for blocking
2387 2010-10-17 Gary Funck <gary@intrepid.com>
2389 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2392 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2394 2010-10-17 Gary Funck <gary@intrepid.com>
2396 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2397 45869 - [4.5/4.6 Regression] type mismatch in shift expression
2398 produces ice with -O3 and -m32.
2400 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2402 2010-10-17 Gary Funck <gary@intrepid.com>
2404 * c-common.c: Diagnose the application of the various "*sizeof"
2405 operations on generic pointer-to-shared as a compilation error.
2407 2010-10-17 Gary Funck <gary@intrepid.com>
2409 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2410 message regarding a function parameter being declared with a shared
2413 The parameter's 'name' value is not defined at this point, and
2414 cannot be used in the error message. This update removes the
2415 reference to 'name', and eliminates the segfault.
2417 2010-10-16 Gary Funck <gary@intrepid.com>
2419 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2421 The gcc/Makefile.in rules for install-plugin had to be re-written to
2422 break up a long list of header files that exceeded the command line
2423 limitation imposed by Irix.
2425 Access functions for TFmode types had to be implemented.
2426 Apparently, this is the mode used for the SGI/MIPS port to represent
2429 2010-10-14 Gary Funck <gary@intrepid.com>
2431 * c-decl.c: Fix bug: Multiple equal blocking factors specified
2432 via typedef chain should not be diagnosed as an error.
2434 If the block size that is given by the typedef is equal to the block
2435 size given explicitly in the variable declaration, then do not
2436 complain. The easiest way to make this check was to create a
2437 temporary type that is a clone of the element type and then set its
2438 block size using the given layout qualifier. Then compare the block
2439 size of the temporary (the declaration) to the block size specified
2440 in the typedef. This complexity is needed, because the '[*]' block
2441 size needs to be calculated, and the '[]' needs to be mapped into a
2444 2010-10-10 Gary Funck <gary@intrepid.com>
2446 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2449 The compiler properly detected the presence of two or more layout
2450 qualifiers as an error, but then hit an assertion check, because the
2451 code that followed the error expected to see a qualifier and not a
2452 layout specifier. The fix is simple: just return immediately after
2453 detecting the error.
2455 2010-10-10 Gary Funck <gary@intrepid.com>
2457 * c-decl.c: Improve error diagnostics for various cases of UPC
2458 shared array type declarations.
2460 Add the check for this error: "In the dynamic translation
2461 environment, THREADS may not appear in declarations of shared arrays
2462 with indefinite block size". Also, fix up a few of the other
2463 related error diagnostics.
2465 2010-10-09 Gary Funck <gary@intrepid.com>
2467 * c-common.c: Fix bug: segfault on incomplete array definition.
2469 This turned out to be a bit complicated. The logic in
2470 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2471 the THREADS identifier in the case where the blocking factor has
2472 been set to indefinite ([]). This can happen when indefinite array
2473 declarations are processed for shared arrays. At that time, the
2474 file scope has been closed and THREADS is no longer in scope. Some
2475 more work is needed on upc_lang_layout_decl(). It has some
2476 duplication, and notably duplicates the two branches of the if
2477 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2478 caller of this routine (layout_decl()).
2480 The method of forcing a layout qualifier of [] in the indefinite
2481 declaration handler is odd a well. The code that just does the
2482 setting of the block factor, needs to moved into its own routine
2483 that doesn't depend upon a declspec for '[]' to be passed in, just
2484 in order to set the blocking factor to some value (in this case, 0).
2485 Also, the logic for how that shared type is constructed is strange.
2486 First the type with 0 blocking factor is set. Then the shared
2487 qualifier is removed from the type, and then added back later. The
2488 intermediate type has a blocking factor set, but it has no shared
2489 qualifier. Fixing this will require some thought. It is tempting
2490 just to make indefinite shared arrays an error, rather than forcing
2491 the dimension to be '1'.
2493 This likely fixes a serious error in the previous update to
2494 upc_lang_layout_decl(), where it didn't have the logic to set
2495 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
2496 the previous update would fail on many tests.
2498 2010-10-09 Gary Funck <gary@intrepid.com>
2500 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2501 (decl) is null, which can happen if some layout error occurred
2504 2010-10-09 Gary Funck <gary@intrepid.com>
2506 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2507 "variable-sized" when compiled in dynamic threads.
2509 This long-standing bug is easily fixed. Just check
2510 for the situation that the non-constant sized type is shared and
2511 that it does not have a dimension that references a multiple of
2512 threads. If this criteria is met, then issue a meaningful
2515 2010-10-01 Gary Funck <gary@intrepid.com>
2517 * configure, configure.ac: Update manual page, and bug reporting
2520 Update "man" page to reflect debugging switches. Also, some general
2521 clean up. Change the bug reporting URL to point to gccupc.org.
2523 2010-09-27 Gary Funck <gary@intrepid.com>
2525 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2526 the UPC forall depth count variable is not found.
2528 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2529 The compiler will generate code that references this variable in
2530 order to implement nested upc_forall semantics. If there is a
2531 compiler build or install problem, this variable may not be found.
2532 In this case, terminate with an internal_error().
2534 2010-09-26 Gary Funck <gary@intrepid.com>
2536 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2537 mis-diagnosed as syntax error.
2539 Fix a failure exhibited by the Berkeley test case,
2540 bug873a.upc, which has the code:
2542 upc_forall (;;;d) {...} The compiler did not properly handle
2543 the empty "condition" clause, and did not recover well when it was
2544 determined that the use of a double value, "d" above, was neither a
2545 pointer-to-shared nor an integer expression. The update implements a
2546 fix for both issues.
2548 See also: gcc/c-parser.c gcc/upc/upc-act.c
2550 2010-09-23 Gary Funck <gary@intrepid.com>
2552 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2553 incorporated into the referencing type.
2555 This was semi-fixed a few times before. This update fixes a few
2556 more places where the layout qualifier wasn't being propagated
2557 through typedef's properly. What made this a bit tricky is shown in
2558 the example cited in the bug report:
2560 typedef shared [5] int A_t; A_t A[5*THREADS];
2562 In the typedef, the blocksize is being applied to a shared *scalar*,
2563 and the code was applying the blocksize only to arrays. This update
2564 handles shared scalars correctly.
2566 2010-09-22 Gary Funck <gary@intrepid.com>
2568 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2569 upc_forall() semantics are not implemented
2571 The checkforall test in the Berkeley harness test suite indicated
2572 that GCC/UPC was not properly implementing nested upc_forall
2573 semantics. Nested upc_forall statements (both statically or
2574 dynamically nested) must implement their affinity clause as if it
2575 were "continue"; thus all steps in the loop must execute without
2576 regard for affinity. To implement these semantics a global depth
2577 counter, __upc_forall_depth, is maintained by the generated code
2578 that implements upc_forall.
2580 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2581 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2582 libupc/include/upc.h libupc/smp/upc_main.c
2584 2010-09-19 Gary Funck <gary@intrepid.com>
2586 * c-decl.c: c-decl.c: zero out the layout specifier, after
2587 processing an array type.
2589 Fix the previous fix, that moved the setting of the type's layout
2590 qualifier to the outside of the array type processing loop. What is
2591 missing from the fix is that the layout_qualifier variable needs to
2592 be cleared after setting the type's blocksize.
2594 2010-09-19 Gary Funck <gary@intrepid.com>
2596 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2597 given blocksize is greater than UPC_MAX_BLOCKSIZE.
2599 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2600 the actual maximum block size. Therefore, the message was correct,
2601 but the underlying value that was being checked was wrong. Change
2602 the values so that they agree with the actual implementation-defined
2605 2010-09-11 Gary Funck <gary@intrepid.com>
2607 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2608 multi-dimensional shared array with dynamic threads.
2610 This declaration caused an internal compiler error when compiled
2611 with dynamic threads:
2612 shared [*] int A[THREADS][16]; The bug was discovered when
2613 compiling the RTED_UPC test suite.
2615 The fix is to process layout qualifiers after the entire array type
2616 has been built. Otherwise, we try to calculate the blocksize on a
2617 shared array type that has not had its "size depends upon the value
2618 of THREADS" flag set.
2620 Also, added a test case.
2622 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2624 2010-07-11 Gary Funck <gary@intrepid.com>
2626 Fix a bug where a statement in c_build_qualified_type()
2627 in the trunk had been inadvertently deleted.
2628 This bug showed up in the IA64 port, because jmpbuf's
2629 on that architecture must be 16 byte aligned, and they were not.
2630 c-typeck.c (c_build_qualified_type): Revive the deleted line.
2632 2010-07-08 Gary Funck <gary@intrepid.com>
2634 Make changes so that other language compilers
2635 will build and bootstrap.
2636 * c-family/c-common.c (compiling_upc, flag_upc,
2637 flag_upc_instrument, flag_upc_instrument_functions,
2638 use_upc_dwarf2_extensions): Move to stub-upc.c and
2640 * c-family/c-common.h (use_upc_dwarf2_extensions,
2641 compiling_upc): Add extern definitions - needed
2642 to compile/build other language front ends.
2643 * c-family/c.opt: Fix the spelling of ObjC.
2644 It had been incorrectly spelled as Objc.
2645 * c-family/c.opt: Add UPC for the various switches
2646 that are valid for both C and ObjC.
2647 * c-fmaily/c-opts.c: Add CL_UPC to the list of
2648 supported options switches when compiling assembly
2650 * lto/lto-lang.c (use_upc_dwarf2_extensions,
2651 flag_upc_instrument, flag_upc_instrument_functions):
2652 Remove these definitions. They have been moved
2653 to c-family/stub-upc.c.
2654 * upc/ChangeLog: Move relevant entries
2656 * c-family/stub-upc.c (compiling_upc, flag_upc,
2657 flag_upc_instrument, flag_upc_instrument_functions,
2658 use_upc_dwarf2_extensions): Moved from c-common.c
2659 * upc/upc-lang.c (compiling_upc, flag_upc,
2660 flag_upc_instrument, flag_upc_instrument_functions,
2661 use_upc_dwarf2_extensions): Moved from c-common.c
2662 * objc/objc-act.c (objc_gimplify_expr): Add additional
2663 parameters to c_gimplify_expr() call, that are used
2664 by upc's tree rewrites.
2665 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2666 * gcc/cp/lex.c (init_reswords): If not compiling
2667 UPC, then mask off the UPC keywords.
2668 * cp/Make-lang.in (C_STUB_OBJS): Use this
2669 make macro to link with c-family/stub-objc.o
2670 and c-family/stub-upc.o.
2671 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2672 * java/Make-lang.in (C_STUB_OBJS): Likewise.
2673 * objc/Make-lang.in: Link with c-family/stub-upc.o
2674 to avoid undefined references.
2675 c-parser.c: Fix line indentation.
2676 * libcpp/include/cpplib.h: Remove CL_UPC from
2677 the list of language kinds accepted by the
2678 C preprocessor. This is not necessary because
2679 UPC is a derivative of C99, and does not need
2680 a different language kind.
2681 * c-fmaily/c-opts.c (c_common_handle_option):
2682 Call set_std_c99() when processing the
2683 "--lang upc" switch, instead of setting the
2684 language kind to CL_UPC.
2685 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2687 2010-07-03 Gary Funck <gary@intrepid.com>
2689 Merge trunk version 161517 into gupc branch.
2690 * gcc/stub-upc.c: Move to gcc/c-family/.
2691 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2692 Add 'unused' attributes to avoid "set, but
2693 not referenced" warnings.
2694 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2697 2010-03-01 Gary Funck <gary@intrepid.com>
2699 Create gupc branch from trunk version 157149.