1 2013-02-04 Gary Funck <gary@intrepid.com>
3 Merge trunk version 195707 into gupc branch.
5 2013-01-28 Gary Funck <gary@intrepid.com>
7 Merge trunk version 195502 into gupc branch.
9 2013-01-21 Gary Funck <gary@intrepid.com>
11 Merge trunk version 195330 into gupc branch.
13 2013-01-14 Gary Funck <gary@intrepid.com>
15 Merge trunk version 195164 into gupc branch.
17 2013-01-07 Gary Funck <gary@intrepid.com>
19 Merge trunk version 194962 into gupc branch.
21 2012-12-24 Gary Funck <gary@intrepid.com>
23 Merge trunk version 194709 into gupc branch.
25 2012-12-17 Gary Funck <gary@intrepid.com>
27 Merge trunk version 194552 into gupc branch.
29 2012-12-10 Gary Funck <gary@intrepid.com>
31 Merge trunk version 194351 into gupc branch.
33 2012-12-03 Gary Funck <gary@intrepid.com>
35 Merge trunk version 194076 into gupc branch.
37 2012-11-30 Gary Funck <gary@intrepid.com>
39 Released GUPC 4.8.0.2 based on version 193446.
40 Date of release: 2012-11-12.
41 * DEV-PHASE: Bump release identifier to 4.8.0-3.
42 * DATESTAMP: Bump date stamp.
44 2012-11-26 Gary Funck <gary@intrepid.com>
46 Merge trunk version 193807 into gupc branch.
48 2012-11-20 Gary Funck <gary@intrepid.com>
50 Merge trunk version 193672 into gupc branch.
52 2012-11-19 Gary Funck <gary@intrepid.com>
54 Merge trunk version 193617 into gupc branch.
56 2012-11-15 Gary Funck <gary@intrepid.com>
58 Merge trunk version 193426 into gupc branch.
60 2012-11-12 Gary Funck <gary@intrepid.com>
62 Released GUPC 4.8.0.1 based on version 192948.
63 Date of release: 2012-10-29.
64 * DEV-PHASE: Bump release identifier to 4.8.0-2.
65 * DATESTAMP: Bump date stamp.
67 2012-11-05 Gary Funck <gary@intrepid.com>
69 Merge trunk version 193152 into gupc branch.
71 2012-10-29 Gary Funck <gary@intrepid.com>
73 Merge trunk version 192909 into gupc branch.
75 2012-10-28 Nenad Vukicevic <nenad@intrepid.com>
77 Remove unused --upc-pthreads-per-process compile switch.
78 * c-family/c.opt: Remove --upc-pthreads-per-process switch
79 that compiler/runtime do not use.
80 * c-family/c-opts.c (c_common_handle_option): Remove support for
81 --upc-pthreads-per-process switch.
82 * c-family/c-common.c: Ditto.
83 * c-family/c-common.h: Ditto.
85 2012-10-27 Gary Funck <gary@intrepid.com>
87 * defaults.h: fix typos and formatting in UPC-related entries.
89 2012-10-26 Nenad Vukicevic <nenad@intrepid.com>
91 Place shared initialization code into the .text
92 section instead of a separate .upc_init section.
93 * defaults.h (UPC_INIT_SECTION_NAME): Delete.
94 (UPC_INIT_BEGIN_NAME): Delete.
95 (UPC_INIT_END_NAME): Delete.
96 * doc/tm.texi.in: Ditto.
99 2012-10-22 Gary Funck <gary@intrepid.com>
101 Merge trunk version 192673 into gupc branch.
103 2012-10-15 Gary Funck <gary@intrepid.com>
105 Merge trunk version 192449 into gupc branch.
107 2012-10-08 Gary Funck <gary@intrepid.com>
109 Merge trunk version 192198 into gupc branch.
111 2012-10-01 Gary Funck <gary@intrepid.com>
113 Merge trunk version 191931 into gupc branch.
115 2012-09-26 Gary Funck <gary@intrepid.com>
117 Implement support for various UPC version 1.3 specification
118 additions and changes. Deprecate support for upc_local_alloc.
119 Add support for upc_tick (wall-clock timer) library.
120 Add support for collective de-allocation functions:
121 upc_all_free and upc_all_lock_free.
122 Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
123 libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
125 2012-09-24 Gary Funck <gary@intrepid.com>
127 Merge trunk version 191658 into gupc branch.
129 2012-09-17 Gary Funck <gary@intrepid.com>
131 Merge trunk version 191376 into gupc branch.
133 2012-09-10 Gary Funck <gary@intrepid.com>
135 Merge trunk version 191141 into gupc branch.
137 2012-08-27 Gary Funck <gary@intrepid.com>
139 Merge trunk version 190707 into gupc branch.
140 * tree.h (struct tree_base): Adjust various
141 UPC tree and type flags to refer to the
142 newly introduced u.bits field.
144 2012-08-20 Gary Funck <gary@intrepid.com>
146 Merge trunk version 190524 into gupc branch.
147 Incorporates a fix in genoutput.c (to properly use
148 CONST_CAST) that led to build failures with
149 older versions of g++.
151 2012-08-16 Gary Funck <gary@intrepid.com>
153 Merge trunk version 190437 into gupc branch.
154 Incorporates a fix for a build failure on the PPC
155 due to passing incorrect switches to the assembler.
156 Also, first merged trunk revision that compiles GCC
157 with the C++ compiler in the first stage.
159 2012-08-13 Gary Funck <gary@intrepid.com>
161 Merge trunk version 190336 into gupc branch.
163 2012-08-09 Gary Funck <gary@intrepid.com>
165 * c-family/c-common.c (c_fully_fold_internal): Do not fold
166 offsetof-like expressions when they are applied to UPC
169 2012-08-06 Gary Funck <gary@intrepid.com>
171 Merge trunk version 190173 into gupc branch.
173 2012-08-01 Gary Funck <gary@intrepid.com>
175 Merge trunk version 190063 into gupc branch.
176 Incorporates fix for build failure on IA64.
178 2012-07-30 Gary Funck <gary@intrepid.com>
180 Merge trunk version 189954 into gupc branch.
182 2012-07-27 Gary Funck <gary@intrepid.com>
184 Merge trunk version 189856 into gupc branch.
185 Incorporates fix for bootstrap with a sub-set of language
186 specific source directories present.
187 * optabs.c: Revert to trunk. Rather than defining opcodes
188 as a way of defining get/put runtime library function names,
189 generate them directly in gcc/upc/upc-genericize.c.
191 * genopinit.c: Ditto.
193 2012-07-23 Gary Funck <gary@intrepid.com>
195 Merge trunk version 189777 into gupc branch.
197 2012-07-16 Gary Funck <gary@intrepid.com>
199 Merge trunk version 189545 into gupc branch.
201 2012-07-12 Gary Funck <gary@intrepid.com>
203 Merge trunk version 189366 into gupc branch.
205 2012-07-05 Gary Funck <gary@intrepid.com>
207 Merge trunk version 189274 into gupc branch.
208 Incorporates graphite build infrastructure changes.
210 2012-07-04 Gary Funck <gary@intrepid.com>
212 Merge trunk version 189080 into gupc branch.
213 * Makefile.in: Adjust for move of C front-end files.
214 * c/Make-lang.in: Ditto.
216 2012-07-03 Gary Funck <gary@intrepid.com>
218 Merge trunk version 189078 into gupc branch.
220 2012-06-25 Gary Funck <gary@intrepid.com>
222 Merge trunk version 188931 into gupc branch.
224 2012-06-18 Gary Funck <gary@intrepid.com>
226 Merge trunk version 188721 into gupc branch.
228 2012-06-11 Gary Funck <gary@intrepid.com>
230 Merge trunk version 188380 into gupc branch.
232 2012-06-04 Gary Funck <gary@intrepid.com>
234 Merge trunk version 188168 into gupc branch.
236 2012-05-29 Gary Funck <gary@intrepid.com>
238 Merge trunk version 187927 into gupc branch.
240 2012-05-18 Gary Funck <gary@intrepid.com>
242 Merge trunk version 187666 into gupc branch.
243 Incorporates fix for ICE in tree vectorization pass
244 when processing strided loads.
246 2012-05-17 Gary Funck <gary@intrepid.com>
248 Merge trunk version 187578 into gupc branch.
250 2012-05-09 Gary Funck <gary@intrepid.com>
252 Merge trunk version 187347 into gupc branch.
253 Incorporates fix for segfault in tree vectorization pass.
255 2012-05-04 Nenad Vukicevic <nenad@intrepid.com>
257 * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
258 Appropriate libraries and include files are added on the
259 command line to make it possible to compile with the driver
262 2012-04-29 Nenad Vukicevic <nenad@intrepid.com>
264 * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
265 PPC ABI. In the UPC 'struct' pointer-to-shared representation,
266 a function returns a pointer-to-shared in memory instead
268 (rs6000_pass_by_reference): Ditto.
270 2012-04-28 Gary Funck <gary@intrepid.com>
272 * c-decl.c (grokdeclarator): Set 'type' to error node
273 after detecting "shared auto variable" error to avoid
274 downstream complications.
275 * upc-act.c: Fix a couple of spelling errors in comments.
277 2012-04-26 Gary Funck <gary@intrepid.com>
279 * c-family/c-pragma.c (handle_pragma_upc):
280 Fix typo in warning message.
282 2012-04-17 Gary Funck <gary@intrepid.com>
284 Merge trunk version 186486 into gupc branch.
286 2012-04-17 Gary Funck <gary@intrepid.com>
288 * c-family/c-pragma.c (disable_pupc_mode): Return the previous
289 value of the pupc mode. Fixes a compile-time warning.
290 * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
291 disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
292 Improve source formatting.
294 2012-04-09 Gary Funck <gary@intrepid.com>
296 Merge trunk version 186243 into gupc branch.
297 Incorporates a powerpc 'ffi' fix.
299 2012-03-16 Gary Funck <gary@intrepid.com>
301 Merge trunk version 185454 into gupc branch.
302 Incorporates a libgcc fix for builds on Darwin.
304 2012-03-13 Gary Funck <gary@intrepid.com>
306 Merge trunk version 185278 into gupc branch.
307 * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
308 call build_pointer_type() to apply UPC-specific qualifiers.
309 * top-level/configure.ac: factor the checking for posix hostst
310 out of the libgomp section so that it can also be used by libgupc.
311 * top-level/configure: Re-generate.
312 * DEV-PHASE: bump to 4.8.0-1.
314 2012-03-12 Gary Funck <gary@intrepid.com>
316 * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
317 the mode for a pointer for upc-pointer-to-shared types.
319 2012-03-04 Gary Funck <gary@intrepid.com>
321 Merge trunk version 184900 into gupc branch.
323 2012-02-17 Gary Funck <gary@intrepid.com>
325 Released GUPC 4.7.0.2 based on version 183992.
326 * DEV-PHASE: Bump release identifier to 4.7.0-3.
327 * DATESTAMP: Bump date stamp.
329 2012-02-03 Nenad Vukicevic <nenad@intrepid.com>
331 * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
332 code generation (same as #pragma pupc off).
333 (set_pupc_mode): New. Set/restore profiling mode.
334 * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
335 (set_pupc_mode): New. Prototype.
336 * upc/upc-act.c (upc_write_init_func): Disable emitting of the
337 profiling code for shared variables initialization routines.
339 2012-01-31 Gary Funck <gary@intrepid.com>
341 Merge trunk version 183751 into gupc branch.
342 Incorporates fix for bootstrap failure on openSUSE 12.1.
344 2012-01-10 Gary Funck <gary@intrepid.com>
346 Merge trunk version 183072 into gupc branch.
347 Incorporates libcpp __BASE_FILE__ fix.
349 2011-12-20 Nenad Vukicevic <nenad@intrepid.com>
351 * top-level/Makefile.def (flags_to_pass): Added GUPC
352 defines. Fixes the make error when upc is not specified as one
353 of the languages to build.
354 * top-level/Makefile.in: Re-generate.
356 2011-11-22 Gary Funck <gary@intrepid.com>
358 * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
359 * dwarf2out.c (gen_compile_unit_die): Check for
360 the "GNU UPC" language string in lieu of "GCC UPC".
361 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
363 2011-11-18 Gary Funck <gary@intrepid.com>
365 Merge trunk version 181552 into gupc branch.
366 Incorporates libgcc/libunwind fix for IA64.
368 2011-11-19 Gary Funck <gary@intrepid.com>
370 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
371 Add check for UPC when defining the language type value
372 in a traceback entry.
374 2011-11-18 Gary Funck <gary@intrepid.com>
376 Merge trunk version 181493 into gupc branch.
377 Incorporates final fix for PR target/49992.
379 2011-11-09 Nenad Vukicevic <nenad@intrepid.com>
381 * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
382 change that converted relative include paths into absolute
383 ones, as it does not work with older version of make (3.80).
385 2011-10-27 Nenad Vukicevic <nenad@intrepid.com>
387 Apply patch for Darwin build - PR49992.
388 * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
389 * gcc/configure.ac: Ditto.
390 * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
391 * gcc/ada/gcc-interface/Makefile.in: Ditto.
392 * top-level/configure: Re-generate.
393 * gcc/configure: Re-genrate.
395 2011-10-26 Gary Funck <gary@intrepid.com>
397 Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
398 "libupc" to "libgupc".
399 * top-level/configure.ac: Implement support for cross-builds, and
400 adjust for rename of libupc to libgupc.
401 * top-level/Makefile.tpl: Ditto.
402 * top-level/Makefile.def: Ditto.
403 * top-level/configure: Re-generate.
404 * top-level/Makefile.in: Re-generate.
405 * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
406 * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
407 * doc/tm.texi: Re-generate.
408 * tree-pretty-print.c (dump_block_node): Delete unused variable.
409 * gcc.c: Adjust for rename of libupc to libgupc.
410 * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
411 Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
412 Change "xupc" to "xgupc".
413 * configure.ac: Change "GCC UPC" to "GNU UPC".
414 * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
415 so that they are absolute paths. This is needed because
416 the upc-crtstuff builds are in the libgupc library build
417 directories which are not at the same level as libgcc.
418 * config/darwin.h: Adjust for rename of libupc to libgupc.
420 2011-10-20 Gary Funck <gary@intrepid.com>
422 Merge trunk version 180276 into gupc branch.
423 Incorporates fix for PR bootstrap/50709.
425 2011-10-20 Gary Funck <gary@intrepid.com>
427 Merge trunk version 180246 into gupc branch.
429 2011-10-19 Gary Funck <gary@intrepid.com>
431 Merge trunk version 180233 into gupc branch.
432 Incorporates fix for PR debug/49310 (var tracking).
434 2011-10-11 Nenad Vukicevic <nenad@intrepid.com>
436 * testsuite/lib/upc-dg.exp: Limit number of torture runs to
437 only four (O0 static/dynamic, O3 static/dynamic).
438 Detect -fupc-threads-0 as an option for dynamic threads
441 2011-10-10 Gary Funck <gary@intrepid.com>
443 * tree.c (check_qualified_type, check_aligned_type):
444 Call tree_int_cst_equal() to compare UPC blocking factors
445 if the corresponding tree pointers are not equal.
446 * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
448 2011-10-07 Nenad Vukicevic <nenad@intrepid.com>
450 Add configuration checks for struct/packed builds so we can
451 use upc_struct_pts/upc_packed_pts selectors in the testsuite.
452 * testsuite/lib/target-supports.exp
453 (check_effective_target_upc_struct_pts): New.
454 (check_effective_target_upc_packed_pts): New.
456 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
458 Add to FLAGS the flags needed to disable inlining of
459 UPC run-time access routines.
460 * testsuite/lib/target-supports.exp
461 (add_options_for_upc_library_calls): New.
463 2011-09-15 Gary Funck <gary@intrepid.com>
465 Fix ICE involving shared bit field accesses.
466 * tree.c (build3_stat): Propagate TEEE_SHARED()
467 and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
469 2011-09-13 Gary Funck <gary@intrepid.com>
471 Merge trunk version 178795 into gupc branch.
472 Incorporates fix to PR bootstrap/50010 for x86-32.
474 2011-09-08 Gary Funck <gary@intrepid.com>
476 Merge trunk version 178557 into gupc branch.
478 2011-09-07 Gary Funck <gary@intrepid.com>
480 Ensure that UPC pointer-to-shared type alignment is
481 propagated to the final type. Revert to long-standing
482 alignment policy: twice the size of a "C" pointer.
483 * tree.c (build_pointer_type): Propagate the alignment
484 of the UPC pointer-to-shared representation type
485 into the newly built pointer type.
487 2011-08-30 Gary Funck <gary@intrepid.com>
489 * tree.h (check_qualified_type): Change 'const_tree'
490 argument types back to 'tree' to avoid complaints
491 of assignment drops qualifiers for invocations of the
492 newly implemented TYPE_BLOCK_FACTOR() macro, which
493 invokes hash functions with 'tree' pointer values that
494 are not const qualified.
495 * tree.c (check_qualified_type, check_aligned_type): Ditto.
496 * c-typeck.c (comptypes_internal): Ditto.
498 2011-08-29 Gary Funck <gary@intrepid.com>
500 Fixes for regressions noted running "make check"
502 * fold-const.c (fold_unary_loc): Execute UPC-specific
503 checks for a cast-of-a-cast, only if one of the
504 operands is a UPC pointer-to-shared value.
505 * opts.c (print_specific_help): Fix a comparison
506 in an assert that checks that there are enough
507 bits reserved for the number of languages defined
510 2011-08-29 Gary Funck <gary@intrepid.com>
512 Implement a hash table to record UPC block factors.
513 * c-family/stub-upc.c (upc_block_factor_insert,
514 upc_block_factor_lookup): New dummy stub procedures.
515 * c-family/c-common.c (c_sizeof_or_alignof_type):
516 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
517 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
518 to copy (hashed) UPC blocking factor.
519 (set_type_quals): Likewise.
520 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
521 TYPE_HAS_THREADS_FACTOR().
522 (type_common.block_factor): Delete.
523 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
524 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
525 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
526 UPC blocking factors greater than one.
527 * dwarf2out.c (modified_type_die): Re-implement
528 logic that records UPC blocking factor in the generated
529 DWARF2 debugging information.
530 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
531 TYPE_HAS_THREADS_FACTOR().
532 * c-decl.c (finish_decl, grokdeclarator):
533 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
534 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
535 used by UPC, and print UPC-specific information.
537 2011-08-28 Gary Funck <gary@intrepid.com>
539 Re-work the type machinery to fully support and to unify support
540 for the UPC layout qualifier (blocking factor).
541 * c-family/stub-upc.c (upc_set_block_factor): Delete.
542 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
543 and update prototype.
544 * c-family/c-common.c (complete_array_type): call newly
545 defined c_build_qualified_type_1() instead of
546 upc_set_block_factor().
547 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
548 upc_apply_layout_qualifier() and update prototype.
549 (upc_set_block_factor): Delete prototype.
550 * c-family/c-common.h (c_build_qualified_type): redefine
551 as a pre-processor macro that invokes c_build_qualified_type_1()
552 with a null UPC layout qualifier.
553 (c_build_qualified_type_1): New. Add layout qualifier argument
554 to old c_build_qualified_type() prototype.
555 * tree.c (set_type_quals, check_qualified_type):
556 Add layout qualifier as argument.
557 (check_aligned_type): Add check for UPC block factor equality.
558 (get_qualified_type_1): Rename from get_qualified_type() and
559 add layout qualifier as argument.
560 (build_qualified_type_1): Rename from build_qualified_type() and
561 add layout qualifier as argument.
562 * tree.h (check_qualified_type): Add layout qualifier as argument
564 (get_qualified_type): Re-define as a as a pre-processor macro
565 that invokes get_qualified_type_1() with a null
566 UPC layout qualifier.
567 (get_qualified_type_1): Rename from get_qualified_type() and
568 add layout qualifier as argument.
569 * cp/tree.c (c_build_qualified_type_1): Rename from
570 c_build_qualified_type() and add (unused) layout qualifier
572 * c-decl.c (finish_decl): re-format long error messages.
573 (grokdeclarator): Re-work the logic so that it calls
574 upc_grok_layout_qualifier() to handle the UPC layout
575 qualifier, if present.
576 * c-typeck.c (qualify_type, common_pointer_type,
577 build_component_ref): Re-work the logic so that it calls
578 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
580 (c_build_qualified_type_1): Rename from c_build_qualified_type()
581 and add layout qualifier argument.
582 * print_tree.c (print_node): Re-format a long line.
584 2011-08-26 Gary Funck <gary@intrepid.com>
586 Merge trunk version 177949 into gupc branch.
587 * c-family/c-common.h (enum rid): Bump the number of type modifiers
589 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
590 to add new rliterals column value.
592 2011-08-26 Gary Funck <gary@intrepid.com>
594 * convert.c (convert_to_integer): Fix the check for the
595 difference between two UPC pointers-to-shared values.
597 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
599 * configure.ac: Fix the name for --with-upc-pts-packed-bits
600 option. Support --with-upc-packed-bits as deprecated. Fix the code to
601 correctly check packed bits.
602 * configure: Re-generate.
604 2011-08-16 Gary Funck <gary@intrepid.com>
606 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
607 the barrier id expression is not an integer expression.
609 2011-08-12 Gary Funck <gary@intrepid.com>
611 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
613 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
614 Set mode of UPC pointer-to-shared rep. to an
615 integral mode of size at least as large as the
616 size of the representation's struct type.
618 2011-08-12 Gary Funck <gary@intrepid.com>
620 Rework/simplify the UPC genericize pass.
621 * c-family/stub-upc.c (upc_apply_layout_qualifier,
622 upc_build_pointer_type): New.
623 (upc_set_block_factor): Adjust to new calling sequence.
624 (upc_build_shared_var_addr): Delete.
625 * c-family/c-common.c (complete_array_type): Adjust call
626 to upc_set_block_factor().
627 * c-family/c-upc.h (upc_apply_layout_qualifier,
628 upc_build_pointer_type): New.
629 (upc_build_shared_var_addr): Delete.
630 (upc_set_block_factor): Adjust to new calling sequence.
631 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
632 * c-decl.c (grokdeclarator): Call newly defined
633 upc_apply_layout_qualifier() instead of upc_set_block_factor().
634 * c-decl.c (grokdeclarator): Split long UPC-related error
635 messages into two lines.
636 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
637 directly. Revert that change to trunk. (upc_genericize() will
638 handle lowering the expressions that take the address of a
640 * config/i386/i386.c (ix86_promote_function_mode): For UPC
641 pointers-to-shared, return the type mode of the UPC pointer-to-shared
644 2011-08-10 Gary Funck <gary@intrepid.com>
646 Implement additional fixes for recent merge with trunk.
647 * explow.c (promote_mode): Do not attempt to promote
648 the mode for UPC pointer-to-shared types.
649 * config/i386/i386.c (function_value_64): Ditto.
651 2011-08-07 Gary Funck <gary@intrepid.com>
653 Merge trunk version 177548 into gupc branch.
654 * config/i386/i386.c (ix86_promote_function_mode):
655 Do not promote UPC pointers-to-shared to Pmode.
656 * c-family/c-ommon.c (pointer_int_sum):
657 Also check the pointer operand, rather than just
658 its type, when making the decision to derive
659 the equivalent unshared type.
660 * tree.c (build2_stat): If the type of the result
661 passed in as an argument is a UPC shared type,
662 derive the unshared equivalent when calculating
663 the result type of the node.
665 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
667 * config/darwin.c: Disable var_tracking option
668 on -O0 as it is supposed to run only when optimization
669 is applied. See GCC bug 49743.
671 2011-07-06 Gary Funck <gary@intrepid.com>
673 Re-implement the pass that lowers trees generated by
674 the UPC front-end into GENERIC. Previously this was
675 done within the gimplification framework, but this
676 required that gimplification be run before inlining
677 and various other passes, which did not fit in well
678 with the current design of the middle-end passes.
679 Now, the lowering is done by a newly defined language
680 specific genericize hook. With this change, we are
681 are able to undo some extensions made to the gimplify
682 logic, and thus can revert several files to trunk.
684 * c-decl.c: Add a check for UPC deprecated names which
685 may appear as undefined function names.
686 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
687 LTI_upc_getaddr): Remove definitions of unused UPC
688 library function names. These were defined back when
689 the libfunc interface was used to call these routines.
690 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
691 in UPC lowering (genericize) pass.
692 * langhooks.h (gimplify_expr): Revert to trunk's definition.
693 (instrument_func): Delete this hook. Now handled in
695 * tree-pass.h: Revert to trunk.
696 * c-typeck.c (build_unary_op): Adjust reference to
697 upc_genericize() in a comment.
698 * gimplify.c (create_tmp_var_raw): Delete logic that
699 was converting UPC shared types into unshared types
700 to be used for temporaries. Now handled in upc_genericize().
701 Replace with an assertion check.
702 (prepare_gimple_addressable): Revert to trunk's definition.
703 No longer needed as an externally called function.
704 (flag_instrument_functions_exclude_p): Re-define as
705 an externally called function.
706 (gimplify_function_tree): Delete code that implemented
707 call to UPC's language specific function instrumentation hook.
708 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
709 (prepare_gimple_addressable): Delete extern definition;
710 revert to trunk's definition.
711 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
712 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
713 * c-family/c-gimplify.c: Revert to trunk.
714 * cp/cp-gimplify.c: Revert to trunk.
715 * cp/cp-tree.h: Revert to trunk.
716 * explow.c: Revert to trunk.
717 * langhooks.c: Revert to trunk.
718 * libfuncs.h: Revert to trunk.
719 * objc/objc-act.c: Revert to trunk.
721 2011-06-30 Gary Funck <gary@intrepid.com>
723 * c-family/c.opt: Bring options definitions up-to-date
724 with respect to changes made in the trunk.
726 2011-06-29 Gary Funck <gary@intrepid.com>
728 Merge trunk version 175584 into gupc branch.
730 2011-06-13 Gary Funck <gary@intrepid.com>
733 * include/cpplib.h (enum c_lang):
734 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
735 This keeps all the "C" variants together.
736 * init.c (lang_defaults): Add an entry for UPC.
738 2011-06-09 Gary Funck <gary@intrepid.com>
740 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
741 a 32-bit target, the size expression overflowed, the result was
742 error_mark_node, and an ICE was triggered on an attempt to evaluate
743 C_TYPE_VARIABLE_SIZE() on the error node.
744 (upc_blocksizeof_expr, upc_blocksizeof_type,
745 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
746 Make similar changes to avoid further processing of error_mark_node.
748 2011-06-07 Gary Funck <gary@intrepid.com>
750 * sel-sched.c (move_op): Incorporate the following
751 patch to eliminate ICE at -O3 on IA64/Altix.
753 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
755 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
756 code_motion_path_driver returned 0 or 1.
757 (sel_region_finish): Clear h_d_i_d.
759 2011-06-02 Gary Funck <gary@intrepid.com>
761 Merge trunk version 174558 into gupc branch.
763 2011-05-30 Gary Funck <gary@intrepid.com>
765 * configure.ac: Make the default order of the virtual
766 address field in a UPC pointer-to-shared to be "first".
767 This reverts to the previous setting, and is a short term
768 measure to work around a bug found on the IA64,
769 where vaddr=last led to incorrect code generation.
770 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
771 in AC_DEFINE(), to agree with recent changes in files
772 that reference this define.
773 configure, config.in: Regenerate.
775 2011-05-26 Gary Funck <gary@intrepid.com>
777 * configure.ac: Fix typo when referring to $upc_vaddr_order.
778 configure: Regenerate.
780 * ../fixincludes/fixincl.x: Revert to trunk.
781 This file is auto-generated, and should not be merged.
783 2011-05-18 Gary Funck <gary@intrepid.com>
785 Merge trunk version 173845 into gupc branch.
787 2011-05-17 Gary Funck <gary@intrepid.com>
789 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
790 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
792 * c-family/c-pragma.c: Remove conditional compilation
793 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
794 Test 'compiling_upc' when compiling to determine if
795 the "upc" and "pupc" pragmas should be registered.
797 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
798 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
799 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
800 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
801 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
802 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
803 Move these target-dependent definitions from config/upc-conf.h
806 * configure.ac: Improve the logic for UPC-related options.
807 Delete references to pre-processor definitions that have
808 been moved to "upc/upc-pts.h".
810 * configure, config.in: Regenerate.
812 * Makefile.in (UPC_PTS_REP): Remove definition and revert
813 to trunk. This substitution variable was used to
814 configure the representation-specific versions of
815 the tree rewrites that operate on UPC pointer-to-shared
818 * c-parser.c (c_parser_upc_forall_statement): Remove
819 reference to UPC_FORALL_DEPTH_NAME, and call
820 newly defined upc_rts_forall_depth_var() instead.
822 * config/upc-config.h: Delete. Various definitions
823 moved to "upc/upc-rts-names.h", "defaults.h", and
826 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
827 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
828 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
829 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
830 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
831 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
832 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
833 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
834 New. Document UPC target macros.
835 doc/tm.texi: Regenerate.
837 2011-05-07 Gary Funck <gary@intrepid.com>
839 * ../configure.ac: Disable build of libupc
840 on non POSIX hosted systems. Use AS_HELP_STRING
841 to define messages. Remove 'word-pair' as a
842 possible --with-upc-pts UPC pointer-to-shared
845 * ../configure: Regenerate.
847 * configure.ac: Use AS_HELP_STRING to define messages.
848 Remove 'word-pair' as a possible --with-upc-pts
849 UPC pointer-to-shared representation.
850 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
851 (UPC_MAX_BLOCK_SIZE): Correct the default value.
853 * configure: Regenerate.
855 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
858 * ChangeLog.upc: Fix some typos.
860 2011-05-07 Gary Funck <gary@intrepid.com>
862 * ../maintainer-scripts/gcc_release: Add "upc"
863 as one of the released languages.
865 2011-05-06 Gary Funck <gary@intrepid.com>
867 Eliminate compilation warnings, by fixing
868 #include's and updating function prototypes.
870 * c-family/c-cppbuiltin.c: Include c-upc.h.
872 * optabs.c (gen_libfunc): Change type of 'suffix'
873 parameter to conform with prototype.
875 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
876 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
879 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
882 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
883 argument values to cp_gimplify_expr.
885 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
886 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
887 pre-processor definitions that are no longer
888 needed to build the 'upc' command (upc-cmd.c)
889 because the linker specs. defined in libupc
890 take care of linking in the needed libraries.
892 * c-parser.c (c_parser_upc_forall_statement):
893 initialize affinity_loc to avoid "maybe unused" warning.
894 (c_parser_upc_sync_statement): Remove un-needed
895 'ret' variable. Cast return value from
896 'upc_build_sync_stmt' to 'void' to avoid
897 compile-time warning.
899 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
900 integer constant, not a string. Range is restricted
901 to maximum positive 32-bit integer (2+ billion) to
902 fit in with the use of 'int' in the front-end's
903 switch handling logic.
905 2011-05-06 Gary Funck <gary@intrepid.com>
907 Upgrade c-family source files to conform with modularity
908 improvements. Mainly, remove #include of c-tree.h in files
909 under c-family, and define a new UPC-specific #include file,
912 * c-family/stub-upc.c: Remove #include of c-tree.h and
913 upc/upc-act.h. Replace with #include of c-common.h
915 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
916 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
917 upc_localsizeof_expr, upc_localsizeof_type,
918 upc_shared_type_p): Delete.
920 * c-family/c-opts.c: Add #include of c-upc.h
922 * c-family/c-common.c: Remove #include of c-tree.h and
923 add #include of c-upc.h.
925 * c-family/c-upc.h: New. Define API for UPC-specific functions
926 (mostly implemented in upc/upc-act.c).
928 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
929 Remove extern definitions.
931 * c-family/c-pragma.c: Remove #include of c-tree.h.
932 Add #include of c-upc.h.
934 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
936 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
937 upc/upc-act.c, and define as a macro.
938 (expand_affinity_test): Remove unused external definition.
939 (build_upc_unshared_type): Add external definition.
940 (upc_shared_type_p): Remove external definition.
942 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
944 * dojump.c: Remove #include of c-tree.h.
946 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
948 (count_upc_threads_refs, is_multiple_of_upc_threads,
949 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
950 upc_build_shared_var_addr, upc_build_sync_stmt,
951 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
952 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
953 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
954 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
955 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
956 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
957 set_upc_consistency_mode, get_upc_consistency_mode,
958 push_upc_consistency_mode, pop_upc_consistency_mode,
960 Move external definitions to c-family/c-upc.h.
961 (upc_blocksizeof_type, upc_localsizeof_type,
962 upc_elemsizeof_type): Remove external definitions;
963 these functions were moved to c-parser.c.
965 * c-decl.c: Add #include of c-upc.h.
967 * c-typeck.c: Add #include of c-upc.h.
969 * c-convert.c: Add #include of c-upc.h.
971 * ChangeLog.upc: Fix typo.
973 * Makefile.in: Add references to c-family/c-upc.h, everywhere
974 there is a reference to c-family/c-objc.h.
975 Remove extraneous reference to upc-act.h.
977 * c-parser.c: Add #include of c-upc.h.
978 (upc_blocksizeof_expr, upc_blocksizeof_type,
979 upc_elemsizeof_expr, upc_elemsizeof_type,
980 upc_localsizeof_expr, upc_localsizeof_type):
981 Move from upc/upc-act.c.
983 * tree.c (build_upc_unshared_type): New.
984 Move upc_get_unshared_type from upc/upc-act.c and rename
985 to build_upc_unshared_type.
986 c-family/c-common.c (pointer_int_sum): refer to renamed
987 build_upc_unshared_type function.
988 c-convert.c (convert): Ditto.
989 convert.c (convert_to_pointer): Ditto.
990 c-typeck.c (build_unary_op, build_modify_expr,
991 really_start_incremental_init): Ditto.
992 gimplify.c (create_tmp_var_raw): Ditto.
993 tree.c (build1_stat): Ditto.
994 tree.h (upc_get_unshared_type): Rename to
995 build_upc_unshared_type.
997 2011-05-06 Gary Funck <gary@intrepid.com>
999 Merge trunk version 173471 into gupc branch.
1001 2011-05-05 Gary Funck <gary@intrepid.com>
1003 Make changes that bring the GUPC branch more closely in sync.
1004 with the GCC trunk. Revert any fixes that are not UPC-specific.
1005 Remove gratuitous re-formatting.
1007 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1008 This file should have been removed in a previous merge
1010 * ../configure.ac: Remove Cray Catamount/CNL support.
1011 * ../configure: Regenerate.
1012 * ../config.sub: Remove Cray Catamount/CNL support.
1013 * config.gcc: Remove Cray Catamount/CNL support.
1014 * ../maintainer-scripts/gcc_release: Revert to trunk.
1015 * c-family/c-common.h: Define parse_optimize_options. Its definition
1016 was missed in a previous merge with the trunk.
1017 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1019 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1020 in addition to ARRAY_TYPE.
1021 * c-typeck.c: Remove an extra newline character.
1022 * varasm.c: Revert a fix that improved an error message
1023 when TLS common data is unimplemented.
1024 * varasm.c: Revert a gcc_assert that had been added which
1025 checked for a null DECL_SIZE_UNIT field.
1026 * emultls.c: Revert to trunk. Remove possible fix.
1027 * Makefile.in: Revert extra blank line that is present
1028 in the trunk version.
1029 * Makefile.in: Revert a fix that handled long shell
1030 argument lists for plugin headers.
1031 * config/ia64/ia64.opt: Revert an option setting
1032 that increased the default TLS address range.
1033 * config/ia64/crtbegin.asm: Revert to trunk.
1034 Removes an extra newline character.
1035 * ChangeLog.upc: Spell check.
1037 2011-05-03 Gary Funck <gary@intrepid.com>
1039 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1040 (c_apply_type_quals_to_decl): Ditto.
1041 * c-family/c-common.h: Ditto.
1043 * c-decl.c (merge_decls): Ditto.
1044 * c-typeck.c (qualify_type, default_conversion,
1045 build_component_ref, build_unary_op,
1046 c_build_qualified_type): Ditto.
1047 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1049 2011-04-29 Gary Funck <gary@intrepid.com>
1051 * c-decl.c (finish_decl): Improve error diagnostics.
1052 (grokdeclarator): Ditto.
1054 * c-typeck.c (build_c_cast): Improve error diagnostics.
1055 (convert_for_assignment): Ditto.
1056 (build_binary_op): Ditto.
1058 * c-parser.c (c_parser_upc_forall_statement):
1059 Improve error diagnostics.
1061 * convert.c (convert_to_integer): Improve error diagnostics.
1063 2011-04-24 Gary Funck <gary@intrepid.com>
1065 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1066 occurred if there is an error in the barrier id
1067 expression. Map error_mark_node into NULL.
1069 2011-04-22 Gary Funck <gary@intrepid.com>
1071 Merge trunk version 172873 into gupc branch.
1073 2011-04-19 Gary Funck <gary@intrepid.com>
1075 Merge trunk version 172359 into gupc branch.
1077 2011-04-14 Gary Funck <gary@intrepid.com>
1079 * c-family/c.opt: Add UPC as a valid language for various
1080 switches where it is valid for "C", that were not updated
1081 in previous merges with trunk.
1083 2011-04-13 Gary Funck <gary@intrepid.com>
1085 * c-family/c.opt (fupc-pre-include): New option definition.
1086 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1087 -fno-upc-pre-include is asserted.
1089 2011-04-07 Gary Funck <gary@intrepid.com>
1091 Merge trunk version 172158 into gupc branch.
1092 to bring in the following fix.
1094 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
1097 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1098 if old and new states differ.
1100 2011-04-06 Gary Funck <gary@intrepid.com>
1102 Merge trunk version 171966 into gupc branch.
1104 2011-04-01 Gary Funck <gary@intrepid.com>
1106 * tree.h (tree_base): Move UPC flag bits into bit fields
1107 located just before spare bits. Decrement spare bits.
1108 Rename 'shared_flag' -> 'upc_shared_flag',
1109 'relaxed_flag' -> 'upc_relaxed_flag',
1110 'strict_flag' -> 'upc_strict_flag, and adjust macros
1111 that reference them accordingly.
1113 2011-04-01 Gary Funck <gary@intrepid.com>
1115 * c-decl.c (grokdeclarator): Fix formatting of
1116 code that sets UPC block size on scalars.
1118 2011-04-01 Gary Funck <gary@intrepid.com>
1120 * c-decl.c (grokdeclarator): Revert use of white space
1121 to match the trunk (to rationalize diffs).
1122 * c-typeck.c (convert_for_assignment): Ditto.
1123 * tree-ssa.c (useless_type_conversion_p): Ditto.
1125 2011-03-23 Gary Funck <gary@intrepid.com>
1127 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1128 the GCC 4.6 release branch.
1130 2011-03-21 Gary Funck <gary@intrepid.com>
1132 Merge trunk version 171202 into gupc branch.
1134 2011-03-20 Gary Funck <gary@intrepid.com>
1136 * varasm.c: Call error() directly with a format specifier,
1137 rather than using sprintf() to format the message.
1138 This should make it easier to internationalize UPC's error messages.
1140 2011-03-20 Gary Funck <gary@intrepid.com>
1142 * configure.ac: Fix the check for gnu ld when enabling
1143 UPC link script support.
1144 configure: Regenerate (also picks up changes from previous
1147 2011-03-20 Gary Funck <gary@intrepid.com>
1149 Move UPC start files, end files, and linker specs.
1150 into libupc. This reduces the impact on common GCC
1151 configuration files, and ensures that these UPC-specific
1152 components are only built when the UPC language dialect is selected.
1156 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1157 linker specs. Fix typo in -fupc-debug message.
1159 * config/upc-conf.h, config/darwin.h: Move defines for
1160 UPC-related section begins/ends into libupc/config/default/
1163 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1164 UPC-related linker compiler specifications,
1165 accessed via %:include().
1167 * configure.ac, configure: Remove logic related to building
1168 upc-crtbegin/end. Remove config. tests for numa and cpu
1169 affinity (previously used by the 'upc' driver); these
1170 settings are now propagated by target-specific compiler
1171 specs. built by libupc. Regenerate autoconf.
1173 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1174 linker compiler specifications, accessed via %:include().
1175 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1178 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1180 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1181 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1182 config/ia64/linux.h, config/mips/t-iris,
1183 config/mips/iris6.h: Revert to trunk version 167307.
1186 * configure, configure.ac, config.host, Makefile.in:
1187 Revert to trunk version 167307.
1189 2011-02-23 Gary Funck <gary@intrepid.com>
1191 * c-decl.c (undeclared_variable): fix typo. Inadvertently
1192 removed negation on following 'if'.
1194 2011-02-22 Gary Funck <gary@intrepid.com>
1196 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1197 to check for the usage of certain deprecated UPC keywords.
1198 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1199 * c-tree.h (undeclared_variable): Define prototype.
1201 2011-02-12 Gary Funck <gary@intrepid.com>
1203 * c-typeck.c: (build_c_cast, convert_for_assignment)
1204 Diagnose an attempt to convert from an integer to
1205 a pointer-to-shared as an error. Also, fix various
1206 error messages so that they use the preferred term
1207 pointer-to-shared instead of "shared pointer".
1209 2011-02-07 Gary Funck <gary@intrepid.com>
1211 * c-typeck.c: (convert_for_assignment)
1212 Fix typo. in error message.
1214 2011-01-23 Gary Funck <gary@intrepid.com>
1216 * c-typeck.c: (c_build_qualified_type)
1217 derive UPC block size by calling upc_get_block_size(),
1218 to ensure that the element type of an array of an array
1219 is derived correctly.
1221 2010-12-29 Gary Funck <gary@intrepid.com>
1223 Merge trunk version 168314 into gupc branch.
1225 2010-12-15 Gary Funck <gary@intrepid.com>
1227 Merge trunk version 167307 into gupc branch.
1229 2010-10-19 Gary Funck <gary@intrepid.com>
1231 * c-typeck.c: Fix typo in previous fix
1232 which led to a mis-compare for equal block sizes.
1234 2010-10-18 Gary Funck <gary@intrepid.com>
1236 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1237 diagnosed as an error
1239 The conversion from any type (shared or not) to
1240 a shared type is likely either meaningless or an error. This update
1241 makes any conversion to a shared type, an error.
1243 2010-10-18 Gary Funck <gary@intrepid.com>
1245 * c-typeck.c: Fix bug: passing int to shared pointer arg.
1246 generates spurious warning
1248 Add a #define procedure that does the same thing as
1249 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
1250 this procedure to diagnose passing an integer value to a
1251 pointer-to-shared as an error.
1253 2010-10-18 Gary Funck <gary@intrepid.com>
1255 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1256 matching routine declaration.
1258 When checking for type compatibility, shared qualified types must
1259 have the same block factor. This check was missing from
1260 comptypes_internal(). This update adds the check for blocking
1263 2010-10-17 Gary Funck <gary@intrepid.com>
1265 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1268 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1270 2010-10-17 Gary Funck <gary@intrepid.com>
1272 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1273 45869 - [4.5/4.6 Regression] type mismatch in shift expression
1274 produces ice with -O3 and -m32.
1276 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1278 2010-10-17 Gary Funck <gary@intrepid.com>
1280 * c-common.c: Diagnose the application of the various "*sizeof"
1281 operations on generic pointer-to-shared as a compilation error.
1283 2010-10-17 Gary Funck <gary@intrepid.com>
1285 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1286 message regarding a function parameter being declared with a shared
1289 The parameter's 'name' value is not defined at this point, and
1290 cannot be used in the error message. This update removes the
1291 reference to 'name', and eliminates the segfault.
1293 2010-10-16 Gary Funck <gary@intrepid.com>
1295 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1297 The gcc/Makefile.in rules for install-plugin had to be re-written to
1298 break up a long list of header files that exceeded the command line
1299 limitation imposed by Irix.
1301 Access functions for TFmode types had to be implemented.
1302 Apparently, this is the mode used for the SGI/MIPS port to represent
1305 2010-10-14 Gary Funck <gary@intrepid.com>
1307 * c-decl.c: Fix bug: Multiple equal blocking factors specified
1308 via typedef chain should not be diagnosed as an error.
1310 If the block size that is given by the typedef is equal to the block
1311 size given explicitly in the variable declaration, then do not
1312 complain. The easiest way to make this check was to create a
1313 temporary type that is a clone of the element type and then set its
1314 block size using the given layout qualifier. Then compare the block
1315 size of the temporary (the declaration) to the block size specified
1316 in the typedef. This complexity is needed, because the '[*]' block
1317 size needs to be calculated, and the '[]' needs to be mapped into a
1320 2010-10-10 Gary Funck <gary@intrepid.com>
1322 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1325 The compiler properly detected the presence of two or more layout
1326 qualifiers as an error, but then hit an assertion check, because the
1327 code that followed the error expected to see a qualifier and not a
1328 layout specifier. The fix is simple: just return immediately after
1329 detecting the error.
1331 2010-10-10 Gary Funck <gary@intrepid.com>
1333 * c-decl.c: Improve error diagnostics for various cases of UPC
1334 shared array type declarations.
1336 Add the check for this error: "In the dynamic translation
1337 environment, THREADS may not appear in declarations of shared arrays
1338 with indefinite block size". Also, fix up a few of the other
1339 related error diagnostics.
1341 2010-10-09 Gary Funck <gary@intrepid.com>
1343 * c-common.c: Fix bug: segfault on incomplete array definition.
1345 This turned out to be a bit complicated. The logic in
1346 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1347 the THREADS identifier in the case where the blocking factor has
1348 been set to indefinite ([]). This can happen when indefinite array
1349 declarations are processed for shared arrays. At that time, the
1350 file scope has been closed and THREADS is no longer in scope. Some
1351 more work is needed on upc_lang_layout_decl(). It has some
1352 duplication, and notably duplicates the two branches of the if
1353 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1354 caller of this routine (layout_decl()).
1356 The method of forcing a layout qualifier of [] in the indefinite
1357 declaration handler is odd a well. The code that just does the
1358 setting of the block factor, needs to moved into its own routine
1359 that doesn't depend upon a declspec for '[]' to be passed in, just
1360 in order to set the blocking factor to some value (in this case, 0).
1361 Also, the logic for how that shared type is constructed is strange.
1362 First the type with 0 blocking factor is set. Then the shared
1363 qualifier is removed from the type, and then added back later. The
1364 intermediate type has a blocking factor set, but it has no shared
1365 qualifier. Fixing this will require some thought. It is tempting
1366 just to make indefinite shared arrays an error, rather than forcing
1367 the dimension to be '1'.
1369 This likely fixes a serious error in the previous update to
1370 upc_lang_layout_decl(), where it didn't have the logic to set
1371 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
1372 the previous update would fail on many tests.
1374 2010-10-09 Gary Funck <gary@intrepid.com>
1376 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1377 (decl) is null, which can happen if some layout error occurred
1380 2010-10-09 Gary Funck <gary@intrepid.com>
1382 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1383 "variable-sized" when compiled in dynamic threads.
1385 This long-standing bug is easily fixed. Just check
1386 for the situation that the non-constant sized type is shared and
1387 that it does not have a dimension that references a multiple of
1388 threads. If this criteria is met, then issue a meaningful
1391 2010-10-01 Gary Funck <gary@intrepid.com>
1393 * configure, configure.ac: Update manual page, and bug reporting
1396 Update "man" page to reflect debugging switches. Also, some general
1397 clean up. Change the bug reporting URL to point to gccupc.org.
1399 2010-09-27 Gary Funck <gary@intrepid.com>
1401 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1402 the UPC forall depth count variable is not found.
1404 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1405 The compiler will generate code that references this variable in
1406 order to implement nested upc_forall semantics. If there is a
1407 compiler build or install problem, this variable may not be found.
1408 In this case, terminate with an internal_error().
1410 2010-09-26 Gary Funck <gary@intrepid.com>
1412 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1413 mis-diagnosed as syntax error.
1415 Fix a failure exhibited by the Berkeley test case,
1416 bug873a.upc, which has the code:
1418 upc_forall (;;;d) {...} The compiler did not properly handle
1419 the empty "condition" clause, and did not recover well when it was
1420 determined that the use of a double value, "d" above, was neither a
1421 pointer-to-shared nor an integer expression. The update implements a
1422 fix for both issues.
1424 See also: gcc/c-parser.c gcc/upc/upc-act.c
1426 2010-09-23 Gary Funck <gary@intrepid.com>
1428 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1429 incorporated into the referencing type.
1431 This was semi-fixed a few times before. This update fixes a few
1432 more places where the layout qualifier wasn't being propagated
1433 through typedef's properly. What made this a bit tricky is shown in
1434 the example cited in the bug report:
1436 typedef shared [5] int A_t; A_t A[5*THREADS];
1438 In the typedef, the blocksize is being applied to a shared *scalar*,
1439 and the code was applying the blocksize only to arrays. This update
1440 handles shared scalars correctly.
1442 2010-09-22 Gary Funck <gary@intrepid.com>
1444 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1445 upc_forall() semantics are not implemented
1447 The checkforall test in the Berkeley harness test suite indicated
1448 that GCC/UPC was not properly implementing nested upc_forall
1449 semantics. Nested upc_forall statements (both statically or
1450 dynamically nested) must implement their affinity clause as if it
1451 were "continue"; thus all steps in the loop must execute without
1452 regard for affinity. To implement these semantics a global depth
1453 counter, __upc_forall_depth, is maintained by the generated code
1454 that implements upc_forall.
1456 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1457 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1458 libupc/include/upc.h libupc/smp/upc_main.c
1460 2010-09-19 Gary Funck <gary@intrepid.com>
1462 * c-decl.c: c-decl.c: zero out the layout specifier, after
1463 processing an array type.
1465 Fix the previous fix, that moved the setting of the type's layout
1466 qualifier to the outside of the array type processing loop. What is
1467 missing from the fix is that the layout_qualifier variable needs to
1468 be cleared after setting the type's blocksize.
1470 2010-09-19 Gary Funck <gary@intrepid.com>
1472 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1473 given blocksize is greater than UPC_MAX_BLOCKSIZE.
1475 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1476 the actual maximum block size. Therefore, the message was correct,
1477 but the underlying value that was being checked was wrong. Change
1478 the values so that they agree with the actual implementation-defined
1481 2010-09-11 Gary Funck <gary@intrepid.com>
1483 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1484 multi-dimensional shared array with dynamic threads.
1486 This declaration caused an internal compiler error when compiled
1487 with dynamic threads:
1488 shared [*] int A[THREADS][16]; The bug was discovered when
1489 compiling the RTED_UPC test suite.
1491 The fix is to process layout qualifiers after the entire array type
1492 has been built. Otherwise, we try to calculate the blocksize on a
1493 shared array type that has not had its "size depends upon the value
1494 of THREADS" flag set.
1496 Also, added a test case.
1498 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1500 2010-07-11 Gary Funck <gary@intrepid.com>
1502 Fix a bug where a statement in c_build_qualified_type()
1503 in the trunk had been inadvertently deleted.
1504 This bug showed up in the IA64 port, because jmpbuf's
1505 on that architecture must be 16 byte aligned, and they were not.
1506 c-typeck.c (c_build_qualified_type): Revive the deleted line.
1508 2010-07-08 Gary Funck <gary@intrepid.com>
1510 Make changes so that other language compilers
1511 will build and bootstrap.
1512 * c-family/c-common.c (compiling_upc, flag_upc,
1513 flag_upc_instrument, flag_upc_instrument_functions,
1514 use_upc_dwarf2_extensions): Move to stub-upc.c and
1516 * c-family/c-common.h (use_upc_dwarf2_extensions,
1517 compiling_upc): Add extern definitions - needed
1518 to compile/build other language front ends.
1519 * c-family/c.opt: Fix the spelling of ObjC.
1520 It had been incorrectly spelled as Objc.
1521 * c-family/c.opt: Add UPC for the various switches
1522 that are valid for both C and ObjC.
1523 * c-fmaily/c-opts.c: Add CL_UPC to the list of
1524 supported options switches when compiling assembly
1526 * lto/lto-lang.c (use_upc_dwarf2_extensions,
1527 flag_upc_instrument, flag_upc_instrument_functions):
1528 Remove these definitions. They have been moved
1529 to c-family/stub-upc.c.
1530 * upc/ChangeLog: Move relevant entries
1532 * c-family/stub-upc.c (compiling_upc, flag_upc,
1533 flag_upc_instrument, flag_upc_instrument_functions,
1534 use_upc_dwarf2_extensions): Moved from c-common.c
1535 * upc/upc-lang.c (compiling_upc, flag_upc,
1536 flag_upc_instrument, flag_upc_instrument_functions,
1537 use_upc_dwarf2_extensions): Moved from c-common.c
1538 * objc/objc-act.c (objc_gimplify_expr): Add additional
1539 parameters to c_gimplify_expr() call, that are used
1540 by upc's tree rewrites.
1541 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1542 * gcc/cp/lex.c (init_reswords): If not compiling
1543 UPC, then mask off the UPC keywords.
1544 * cp/Make-lang.in (C_STUB_OBJS): Use this
1545 make macro to link with c-family/stub-objc.o
1546 and c-family/stub-upc.o.
1547 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1548 * java/Make-lang.in (C_STUB_OBJS): Likewise.
1549 * objc/Make-lang.in: Link with c-family/stub-upc.o
1550 to avoid undefined references.
1551 c-parser.c: Fix line indentation.
1552 * libcpp/include/cpplib.h: Remove CL_UPC from
1553 the list of language kinds accepted by the
1554 C preprocessor. This is not necessary because
1555 UPC is a derivative of C99, and does not need
1556 a different language kind.
1557 * c-fmaily/c-opts.c (c_common_handle_option):
1558 Call set_std_c99() when processing the
1559 "--lang upc" switch, instead of setting the
1560 language kind to CL_UPC.
1561 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1563 2010-07-03 Gary Funck <gary@intrepid.com>
1565 Merge trunk version 161517 into gupc branch.
1566 * gcc/stub-upc.c: Move to gcc/c-family/.
1567 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1568 Add 'unused' attributes to avoid "set, but
1569 not referenced" warnings.
1570 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1573 2010-03-01 Gary Funck <gary@intrepid.com>
1575 Create gupc branch from trunk version 157149.
1576 2011-10-04 Gary Funck <gary@intrepid.com>
1578 Merge trunk version 179421 into gupc branch.
1580 * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1581 argument to the call to check_qualified_type().
1583 2011-09-22 Gary Funck <gary@intrepid.com>
1585 * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1587 (dump_upc_type_quals): New.
1589 2011-09-15 Nenad Vukicevic <nenad@intrepid.com>
1591 Add to FLAGS the flags needed to disable inlining of
1592 UPC run-time access routines.
1593 * testsuite/lib/target-supports.exp
1594 (add_options_for_upc_library_calls): New.
1596 2011-09-15 Gary Funck <gary@intrepid.com>
1598 Fix ICE involving shared bit field accesses.
1599 * tree.c (build3_stat): Propagate TEEE_SHARED()
1600 TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1602 2011-09-13 Gary Funck <gary@intrepid.com>
1604 Merge trunk version 178795 into gupc branch.
1605 Incorporates fix to PR bootstrap/50010 for x86-32.
1607 2011-09-08 Gary Funck <gary@intrepid.com>
1609 Merge trunk version 178557 into gupc branch.
1611 2011-09-07 Gary Funck <gary@intrepid.com>
1613 Ensure that UPC pointer-to-shared type alignment is
1614 propagated to the final type. Revert to long-standing
1615 alignment policy: twice the size of a "C" pointer.
1616 * tree.c (build_pointer_type): Propagate the alignment
1617 of the UPC pointer-to-shared representation type
1618 into the newly built pointer type.
1620 2011-08-30 Gary Funck <gary@intrepid.com>
1622 * tree.h (check_qualified_type): Change 'const_tree'
1623 argument types back to 'tree' to avoid complaints
1624 of assignment drops qualifiers for invocations of the
1625 newly implemented TYPE_BLOCK_FACTOR() macro, which
1626 invokes hash functions with 'tree' pointer values that
1627 are not const qualified.
1628 * tree.c (check_qualified_type, check_aligned_type): Ditto.
1629 * c-typeck.c (comptypes_internal): Ditto.
1631 2011-08-29 Gary Funck <gary@intrepid.com>
1633 Fixes for regressions noted running "make check"
1635 * fold-const.c (fold_unary_loc): Execute UPC-specific
1636 checks for a cast-of-a-cast, only if one of the
1637 operands is a UPC pointer-to-shared value.
1638 * opts.c (print_specific_help): Fix a comparison
1639 in an assert that checks that there are enough
1640 bits reserved for the number of languages defined
1643 2011-08-29 Gary Funck <gary@intrepid.com>
1645 Implement a hash table to record UPC block factors.
1646 * c-family/stub-upc.c (upc_block_factor_insert,
1647 upc_block_factor_lookup): New dummy stub procedures.
1648 * c-family/c-common.c (c_sizeof_or_alignof_type):
1649 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1650 * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1651 to copy (hashed) UPC blocking factor.
1652 (set_type_quals): Likewise.
1653 * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1654 TYPE_HAS_THREADS_FACTOR().
1655 (type_common.block_factor): Delete.
1656 (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1657 TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1658 (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1659 UPC blocking factors greater than one.
1660 * dwarf2out.c (modified_type_die): Re-implement
1661 logic that records UPC blocking factor in the generated
1662 DWARF2 debugging information.
1663 (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1664 TYPE_HAS_THREADS_FACTOR().
1665 * c-decl.c (finish_decl, grokdeclarator):
1666 Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1667 * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1668 used by UPC, and print UPC-specific information.
1670 2011-08-28 Gary Funck <gary@intrepid.com>
1672 Re-work the type machinery to fully support and to unify support
1673 for the UPC layout qualifier (blocking factor).
1674 * c-family/stub-upc.c (upc_set_block_factor): Delete.
1675 (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1676 and update prototype.
1677 * c-family/c-common.c (complete_array_type): call newly
1678 defined c_build_qualified_type_1() instead of
1679 upc_set_block_factor().
1680 * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1681 upc_apply_layout_qualifier() and update prototype.
1682 (upc_set_block_factor): Delete prototype.
1683 * c-family/c-common.h (c_build_qualified_type): redefine
1684 as a pre-processor macro that invokes c_build_qualified_type_1()
1685 with a null UPC layout qualifier.
1686 (c_build_qualified_type_1): New. Add layout qualifier argument
1687 to old c_build_qualified_type() prototype.
1688 * tree.c (set_type_quals, check_qualified_type):
1689 Add layout qualifier as argument.
1690 (check_aligned_type): Add check for UPC block factor equality.
1691 (get_qualified_type_1): Rename from get_qualified_type() and
1692 add layout qualifier as argument.
1693 (build_qualified_type_1): Rename from build_qualified_type() and
1694 add layout qualifier as argument.
1695 * tree.h (check_qualified_type): Add layout qualifier as argument
1697 (get_qualified_type): Re-define as a as a pre-processor macro
1698 that invokes get_qualified_type_1() with a null
1699 UPC layout qualifier.
1700 (get_qualified_type_1): Rename from get_qualified_type() and
1701 add layout qualifier as argument.
1702 * cp/tree.c (c_build_qualified_type_1): Rename from
1703 c_build_qualified_type() and add (unused) layout qualifier
1705 * c-decl.c (finish_decl): re-format long error messages.
1706 (grokdeclarator): Re-work the logic so that it calls
1707 upc_grok_layout_qualifier() to handle the UPC layout
1708 qualifier, if present.
1709 * c-typeck.c (qualify_type, common_pointer_type,
1710 build_component_ref): Re-work the logic so that it calls
1711 upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1713 (c_build_qualified_type_1): Rename from c_build_qualified_type()
1714 and add layout qualifier argument.
1715 * print_tree.c (print_node): Re-format a long line.
1717 2011-08-26 Gary Funck <gary@intrepid.com>
1719 Merge trunk version 177949 into gupc branch.
1720 * c-family/c-common.h (enum rid): Bump the number of type modifiers
1722 * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1723 to add new rliterals column value.
1725 2011-08-26 Gary Funck <gary@intrepid.com>
1727 * convert.c (convert_to_integer): Fix the check for the
1728 difference between two UPC pointers-to-shared values.
1730 2011-08-23 Nenad Vukicevic <nenad@intrepid.com>
1732 * configure.ac: Fix the name for --with-upc-pts-packed-bits
1733 option. Support --with-upc-packed-bits as deprecated. Fix the code to
1734 correctly check packed bits.
1735 * configure: Re-generate.
1737 2011-08-16 Gary Funck <gary@intrepid.com>
1739 * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1740 the barrier id expression is not an integer expression.
1742 2011-08-12 Gary Funck <gary@intrepid.com>
1744 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1746 * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1747 Set mode of UPC pointer-to-shared rep. to an
1748 integral mode of size at least as large as the
1749 size of the representation's struct type.
1751 2011-08-12 Gary Funck <gary@intrepid.com>
1753 Rework/simplify the UPC genericize pass.
1754 * c-family/stub-upc.c (upc_apply_layout_qualifier,
1755 upc_build_pointer_type): New.
1756 (upc_set_block_factor): Adjust to new calling sequence.
1757 (upc_build_shared_var_addr): Delete.
1758 * c-family/c-common.c (complete_array_type): Adjust call
1759 to upc_set_block_factor().
1760 * c-family/c-upc.h (upc_apply_layout_qualifier,
1761 upc_build_pointer_type): New.
1762 (upc_build_shared_var_addr): Delete.
1763 (upc_set_block_factor): Adjust to new calling sequence.
1764 * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1765 * c-decl.c (grokdeclarator): Call newly defined
1766 upc_apply_layout_qualifier() instead of upc_set_block_factor().
1767 * c-decl.c (grokdeclarator): Split long UPC-related error
1768 messages into two lines.
1769 * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1770 directly. Revert that change to trunk. (upc_genericize() will
1771 handle lowering the expressions that take the address of a
1773 * config/i386/i386.c (ix86_promote_function_mode): For UPC
1774 pointers-to-shared, return the type mode of the UPC pointer-to-shared
1775 representation type.
1777 2011-08-10 Gary Funck <gary@intrepid.com>
1779 Implement additional fixes for recent merge with trunk.
1780 * explow.c (promote_mode): Do not attempt to promote
1781 the mode for UPC pointer-to-shared types.
1782 * config/i386/i386.c (function_value_64): Ditto.
1784 2011-08-07 Gary Funck <gary@intrepid.com>
1786 Merge trunk version 177548 into gupc branch.
1787 * config/i386/i386.c (ix86_promote_function_mode):
1788 Do not promote UPC pointers-to-shared to Pmode.
1789 * c-family/c-ommon.c (pointer_int_sum):
1790 Also check the pointer operand, rather than just
1791 its type, when making the decision to derive
1792 the equivalent unshared type.
1793 * tree.c (build2_stat): If the type of the result
1794 passed in as an argument is a UPC shared type,
1795 derive the unshared equivalent when calculating
1796 the result type of the node.
1798 2011-07-15 Nenad Vukicevic <nenad@intrepid.com>
1800 * config/darwin.c: Disable var_tracking option
1801 on -O0 as it is supposed to run only when optimization
1802 is applied. See GCC bug 49743.
1804 2011-07-06 Gary Funck <gary@intrepid.com>
1806 Re-implement the pass that lowers trees generated by
1807 the UPC front-end into GENERIC. Previously this was
1808 done within the gimplification framework, but this
1809 required that gimplification be run before inlining
1810 and various other passes, which did not fit in well
1811 with the current design of the middle-end passes.
1812 Now, the lowering is done by a newly defined language
1813 specific genericize hook. With this change, we are
1814 are able to undo some extensions made to the gimplify
1815 logic, and thus can revert several files to trunk.
1817 * c-decl.c: Add a check for UPC deprecated names which
1818 may appear as undefined function names.
1819 * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1820 LTI_upc_getaddr): Remove definitions of unused UPC
1821 library function names. These were defined back when
1822 the libfunc interface was used to call these routines.
1823 * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1824 in UPC lowering (genericize) pass.
1825 * langhooks.h (gimplify_expr): Revert to trunk's definition.
1826 (instrument_func): Delete this hook. Now handled in
1828 * tree-pass.h: Revert to trunk.
1829 * c-typeck.c (build_unary_op): Adjust reference to
1830 upc_genericize() in a comment.
1831 * gimplify.c (create_tmp_var_raw): Delete logic that
1832 was converting UPC shared types into unshared types
1833 to be used for temporaries. Now handled in upc_genericize().
1834 Replace with an assertion check.
1835 (prepare_gimple_addressable): Revert to trunk's definition.
1836 No longer needed as an externally called function.
1837 (flag_instrument_functions_exclude_p): Re-define as
1838 an externally called function.
1839 (gimplify_function_tree): Delete code that implemented
1840 call to UPC's language specific function instrumentation hook.
1841 * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1842 (prepare_gimple_addressable): Delete extern definition;
1843 revert to trunk's definition.
1844 * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1845 (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1846 * c-family/c-gimplify.c: Revert to trunk.
1847 * cp/cp-gimplify.c: Revert to trunk.
1848 * cp/cp-tree.h: Revert to trunk.
1849 * explow.c: Revert to trunk.
1850 * langhooks.c: Revert to trunk.
1851 * libfuncs.h: Revert to trunk.
1852 * objc/objc-act.c: Revert to trunk.
1854 2011-06-30 Gary Funck <gary@intrepid.com>
1856 * c-family/c.opt: Bring options definitions up-to-date
1857 with respect to changes made in the trunk.
1859 2011-06-29 Gary Funck <gary@intrepid.com>
1861 Merge trunk version 175584 into gupc branch.
1863 2011-06-13 Gary Funck <gary@intrepid.com>
1866 * include/cpplib.h (enum c_lang):
1867 Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1868 This keeps all the "C" variants together.
1869 * init.c (lang_defaults): Add an entry for UPC.
1871 2011-06-09 Gary Funck <gary@intrepid.com>
1873 * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1874 a 32-bit target, the size expression overflowed, the result was
1875 error_mark_node, and an ICE was triggered on an attempt to evaluate
1876 C_TYPE_VARIABLE_SIZE() on the error node.
1877 (upc_blocksizeof_expr, upc_blocksizeof_type,
1878 upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1879 Make similar changes to avoid further processing of error_mark_node.
1881 2011-06-07 Gary Funck <gary@intrepid.com>
1883 * sel-sched.c (move_op): Incorporate the following
1884 patch to eliminate ICE at -O3 on IA64/Altix.
1886 2011-06-07 Alexander Monakov <amonakov@ispras.ru>
1888 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1889 code_motion_path_driver returned 0 or 1.
1890 (sel_region_finish): Clear h_d_i_d.
1892 2011-06-02 Gary Funck <gary@intrepid.com>
1894 Merge trunk version 174558 into gupc branch.
1896 2011-05-30 Gary Funck <gary@intrepid.com>
1898 * configure.ac: Make the default order of the virtual
1899 address field in a UPC pointer-to-shared to be "first".
1900 This reverts to the previous setting, and is a short term
1901 measure to work around a bug found on the IA64,
1902 where vaddr=last led to incorrect code generation.
1903 Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1904 in AC_DEFINE(), to agree with recent changes in files
1905 that reference this define.
1906 configure, config.in: Regenerate.
1908 2011-05-26 Gary Funck <gary@intrepid.com>
1910 * configure.ac: Fix typo when referring to $upc_vaddr_order.
1911 configure: Regenerate.
1913 * ../fixincludes/fixincl.x: Revert to trunk.
1914 This file is auto-generated, and should not be merged.
1916 2011-05-18 Gary Funck <gary@intrepid.com>
1918 Merge trunk version 173845 into gupc branch.
1920 2011-05-17 Gary Funck <gary@intrepid.com>
1922 * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1923 c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1925 * c-family/c-pragma.c: Remove conditional compilation
1926 with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1927 Test 'compiling_upc' when compiling to determine if
1928 the "upc" and "pupc" pragmas should be registered.
1930 * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1931 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1932 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1933 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1934 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1935 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1936 Move these target-dependent definitions from config/upc-conf.h
1939 * configure.ac: Improve the logic for UPC-related options.
1940 Delete references to pre-processor definitions that have
1941 been moved to "upc/upc-pts.h".
1943 * configure, config.in: Regenerate.
1945 * Makefile.in (UPC_PTS_REP): Remove definition and revert
1946 to trunk. This substitution variable was used to
1947 configure the representation-specific versions of
1948 the tree rewrites that operate on UPC pointer-to-shared
1951 * c-parser.c (c_parser_upc_forall_statement): Remove
1952 reference to UPC_FORALL_DEPTH_NAME, and call
1953 newly defined upc_rts_forall_depth_var() instead.
1955 * config/upc-config.h: Delete. Various definitions
1956 moved to "upc/upc-rts-names.h", "defaults.h", and
1959 * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1960 HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1961 UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1962 UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1963 UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1964 UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1965 UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1966 UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1967 New. Document UPC target macros.
1968 doc/tm.texi: Regenerate.
1970 2011-05-07 Gary Funck <gary@intrepid.com>
1972 * ../configure.ac: Disable build of libupc
1973 on non POSIX hosted systems. Use AS_HELP_STRING
1974 to define messages. Remove 'word-pair' as a
1975 possible --with-upc-pts UPC pointer-to-shared
1978 * ../configure: Regenerate.
1980 * configure.ac: Use AS_HELP_STRING to define messages.
1981 Remove 'word-pair' as a possible --with-upc-pts
1982 UPC pointer-to-shared representation.
1983 (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1984 (UPC_MAX_BLOCK_SIZE): Correct the default value.
1986 * configure: Regenerate.
1988 * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1991 * ChangeLog.upc: Fix some typos.
1993 2011-05-07 Gary Funck <gary@intrepid.com>
1995 * ../maintainer-scripts/gcc_release: Add "upc"
1996 as one of the released languages.
1998 2011-05-06 Gary Funck <gary@intrepid.com>
2000 Eliminate compilation warnings, by fixing
2001 #include's and updating function prototypes.
2003 * c-family/c-cppbuiltin.c: Include c-upc.h.
2005 * optabs.c (gen_libfunc): Change type of 'suffix'
2006 parameter to conform with prototype.
2008 * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2009 ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2012 * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2015 * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2016 argument values to cp_gimplify_expr.
2018 * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2019 HAVE_UPC_NUMA_SUPPORT): Regenerate. Remove
2020 pre-processor definitions that are no longer
2021 needed to build the 'upc' command (upc-cmd.c)
2022 because the linker specs. defined in libupc
2023 take care of linking in the needed libraries.
2025 * c-parser.c (c_parser_upc_forall_statement):
2026 initialize affinity_loc to avoid "maybe unused" warning.
2027 (c_parser_upc_sync_statement): Remove un-needed
2028 'ret' variable. Cast return value from
2029 'upc_build_sync_stmt' to 'void' to avoid
2030 compile-time warning.
2032 * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2033 integer constant, not a string. Range is restricted
2034 to maximum positive 32-bit integer (2+ billion) to
2035 fit in with the use of 'int' in the front-end's
2036 switch handling logic.
2038 2011-05-06 Gary Funck <gary@intrepid.com>
2040 Upgrade c-family source files to conform with modularity
2041 improvements. Mainly, remove #include of c-tree.h in files
2042 under c-family, and define a new UPC-specific #include file,
2043 c-upc.h, and use it.
2045 * c-family/stub-upc.c: Remove #include of c-tree.h and
2046 upc/upc-act.h. Replace with #include of c-common.h
2048 (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2049 upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2050 upc_localsizeof_expr, upc_localsizeof_type,
2051 upc_shared_type_p): Delete.
2053 * c-family/c-opts.c: Add #include of c-upc.h
2055 * c-family/c-common.c: Remove #include of c-tree.h and
2056 add #include of c-upc.h.
2058 * c-family/c-upc.h: New. Define API for UPC-specific functions
2059 (mostly implemented in upc/upc-act.c).
2061 * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2062 Remove extern definitions.
2064 * c-family/c-pragma.c: Remove #include of c-tree.h.
2065 Add #include of c-upc.h.
2067 * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New. Move from
2069 (upc_shared_type_p, upc_pts_cvt_op_p): New. Move from
2070 upc/upc-act.c, and define as a macro.
2071 (expand_affinity_test): Remove unused external definition.
2072 (build_upc_unshared_type): Add external definition.
2073 (upc_shared_type_p): Remove external definition.
2075 * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2077 * dojump.c: Remove #include of c-tree.h.
2079 * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2081 (count_upc_threads_refs, is_multiple_of_upc_threads,
2082 set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2083 upc_build_shared_var_addr, upc_build_sync_stmt,
2084 upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2085 upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2086 c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2087 upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2088 upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2089 permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2090 set_upc_consistency_mode, get_upc_consistency_mode,
2091 push_upc_consistency_mode, pop_upc_consistency_mode,
2093 Move external definitions to c-family/c-upc.h.
2094 (upc_blocksizeof_type, upc_localsizeof_type,
2095 upc_elemsizeof_type): Remove external definitions;
2096 these functions were moved to c-parser.c.
2098 * c-decl.c: Add #include of c-upc.h.
2100 * c-typeck.c: Add #include of c-upc.h.
2102 * c-convert.c: Add #include of c-upc.h.
2104 * ChangeLog.upc: Fix typo.
2106 * Makefile.in: Add references to c-family/c-upc.h, everywhere
2107 there is a reference to c-family/c-objc.h.
2108 Remove extraneous reference to upc-act.h.
2110 * c-parser.c: Add #include of c-upc.h.
2111 (upc_blocksizeof_expr, upc_blocksizeof_type,
2112 upc_elemsizeof_expr, upc_elemsizeof_type,
2113 upc_localsizeof_expr, upc_localsizeof_type):
2114 Move from upc/upc-act.c.
2116 * tree.c (build_upc_unshared_type): New.
2117 Move upc_get_unshared_type from upc/upc-act.c and rename
2118 to build_upc_unshared_type.
2119 c-family/c-common.c (pointer_int_sum): refer to renamed
2120 build_upc_unshared_type function.
2121 c-convert.c (convert): Ditto.
2122 convert.c (convert_to_pointer): Ditto.
2123 c-typeck.c (build_unary_op, build_modify_expr,
2124 really_start_incremental_init): Ditto.
2125 gimplify.c (create_tmp_var_raw): Ditto.
2126 tree.c (build1_stat): Ditto.
2127 tree.h (upc_get_unshared_type): Rename to
2128 build_upc_unshared_type.
2130 2011-05-06 Gary Funck <gary@intrepid.com>
2132 Merge trunk version 173471 into gupc branch.
2134 2011-05-05 Gary Funck <gary@intrepid.com>
2136 Make changes that bring the GUPC branch more closely in sync.
2137 with the GCC trunk. Revert any fixes that are not UPC-specific.
2138 Remove gratuitous re-formatting.
2140 * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2141 This file should have been removed in a previous merge
2143 * ../configure.ac: Remove Cray Catamount/CNL support.
2144 * ../configure: Regenerate.
2145 * ../config.sub: Remove Cray Catamount/CNL support.
2146 * config.gcc: Remove Cray Catamount/CNL support.
2147 * ../maintainer-scripts/gcc_release: Revert to trunk.
2148 * c-family/c-common.h: Define parse_optimize_options. Its definition
2149 was missed in a previous merge with the trunk.
2150 * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2152 * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2153 in addition to ARRAY_TYPE.
2154 * c-typeck.c: Remove an extra newline character.
2155 * varasm.c: Revert a fix that improved an error message
2156 when TLS common data is unimplemented.
2157 * varasm.c: Revert a gcc_assert that had been added which
2158 checked for a null DECL_SIZE_UNIT field.
2159 * emultls.c: Revert to trunk. Remove possible fix.
2160 * Makefile.in: Revert extra blank line that is present
2161 in the trunk version.
2162 * Makefile.in: Revert a fix that handled long shell
2163 argument lists for plugin headers.
2164 * config/ia64/ia64.opt: Revert an option setting
2165 that increased the default TLS address range.
2166 * config/ia64/crtbegin.asm: Revert to trunk.
2167 Removes an extra newline character.
2168 * ChangeLog.upc: Spell check.
2170 2011-05-03 Gary Funck <gary@intrepid.com>
2172 * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2173 (c_apply_type_quals_to_decl): Ditto.
2174 * c-family/c-common.h: Ditto.
2176 * c-decl.c (merge_decls): Ditto.
2177 * c-typeck.c (qualify_type, default_conversion,
2178 build_component_ref, build_unary_op,
2179 c_build_qualified_type): Ditto.
2180 * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2182 2011-04-29 Gary Funck <gary@intrepid.com>
2184 * c-decl.c (finish_decl): Improve error diagnostics.
2185 (grokdeclarator): Ditto.
2187 * c-typeck.c (build_c_cast): Improve error diagnostics.
2188 (convert_for_assignment): Ditto.
2189 (build_binary_op): Ditto.
2191 * c-parser.c (c_parser_upc_forall_statement):
2192 Improve error diagnostics.
2194 * convert.c (convert_to_integer): Improve error diagnostics.
2196 2011-04-24 Gary Funck <gary@intrepid.com>
2198 * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2199 occurred if there is an error in the barrier id
2200 expression. Map error_mark_node into NULL.
2202 2011-04-22 Gary Funck <gary@intrepid.com>
2204 Merge trunk version 172873 into gupc branch.
2206 2011-04-19 Gary Funck <gary@intrepid.com>
2208 Merge trunk version 172359 into gupc branch.
2210 2011-04-14 Gary Funck <gary@intrepid.com>
2212 * c-family/c.opt: Add UPC as a valid language for various
2213 switches where it is valid for "C", that were not updated
2214 in previous merges with trunk.
2216 2011-04-13 Gary Funck <gary@intrepid.com>
2218 * c-family/c.opt (fupc-pre-include): New option definition.
2219 * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2220 -fno-upc-pre-include is asserted.
2222 2011-04-07 Gary Funck <gary@intrepid.com>
2224 Merge trunk version 172158 into gupc branch.
2225 to bring in the following fix.
2227 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
2230 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2231 if old and new states differ.
2233 2011-04-06 Gary Funck <gary@intrepid.com>
2235 Merge trunk version 171966 into gupc branch.
2237 2011-04-01 Gary Funck <gary@intrepid.com>
2239 * tree.h (tree_base): Move UPC flag bits into bit fields
2240 located just before spare bits. Decrement spare bits.
2241 Rename 'shared_flag' -> 'upc_shared_flag',
2242 'relaxed_flag' -> 'upc_relaxed_flag',
2243 'strict_flag' -> 'upc_strict_flag, and adjust macros
2244 that reference them accordingly.
2246 2011-04-01 Gary Funck <gary@intrepid.com>
2248 * c-decl.c (grokdeclarator): Fix formatting of
2249 code that sets UPC block size on scalars.
2251 2011-04-01 Gary Funck <gary@intrepid.com>
2253 * c-decl.c (grokdeclarator): Revert use of white space
2254 to match the trunk (to rationalize diffs).
2255 * c-typeck.c (convert_for_assignment): Ditto.
2256 * tree-ssa.c (useless_type_conversion_p): Ditto.
2258 2011-03-23 Gary Funck <gary@intrepid.com>
2260 * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2261 the GCC 4.6 release branch.
2263 2011-03-21 Gary Funck <gary@intrepid.com>
2265 Merge trunk version 171202 into gupc branch.
2267 2011-03-20 Gary Funck <gary@intrepid.com>
2269 * varasm.c: Call error() directly with a format specifier,
2270 rather than using sprintf() to format the message.
2271 This should make it easier to internationalize UPC's error messages.
2273 2011-03-20 Gary Funck <gary@intrepid.com>
2275 * configure.ac: Fix the check for gnu ld when enabling
2276 UPC link script support.
2277 configure: Regenerate (also picks up changes from previous
2280 2011-03-20 Gary Funck <gary@intrepid.com>
2282 Move UPC start files, end files, and linker specs.
2283 into libupc. This reduces the impact on common GCC
2284 configuration files, and ensures that these UPC-specific
2285 components are only built when the UPC language dialect is selected.
2288 * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2289 linker specs. Fix typo in -fupc-debug message.
2291 * config/upc-conf.h, config/darwin.h: Move defines for
2292 UPC-related section begins/ends into libupc/config/default/
2295 * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2296 UPC-related linker compiler specifications,
2297 accessed via %:include().
2299 * configure.ac, configure: Remove logic related to building
2300 upc-crtbegin/end. Remove config. tests for numa and cpu
2301 affinity (previously used by the 'upc' driver); these
2302 settings are now propagated by target-specific compiler
2303 specs. built by libupc. Regenerate autoconf.
2305 * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2306 linker compiler specifications, accessed via %:include().
2307 Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2310 * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2312 * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2313 config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2314 config/ia64/linux.h, config/mips/t-iris,
2315 config/mips/iris6.h: Revert to trunk version 167307.
2318 * configure, configure.ac, config.host, Makefile.in:
2319 Revert to trunk version 167307.
2321 2011-02-23 Gary Funck <gary@intrepid.com>
2323 * c-decl.c (undeclared_variable): fix typo. Inadvertently
2324 removed negation on following 'if'.
2326 2011-02-22 Gary Funck <gary@intrepid.com>
2328 * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2329 to check for the usage of certain deprecated UPC keywords.
2330 * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2331 * c-tree.h (undeclared_variable): Define prototype.
2333 2011-02-12 Gary Funck <gary@intrepid.com>
2335 * c-typeck.c: (build_c_cast, convert_for_assignment)
2336 Diagnose an attempt to convert from an integer to
2337 a pointer-to-shared as an error. Also, fix various
2338 error messages so that they use the preferred term
2339 pointer-to-shared instead of "shared pointer".
2341 2011-02-07 Gary Funck <gary@intrepid.com>
2343 * c-typeck.c: (convert_for_assignment)
2344 Fix typo. in error message.
2346 2011-01-23 Gary Funck <gary@intrepid.com>
2348 * c-typeck.c: (c_build_qualified_type)
2349 derive UPC block size by calling upc_get_block_size(),
2350 to ensure that the element type of an array of an array
2351 is derived correctly.
2353 2010-12-29 Gary Funck <gary@intrepid.com>
2355 Merge trunk version 168314 into gupc branch.
2357 2010-12-15 Gary Funck <gary@intrepid.com>
2359 Merge trunk version 167307 into gupc branch.
2361 2010-10-19 Gary Funck <gary@intrepid.com>
2363 * c-typeck.c: Fix typo in previous fix
2364 which led to a mis-compare for equal block sizes.
2366 2010-10-18 Gary Funck <gary@intrepid.com>
2368 * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2369 diagnosed as an error
2371 The conversion from any type (shared or not) to
2372 a shared type is likely either meaningless or an error. This update
2373 makes any conversion to a shared type, an error.
2375 2010-10-18 Gary Funck <gary@intrepid.com>
2377 * c-typeck.c: Fix bug: passing int to shared pointer arg.
2378 generates spurious warning
2380 Add a #define procedure that does the same thing as
2381 WARN_FOR_ASSIGNMENT but issues an error diagnostic instead. Use
2382 this procedure to diagnose passing an integer value to a
2383 pointer-to-shared as an error.
2385 2010-10-18 Gary Funck <gary@intrepid.com>
2387 * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2388 matching routine declaration.
2390 When checking for type compatibility, shared qualified types must
2391 have the same block factor. This check was missing from
2392 comptypes_internal(). This update adds the check for blocking
2395 2010-10-17 Gary Funck <gary@intrepid.com>
2397 * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2400 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2402 2010-10-17 Gary Funck <gary@intrepid.com>
2404 * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2405 45869 - [4.5/4.6 Regression] type mismatch in shift expression
2406 produces ice with -O3 and -m32.
2408 See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2410 2010-10-17 Gary Funck <gary@intrepid.com>
2412 * c-common.c: Diagnose the application of the various "*sizeof"
2413 operations on generic pointer-to-shared as a compilation error.
2415 2010-10-17 Gary Funck <gary@intrepid.com>
2417 * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2418 message regarding a function parameter being declared with a shared
2421 The parameter's 'name' value is not defined at this point, and
2422 cannot be used in the error message. This update removes the
2423 reference to 'name', and eliminates the segfault.
2425 2010-10-16 Gary Funck <gary@intrepid.com>
2427 * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2429 The gcc/Makefile.in rules for install-plugin had to be re-written to
2430 break up a long list of header files that exceeded the command line
2431 limitation imposed by Irix.
2433 Access functions for TFmode types had to be implemented.
2434 Apparently, this is the mode used for the SGI/MIPS port to represent
2437 2010-10-14 Gary Funck <gary@intrepid.com>
2439 * c-decl.c: Fix bug: Multiple equal blocking factors specified
2440 via typedef chain should not be diagnosed as an error.
2442 If the block size that is given by the typedef is equal to the block
2443 size given explicitly in the variable declaration, then do not
2444 complain. The easiest way to make this check was to create a
2445 temporary type that is a clone of the element type and then set its
2446 block size using the given layout qualifier. Then compare the block
2447 size of the temporary (the declaration) to the block size specified
2448 in the typedef. This complexity is needed, because the '[*]' block
2449 size needs to be calculated, and the '[]' needs to be mapped into a
2452 2010-10-10 Gary Funck <gary@intrepid.com>
2454 * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2457 The compiler properly detected the presence of two or more layout
2458 qualifiers as an error, but then hit an assertion check, because the
2459 code that followed the error expected to see a qualifier and not a
2460 layout specifier. The fix is simple: just return immediately after
2461 detecting the error.
2463 2010-10-10 Gary Funck <gary@intrepid.com>
2465 * c-decl.c: Improve error diagnostics for various cases of UPC
2466 shared array type declarations.
2468 Add the check for this error: "In the dynamic translation
2469 environment, THREADS may not appear in declarations of shared arrays
2470 with indefinite block size". Also, fix up a few of the other
2471 related error diagnostics.
2473 2010-10-09 Gary Funck <gary@intrepid.com>
2475 * c-common.c: Fix bug: segfault on incomplete array definition.
2477 This turned out to be a bit complicated. The logic in
2478 upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2479 the THREADS identifier in the case where the blocking factor has
2480 been set to indefinite ([]). This can happen when indefinite array
2481 declarations are processed for shared arrays. At that time, the
2482 file scope has been closed and THREADS is no longer in scope. Some
2483 more work is needed on upc_lang_layout_decl(). It has some
2484 duplication, and notably duplicates the two branches of the if
2485 having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2486 caller of this routine (layout_decl()).
2488 The method of forcing a layout qualifier of [] in the indefinite
2489 declaration handler is odd a well. The code that just does the
2490 setting of the block factor, needs to moved into its own routine
2491 that doesn't depend upon a declspec for '[]' to be passed in, just
2492 in order to set the blocking factor to some value (in this case, 0).
2493 Also, the logic for how that shared type is constructed is strange.
2494 First the type with 0 blocking factor is set. Then the shared
2495 qualifier is removed from the type, and then added back later. The
2496 intermediate type has a blocking factor set, but it has no shared
2497 qualifier. Fixing this will require some thought. It is tempting
2498 just to make indefinite shared arrays an error, rather than forcing
2499 the dimension to be '1'.
2501 This likely fixes a serious error in the previous update to
2502 upc_lang_layout_decl(), where it didn't have the logic to set
2503 TYPE_SIZE_UNIT() in the main part of the 'if' statement. This means
2504 the previous update would fail on many tests.
2506 2010-10-09 Gary Funck <gary@intrepid.com>
2508 * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2509 (decl) is null, which can happen if some layout error occurred
2512 2010-10-09 Gary Funck <gary@intrepid.com>
2514 * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2515 "variable-sized" when compiled in dynamic threads.
2517 This long-standing bug is easily fixed. Just check
2518 for the situation that the non-constant sized type is shared and
2519 that it does not have a dimension that references a multiple of
2520 threads. If this criteria is met, then issue a meaningful
2523 2010-10-01 Gary Funck <gary@intrepid.com>
2525 * configure, configure.ac: Update manual page, and bug reporting
2528 Update "man" page to reflect debugging switches. Also, some general
2529 clean up. Change the bug reporting URL to point to gccupc.org.
2531 2010-09-27 Gary Funck <gary@intrepid.com>
2533 * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2534 the UPC forall depth count variable is not found.
2536 The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2537 The compiler will generate code that references this variable in
2538 order to implement nested upc_forall semantics. If there is a
2539 compiler build or install problem, this variable may not be found.
2540 In this case, terminate with an internal_error().
2542 2010-09-26 Gary Funck <gary@intrepid.com>
2544 * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2545 mis-diagnosed as syntax error.
2547 Fix a failure exhibited by the Berkeley test case,
2548 bug873a.upc, which has the code:
2550 upc_forall (;;;d) {...} The compiler did not properly handle
2551 the empty "condition" clause, and did not recover well when it was
2552 determined that the use of a double value, "d" above, was neither a
2553 pointer-to-shared nor an integer expression. The update implements a
2554 fix for both issues.
2556 See also: gcc/c-parser.c gcc/upc/upc-act.c
2558 2010-09-23 Gary Funck <gary@intrepid.com>
2560 * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2561 incorporated into the referencing type.
2563 This was semi-fixed a few times before. This update fixes a few
2564 more places where the layout qualifier wasn't being propagated
2565 through typedef's properly. What made this a bit tricky is shown in
2566 the example cited in the bug report:
2568 typedef shared [5] int A_t; A_t A[5*THREADS];
2570 In the typedef, the blocksize is being applied to a shared *scalar*,
2571 and the code was applying the blocksize only to arrays. This update
2572 handles shared scalars correctly.
2574 2010-09-22 Gary Funck <gary@intrepid.com>
2576 * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2577 upc_forall() semantics are not implemented
2579 The checkforall test in the Berkeley harness test suite indicated
2580 that GCC/UPC was not properly implementing nested upc_forall
2581 semantics. Nested upc_forall statements (both statically or
2582 dynamically nested) must implement their affinity clause as if it
2583 were "continue"; thus all steps in the loop must execute without
2584 regard for affinity. To implement these semantics a global depth
2585 counter, __upc_forall_depth, is maintained by the generated code
2586 that implements upc_forall.
2588 See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2589 gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2590 libupc/include/upc.h libupc/smp/upc_main.c
2592 2010-09-19 Gary Funck <gary@intrepid.com>
2594 * c-decl.c: c-decl.c: zero out the layout specifier, after
2595 processing an array type.
2597 Fix the previous fix, that moved the setting of the type's layout
2598 qualifier to the outside of the array type processing loop. What is
2599 missing from the fix is that the layout_qualifier variable needs to
2600 be cleared after setting the type's blocksize.
2602 2010-09-19 Gary Funck <gary@intrepid.com>
2604 * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2605 given blocksize is greater than UPC_MAX_BLOCKSIZE.
2607 The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2608 the actual maximum block size. Therefore, the message was correct,
2609 but the underlying value that was being checked was wrong. Change
2610 the values so that they agree with the actual implementation-defined
2613 2010-09-11 Gary Funck <gary@intrepid.com>
2615 * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2616 multi-dimensional shared array with dynamic threads.
2618 This declaration caused an internal compiler error when compiled
2619 with dynamic threads:
2620 shared [*] int A[THREADS][16]; The bug was discovered when
2621 compiling the RTED_UPC test suite.
2623 The fix is to process layout qualifiers after the entire array type
2624 has been built. Otherwise, we try to calculate the blocksize on a
2625 shared array type that has not had its "size depends upon the value
2626 of THREADS" flag set.
2628 Also, added a test case.
2630 See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2632 2010-07-11 Gary Funck <gary@intrepid.com>
2634 Fix a bug where a statement in c_build_qualified_type()
2635 in the trunk had been inadvertently deleted.
2636 This bug showed up in the IA64 port, because jmpbuf's
2637 on that architecture must be 16 byte aligned, and they were not.
2638 c-typeck.c (c_build_qualified_type): Revive the deleted line.
2640 2010-07-08 Gary Funck <gary@intrepid.com>
2642 Make changes so that other language compilers
2643 will build and bootstrap.
2644 * c-family/c-common.c (compiling_upc, flag_upc,
2645 flag_upc_instrument, flag_upc_instrument_functions,
2646 use_upc_dwarf2_extensions): Move to stub-upc.c and
2648 * c-family/c-common.h (use_upc_dwarf2_extensions,
2649 compiling_upc): Add extern definitions - needed
2650 to compile/build other language front ends.
2651 * c-family/c.opt: Fix the spelling of ObjC.
2652 It had been incorrectly spelled as Objc.
2653 * c-family/c.opt: Add UPC for the various switches
2654 that are valid for both C and ObjC.
2655 * c-fmaily/c-opts.c: Add CL_UPC to the list of
2656 supported options switches when compiling assembly
2658 * lto/lto-lang.c (use_upc_dwarf2_extensions,
2659 flag_upc_instrument, flag_upc_instrument_functions):
2660 Remove these definitions. They have been moved
2661 to c-family/stub-upc.c.
2662 * upc/ChangeLog: Move relevant entries
2664 * c-family/stub-upc.c (compiling_upc, flag_upc,
2665 flag_upc_instrument, flag_upc_instrument_functions,
2666 use_upc_dwarf2_extensions): Moved from c-common.c
2667 * upc/upc-lang.c (compiling_upc, flag_upc,
2668 flag_upc_instrument, flag_upc_instrument_functions,
2669 use_upc_dwarf2_extensions): Moved from c-common.c
2670 * objc/objc-act.c (objc_gimplify_expr): Add additional
2671 parameters to c_gimplify_expr() call, that are used
2672 by upc's tree rewrites.
2673 * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2674 * gcc/cp/lex.c (init_reswords): If not compiling
2675 UPC, then mask off the UPC keywords.
2676 * cp/Make-lang.in (C_STUB_OBJS): Use this
2677 make macro to link with c-family/stub-objc.o
2678 and c-family/stub-upc.o.
2679 * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2680 * java/Make-lang.in (C_STUB_OBJS): Likewise.
2681 * objc/Make-lang.in: Link with c-family/stub-upc.o
2682 to avoid undefined references.
2683 c-parser.c: Fix line indentation.
2684 * libcpp/include/cpplib.h: Remove CL_UPC from
2685 the list of language kinds accepted by the
2686 C preprocessor. This is not necessary because
2687 UPC is a derivative of C99, and does not need
2688 a different language kind.
2689 * c-fmaily/c-opts.c (c_common_handle_option):
2690 Call set_std_c99() when processing the
2691 "--lang upc" switch, instead of setting the
2692 language kind to CL_UPC.
2693 * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2695 2010-07-03 Gary Funck <gary@intrepid.com>
2697 Merge trunk version 161517 into gupc branch.
2698 * gcc/stub-upc.c: Move to gcc/c-family/.
2699 * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2700 Add 'unused' attributes to avoid "set, but
2701 not referenced" warnings.
2702 * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2705 2010-03-01 Gary Funck <gary@intrepid.com>
2707 Create gupc branch from trunk version 157149.