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