Merge trunk version 206243 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blobda48529f23b1610f9643b9efec9795cdbd3236ee
1 2013-12-30 Gary Funck  <gary@intrepid.com>
3         Merge trunk version 206243 into gupc branch.
5 2013-12-23 Gary Funck  <gary@intrepid.com>
7         Merge trunk version 206179 into gupc branch.
9 2013-12-22 Gary Funck  <gary@intrepid.com>
11         * upc/upc-act.c (upc_cpp_builtins): Bump UPC_VERSION
12         to reflect UPC specification version 1.3 compliance.
14 2013-12-16 Gary Funck  <gary@intrepid.com>
16         Merge trunk version 206010 into gupc branch.
18 2013-12-09 Gary Funck  <gary@intrepid.com>
20         Merge trunk version 205801 into gupc branch.
22 2013-12-03 Meador Inge  <meadori@codesourcery.com>
24         * tree-core.h (tree_type_common): Change tree_type_common to use
25         user-provided GC marking.
26         (gt_ggc_mx, gt_pch_nx): New prototypes.
27         * tree.c (gt_ggc_mx, gt_pch_nx): New functions.
29 2013-12-03 Gary Funck  <gary@intrepid.com>
31         Revert:
33         2011-10-10  Gary Funck  <gary@intrepid.com>
35         * tree.c (check_qualified_type, check_aligned_type):
36         Call tree_int_cst_equal() to compare UPC blocking factors
37         if the corresponding tree pointers are not equal.
38         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
40 2013-12-03 Gary Funck  <gary@intrepid.com>
42         * c-family/c.opt: Fix typo introduced in 2013-06-03
43         merge with trunk.
45 2013-12-02 Gary Funck  <gary@intrepid.com>
47         Merge trunk version 205582 into gupc branch.
49 2013-11-26  Meador Inge  <meadori@codesourcery.com>
51         * upc/upc-genericize.c (upc_expand_get): Ensure that temporaries
52         are declared via a DECL_EXPR.
54 2013-11-25 Gary Funck  <gary@intrepid.com>
56         Merge trunk version 205346 into gupc branch.
58 2013-11-18 Gary Funck  <gary@intrepid.com>
60         Merge trunk version 204942 into gupc branch.
62 2013-11-15 Gary Funck  <gary@intrepid.com>
64         Merge trunk version 204894 into gupc branch.
66 2013-11-15 Gary Funck  <gary@intrepid.com>
68         Merge trunk version 204659 into gupc branch.
70 2013-11-04 Gary Funck  <gary@intrepid.com>
72         Merge trunk version 204345 into gupc branch.
74 2013-10-31 Gary Funck  <gary@intrepid.com>
76         Released GUPC 4.9.0.1 based on version 203902.
77         This release version was committed on 2013-10-21.
78         * DEV-PHASE: Bump to 4.9.0.2.
79         * DATESTAMP: Bump date stamp.
81 2013-10-28 Gary Funck  <gary@intrepid.com>
83         Merge trunk version 204119 into gupc branch.
85 2013-10-21 Gary Funck  <gary@intrepid.com>
87         Merge trunk version 203886 into gupc branch.
89 2013-10-14 Gary Funck  <gary@intrepid.com>
91         Merge trunk version 203514 into gupc branch.
93 2013-10-07 Gary Funck  <gary@intrepid.com>
95         Merge trunk version 203240 into gupc branch.
97 2013-10-01 Gary Funck  <gary@intrepid.com>
99         Implement pointer-to-shared -> integer conversions.
100         Required per UPC 1.3 Specification.
101         * c/c-typeck.c (build_c_cast): Remove logic that diagnosed
102         PTS->int conversions as an error.  Rewrite into a CONVERT_EXPR
103         for later processing by upc_genericize().
105 2013-10-01 Gary Funck  <gary@intrepid.com>
107         Implement pointer-to-shared -> integer conversions.
108         Required per UPC 1.3 Specification.
109         * upc/upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
110         (upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().
112 2013-09-30 Gary Funck  <gary@intrepid.com>
114         Merge trunk version 203026 into gupc branch.
116 2013-09-23 Gary Funck  <gary@intrepid.com>
118         Merge trunk version 202825 into gupc branch.
120 2013-09-18 Gary Funck  <gary@intrepid.com>
122         Merge trunk version 202725 into gupc branch.
124 2013-09-16 Gary Funck  <gary@intrepid.com>
126         Merge trunk version 202619 into gupc branch.
128 2013-09-09 Gary Funck  <gary@intrepid.com>
130         Merge trunk version 202382 into gupc branch.
132 2013-09-02 Gary Funck  <gary@intrepid.com>
134         Merge trunk version 202159 into gupc branch.
136 2013-08-26 Gary Funck  <gary@intrepid.com>
138         Merge trunk version 202008 into gupc branch.
140 2013-08-19 Gary Funck  <gary@intrepid.com>
142         Merge trunk version 201832 into gupc branch.
144 2013-08-05 Gary Funck  <gary@intrepid.com>
146         Merge trunk version 201483 into gupc branch.
148 2013-07-29 Gary Funck  <gary@intrepid.com>
150         Merge trunk version 201301 into gupc branch.
152 2013-07-22 Gary Funck  <gary@intrepid.com>
154         Merge trunk version 201119 into gupc branch.
156 2013-07-15 Gary Funck  <gary@intrepid.com>
158         Merge trunk version 200955 into gupc branch.
160 2013-07-08 Gary Funck  <gary@intrepid.com>
162         Merge trunk version 200775 into gupc branch.
164 2013-07-01 Gary Funck  <gary@intrepid.com>
166         Merge trunk version 200575 into gupc branch.
168 2013-06-24 Gary Funck  <gary@intrepid.com>
170         Merge trunk version 200361 into gupc branch.
172 2013-06-19 Gary Funck  <gary@intrepid.com>
174         Merge trunk version 200149 into gupc branch.
176 2013-06-19 Gary Funck  <gary@intrepid.com>
178         Merge trunk version 200149 into gupc branch.
179         * upc/upc-act.c (upc_create_static_var): New.
180         (upc_build_init_func): Call upc_create_static_var() to
181         create a static variable, __upc_init_func_addr, which
182         is initialized to the address of the UPC
183         shared data initialization function.  This change is
184         needed to avoid writing to the output assembly language
185         file too early.
186         (upc_build_sync_stmt): Delete unused variable, sync_expr_type.
188 2013-06-03 Gary Funck  <gary@intrepid.com>
190         Merge trunk version 199596 into gupc branch.
192 2013-05-27 Gary Funck  <gary@intrepid.com>
194         Merge trunk version 199350 into gupc branch.
196 2013-05-20 Gary Funck  <gary@intrepid.com>
198         Merge trunk version 199093 into gupc branch.
200 2013-05-14 Gary Funck  <gary@intrepid.com>
202         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt):
203         When checking whether the phase of a PTS should be reset,
204         if the source type is an array type, then bypass
205         the check for equal type sizes.
206         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
208 2013-05-13 Gary Funck  <gary@intrepid.com>
210         Merge trunk version 198815 into gupc branch.
212 2013-05-06 Gary Funck  <gary@intrepid.com>
214         Merge trunk version 198622 into gupc branch.
216 2013-04-29 Gary Funck  <gary@intrepid.com>
218         Merge trunk version 198433 into gupc branch.
220 2013-04-15 Gary Funck  <gary@intrepid.com>
222         Merge trunk version 197958 into gupc branch.
224 2013-04-08 Gary Funck  <gary@intrepid.com>
226         Merge trunk version 197571 into gupc branch.
228 2013-04-04 Gary Funck  <gary@intrepid.com>
230         Per the UPC 1.3 specification, the type of the
231         optional barrier/notify/wait expression is not constrained to
232         'int'. Instead, any type that is assignment compatible
233         with an 'int' type is permitted.
234         * c/c-parser.c (c_parser_upc_sync_statement): Do not check
235         the optional expression type here.  Let upc_build_sync_stmt()
236         handle it.
237         * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
238         * c/c-typeck.c (c_cvt_expr_for_assign): New.  Also, call
239         error_at() in lieu of error() when the source location is known.
240         * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
241         to check/convert the optional synchronization statement
242         expression.
244 2013-04-02 Gary Funck  <gary@intrepid.com>
246         Merge trunk version 197340 into gupc branch.
248 2013-04-02 Gary Funck  <gary@intrepid.com>
250         Revert revision 178346 (2011-08-30)
251         which changed the prototype of check_qualified_type and related
252         functions so that their parameters were just 'tree' and not
253         'const_tree'.  This seemed necessary at the time because of a
254         change to TYPE_BLOCK_FACTOR(), which in turn called function
255         that hashed the type node pointer.  The hash functions did
256         not accept "const void *" pointers.  Implement a work around
257         that removes this restriction.
258         * c/c-typeck.c: Revert.
259         * tree.c: Revert.
260         * tree.h: Revert.  Change prototype of upc_block_factor_lookup()
261         to accept a 'const_tree' pointer to a type node.
262         * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
263         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
264         input argument and convert this to 'tree' for use with hash function.
266 2013-04-02 Gary Funck  <gary@intrepid.com>
268         Revert revision 178346 (2011-08-30)
269         which changed the prototype of check_qualified_type and related
270         functions so that their parameters were just 'tree' and not
271         'const_tree'.  This seemed necessary at the time because of a
272         change to TYPE_BLOCK_FACTOR(), which in turn called a function
273         that hashed the type node pointer.  The hash functions did
274         not accept "const void *" pointers.  Implement a work around
275         that removes this restriction.
276         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
277         input argument and convert this to 'tree' for use with hash function.
279 2013-03-25 Gary Funck  <gary@intrepid.com>
281         Merge trunk version 197029 into gupc branch.
283 2013-03-21 Gary Funck  <gary@intrepid.com>
285         Released GUPC 4.8.0.3 based on version 196601.
286         This release version was committed on 2013-03-11.
287         * DATESTAMP: Bump date stamp.
289 2013-03-18 Gary Funck  <gary@intrepid.com>
291         Merge trunk version 196771 into gupc branch.
292         * DEV-PHASE: Bump release identifier to 4.9.0-1.
294 2013-03-11 Gary Funck  <gary@intrepid.com>
296         Merge trunk version 196592 into gupc branch.
298 2013-03-04 Gary Funck  <gary@intrepid.com>
300         Merge trunk version 196422 into gupc branch.
302 2013-02-25 Gary Funck  <gary@intrepid.com>
304         Merge trunk version 196253 into gupc branch.
306 2013-02-18 Gary Funck  <gary@intrepid.com>
308         Merge trunk version 196115 into gupc branch.
310 2013-02-11 Gary Funck  <gary@intrepid.com>
312         Merge trunk version 195937 into gupc branch.
314 2013-02-04 Gary Funck  <gary@intrepid.com>
316         Merge trunk version 195707 into gupc branch.
318 2013-01-28 Gary Funck  <gary@intrepid.com>
320         Merge trunk version 195502 into gupc branch.
322 2013-01-21 Gary Funck  <gary@intrepid.com>
324         Merge trunk version 195330 into gupc branch.
326 2013-01-14 Gary Funck  <gary@intrepid.com>
328         Merge trunk version 195164 into gupc branch.
330 2013-01-07 Gary Funck  <gary@intrepid.com>
332         Merge trunk version 194962 into gupc branch.
334 2012-12-24 Gary Funck  <gary@intrepid.com>
336         Merge trunk version 194709 into gupc branch.
338 2012-12-17 Gary Funck  <gary@intrepid.com>
340         Merge trunk version 194552 into gupc branch.
342 2012-12-10 Gary Funck  <gary@intrepid.com>
344         Merge trunk version 194351 into gupc branch.
346 2012-12-03 Gary Funck  <gary@intrepid.com>
348         Merge trunk version 194076 into gupc branch.
350 2012-11-30  Gary Funck  <gary@intrepid.com>
352         Released GUPC 4.8.0.2 based on version 193446.
353         Date of release: 2012-11-12.
354         * DEV-PHASE: Bump release identifier to 4.8.0-3.
355         * DATESTAMP: Bump date stamp.
357 2012-11-26 Gary Funck  <gary@intrepid.com>
359         Merge trunk version 193807 into gupc branch.
361 2012-11-20 Gary Funck  <gary@intrepid.com>
363         Merge trunk version 193672 into gupc branch.
365 2012-11-19 Gary Funck  <gary@intrepid.com>
367         Merge trunk version 193617 into gupc branch.
369 2012-11-15 Gary Funck  <gary@intrepid.com>
371         Merge trunk version 193426 into gupc branch.
373 2012-11-12  Gary Funck  <gary@intrepid.com>
375         Released GUPC 4.8.0.1 based on version 192948.
376         Date of release: 2012-10-29.
377         * DEV-PHASE: Bump release identifier to 4.8.0-2.
378         * DATESTAMP: Bump date stamp.
380 2012-11-05 Gary Funck  <gary@intrepid.com>
382         Merge trunk version 193152 into gupc branch.
384 2012-10-29 Gary Funck  <gary@intrepid.com>
386         Merge trunk version 192909 into gupc branch.
388 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
390         Remove unused --upc-pthreads-per-process compile switch.
391         * c-family/c.opt: Remove --upc-pthreads-per-process switch
392         that compiler/runtime do not use.
393         * c-family/c-opts.c (c_common_handle_option): Remove support for
394         --upc-pthreads-per-process switch.
395         * c-family/c-common.c: Ditto.
396         * c-family/c-common.h: Ditto.
398 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
400         Remove unused --upc-pthreads-per-process compile switch. 
401         * upc/upc-act.c (upc_handle_option): Ditto.
402         (upc_cpp_builtins): Ditto.
403         * upc/upc-lang.c (upc_init_options): Ditto.
405 2012-10-27 Gary Funck  <gary@intrepid.com>
407         * defaults.h: fix typos and formatting in UPC-related entries.
409 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
411         Place shared initialization code into the .text
412         section instead of a separate .upc_init section.
413         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
414         (UPC_INIT_BEGIN_NAME): Delete.
415         (UPC_INIT_END_NAME): Delete.
416         * doc/tm.texi.in: Ditto.
417         * doc/tm.texi: Ditto.
419 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
421         Place shared initialization code into the .text
422         section instead of a separate .upc_init section.
423         * upc/upc-act.c (upc_build_init_func): Remove settings
424         of the section for shared initialization code.
426 2012-10-22 Gary Funck  <gary@intrepid.com>
428         Merge trunk version 192673 into gupc branch.
430 2012-10-15 Gary Funck  <gary@intrepid.com>
432         Merge trunk version 192449 into gupc branch.
434 2012-10-08 Gary Funck  <gary@intrepid.com>
436         Merge trunk version 192198 into gupc branch.
438 2012-10-01 Gary Funck  <gary@intrepid.com>
440         Merge trunk version 191931 into gupc branch.
442 2012-09-26  Gary Funck  <gary@intrepid.com>
444         Implement support for various UPC version 1.3 specification
445         additions and changes. Deprecate support for upc_local_alloc.
446         Add support for upc_tick (wall-clock timer) library.
447         Add support for collective de-allocation functions:
448         upc_all_free and upc_all_lock_free.
449         Consult libgupc/ChangeLog,
450         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
452 2012-09-26  Gary Funck  <gary@intrepid.com>
454         * upc/upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.
456 2012-09-24 Gary Funck  <gary@intrepid.com>
458         Merge trunk version 191658 into gupc branch.
460 2012-09-17  Gary Funck  <gary@intrepid.com>
462         Merge trunk version 191376 into gupc branch.
464 2012-09-10  Gary Funck  <gary@intrepid.com>
466         Merge trunk version 191141 into gupc branch.
468 2012-08-29  Nenad Vukicevic  <nenad@intrepid.com>
470         * upc/gupc.texi: Add description for -fupc-pre-include.
472 2012-08-27  Gary Funck  <gary@intrepid.com>
474         Merge trunk version 190707 into gupc branch.
475         * tree.h (struct tree_base): Adjust various
476         UPC tree and type flags to refer to the
477         newly introduced u.bits field.
479 2012-08-20  Gary Funck  <gary@intrepid.com>
481         Merge trunk version 190524 into gupc branch.
482         Incorporates a fix in genoutput.c (to properly use
483         CONST_CAST) that led to build failures with
484         older versions of g++.
486 2012-08-16  Gary Funck  <gary@intrepid.com>
488         Merge trunk version 190437 into gupc branch.
489         Incorporates a fix for a build failure on the PPC
490         due to passing incorrect switches to the assembler.
491         Also, first merged trunk revision that compiles GCC
492         with the C++ compiler in the first stage.
494 2012-08-16  Gary Funck  <gary@intrepid.com>
496         * upc/upc-pts-struct.c (upc_pts_struct_is_null_p):
497         Adjust VEC_index() calls to use C++ syntax.
498         This is required as part of the move to compile
499         GCC with the C++ compiler.
501 2012-08-13  Gary Funck  <gary@intrepid.com>
503         Merge trunk version 190336 into gupc branch.
505 2012-08-09  Gary Funck  <gary@intrepid.com>
507         * c-family/c-common.c (c_fully_fold_internal): Do not fold
508         offsetof-like expressions when they are applied to UPC
509         shared types.
511 2012-08-07  Gary Funck  <gary@intrepid.com>
513         * upc/upc-genericize.c: Delete un-used include of optabs.h.
514         Fixes a parallel make failure due to un-noticed dependency.
516 2012-08-06  Gary Funck  <gary@intrepid.com>
518         Merge trunk version 190173 into gupc branch.
520 2012-08-01  Gary Funck  <gary@intrepid.com>
522         Merge trunk version 190063 into gupc branch.
523         Incorporates fix for build failure on IA64.
525 2012-07-30  Gary Funck  <gary@intrepid.com>
527         Merge trunk version 189954 into gupc branch.
529 2012-07-27  Gary Funck  <gary@intrepid.com>
531         Merge trunk version 189856 into gupc branch.
532         Incorporates fix for bootstrap with a sub-set of language
533         specific source directories present.
534         * optabs.c: Revert to trunk.  Rather than defining opcodes
535         as a way of defining get/put runtime library function names,
536         generate them directly in gcc/upc/upc-genericize.c.
537         * optabs.h: Ditto.
538         * genopinit.c: Ditto.
540 2012-07-27  Gary Funck  <gary@intrepid.com>
542         * upc/upc-genericize.c (upc_expand_get, upc_expand_put):
543         Rather than referring to UPC-specific opcodes to find
544         the name of the get/put library function name, generate
545         the name directly.
546         (get_lc_mode_name): New.
548 2012-07-25  Gary Funck  <gary@intrepid.com>
550         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
551         Fix regression: field-by-field comparison of UPC
552         pointer-to-shared (vaddr, thread) only works
553         (with the current logic) for the == and != operators.
555 2012-07-24  Gary Funck  <gary@intrepid.com>
557         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
558         Fix warning about use of const_tree.
560 2012-07-24  Gary Funck  <gary@intrepid.com>
562         Per UPC spec. 6.4.2p6, ignore the value of the
563         phase of a pointer-to-shared, when comparing for
564         equal or not equal.
565         * upc/upc-pts-packed.c (upc_pts_packed_build_cond_expr):
566         Use bit-wise comparison only if the UPC pointer-to-shared
567         target type has a block size <= 1 and the representation
568         has vaddr first or the comparison is for equality/inequality.
569         * upc/upc-pts-struct.c (upc_pts_struct_build_cond_expr):
570         Use (vaddr, thread) comparison only if the UPC pointer-to-shared
571         has a block size <= 1 or the comparison is for equality/inequality.
573 2012-07-23  Gary Funck  <gary@intrepid.com>
575         Merge trunk version 189777 into gupc branch.
577 2012-07-16  Gary Funck  <gary@intrepid.com>
579         Merge trunk version 189545 into gupc branch.
581 2012-07-12  Gary Funck  <gary@intrepid.com>
583         Merge trunk version 189366 into gupc branch.
585 2012-07-05  Gary Funck  <gary@intrepid.com>
587         Merge trunk version 189274 into gupc branch.
588         Incorporates graphite build infrastructure changes.
590 2012-07-04  Gary Funck  <gary@intrepid.com>
592         Merge trunk version 189080 into gupc branch.
593         * Makefile.in: Adjust for move of C front-end files.
594         * c/Make-lang.in: Ditto.
596 2012-07-04  Gary Funck  <gary@intrepid.com>
598         * upc/config-lang.in: Adjust for move of C front-end files.
599         * upc/upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
600         * upc/upc-gasp.c: Ditto.
601         * upc/upc-genericize.c: Ditto.
602         * upc/upc-lang.c: Ditto.
603         * upc/upc-pts-struct.c: Ditto.
605 2012-07-03  Gary Funck  <gary@intrepid.com>
607         Merge trunk version 189078 into gupc branch.
609 2012-06-25  Gary Funck  <gary@intrepid.com>
611         Merge trunk version 188931 into gupc branch.
613 2012-06-18  Gary Funck  <gary@intrepid.com>
615         Merge trunk version 188721 into gupc branch.
617 2012-06-11  Gary Funck  <gary@intrepid.com>
619         Merge trunk version 188380 into gupc branch.
621 2012-06-04  Gary Funck  <gary@intrepid.com>
623         Merge trunk version 188168 into gupc branch.
625 2012-05-29  Gary Funck  <gary@intrepid.com>
627         Merge trunk version 187927 into gupc branch.
629 2012-05-19  Gary Funck  <gary@intrepid.com>
631         * upc/upc-act.c (upc_lang_layout_decl): Ignore declarations of
632         an array of shared type declarations if the size of the
633         array is zero.  This avoids a segfault when processing
634         the UPC blocking factor.
636 2012-05-18  Gary Funck  <gary@intrepid.com>
638         Merge trunk version 187666 into gupc branch.
639         Incorporates fix for ICE in tree vectorization pass
640         when processing strided loads.
642 2012-05-17  Gary Funck  <gary@intrepid.com>
644         Merge trunk version 187578 into gupc branch.
646 2012-05-09  Gary Funck  <gary@intrepid.com>
648         Merge trunk version 187347 into gupc branch.
649         Incorporates fix for segfault in tree vectorization pass.
651 2012-05-08  Nenad Vukicevic  <nenad@intrepid.com>
653         * upc/gupcspec.c (lang_specific_driver): Improve handling of
654         "-x" switches: (a) add "-x upc" switch for C source files if
655         no -x switch was seen before OR "-x none" was seen, (b) add
656         "-x none" for files other then C files if "-x upc" was
657         previously added. Cleanup warnings on unused variables
658         and integer conversion. Print verbose info regardless of the
659         command line being the same.
661 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
663         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
664         Appropriate libraries and include files are added on the
665         command line to make it possible to compile with the driver
666         from the build tree.
668 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
670         * upc/gupc.texi: Simplify the description of the optimization
671         options.
673 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
675         * upc/Make-lang.in: Remove build of xgupc.
676         * upc/gupcspec.c (get_libgupc_path): Delete.
677         (lang_specific_driver): Remove support for building xgupc.
678         Removed code tried to add -B, -L, -isystem to the command
679         line if xgupc driver is invoked from the development tree.
681 2012-05-04  Gary Funck  <gary@intrepid.com>
683         * upc/upc-act.c (upc_num_threads): When THREADS is specified
684         statically, convert the value to a signed size type,
685         so that (for example) the thread affinity test in a
686         upc_forall() statement will work as expected for negative
687         integer index values.
689 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
691         * upc/Make-lang.in: Add year 2012 to the copyright.
693 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
695         * upc/gupc.c: Delete. The old GUPC driver.
696         * upc/gupcspec.c: Add. The new GUPC driver tailored
697         after fortran/gfortranspec.c driver. Options "-n", "-inst",
698         and "-inst-functions' are not supported by the new driver.
699         Support for building gupc and xgupc remains the same.
700         * upc/Make-lang.in (xgupc): Changes to compile gupcspec.c
701         instead of gupc.c
702         (gupc): Ditto.
703         * upc/gupc.texi: Remove '-n', '-inst', and '-inst-functions'
704         options.
706 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
708         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
709         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
710         a function returns a pointer-to-shared in memory instead
711         of in registers.
712         (rs6000_pass_by_reference): Ditto.
714 2012-04-28  Gary Funck  <gary@intrepid.com>
716         * c-decl.c (grokdeclarator): Set 'type' to error node
717         after detecting "shared auto variable" error to avoid
718         downstream complications.
719         * upc/upc-act.c: Fix a couple of spelling errors in comments.
721 2012-04-26  Gary Funck  <gary@intrepid.com>
723         * c-family/c-pragma.c (handle_pragma_upc):
724         Fix typo in warning message.
726 2012-04-17  Nenad Vukicevic  <nenad@intrepid.com>
728         * upc/gupc.texi: Fix the warning for usage of 'insertcopying'
729         before 'copying'. Minor changes to to copyright years and
730         manual info.
732 2012-04-17  Gary Funck  <gary@intrepid.com>
734         Merge trunk version 186486 into gupc branch.
736 2012-04-17  Gary Funck  <gary@intrepid.com>
738         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
739         value of the pupc mode.  Fixes a compile-time warning.
740         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
741         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
742         Improve source formatting.
744 2012-04-16  Gary Funck  <gary@intrepid.com>
746         * upc/upc-genericize.c: Adjust copyright.
747         (upc_genericize_fndecl): Adjust call graph
748         union member reference to use the newly introduced
749         'symbol' field in order to refer to 'decl'.
751 2012-04-09  Gary Funck  <gary@intrepid.com>
753         Merge trunk version 186243 into gupc branch.
754         Incorporates a powerpc 'ffi' fix.
756 2012-03-16  Gary Funck  <gary@intrepid.com>
758         Merge trunk version 185454 into gupc branch.
759         Incorporates a libgcc fix for builds on Darwin.
761 2012-03-13  Gary Funck  <gary@intrepid.com>
763         Merge trunk version 185278 into gupc branch.
764         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
765         call build_pointer_type() to apply UPC-specific qualifiers.
766         * top-level/configure.ac: factor the checking for posix hostst
767         out of the libgomp section so that it can also be used by libgupc.
768         * top-level/configure: Re-generate.
769         * DEV-PHASE: bump to 4.8.0-1.
771 2012-03-12  Gary Funck  <gary@intrepid.com>
773         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
774         the mode for a pointer for upc-pointer-to-shared types.
776 2012-03-04  Gary Funck  <gary@intrepid.com>
778         Merge trunk version 184900 into gupc branch.
780 2012-02-17  Gary Funck  <gary@intrepid.com>
782         Released GUPC 4.7.0.2 based on version 183992.
783         * DEV-PHASE: Bump release identifier to 4.7.0-3.
784         * DATESTAMP: Bump date stamp.
786 2012-02-07  Nenad Vukicevic  <nenad@intrepid.com>
788         * upc/gupc.texi: Added entries for the directory.
790 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
792         * upc/gupc-manpage.html: Removed. HTML files are generated from
793         the texi source.
795 2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>
797         * upc/gupc.texi (-x upc): Add files ending with '.c' to the list
798         of files compiled as UPC source.
800 2012-02-04  Nenad Vukicevic  <nenad@intrepid.com>
802         * upc/Make-lang.in (doc/gupc.info): Fix dependencies for creating
803         gupc.info document.
805 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
807         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
808         code generation (same as #pragma pupc off).
809         (set_pupc_mode): New. Set/restore profiling mode.
810         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
811         (set_pupc_mode): New. Prototype.
812         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
813         profiling code for shared variables initialization routines.
815 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
817         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
818         profiling code for shared variables initialization routines.
820 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
822         * upc/Make-lang.in: Various changes related to generating
823         man/info pages from texi source file.
824         (upc.install-common): Fix for removing the upc command
825         link before install if suffix was applied.
826         (upc.install-pdf): New.
827         (upc.install-html): Change for the build from texi.
828         (upc.install-man): Change for the build from texi.
829         * upc/gupc.1: Removed.
830         * upc/gupc.texi: New. Created texi source for man/info
831         generation.
833 2012-01-31  Gary Funck  <gary@intrepid.com>
835         Merge trunk version 183751 into gupc branch.
836         Incorporates fix for bootstrap failure on openSUSE 12.1.
838 2012-01-30  Nenad Vukicevic  <nenad@intrepid.com>
840         * upc/Make-lang.in: Fix the --program-suffix configuration
841         option.  GUPC executables are now installed with appropriate
842         suffixes and GUPC driver execs 'gcc' with the right suffix.
844 2012-01-24  Nenad Vukicevic  <nenad@intrepid.com>
846         * upc/upc-lang.c (upc_init_options): Disable section anchors
847         for UPC language.
849 2012-01-14  Gary Funck  <gary@intrepid.com>
851         * upc/upc-genericize.c (upc_genericize_expr): Update input_location
852         while traversing the program tree.
853         (upc_expand_get, upc_expand_put): For profiling,  derive
854         the source code location from the incoming 'loc' parameter.
856 2012-01-10  Gary Funck  <gary@intrepid.com>
858         Merge trunk version 183072 into gupc branch.
859         Incorporates libcpp __BASE_FILE__ fix.
861 2012-01-09  Gary Funck  <gary@intrepid.com>
863         * upc/upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
864         is_gimple_non_addressable.
866 2012-01-06  Nenad Vukicevic <nenad@intrepid.com>
868         * upc/Make-lang.in: Add appropriate linker flags when linking
869         gupc drivers.
871 2012-01-06  Nenad Vukicevic <nenad@intrepid.com>
873         * upc/Make-lang.in: Add appropriate linker flags when linking
874         gupc drivers.
876 2011-12-31  Gary Funck  <gary@intrepid.com>
878         Fix gupc driver to avoid segfault when processing
879         invalid use of a switch that expects an argument.
880         * upc/gupc.c (get_libgupc_path): Add check for non-NULL value of
881         libgupc_archive before attempting to access libgupc_archive[0].
882         (main): Do not issue error if lib_dir is NULL.  Instead, only
883         process lib_dir if it is non-NULL.
885 2011-12-31  Gary Funck  <gary@intrepid.com>
887         Improve -fupc-debug support.
888         * upc/upc-genericize.c (upc_expand_get, upc_expand_put,
889         upc_genericize_sync_stmt): Add check for flag_upc_debug.
890         * upc/upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
891         * upc/upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
892         * upc/upc-act.c (upc_cpp_builtins): Disable inlining of the
893         runtime if flag_upc_debug is asserted.
895 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
897         * top-level/Makefile.def (flags_to_pass): Added GUPC
898         defines. Fixes the make error when upc is not specified as one
899         of the languages to build.
900         * top-level/Makefile.in: Re-generate.
902 2011-11-22  Gary Funck  <gary@intrepid.com>
904         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
905         * dwarf2out.c (gen_compile_unit_die): Check for
906         the "GNU UPC" language string in lieu of "GCC UPC".
907         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
909 2011-11-22  Gary Funck  <gary@intrepid.com>
911         * upc/upc-act.c (upc_cpp_builtins): Generate new pre-defined
912         macro: __GUPC__.
914 2011-11-18  Gary Funck  <gary@intrepid.com>
916         Merge trunk version 181552 into gupc branch.
917         Incorporates libgcc/libunwind fix for IA64.
919 2011-11-19  Gary Funck  <gary@intrepid.com>
921         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
922         Add check for UPC when defining the language type value
923         in a traceback entry.
925 2011-11-19  Gary Funck  <gary@intrepid.com>
927         * upc/config-lang.in: Remove checks for supported targets.
928         This is now done at a higher level.
930 2011-11-18  Gary Funck  <gary@intrepid.com>
932         Merge trunk version 181493 into gupc branch.
933         Incorporates final fix for PR target/49992.
935 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
937         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
938         change that converted relative include paths into absolute
939         ones, as it does not work with older version of make (3.80).
941 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
943         Apply patch for Darwin build - PR49992.
944         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
945         * gcc/configure.ac: Ditto.
946         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
947         * gcc/ada/gcc-interface/Makefile.in: Ditto.
948         * top-level/configure: Re-generate.
949         * gcc/configure: Re-genrate.
951 2011-10-26  Gary Funck  <gary@intrepid.com>
953         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
954         "libupc" to "libgupc".
955         * top-level/configure.ac: Implement support for cross-builds, and
956           adjust for rename of libupc to libgupc.
957         * top-level/Makefile.tpl: Ditto.
958         * top-level/Makefile.def: Ditto.
959         * top-level/configure: Re-generate.
960         * top-level/Makefile.in: Re-generate.
961         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
962         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
963         * doc/tm.texi: Re-generate.
964         * tree-pretty-print.c (dump_block_node): Delete unused variable.
965         * gcc.c: Adjust for rename of libupc to libgupc.
966         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
967         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
968         Change "xupc" to "xgupc".
969         * configure.ac: Change "GCC UPC" to "GNU UPC".
970         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
971         so that they are absolute paths.  This is needed because
972         the upc-crtstuff builds are in the libgupc library build
973         directories which are not at the same level as libgcc.
974         * config/darwin.h: Adjust for rename of libupc to libgupc.
976 2011-10-26  Gary Funck  <gary@intrepid.com>
978         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
979         "libupc" to "libgupc".
980         * upc/gupc.c: Rename from upc-cmd.c and adjust for rename
981         of libupc to libgupc.
982         * upc/upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
983         * upc/config-lang.in: Adjust for rename of libupc to libgupc.
984         * upc/gupc.1: Rename from upc.1.  Change "GCC UPC" references
985         to "GNU UPC".  Adjust for rename of libupc to libgupc.
986         Improve formatting.
987         * upc/gupc-manpage.html: Rename from upc-manpage.html.  Re-generate.
988         * upc/Make-lang.in: Change "upc" to "gupc".  Change "xupc" to "xgupc".
989         Adjust for rename of libupc to libgupc.  Install target symlink from
990         "upc" to "gupc".  Install target/version-specific hard links to "gupc".
992 2011-10-20  Gary Funck  <gary@intrepid.com>
994         Merge trunk version 180276 into gupc branch.
995         Incorporates fix for PR bootstrap/50709.
997 2011-10-20  Gary Funck  <gary@intrepid.com>
999         Merge trunk version 180246 into gupc branch.
1001 2011-10-19  Gary Funck  <gary@intrepid.com>
1003         Merge trunk version 180233 into gupc branch.
1004         Incorporates fix for PR debug/49310 (var tracking).
1006 2011-10-17  Gary Funck  <gary@intrepid.com>
1008         Fix a regression caused by the previous commit.
1009         * upc/upc-genericize.c (upc_genericize_walk):
1010         Renamed from: upc_genericize_stmt.
1011         (upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
1012         re-walk the tree after simplification, by calling
1013         upc_genericize_walk().
1014         (upc_genericize_array_ref): expand the newly constructed
1015         indirect reference by calling upc_genericize_indirect_ref().
1017 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
1019         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
1020         only four (O0 static/dynamic, O3 static/dynamic).
1021         Detect -fupc-threads-0 as an option for dynamic threads
1022         compile environment.
1024 2011-10-10  Gary Funck  <gary@intrepid.com>
1026         * tree.c (check_qualified_type, check_aligned_type):
1027         Call tree_int_cst_equal() to compare UPC blocking factors
1028         if the corresponding tree pointers are not equal.
1029         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
1031 2011-10-10  Gary Funck  <gary@intrepid.com>
1033         * upc/upc-genericize.c (upc_simplify_shared_ref): When simplifying
1034         the base address always convert to (shared [] char *).
1035         This ensures that &a[i].field1 ends up with the required
1036         zero block size, for example.
1038 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
1040         Add configuration checks for struct/packed builds so we can
1041         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
1042         * testsuite/lib/target-supports.exp
1043         (check_effective_target_upc_struct_pts): New.
1044         (check_effective_target_upc_packed_pts): New.
1046 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1048         Add to FLAGS the flags needed to disable inlining of
1049         UPC run-time access routines.
1050         * testsuite/lib/target-supports.exp
1051         (add_options_for_upc_library_calls): New.
1053 2011-09-15  Gary Funck  <gary@intrepid.com>
1055         Fix ICE involving shared bit field accesses.
1056         * tree.c (build3_stat): Propagate TEEE_SHARED()
1057         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1059 2011-09-13  Gary Funck  <gary@intrepid.com>
1061         Merge trunk version 178795 into gupc branch.
1062         Incorporates fix to PR bootstrap/50010 for x86-32.
1064 2011-09-08  Gary Funck  <gary@intrepid.com>
1066         Merge trunk version 178557 into gupc branch.
1068 2011-09-07  Gary Funck  <gary@intrepid.com>
1070         Ensure that UPC pointer-to-shared type alignment is
1071         propagated to the final type.  Revert to long-standing
1072         alignment policy: twice the size of a "C" pointer.
1073         * tree.c (build_pointer_type): Propagate the alignment
1074         of the UPC pointer-to-shared representation type
1075         into the newly built pointer type.
1077 2011-08-30  Gary Funck  <gary@intrepid.com>
1079         * tree.h (check_qualified_type): Change 'const_tree'
1080         argument types back to 'tree' to avoid complaints
1081         of assignment drops qualifiers for invocations of the
1082         newly implemented TYPE_BLOCK_FACTOR() macro, which
1083         invokes hash functions with 'tree' pointer values that
1084         are not const qualified.
1085         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1086         * c-typeck.c (comptypes_internal): Ditto.
1088 2011-08-29  Gary Funck  <gary@intrepid.com>
1090         Fixes for regressions noted running "make check"
1091         versus GCC trunk.
1092         * fold-const.c (fold_unary_loc): Execute UPC-specific
1093         checks for a cast-of-a-cast, only if one of the
1094         operands is a UPC pointer-to-shared value.
1095         * opts.c (print_specific_help):  Fix a comparison
1096         in an assert that checks that there are enough
1097         bits reserved for the number of languages defined
1098         in the .opt files.
1100 2011-08-29  Gary Funck  <gary@intrepid.com>
1102         Implement a hash table to record UPC block factors.
1103         * c-family/stub-upc.c (upc_block_factor_insert,
1104         upc_block_factor_lookup): New dummy stub procedures.
1105         * c-family/c-common.c (c_sizeof_or_alignof_type):
1106         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1107         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1108         to copy (hashed) UPC blocking factor.
1109         (set_type_quals): Likewise.
1110         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1111         TYPE_HAS_THREADS_FACTOR().
1112         (type_common.block_factor): Delete.
1113         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1114         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1115         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1116         UPC blocking factors greater than one.
1117         * dwarf2out.c (modified_type_die): Re-implement
1118         logic that records UPC blocking factor in the generated
1119         DWARF2 debugging information.
1120         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1121         TYPE_HAS_THREADS_FACTOR().
1122         * c-decl.c (finish_decl, grokdeclarator):
1123         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1124         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1125         used by UPC, and print UPC-specific information.
1127 2011-08-28  Gary Funck  <gary@intrepid.com>
1129         Re-work the type machinery to fully support and to unify support
1130         for the UPC layout qualifier (blocking factor).
1131         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1132           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1133           and update prototype.
1134         * c-family/c-common.c (complete_array_type): call newly
1135           defined c_build_qualified_type_1() instead of
1136           upc_set_block_factor().
1137         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1138           upc_apply_layout_qualifier() and update prototype.
1139           (upc_set_block_factor): Delete prototype.
1140         * c-family/c-common.h (c_build_qualified_type): redefine
1141           as a pre-processor macro that invokes c_build_qualified_type_1()
1142           with a null UPC layout qualifier.
1143           (c_build_qualified_type_1): New.  Add layout qualifier argument
1144           to old c_build_qualified_type() prototype.
1145         * tree.c (set_type_quals, check_qualified_type):
1146           Add layout qualifier as argument.
1147           (check_aligned_type): Add check for UPC block factor equality.
1148           (get_qualified_type_1): Rename from get_qualified_type() and
1149           add layout qualifier as argument.
1150           (build_qualified_type_1): Rename from build_qualified_type() and
1151           add layout qualifier as argument.
1152         * tree.h (check_qualified_type): Add layout qualifier as argument
1153           to the prototype.
1154           (get_qualified_type): Re-define as a as a pre-processor macro
1155           that invokes get_qualified_type_1() with a null
1156           UPC layout qualifier.
1157           (get_qualified_type_1): Rename from get_qualified_type() and
1158           add layout qualifier as argument.
1159         * cp/tree.c (c_build_qualified_type_1): Rename from
1160           c_build_qualified_type() and add (unused) layout qualifier
1161           argument.
1162         * c-decl.c (finish_decl): re-format long error messages.
1163           (grokdeclarator): Re-work the logic so that it calls
1164           upc_grok_layout_qualifier() to handle the UPC layout
1165           qualifier, if present.
1166         * c-typeck.c (qualify_type, common_pointer_type,
1167           build_component_ref): Re-work the logic so that it calls
1168           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1169           if present.
1170           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1171           and add layout qualifier argument.
1172         * print_tree.c (print_node): Re-format a long line.
1174 2011-08-26  Gary Funck  <gary@intrepid.com>
1176         Merge trunk version 177949 into gupc branch.
1177         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1178           in the comment.
1179         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1180           to add new rliterals column value.
1182 2011-08-26  Gary Funck  <gary@intrepid.com>
1184         * convert.c (convert_to_integer): Fix the check for the
1185           difference between two UPC pointers-to-shared values.
1187 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1189         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1190           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1191           correctly check packed bits.
1192         * configure: Re-generate.
1194 2011-08-16  Gary Funck  <gary@intrepid.com>
1196         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1197           the barrier id expression is not an integer expression.
1199 2011-08-12  Gary Funck  <gary@intrepid.com>
1201         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1202           (revert to trunk).
1203         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1204           Set mode of UPC pointer-to-shared rep. to an
1205           integral mode of size at least as large as the
1206           size of the representation's struct type.
1208 2011-08-12  Gary Funck  <gary@intrepid.com>
1210         Rework/simplify the UPC genericize pass.
1211         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1212           upc_build_pointer_type): New.
1213           (upc_set_block_factor): Adjust to new calling sequence.
1214           (upc_build_shared_var_addr): Delete.
1215         * c-family/c-common.c (complete_array_type): Adjust call
1216           to upc_set_block_factor().
1217         * c-family/c-upc.h (upc_apply_layout_qualifier,
1218           upc_build_pointer_type): New.
1219           (upc_build_shared_var_addr): Delete.
1220           (upc_set_block_factor): Adjust to new calling sequence.
1221         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1222         * c-decl.c (grokdeclarator): Call newly defined
1223           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1224         * c-decl.c (grokdeclarator): Split long UPC-related error
1225           messages into two lines.
1226         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1227           directly.  Revert that change to trunk. (upc_genericize() will
1228           handle lowering the expressions that take the address of a
1229           UPC variable).
1230         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1231           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1232           representation type.
1234 2011-08-10  Gary Funck  <gary@intrepid.com>
1236         Implement additional fixes for recent merge with trunk.
1237         * explow.c (promote_mode): Do not attempt to promote
1238           the mode for UPC pointer-to-shared types.
1239         * config/i386/i386.c (function_value_64): Ditto.
1241 2011-08-07  Gary Funck  <gary@intrepid.com>
1243         Merge trunk version 177548 into gupc branch.
1244         * config/i386/i386.c (ix86_promote_function_mode):
1245           Do not promote UPC pointers-to-shared to Pmode.
1246         * c-family/c-ommon.c (pointer_int_sum):
1247           Also check the pointer operand, rather than just
1248           its type, when making the decision to derive
1249           the equivalent unshared type.
1250         * tree.c (build2_stat): If the type of the result
1251           passed in as an argument is a UPC shared type,
1252           derive the unshared equivalent when calculating
1253           the result type of the node.
1255 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1257         * config/darwin.c: Disable var_tracking option
1258           on -O0 as it is supposed to run only when optimization
1259           is applied. See GCC bug 49743.
1261 2011-07-06  Gary Funck  <gary@intrepid.com>
1263         Re-implement the pass that lowers trees generated by
1264         the UPC front-end into GENERIC.  Previously this was
1265         done within the gimplification framework, but this
1266         required that gimplification be run before inlining
1267         and various other passes, which did not fit in well
1268         with the current design of the middle-end passes.
1269         Now, the lowering is done by a newly defined language
1270         specific genericize hook.  With this change, we are
1271         are able to undo some extensions made to the gimplify
1272         logic, and thus can revert several files to trunk.
1273         * c-decl.c: Add a check for UPC deprecated names which
1274           may appear as undefined function names.
1275         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1276           LTI_upc_getaddr): Remove definitions of unused UPC
1277           library function names.  These were defined back when
1278           the libfunc interface was used to call these routines.
1279         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1280           in UPC lowering (genericize) pass.
1281         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1282           (instrument_func): Delete this hook.  Now handled in
1283           upc_genericize().
1284         * tree-pass.h: Revert to trunk.
1285         * c-typeck.c (build_unary_op): Adjust reference to
1286           upc_genericize() in a comment.
1287         * gimplify.c (create_tmp_var_raw): Delete logic that
1288           was converting UPC shared types into unshared types
1289           to be used for temporaries.  Now handled in  upc_genericize().
1290           Replace with an assertion check.
1291           (prepare_gimple_addressable): Revert to trunk's definition.
1292           No longer needed as an externally called function.
1293           (flag_instrument_functions_exclude_p): Re-define as
1294           an externally called function.
1295           (gimplify_function_tree): Delete code that implemented
1296           call to UPC's language specific function instrumentation hook.
1297         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1298           (prepare_gimple_addressable): Delete extern definition;
1299           revert to trunk's definition.
1300         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1301           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1302         * c-family/c-gimplify.c: Revert to trunk.
1303         * cp/cp-gimplify.c: Revert to trunk.
1304         * cp/cp-tree.h: Revert to trunk.
1305         * explow.c: Revert to trunk.
1306         * langhooks.c: Revert to trunk.
1307         * libfuncs.h: Revert to trunk.
1308         * objc/objc-act.c: Revert to trunk.
1310 2011-06-30  Gary Funck  <gary@intrepid.com>
1312         * c-family/c.opt: Bring options definitions up-to-date
1313         with respect to changes made in the trunk.
1315 2011-06-29  Gary Funck  <gary@intrepid.com>
1317         Merge trunk version 175584 into gupc branch.
1319 2011-06-13  Gary Funck  <gary@intrepid.com>
1321         libcpp/
1322         * include/cpplib.h (enum c_lang):
1323         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1324         This keeps all the "C" variants together.
1325         * init.c (lang_defaults): Add an entry for UPC.
1327 2011-06-09  Gary Funck  <gary@intrepid.com>
1329         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1330         a 32-bit target, the size expression overflowed, the result was
1331         error_mark_node, and an ICE was triggered on an attempt to evaluate
1332         C_TYPE_VARIABLE_SIZE() on the error node.
1333         (upc_blocksizeof_expr, upc_blocksizeof_type,
1334         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1335         Make similar changes to avoid further processing of error_mark_node.
1337 2011-06-07  Gary Funck  <gary@intrepid.com>
1339         * sel-sched.c (move_op): Incorporate the following
1340         patch to eliminate ICE at -O3 on IA64/Altix.
1342 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1344         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1345         code_motion_path_driver returned 0 or 1.
1346         (sel_region_finish): Clear h_d_i_d.
1348 2011-06-02  Gary Funck  <gary@intrepid.com>
1350         Merge trunk version 174558 into gupc branch.
1352 2011-05-30  Gary Funck  <gary@intrepid.com>
1354         * configure.ac: Make the default order of the virtual
1355           address field in a UPC pointer-to-shared to be "first".
1356           This reverts to the previous setting, and is a short term
1357           measure to work around a bug found on the IA64,
1358           where vaddr=last led to incorrect code generation.
1359           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1360           in AC_DEFINE(), to agree with recent changes in files
1361           that reference this define.
1362           configure, config.in: Regenerate.
1364 2011-05-26  Gary Funck  <gary@intrepid.com>
1366         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1367           configure: Regenerate.
1368         * ../fixincludes/fixincl.x: Revert to trunk.
1369           This file is auto-generated, and should not be merged.
1371 2011-05-18  Gary Funck  <gary@intrepid.com>
1373         Merge trunk version 173845 into gupc branch.
1375 2011-05-17  Gary Funck  <gary@intrepid.com>
1377         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1378           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1379         * c-family/c-pragma.c: Remove conditional compilation
1380           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1381           Test 'compiling_upc' when compiling to determine if
1382           the "upc" and "pupc" pragmas should be registered.
1383         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1384           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1385           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1386           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1387           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1388           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1389           Move these target-dependent definitions from config/upc-conf.h
1390           to here.
1391         * configure.ac: Improve the logic for UPC-related options.
1392           Delete references to pre-processor definitions that have
1393           been moved to "upc/upc-pts.h".
1394         * configure, config.in: Regenerate.
1395         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1396           to trunk.  This substitution variable was used to
1397           configure the representation-specific versions of
1398           the tree rewrites that operate on UPC pointer-to-shared
1399           types and objects.
1400         * c-parser.c (c_parser_upc_forall_statement): Remove
1401           reference to UPC_FORALL_DEPTH_NAME, and call
1402           newly defined upc_rts_forall_depth_var() instead.
1403         * config/upc-config.h: Delete. Various definitions
1404           moved to "upc/upc-rts-names.h", "defaults.h", and
1405           "upc/upc-pts.h".
1406         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1407           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1408           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1409           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1410           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1411           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1412           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1413           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1414           New.  Document UPC target macros.
1415           doc/tm.texi: Regenerate.
1417 2011-05-07  Gary Funck  <gary@intrepid.com>
1419         * ../configure.ac: Disable build of libupc
1420           on non POSIX hosted systems.  Use AS_HELP_STRING
1421           to define messages.  Remove 'word-pair' as a
1422           possible --with-upc-pts UPC pointer-to-shared
1423           representation.
1424         * ../configure: Regenerate.
1425         * configure.ac: Use AS_HELP_STRING to define messages.
1426           Remove 'word-pair' as a possible --with-upc-pts
1427           UPC pointer-to-shared representation.
1428           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1429           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1430         * configure: Regenerate.
1431         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1432           definition.
1433         * ChangeLog.upc: Fix some typos.
1435 2011-05-07  Gary Funck  <gary@intrepid.com>
1437         * ../maintainer-scripts/gcc_release: Add "upc"
1438           as one of the released languages.
1440 2011-05-06  Gary Funck  <gary@intrepid.com>
1442         Eliminate compilation warnings, by fixing
1443         #include's and updating function prototypes.
1444         * c-family/c-cppbuiltin.c: Include c-upc.h.
1445         * optabs.c (gen_libfunc): Change type of 'suffix'
1446           parameter to conform with prototype.
1447         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1448           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1449           hook used by UPC.
1450         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1451           the prototype.
1452         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1453           argument values to cp_gimplify_expr.
1454         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1455           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
1456           pre-processor definitions that are no longer
1457           needed to build the 'upc' command (upc-cmd.c)
1458           because the linker specs. defined in libupc
1459           take care of linking in the needed libraries.
1460         * c-parser.c (c_parser_upc_forall_statement):
1461           initialize affinity_loc to avoid "maybe unused" warning.
1462           (c_parser_upc_sync_statement): Remove un-needed
1463           'ret' variable.  Cast return value from
1464           'upc_build_sync_stmt' to 'void' to avoid
1465           compile-time warning.
1466         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1467           integer constant, not a string.  Range is restricted
1468           to maximum positive 32-bit integer (2+ billion) to
1469           fit in with the use of 'int' in the front-end's
1470           switch handling logic.
1472 2011-05-06  Gary Funck  <gary@intrepid.com>
1474         Upgrade c-family source files to conform with modularity
1475         improvements.  Mainly, remove #include of c-tree.h in files
1476         under c-family, and define a new UPC-specific #include file,
1477         c-upc.h, and use it.
1478         * c-family/stub-upc.c: Remove #include of c-tree.h and
1479           upc/upc-act.h.  Replace with #include of c-common.h
1480           and c-upc.h.
1481           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1482           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1483           upc_localsizeof_expr, upc_localsizeof_type,
1484           upc_shared_type_p): Delete.
1485         * c-family/c-opts.c: Add #include of c-upc.h
1486         * c-family/c-common.c: Remove #include of c-tree.h and
1487           add #include of c-upc.h.
1488         * c-family/c-upc.h: New. Define API for UPC-specific functions
1489           (mostly implemented in upc/upc-act.c).
1490         * c-family/c-common.h (upc_cpp_builtins,
1491           upc_write_global_declarations): Remove extern definitions.
1492         * c-family/c-pragma.c: Remove #include of c-tree.h.
1493           Add #include of c-upc.h.
1494         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
1495           c-tree.h.
1496           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
1497           upc/upc-act.c, and define as a macro.
1498           (expand_affinity_test): Remove unused external definition.
1499           (build_upc_unshared_type): Add external definition.
1500           (upc_shared_type_p): Remove external definition.
1501         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1502         * dojump.c: Remove #include of c-tree.h.
1503         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1504           and move to tree.h.
1505           (count_upc_threads_refs, is_multiple_of_upc_threads,
1506           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1507           upc_build_shared_var_addr, upc_build_sync_stmt,
1508           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1509           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1510           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1511           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1512           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1513           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1514           set_upc_consistency_mode, get_upc_consistency_mode,
1515           push_upc_consistency_mode, pop_upc_consistency_mode,
1516           get_upc_pupc_mode):
1517           Move external definitions to c-family/c-upc.h.
1518           (upc_blocksizeof_type, upc_localsizeof_type,
1519           upc_elemsizeof_type): Remove external definitions;
1520           these functions were moved to c-parser.c.
1521         * c-decl.c: Add #include of c-upc.h.
1522         * c-typeck.c: Add #include of c-upc.h.
1523         * c-convert.c: Add #include of c-upc.h.
1524         * ChangeLog.upc: Fix typo.
1525         * Makefile.in: Add references to c-family/c-upc.h, everywhere
1526           there is a reference to c-family/c-objc.h.
1527           Remove extraneous reference to upc-act.h.
1528         * c-parser.c: Add #include of c-upc.h.
1529           (upc_blocksizeof_expr, upc_blocksizeof_type,
1530           upc_elemsizeof_expr, upc_elemsizeof_type,
1531           upc_localsizeof_expr, upc_localsizeof_type):
1532           Move from upc/upc-act.c.
1533         * tree.c (build_upc_unshared_type): New.
1534           Move upc_get_unshared_type from upc/upc-act.c and rename
1535           to build_upc_unshared_type.
1536           c-family/c-common.c (pointer_int_sum): refer to renamed
1537           build_upc_unshared_type function.
1538           c-convert.c (convert): Ditto.
1539           convert.c (convert_to_pointer): Ditto.
1540           c-typeck.c (build_unary_op, build_modify_expr,
1541           really_start_incremental_init): Ditto.
1542           gimplify.c (create_tmp_var_raw): Ditto.
1543           tree.c (build1_stat): Ditto.
1544           tree.h (upc_get_unshared_type): Rename to
1545           build_upc_unshared_type.
1547 2011-05-06  Gary Funck  <gary@intrepid.com>
1549         Merge trunk version 173471 into gupc branch.
1551 2011-05-05  Gary Funck  <gary@intrepid.com>
1553         Make changes that bring the GUPC branch more closely in sync.
1554         with the GCC trunk.  Revert any fixes that are not UPC-specific.
1555         Remove gratuitous re-formatting.
1556         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1557           This file should have been removed in a previous merge
1558           with the trunk.
1559         * ../configure.ac: Remove Cray Catamount/CNL support.
1560         * ../configure: Regenerate.
1561         * ../config.sub: Remove Cray Catamount/CNL support.
1562         * config.gcc: Remove Cray Catamount/CNL support.
1563         * ../maintainer-scripts/gcc_release: Revert to trunk.
1564         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1565           was missed in a previous merge with the trunk.
1566         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1567           procedure.
1568         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1569           in addition to ARRAY_TYPE.
1570         * c-typeck.c: Remove an extra newline character.
1571         * varasm.c: Revert a fix that improved an error message
1572           when TLS common data is unimplemented.
1573         * varasm.c: Revert a gcc_assert that had been added which
1574           checked for a null DECL_SIZE_UNIT field.
1575         * emultls.c: Revert to trunk. Remove possible fix.
1576         * Makefile.in: Revert extra blank line that is present
1577           in the trunk version.
1578         * Makefile.in: Revert a fix that handled long shell
1579           argument lists for plugin headers.
1580         * config/ia64/ia64.opt: Revert an option setting
1581           that increased the default TLS address range.
1582         * config/ia64/crtbegin.asm: Revert to trunk.
1583           Removes an extra newline character.
1584         * ChangeLog.upc: Spell check.
1586 2011-05-03  Gary Funck  <gary@intrepid.com>
1588         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1589           (c_apply_type_quals_to_decl): Ditto.
1590         * c-family/c-common.h: Ditto.
1591         * dojump.c: Ditto.
1592         * c-decl.c (merge_decls): Ditto.
1593         * c-typeck.c (qualify_type, default_conversion,
1594           build_component_ref, build_unary_op,
1595           c_build_qualified_type): Ditto.
1596         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1598 2011-04-29  Gary Funck  <gary@intrepid.com>
1600         * c-decl.c (finish_decl): Improve error diagnostics.
1601           (grokdeclarator): Ditto.
1602         * c-typeck.c (build_c_cast): Improve error diagnostics.
1603           (convert_for_assignment): Ditto.
1604           (build_binary_op): Ditto.
1605         * c-parser.c (c_parser_upc_forall_statement):
1606           Improve error diagnostics.
1607         * convert.c (convert_to_integer):  Improve error diagnostics.
1609 2011-04-24  Gary Funck  <gary@intrepid.com>
1611         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1612           occurred if there is an error in the barrier id
1613           expression.  Map error_mark_node into NULL.
1615 2011-04-22  Gary Funck  <gary@intrepid.com>
1617         Merge trunk version 172873 into gupc branch.
1619 2011-04-19  Gary Funck  <gary@intrepid.com>
1621         Merge trunk version 172359 into gupc branch.
1623 2011-04-14  Gary Funck  <gary@intrepid.com>
1625         * c-family/c.opt: Add UPC as a valid language for various
1626           switches where it is valid for "C", that were not updated
1627           in previous merges with trunk.
1629 2011-04-13  Gary Funck  <gary@intrepid.com>
1631         * c-family/c.opt (fupc-pre-include): New option definition.
1632         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1633           -fno-upc-pre-include is asserted.
1635 2011-04-07  Gary Funck  <gary@intrepid.com>
1637         Merge trunk version 172158 into gupc branch.
1638         to bring in the following fix.
1640 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1642         PR bootstrap/48403
1643         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1644         if old and new states differ.
1646 2011-04-06  Gary Funck  <gary@intrepid.com>
1648         Merge trunk version 171966 into gupc branch.
1650 2011-04-01  Gary Funck  <gary@intrepid.com>
1652         * tree.h (tree_base): Move UPC flag bits into bit fields
1653           located just before spare bits.  Decrement spare bits.
1654           Rename 'shared_flag' -> 'upc_shared_flag',
1655           'relaxed_flag' -> 'upc_relaxed_flag',
1656           'strict_flag' -> 'upc_strict_flag, and adjust macros
1657           that reference them accordingly.
1659 2011-04-01  Gary Funck  <gary@intrepid.com>
1661         * c-decl.c (grokdeclarator): Fix formatting of
1662           code that sets UPC block size on scalars.
1664 2011-04-01  Gary Funck  <gary@intrepid.com>
1666         * c-decl.c (grokdeclarator): Revert use of white space
1667           to match the trunk (to rationalize diffs).
1668         * c-typeck.c (convert_for_assignment): Ditto.
1669         * tree-ssa.c (useless_type_conversion_p): Ditto.
1671 2011-03-23  Gary Funck  <gary@intrepid.com>
1673         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1674           the GCC 4.6 release branch.
1676 2011-03-21  Gary Funck  <gary@intrepid.com>
1678         Merge trunk version 171202 into gupc branch.
1680 2011-03-20  Gary Funck  <gary@intrepid.com>
1682         * varasm.c: Call error() directly with a format specifier,
1683           rather than using sprintf() to format the message.
1684           This should make it easier to internationalize UPC's error messages.
1686 2011-03-20  Gary Funck  <gary@intrepid.com>
1688         * configure.ac: Fix the check for gnu ld when enabling
1689           UPC link script support.
1690           configure: Regenerate (also picks up changes from previous
1691           merge with trunk).
1693 2011-03-20  Gary Funck  <gary@intrepid.com>
1695         Move UPC start files, end files, and linker specs.
1696         into libupc.  This reduces the impact on common GCC
1697         configuration files, and ensures that these UPC-specific
1698         components are only built when the UPC language dialect is selected.
1699         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1700           linker specs. Fix typo in -fupc-debug message.
1701         * config/upc-conf.h, config/darwin.h: Move defines for
1702           UPC-related section begins/ends into libupc/config/default/
1703           upc-crt-config.h.
1704         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1705           UPC-related linker compiler specifications,
1706           accessed via %:include().
1707         * configure.ac, configure: Remove logic related to building
1708                 upc-crtbegin/end. Remove config. tests for numa and cpu
1709           affinity (previously used by the 'upc' driver); these
1710           settings are now propagated by target-specific compiler
1711           specs. built by libupc.  Regenerate autoconf.
1712         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1713           linker compiler specifications, accessed via %:include().
1714           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1715           'link_upc_spec'.
1716         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1717         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1718           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1719           config/ia64/linux.h, config/mips/t-iris,
1720           config/mips/iris6.h: Revert to trunk version 167307.
1721         libgcc/
1722         * configure, configure.ac, config.host, Makefile.in:
1723           Revert to trunk version 167307.
1725 2011-02-23  Gary Funck  <gary@intrepid.com>
1727         * c-decl.c (undeclared_variable): fix typo. Inadvertently
1728         removed negation on following 'if'.
1730 2011-02-22  Gary Funck  <gary@intrepid.com>
1732         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1733         to check for the usage of certain deprecated UPC keywords.
1734         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1735         * c-tree.h (undeclared_variable): Define prototype.
1737 2011-02-12  Gary Funck  <gary@intrepid.com>
1739         * c-typeck.c: (build_c_cast, convert_for_assignment)
1740           Diagnose an attempt to convert from an integer to
1741           a pointer-to-shared as an error.  Also, fix various
1742           error messages so that they use the preferred term
1743           pointer-to-shared instead of "shared pointer".
1745 2011-02-07  Gary Funck  <gary@intrepid.com>
1747         * c-typeck.c: (convert_for_assignment)
1748           Fix typo. in error message.
1750 2011-01-23  Gary Funck  <gary@intrepid.com>
1752         * c-typeck.c: (c_build_qualified_type)
1753           derive UPC block size by calling upc_get_block_size(),
1754           to ensure that the element type of an array of an array
1755           is derived correctly.
1757 2010-12-29  Gary Funck  <gary@intrepid.com>
1759         Merge trunk version 168314 into gupc branch.
1761 2010-12-15  Gary Funck  <gary@intrepid.com>
1763         Merge trunk version 167307 into gupc branch.
1765 2010-10-19  Gary Funck  <gary@intrepid.com>
1767         * c-typeck.c: Fix typo in previous fix
1768           which led to a mis-compare for equal block sizes.
1770 2010-10-18  Gary Funck  <gary@intrepid.com>
1772         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1773           diagnosed as an error
1774           The conversion from any type (shared or not) to
1775           a shared type is likely either meaningless or an error.  This update
1776           makes any conversion to a shared type, an error.
1778 2010-10-18  Gary Funck  <gary@intrepid.com>
1780         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1781           generates spurious warning
1782           Add a #define procedure that does the same thing as
1783           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1784           this procedure to diagnose passing an integer value to a
1785           pointer-to-shared as an error.
1787 2010-10-18  Gary Funck  <gary@intrepid.com>
1789         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1790           matching routine declaration.
1791           When checking for type compatibility, shared qualified types must
1792           have the same block factor.  This check was missing from
1793           comptypes_internal().  This update adds the check for blocking
1794           factor equality.
1796 2010-10-17  Gary Funck  <gary@intrepid.com>
1798         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1799           found (-O1 -g)
1800           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1802 2010-10-17  Gary Funck  <gary@intrepid.com>
1804         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1805           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1806           produces ice with -O3 and -m32.
1807           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1809 2010-10-17  Gary Funck  <gary@intrepid.com>
1811         * c-common.c: Diagnose the application of the various "*sizeof"
1812           operations on generic pointer-to-shared as a compilation error.
1814 2010-10-17  Gary Funck  <gary@intrepid.com>
1816         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1817           message regarding a function parameter being declared with a shared
1818           qualifier.
1819           The parameter's 'name' value is not defined at this point, and
1820           cannot be used in the error message.  This update removes the
1821           reference to 'name', and eliminates the segfault.
1823 2010-10-16  Gary Funck  <gary@intrepid.com>
1825         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1826           The gcc/Makefile.in rules for install-plugin had to be re-written to
1827           break up a long list of header files that exceeded the command line
1828           limitation imposed by Irix.
1829           Access functions for TFmode types had to be implemented.
1830           Apparently, this is the mode used for the SGI/MIPS port to represent
1831           "long float".
1833 2010-10-14  Gary Funck  <gary@intrepid.com>
1835         * c-decl.c: Fix bug: Multiple equal blocking factors specified
1836           via typedef chain should not be diagnosed as an error.
1837           If the block size that is given by the typedef is equal to the block
1838           size given explicitly in the variable declaration, then do not
1839           complain.  The easiest way to make this check was to create a
1840           temporary type that is a clone of the element type and then set its
1841           block size using the given layout qualifier.  Then compare the block
1842           size of the temporary (the declaration) to the block size specified
1843           in the typedef.  This complexity is needed, because the '[*]' block
1844           size needs to be calculated, and the '[]' needs to be mapped into a
1845           zero block size.
1847 2010-10-10  Gary Funck  <gary@intrepid.com>
1849         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1850           specified
1851           The compiler properly detected the presence of two or more layout
1852           qualifiers as an error, but then hit an assertion check, because the
1853           code that followed the error expected to see a qualifier and not a
1854           layout specifier.  The fix is simple: just return immediately after
1855           detecting the error.
1857 2010-10-10  Gary Funck  <gary@intrepid.com>
1859         * c-decl.c: Improve error diagnostics for various cases of UPC
1860           shared array type declarations.
1861           Add the check for this error: "In the dynamic translation
1862           environment, THREADS may not appear in declarations of shared arrays
1863           with indefinite block size".  Also, fix up a few of the other
1864           related error diagnostics.
1866 2010-10-09  Gary Funck  <gary@intrepid.com>
1868         * c-common.c: Fix bug: segfault on incomplete array definition.
1869           This turned out to be a bit complicated.   The logic in
1870           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1871           the THREADS identifier in the case where the blocking factor has
1872           been set to indefinite ([]).  This can happen when indefinite array
1873           declarations are processed for shared arrays.  At that time, the
1874           file scope has been closed and THREADS is no longer in scope.  Some
1875           more work is needed on upc_lang_layout_decl().  It has some
1876           duplication, and notably duplicates the two branches of the if
1877           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1878           caller of this routine (layout_decl()).
1879           The method of forcing a layout qualifier of [] in the indefinite
1880           declaration handler is odd a well.  The code that just does the
1881           setting of the block factor, needs to moved into its own routine
1882           that doesn't depend upon a declspec for '[]' to be passed in, just
1883           in order to set the blocking factor to some value (in this case, 0).
1884           Also, the logic for how that shared type is constructed is strange.
1885           First the type with 0 blocking factor is set.  Then the shared
1886           qualifier is removed from the type, and then added back later.  The
1887           intermediate type has a blocking factor set, but it has no shared
1888           qualifier.  Fixing this will require some thought.  It is tempting
1889           just to make indefinite shared arrays an error, rather than forcing
1890           the dimension to be '1'.
1891           This likely fixes a serious error in the previous update to
1892           upc_lang_layout_decl(), where it didn't have the logic to set
1893           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
1894           the previous update would fail on many tests.
1896 2010-10-09  Gary Funck  <gary@intrepid.com>
1898         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1899           (decl) is null, which can happen if some layout error occurred
1900           upstream.
1902 2010-10-09  Gary Funck  <gary@intrepid.com>
1904         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1905           "variable-sized" when compiled in dynamic threads.
1906           This long-standing bug is easily fixed.  Just check
1907           for the situation that the non-constant sized type is shared and
1908           that it does not have a dimension that references a multiple of
1909           threads.  If this criteria is met, then issue a meaningful
1910           diagnostic.
1912 2010-10-01  Gary Funck  <gary@intrepid.com>
1914         * configure, configure.ac: Update manual page, and bug reporting
1915           URL.  Update "man" page to reflect debugging switches.
1916           Also, some general clean up.  Change the bug reporting
1917           URL to point to gccupc.org.
1919 2010-09-27  Gary Funck  <gary@intrepid.com>
1921         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1922           the UPC forall depth count variable is not found.
1923           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1924           The compiler will generate code that references this variable in
1925           order to implement nested upc_forall semantics.  If there is a
1926           compiler build or install problem, this variable may not be found.
1927           In this case, terminate with an internal_error().
1929 2010-09-26  Gary Funck  <gary@intrepid.com>
1931         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1932           mis-diagnosed as syntax error.
1933           Fix a failure exhibited by the Berkeley test case,
1934           bug873a.upc, which has the code:
1935                double d;
1936                upc_forall (;;;d) {...} The compiler did not properly handle
1937           the empty "condition" clause, and did not recover well when it was
1938           determined that the use of a double value, "d" above, was neither a
1939           pointer-to-shared nor an integer expression.  The update implements a
1940           fix for both issues.
1941           See also: gcc/c-parser.c gcc/upc/upc-act.c
1943 2010-09-23  Gary Funck  <gary@intrepid.com>
1945         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1946           incorporated into the referencing type.
1947           This was semi-fixed a few times before.  This update fixes a few
1948           more places where the layout qualifier wasn't being propagated
1949           through typedef's properly.  What made this a bit tricky is shown in
1950           the example cited in the bug report:
1951           typedef shared [5] int A_t; A_t A[5*THREADS];
1952           In the typedef, the blocksize is being applied to a shared *scalar*,
1953           and the code was applying the blocksize only to arrays.  This update
1954           handles shared scalars correctly.
1956 2010-09-22  Gary Funck  <gary@intrepid.com>
1958         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1959           upc_forall() semantics are not implemented
1960           The checkforall test in the Berkeley harness test suite indicated
1961           that GCC/UPC was not properly implementing nested upc_forall
1962           semantics.  Nested upc_forall statements (both statically or
1963           dynamically nested) must implement their affinity clause as if it
1964           were "continue"; thus all steps in the loop must execute without
1965           regard for affinity.  To implement these semantics a global depth
1966           counter, __upc_forall_depth, is maintained by the generated code
1967           that implements upc_forall.
1968           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1969           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1970           libupc/include/upc.h libupc/smp/upc_main.c
1972 2010-09-19  Gary Funck  <gary@intrepid.com>
1974         * c-decl.c: c-decl.c: zero out the layout specifier, after
1975           processing an array type.
1976           Fix the previous fix, that moved the setting of the type's layout
1977           qualifier to the outside of the array type processing loop.  What is
1978           missing from the fix is that the layout_qualifier variable needs to
1979           be cleared after setting the type's blocksize.
1981 2010-09-19  Gary Funck  <gary@intrepid.com>
1983         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1984           given blocksize is greater than UPC_MAX_BLOCKSIZE.
1985           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1986           the actual maximum block size.  Therefore, the message was correct,
1987           but the underlying value that was being checked was wrong.  Change
1988           the values so that they agree with the actual implementation-defined
1989           limit.
1991 2010-09-11  Gary Funck  <gary@intrepid.com>
1993         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1994           multi-dimensional shared array with dynamic threads.
1995           This declaration caused an internal compiler error when compiled
1996           with dynamic threads:
1997               shared [*] int A[THREADS][16]; The bug was discovered when
1998           compiling the RTED_UPC test suite.
1999           The fix is to process layout qualifiers after the entire array type
2000           has been built.  Otherwise, we try to calculate the blocksize on a
2001           shared array type that has not had its "size depends upon the value
2002           of THREADS" flag set.
2003           Also, added a test case.
2004           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2006 2010-07-11  Gary Funck  <gary@intrepid.com>
2008         Fix a bug where a statement in c_build_qualified_type()
2009         in the trunk had been inadvertently deleted.
2010         This bug showed up in the IA64 port, because jmpbuf's
2011         on that architecture must be 16 byte aligned, and they were not.
2012         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2014 2010-07-08  Gary Funck  <gary@intrepid.com>
2016         Make changes so that other language compilers
2017         will build and bootstrap.
2018         * c-family/c-common.c (compiling_upc, flag_upc,
2019         flag_upc_instrument, flag_upc_instrument_functions,
2020         use_upc_dwarf2_extensions): Move to stub-upc.c and
2021         upc-lang.c.
2022         * c-family/c-common.h (use_upc_dwarf2_extensions,
2023         compiling_upc): Add extern definitions - needed
2024         to compile/build other language front ends.
2025         * c-family/c.opt: Fix the spelling of ObjC.
2026         It had been incorrectly spelled as Objc.
2027         * c-family/c.opt: Add UPC for the various switches
2028         that are valid for both C and ObjC.
2029         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2030         supported options switches when compiling assembly
2031         language.
2032         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2033         flag_upc_instrument, flag_upc_instrument_functions):
2034         Remove these definitions.  They have been moved
2035         to c-family/stub-upc.c.
2036         * upc/ChangeLog: Move relevant entries
2037         to ChangeLog.upc.
2038         * c-family/stub-upc.c (compiling_upc, flag_upc,
2039         flag_upc_instrument, flag_upc_instrument_functions,
2040         use_upc_dwarf2_extensions): Moved from c-common.c
2041         * upc/upc-lang.c (compiling_upc, flag_upc,
2042         flag_upc_instrument, flag_upc_instrument_functions,
2043         use_upc_dwarf2_extensions): Moved from c-common.c
2044         * objc/objc-act.c (objc_gimplify_expr): Add additional
2045         parameters to c_gimplify_expr() call, that are used
2046         by upc's tree rewrites.
2047         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2048         * gcc/cp/lex.c (init_reswords): If not compiling
2049         UPC, then mask off the UPC keywords.
2050         * cp/Make-lang.in (C_STUB_OBJS): Use this
2051         make macro to link with c-family/stub-objc.o
2052         and c-family/stub-upc.o.
2053         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2054         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2055         * objc/Make-lang.in: Link with c-family/stub-upc.o
2056         to avoid undefined references.
2057         c-parser.c: Fix line indentation.
2058         * libcpp/include/cpplib.h: Remove CL_UPC from
2059         the list of language kinds accepted by the
2060         C preprocessor.  This is not necessary because
2061         UPC is a derivative of C99, and does not need
2062         a different language kind.
2063         * c-fmaily/c-opts.c (c_common_handle_option):
2064         Call set_std_c99() when processing the
2065         "--lang upc" switch, instead of setting the
2066         language kind to CL_UPC.
2067         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2069 2010-07-03  Gary Funck  <gary@intrepid.com>
2071         Merge trunk version 161517 into gupc branch.
2072         * gcc/stub-upc.c: Move to gcc/c-family/.
2073         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2074         Add 'unused' attributes to avoid "set, but
2075         not referenced" warnings.
2076         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2077         Likewise.
2079 2010-03-01 Gary Funck  <gary@intrepid.com>
2081         Create gupc branch from trunk version 157149.
2083 2011-10-04  Gary Funck  <gary@intrepid.com>
2085         Merge trunk version 179421 into gupc branch.
2086         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
2087         argument to the call to check_qualified_type().
2089 2011-09-22  Gary Funck  <gary@intrepid.com>
2091         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
2092         information.
2093         (dump_upc_type_quals): New.
2095 2011-09-22  Gary Funck  <gary@intrepid.com>
2097         * upc/upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
2098         before calling TYPE_BLOCK_FACTOR().  This fits better with
2099         recent encoding of block factor values with a hash table.
2101 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
2103         Add to FLAGS the flags needed to disable inlining of
2104         UPC run-time access routines.
2105         * testsuite/lib/target-supports.exp
2106         (add_options_for_upc_library_calls): New.
2108 2011-09-15  Gary Funck  <gary@intrepid.com>
2110         Fix ICE involving shared bit field accesses.
2111         * tree.c (build3_stat): Propagate TEEE_SHARED()
2112         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
2114 2011-09-15  Gary Funck  <gary@intrepid.com>
2116         Fix ICE involving shared bit field accesses.
2117         * upc/upc-genericize.c (upc_simplify_shared_ref): Improve
2118         "shared bit fields not yet implemented" error message
2119         by adding file/line number location.
2121 2011-09-13  Gary Funck  <gary@intrepid.com>
2123         Merge trunk version 178795 into gupc branch.
2124         Incorporates fix to PR bootstrap/50010 for x86-32.
2126 2011-09-13  Gary Funck  <gary@intrepid.com>
2128         * upc/upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
2129         * upc/upc-lang.c (upc_init_options): Ditto.
2130         * upc/upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
2131         upc_genericize_expr, upc_genericize_compound_expr): Ditto.
2132         * upc/upc-act.c (upc_parse_init, upc_build_pointer_type,
2133         upc_block_factor_insert, upc_pts_is_valid_p): Ditto.
2135 2011-09-08  Gary Funck  <gary@intrepid.com>
2137         Merge trunk version 178557 into gupc branch.
2139 2011-09-07  Gary Funck  <gary@intrepid.com>
2141         Ensure that UPC pointer-to-shared type alignment is
2142         propagated to the final type.  Revert to long-standing
2143         alignment policy: twice the size of a "C" pointer.
2144         * tree.c (build_pointer_type): Propagate the alignment
2145         of the UPC pointer-to-shared representation type
2146         into the newly built pointer type.
2148 2011-09-07  Gary Funck  <gary@intrepid.com>
2150         Ensure that UPC pointer-to-shared type alignment is
2151         propagated to the final type.  Revert to long-standing
2152         alignment policy: twice the size of a "C" pointer.
2153         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
2154         shared pointers have twice the alignment of a pointer.
2155         * upc/upc-act.c (upc_cpp_builtins): Unconditionally emit
2156         the definition of __UPC_PTS_ALIGN__.
2158 2011-09-02  Gary Funck  <gary@intrepid.com>
2160         Align UPC pointers-to-shared, only if the target enforces
2161         strict alignment.
2162         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Align a
2163         UPC pointer-to-shared type, only if the target requires
2164         strict alignment.
2165         * upc/upc-act.c (upc_cpp_builtins): Output pre-defined macro,
2166         __UPC_PTS_ALIGN__, only if the target requires strict alignment.
2168 2011-08-30  Gary Funck  <gary@intrepid.com>
2170         * tree.h (check_qualified_type): Change 'const_tree'
2171         argument types back to 'tree' to avoid complaints
2172         of assignment drops qualifiers for invocations of the
2173         newly implemented TYPE_BLOCK_FACTOR() macro, which
2174         invokes hash functions with 'tree' pointer values that
2175         are not const qualified.
2176         * tree.c (check_qualified_type, check_aligned_type): Ditto.
2177         * c-typeck.c (comptypes_internal): Ditto.
2179 2011-08-29  Gary Funck  <gary@intrepid.com>
2181         Fixes for regressions noted running "make check"
2182         versus GCC trunk.
2183         * fold-const.c (fold_unary_loc): Execute UPC-specific
2184         checks for a cast-of-a-cast, only if one of the
2185         operands is a UPC pointer-to-shared value.
2186         * opts.c (print_specific_help):  Fix a comparison
2187         in an assert that checks that there are enough
2188         bits reserved for the number of languages defined
2189         in the .opt files.
2191 2011-08-29  Gary Funck  <gary@intrepid.com>
2193         Implement a hash table to record UPC block factors.
2194         * c-family/stub-upc.c (upc_block_factor_insert,
2195         upc_block_factor_lookup): New dummy stub procedures.
2196         * c-family/c-common.c (c_sizeof_or_alignof_type):
2197         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2198         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
2199         to copy (hashed) UPC blocking factor.
2200         (set_type_quals): Likewise.
2201         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2202         TYPE_HAS_THREADS_FACTOR().
2203         (type_common.block_factor): Delete.
2204         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
2205         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
2206         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
2207         UPC blocking factors greater than one.
2208         * dwarf2out.c (modified_type_die): Re-implement
2209         logic that records UPC blocking factor in the generated
2210         DWARF2 debugging information.
2211         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
2212         TYPE_HAS_THREADS_FACTOR().
2213         * c-decl.c (finish_decl, grokdeclarator):
2214         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2215         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
2216         used by UPC, and print UPC-specific information.
2218 2011-08-29  Gary Funck  <gary@intrepid.com>
2220         Implement a hash table to record UPC block factors.
2221         * upc/upc-act.c (upc_block_factor_for_type): New garbage-collected
2222         hash table.
2223         (upc_lang_init, upc_finish): Move to end of source file.
2224         (upc_lang_init): create  upc_block_factor_for_type hash table.
2225         (upc_block_factor_lookup, upc_block_factor_insert): New.
2226         (upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
2227         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
2228         (upc_grok_layout_qualifier): convert blocking factor to sizetype
2229         before checking for equality to element type's blocking factor.
2231 2011-08-28  Gary Funck  <gary@intrepid.com>
2233         Re-work the type machinery to fully support and to unify support
2234         for the UPC layout qualifier (blocking factor).
2235         * c-family/stub-upc.c (upc_set_block_factor): Delete.
2236           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
2237           and update prototype.
2238         * c-family/c-common.c (complete_array_type): call newly
2239           defined c_build_qualified_type_1() instead of
2240           upc_set_block_factor().
2241         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
2242           upc_apply_layout_qualifier() and update prototype.
2243           (upc_set_block_factor): Delete prototype.
2244         * c-family/c-common.h (c_build_qualified_type): redefine
2245           as a pre-processor macro that invokes c_build_qualified_type_1()
2246           with a null UPC layout qualifier.
2247           (c_build_qualified_type_1): New.  Add layout qualifier argument
2248           to old c_build_qualified_type() prototype.
2249         * tree.c (set_type_quals, check_qualified_type):
2250           Add layout qualifier as argument.
2251           (check_aligned_type): Add check for UPC block factor equality.
2252           (get_qualified_type_1): Rename from get_qualified_type() and
2253           add layout qualifier as argument.
2254           (build_qualified_type_1): Rename from build_qualified_type() and
2255           add layout qualifier as argument.
2256         * tree.h (check_qualified_type): Add layout qualifier as argument
2257           to the prototype.
2258           (get_qualified_type): Re-define as a as a pre-processor macro
2259           that invokes get_qualified_type_1() with a null
2260           UPC layout qualifier.
2261           (get_qualified_type_1): Rename from get_qualified_type() and
2262           add layout qualifier as argument.
2263         * cp/tree.c (c_build_qualified_type_1): Rename from
2264           c_build_qualified_type() and add (unused) layout qualifier
2265           argument.
2266         * c-decl.c (finish_decl): re-format long error messages.
2267           (grokdeclarator): Re-work the logic so that it calls
2268           upc_grok_layout_qualifier() to handle the UPC layout
2269           qualifier, if present.
2270         * c-typeck.c (qualify_type, common_pointer_type,
2271           build_component_ref): Re-work the logic so that it calls
2272           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
2273           if present.
2274           (c_build_qualified_type_1): Rename from c_build_qualified_type()
2275           and add layout qualifier argument.
2276         * print_tree.c (print_node): Re-format a long line.
2278 2011-08-28  Gary Funck  <gary@intrepid.com>
2280         Re-work the type machinery to fully support and to unify support
2281         for the UPC layout qualifier (blocking factor).
2282         * upc/upc-genericize.c (upc_simplify_shared_ref): Call
2283         c_build_qualified_type_1() instead of upc_set_block_factor()
2284         to assert a zero blocking factor.
2285         * upc/upc-pts-struct.c (upc_pts_struct_init_type): Call
2286         c_build_qualified_type_1() to build predefined shared
2287         qualified types, instead of build_variant_type_copy().
2288         * upc/upc-pts-packed.c (upc_pts_packed_init_type): Call
2289         c_build_qualified_type_1() to build predefined shared
2290         qualified types, instead of build_variant_type_copy().
2291         * upc/upc-act.c (upc_set_block_factor): Delete.
2292         (upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
2293         Rework logic so that it returns a blocking factor rather than
2294         a qualified type.  Add 'loc' argument and call error_at().
2295         Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
2296         the block size of the element type into the result type, and checks
2297         for errors due to an attempt to merge differing blocking factors.
2299 2011-08-26  Gary Funck  <gary@intrepid.com>
2301         Merge trunk version 177949 into gupc branch.
2302         * c-family/c-common.h (enum rid): Bump the number of type modifiers
2303           in the comment.
2304         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
2305           to add new rliterals column value.
2307 2011-08-26  Gary Funck  <gary@intrepid.com>
2309         * convert.c (convert_to_integer): Fix the check for the
2310           difference between two UPC pointers-to-shared values.
2312 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
2314         * configure.ac: Fix the name for --with-upc-pts-packed-bits
2315           option. Support --with-upc-packed-bits as deprecated. Fix the code to
2316           correctly check packed bits.
2317         * configure: Re-generate.
2319 2011-08-16  Gary Funck  <gary@intrepid.com>
2321         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
2322           the barrier id expression is not an integer expression.
2324 2011-08-16  Gary Funck  <gary@intrepid.com>
2326         * upc/upc-act.c (upc_decl_init): Do not attempt to expand
2327           an error mark node.  Fixes ICE after error diagnostic.
2328         * upc/upc-cmd.c (main): detect missing option argument for
2329           options that require an argument, and print error diagnostic.
2330           (get_print_cmd): Re-direct error output to /dev/null to
2331           avoid issuing duplicate error messages.
2333 2011-08-12  Gary Funck  <gary@intrepid.com>
2335         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
2336           (revert to trunk).
2337         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
2338           Set mode of UPC pointer-to-shared rep. to an
2339           integral mode of size at least as large as the
2340           size of the representation's struct type.
2342 2011-08-12  Gary Funck  <gary@intrepid.com>
2344         Rework/simplify the UPC genericize pass.
2345         * c-family/stub-upc.c (upc_apply_layout_qualifier,
2346           upc_build_pointer_type): New.
2347           (upc_set_block_factor): Adjust to new calling sequence.
2348           (upc_build_shared_var_addr): Delete.
2349         * c-family/c-common.c (complete_array_type): Adjust call
2350           to upc_set_block_factor().
2351         * c-family/c-upc.h (upc_apply_layout_qualifier,
2352           upc_build_pointer_type): New.
2353           (upc_build_shared_var_addr): Delete.
2354           (upc_set_block_factor): Adjust to new calling sequence.
2355         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
2356         * c-decl.c (grokdeclarator): Call newly defined
2357           upc_apply_layout_qualifier() instead of upc_set_block_factor().
2358         * c-decl.c (grokdeclarator): Split long UPC-related error
2359           messages into two lines.
2360         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
2361           directly.  Revert that change to trunk. (upc_genericize() will
2362           handle lowering the expressions that take the address of a
2363           UPC variable).
2364         * config/i386/i386.c (ix86_promote_function_mode): For UPC
2365           pointers-to-shared, return the type mode of the UPC pointer-to-shared
2366           representation type.
2368 2011-08-12  Gary Funck  <gary@intrepid.com>
2370         Rework/simplify the UPC genericize pass.
2371         * upc/upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
2372         * upc/upc-act.h: Cosmetic change.
2373         * upc/config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
2374         * upc/upc-genericize.c (upc_expand_get):
2375           Add WANT_STABLE_VALUE parameter.
2376           (upc_build_shared_var_addr, upc_shared_addr_rep): New.
2377           (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
2378           create_unshared_var, lookup_unshared_var, map_unshared_var,
2379           unshared_var_addr, unshared_var_name,
2380           upc_free_unshared_var_table): Move from upc-act.c.
2381           (upc_expand_get, upc_expand_put): Change their source and/or
2382           destination parameters so that they are no longer addresses
2383           of the objects, but rather references to the objects themselves.
2384           (upc_simplify_shared_ref): Rewrite (simplify/generalize).
2385           (upc_shared_addr_rep): New.
2386           (upc_shared_addr):  Adjust call to upc_build_shared_var_addr(),
2387           and re-factor the logic.
2388           (upc_genericize_sync_stmt): Re-format comment.
2389           (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
2390           (upc_genericize_addr_expr): Re-factor the logic.
2391           (upc_genericize_indirect_ref, upc_genericize_field_ref):
2392           Adjust call to upc_expand_get() and re-factor the logic.
2393           (upc_genericize_modify_expr): Adjust call to upc_expand_put()
2394           and re-factor the logic.
2395           (upc_genericize_expr): Improve/fix comments.
2396           (upc_genericize_finish, upc_genericize_init): New.
2397         * upc/upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
2398           (upc_char_pts_type_node): Create new global type node.
2399           (upc_pts_struct_is_null_p): Generalize variable names to
2400           reflect the fact that the vaddr field can be either first/last.
2401           (upc_pts_struct_build_sum): Make corrections to comments.
2402           (upc_pts_struct_build_add_offset): Delete.
2403         * upc/upc-genericize.h (upc_genericize_finish, upc_genericize_init):
2404           New prototypes.
2405         * upc/upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
2406           (upc_char_pts_type_node): Create new global type node.
2407         * upc/Make-lang.in: Add dependencies to gtype-upc.h
2408           and gt-upc-upc-genericize.h.
2409         * upc/upc-act.c: Adjust includes to reflect moving the functions
2410           that handle the UPC unshared "shadow variables" into
2411           upc-genericize.c.  Improve/fix various comments.
2412         * upc/upc-act.c (upc_parse_init): Call upc_genericize_init().
2413           (upc_build_pointer_type): New.
2414           (upc_set_block_factor): Re-purpose.  Move the front-end
2415           related error checks into upc_apply_layout_qualifier().
2416           (upc_apply_layout_qualifier): New.
2417           (upc_write_global_declarations): Call upc_genericize_finish().
2419 2011-08-10  Gary Funck  <gary@intrepid.com>
2421         Implement additional fixes for recent merge with trunk.
2422         * explow.c (promote_mode): Do not attempt to promote
2423           the mode for UPC pointer-to-shared types.
2424         * config/i386/i386.c (function_value_64): Ditto.
2426 2011-08-07  Gary Funck  <gary@intrepid.com>
2428         Merge trunk version 177548 into gupc branch.
2429         * config/i386/i386.c (ix86_promote_function_mode):
2430           Do not promote UPC pointers-to-shared to Pmode.
2431         * c-family/c-ommon.c (pointer_int_sum):
2432           Also check the pointer operand, rather than just
2433           its type, when making the decision to derive
2434           the equivalent unshared type.
2435         * tree.c (build2_stat): If the type of the result
2436           passed in as an argument is a UPC shared type,
2437           derive the unshared equivalent when calculating
2438           the result type of the node.
2440 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
2442         * config/darwin.c: Disable var_tracking option
2443           on -O0 as it is supposed to run only when optimization
2444           is applied. See GCC bug 49743.
2446 2011-07-11  Gary Funck  <gary@intrepid.com>
2448         * upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
2449         qualification was incorrectly derived from the source operand.
2450         (upc_genericize_fndecl): New.
2451         (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
2452         c_genericize() more than once in the event of nested procedures.
2453         (upc_genericize_real_imag_ref): Rename,
2454         was: upc_genericize_real_image_ref.
2455         (upc_expand_put): call internal_error() with meaningful message
2456         in lieu of abort().
2457         (upc_genericize_real_imag_ref): call internal_error() with
2458         meaningful message in lieu of gcc_unreachable().
2460 2011-07-06  Gary Funck  <gary@intrepid.com>
2462         Re-implement the pass that lowers trees generated by
2463         the UPC front-end into GENERIC.  Previously this was
2464         done within the gimplification framework, but this
2465         required that gimplification be run before inlining
2466         and various other passes, which did not fit in well
2467         with the current design of the middle-end passes.
2468         Now, the lowering is done by a newly defined language
2469         specific genericize hook.  With this change, we are
2470         are able to undo some extensions made to the gimplify
2471         logic, and thus can revert several files to trunk.
2472         * c-decl.c: Add a check for UPC deprecated names which
2473           may appear as undefined function names.
2474         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
2475           LTI_upc_getaddr): Remove definitions of unused UPC
2476           library function names.  These were defined back when
2477           the libfunc interface was used to call these routines.
2478         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
2479           in UPC lowering (genericize) pass.
2480         * langhooks.h (gimplify_expr): Revert to trunk's definition.
2481           (instrument_func): Delete this hook.  Now handled in
2482           upc_genericize().
2483         * tree-pass.h: Revert to trunk.
2484         * c-typeck.c (build_unary_op): Adjust reference to
2485           upc_genericize() in a comment.
2486         * gimplify.c (create_tmp_var_raw): Delete logic that
2487           was converting UPC shared types into unshared types
2488           to be used for temporaries.  Now handled in  upc_genericize().
2489           Replace with an assertion check.
2490           (prepare_gimple_addressable): Revert to trunk's definition.
2491           No longer needed as an externally called function.
2492           (flag_instrument_functions_exclude_p): Re-define as
2493           an externally called function.
2494           (gimplify_function_tree): Delete code that implemented
2495           call to UPC's language specific function instrumentation hook.
2496         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
2497           (prepare_gimple_addressable): Delete extern definition;
2498           revert to trunk's definition.
2499         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
2500           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
2501         * c-family/c-gimplify.c: Revert to trunk.
2502         * cp/cp-gimplify.c: Revert to trunk.
2503         * cp/cp-tree.h: Revert to trunk.
2504         * explow.c: Revert to trunk.
2505         * langhooks.c: Revert to trunk.
2506         * libfuncs.h: Revert to trunk.
2507         * objc/objc-act.c: Revert to trunk.
2509 2011-07-06  Gary Funck  <gary@intrepid.com>
2511         Improve/simplify the logic in upc_genericize.
2512         * upc/upc-genericize.c (upc_create_tmp_var): Delete the
2513           PREFIX argument.  Aways use "UPC" as the prefix.
2514           (upc_genericize_compound_expr): Add a WANT_VALUE argument.
2515           (upc_genericize_cond_expr): New.
2516           (upc_genericize_decl_expr): New.
2517           (upc_genericize_stmt): New.
2518           (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
2519           to upc_create_tmp_var().
2520           (upc_genericize_expr): Change the handling
2521           of the want_value flag passed in the DATA argument.
2522           Always assert this flag after processing EXPR_P.
2523           (upc_genericize_compound_expr): Adjust call
2524           to upc_genericize_compound_expr() and call
2525           upc_genericize_cond_expr() and upc_genericize_decl_expr().
2527 2011-07-06  Gary Funck  <gary@intrepid.com>
2529         Re-implement the pass that lowers trees generated by
2530         the UPC front-end into GENERIC.  Previously this was
2531         done within the gimplification framework, but this
2532         required that gimplification be run before inlining
2533         and various other passes, which did not fit in well
2534         with the current design of the middle-end passes.
2535         Now, the lowering is done by a newly defined language
2536         specific genericize hook.  With this change, we are
2537         are able to undo some extensions made to the gimplify
2538         logic, and thus can revert several files to trunk.
2539         * upc/upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
2540         * upc/upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
2541         * upc/Make-lang.in: Adjust to refer to upc-genericize.[cho].
2542         * upc/upc-lnag.c: refer to upc-genericize.h.
2543           (LANG_HOOKS_GENERICIZE): define as upc_genericize.
2544           (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
2545           (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
2546         * upc/upc-act.c: Minor code format fix.
2548 2011-06-30  Gary Funck  <gary@intrepid.com>
2550         * c-family/c.opt: Bring options definitions up-to-date
2551         with respect to changes made in the trunk.
2553 2011-06-29  Gary Funck  <gary@intrepid.com>
2555         Merge trunk version 175584 into gupc branch.
2557 2011-06-29  Gary Funck  <gary@intrepid.com>
2559         Merge trunk version 175584 into gupc branch.
2560         * upc/upc-act.c (upc_handle_option): Change reference to
2561         have_named_sections so that it refers to the
2562         targetm_common structure.
2564 2011-06-28  Gary Funck  <gary@intrepid.com>
2566         * upc/upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
2567         Remove extern definitions. Now declared as 'static'.
2568         * upc/upc-gimplify.c, upc/upc-lang.c,
2569         upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
2570         upc-cmd.c, upc-act.c: Improve/add comments, fix
2571         typos and spelling errors.
2573 2011-06-13  Gary Funck  <gary@intrepid.com>
2575         libcpp/
2576         * include/cpplib.h (enum c_lang):
2577         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
2578         This keeps all the "C" variants together.
2579         * init.c (lang_defaults): Add an entry for UPC.
2581 2011-06-10  Gary Funck  <gary@intrepid.com>
2583         * upc/upc-act.c (upc_set_block_factor): Handle the case where
2584         the UPC blocking factor expression overflowed.
2586 2011-06-09  Gary Funck  <gary@intrepid.com>
2588         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
2589         a 32-bit target, the size expression overflowed, the result was
2590         error_mark_node, and an ICE was triggered on an attempt to evaluate
2591         C_TYPE_VARIABLE_SIZE() on the error node.
2592         (upc_blocksizeof_expr, upc_blocksizeof_type,
2593         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
2594         Make similar changes to avoid further processing of error_mark_node.
2596 2011-06-07  Gary Funck  <gary@intrepid.com>
2598         * sel-sched.c (move_op): Incorporate the following
2599         patch to eliminate ICE at -O3 on IA64/Altix.
2601 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
2603         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
2604         code_motion_path_driver returned 0 or 1.
2605         (sel_region_finish): Clear h_d_i_d.
2607 2011-06-02  Gary Funck  <gary@intrepid.com>
2609         Merge trunk version 174558 into gupc branch.
2611 2011-06-02  Gary Funck  <gary@intrepid.com>
2613         Merge trunk version 174558 into gupc branch.
2614         * upc/upc-lang.c (upc_check_decl_init): Use recently defined
2615         'append_to_statement_list_force' function to add UPC
2616         initialization statements to the UPC initialization
2617         statement list ('upc_init_stmt_list').
2618         (upc_build_init_func): Use recently defined
2619         'append_to_statement_list_force' function to add
2620         statements listed in 'upc_init_stmt_list' onto the
2621         function body constructed to implement initialization
2622         of UPC declarations that require active initialization
2623         at program start up.  The previous methods of manipulating
2624         statement lists no longer worked, due to changes in the
2625         the statement list structure.
2627 2011-05-30  Gary Funck  <gary@intrepid.com>
2629         * configure.ac: Make the default order of the virtual
2630           address field in a UPC pointer-to-shared to be "first".
2631           This reverts to the previous setting, and is a short term
2632           measure to work around a bug found on the IA64,
2633           where vaddr=last led to incorrect code generation.
2634           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
2635           in AC_DEFINE(), to agree with recent changes in files
2636           that reference this define.
2637           configure, config.in: Regenerate.
2639 2011-05-26  Gary Funck  <gary@intrepid.com>
2641         * configure.ac: Fix typo when referring to $upc_vaddr_order.
2642           configure: Regenerate.
2643         * ../fixincludes/fixincl.x: Revert to trunk.
2644           This file is auto-generated, and should not be merged.
2646 2011-05-23  Gary Funck  <gary@intrepid.com>
2648         * upc/upc-pts-struct.c: Revert to code that aligned the
2649           internal pointer-to-shared representation to
2650           twice the alignment of a pointer.  This fixes
2651           an ICE that occurred when building the compiler
2652           on an IA64 target.
2654 2011-05-18  Gary Funck  <gary@intrepid.com>
2656         Merge trunk version 173845 into gupc branch.
2658 2011-05-17  Gary Funck  <gary@intrepid.com>
2660         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
2661           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
2662         * c-family/c-pragma.c: Remove conditional compilation
2663           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
2664           Test 'compiling_upc' when compiling to determine if
2665           the "upc" and "pupc" pragmas should be registered.
2666         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2667           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2668           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2669           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2670           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2671           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
2672           Move these target-dependent definitions from config/upc-conf.h
2673           to here.
2674         * configure.ac: Improve the logic for UPC-related options.
2675           Delete references to pre-processor definitions that have
2676           been moved to "upc/upc-pts.h".
2677         * configure, config.in: Regenerate.
2678         * Makefile.in (UPC_PTS_REP): Remove definition and revert
2679           to trunk.  This substitution variable was used to
2680           configure the representation-specific versions of
2681           the tree rewrites that operate on UPC pointer-to-shared
2682           types and objects.
2683         * c-parser.c (c_parser_upc_forall_statement): Remove
2684           reference to UPC_FORALL_DEPTH_NAME, and call
2685           newly defined upc_rts_forall_depth_var() instead.
2686         * config/upc-config.h: Delete. Various definitions
2687           moved to "upc/upc-rts-names.h", "defaults.h", and
2688           "upc/upc-pts.h".
2689         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
2690           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
2691           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2692           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2693           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2694           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2695           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2696           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
2697           New.  Document UPC target macros.
2698           doc/tm.texi: Regenerate.
2700 2011-05-17  Gary Funck  <gary@intrepid.com>
2702         * upc/upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
2703           upc_pts_build_cond_expr, upc_pts_build_constant,
2704           upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
2705           upc_pts_build_threadof, upc_pts_init_type): Remove extern
2706           definitions.
2707           (upc_pts_ops_t): New. Define handler table that will
2708           implement either the 'packed' or the 'struct' representation
2709           of a UPC pointer-to-shared value.
2710           (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
2711           refers to the packed and the struct UPC pointer-to-shared
2712           representation implementation.
2713           (upc_pts): New. Define handler table that is set up at initialization
2714           to refer to the handlers for the UPC pointer-to-shared
2715           representation (packed/struct) that has been configured.
2716           Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
2717           and configure the UPC pointer-to-shared definitions that
2718           are specific to the configured UPC pointer-to-shared
2719           representation.
2720         * upc/upc-act.h (upc_pts_is_valid_p): Rename extern definition from
2721           is_valid_pts_p to upc_pts_is_valid_p.
2722         * lang-specs.h: Reformat the UPC compilation specs.
2723           to improve readability.
2724         * upc/upc-rts-names.h: New. Define the names of UPC runtime
2725           library functions that implement UPC language statement
2726           semantics.  These definitions were moved from config/upc-conf.h
2727         * upc/upc-gimplify.c: Add include of "upc-rts-names.h".
2728           Refer to newly defined pointer manipulation routines
2729           by indirecting through the newly defined "pts" handler table.
2730           Re-format, re-indent.
2731         * upc/upc-lang.c: Add include of "upc-pts.h".  Fix a comment.
2732         * upc/config-lang.in: Remove logic that inserted "config/upc-conf.h"
2733           into the target include and file path.
2734         * upc/upc-pts-struct.c: Add include of "upc-rts-names.h".
2735           (upc_pts_struct_ops): Define the pointer manipulation
2736           handler table that implements operations on UPC
2737           pointers-to-shared, represented as a struct.
2738           Re-format and re-indent.
2739         * upc/upc-gasp.c: Add include of "upc-rts-names.h".
2740           Re-format and re-indent.
2741         * upc/upc-pts-packed.c: Add include of "upc-rts-names.h".
2742           (upc_pts_packed_ops): Define the pointer manipulation
2743           handler table that implements operations on UPC
2744           pointers-to-shared, represented as a packed integer.
2745           Re-format and re-indent.
2746         * upc/Make-lang.in: Compile both "upc-pts-packed.c" and
2747           "upc-pts-struct.c".  One/other will be selected at
2748           compilation time to implement operations on UPC
2749           on the UPC pointer-to-shared that has been configured.
2750           Add dependencies on "upc-rts-names.h".
2751         * upc/upc-cmd.c: Re-format and re-indent.
2752         * upc/upc-act.c: Add include of "upc-rts-names.h".
2753           (upc_pts): New. Add definition of the handler
2754           table that implements representation specific
2755           operations on trees that refer to UPC pointer-to-shared
2756           objects and types.  Re-format and re-indent.
2758 2011-05-07  Gary Funck  <gary@intrepid.com>
2760         * ../configure.ac: Disable build of libupc
2761           on non POSIX hosted systems.  Use AS_HELP_STRING
2762           to define messages.  Remove 'word-pair' as a
2763           possible --with-upc-pts UPC pointer-to-shared
2764           representation.
2765         * ../configure: Regenerate.
2766         * configure.ac: Use AS_HELP_STRING to define messages.
2767           Remove 'word-pair' as a possible --with-upc-pts
2768           UPC pointer-to-shared representation.
2769           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
2770           (UPC_MAX_BLOCK_SIZE): Correct the default value.
2771         * configure: Regenerate.
2772         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
2773           definition.
2774         * ChangeLog.upc: Fix some typos.
2776 2011-05-07  Gary Funck  <gary@intrepid.com>
2778         * ../maintainer-scripts/gcc_release: Add "upc"
2779           as one of the released languages.
2781 2011-05-06  Gary Funck  <gary@intrepid.com>
2783         Eliminate compilation warnings, by fixing
2784         #include's and updating function prototypes.
2785         * c-family/c-cppbuiltin.c: Include c-upc.h.
2786         * optabs.c (gen_libfunc): Change type of 'suffix'
2787           parameter to conform with prototype.
2788         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2789           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2790           hook used by UPC.
2791         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2792           the prototype.
2793         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2794           argument values to cp_gimplify_expr.
2795         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2796           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
2797           pre-processor definitions that are no longer
2798           needed to build the 'upc' command (upc-cmd.c)
2799           because the linker specs. defined in libupc
2800           take care of linking in the needed libraries.
2801         * c-parser.c (c_parser_upc_forall_statement):
2802           initialize affinity_loc to avoid "maybe unused" warning.
2803           (c_parser_upc_sync_statement): Remove un-needed
2804           'ret' variable.  Cast return value from
2805           'upc_build_sync_stmt' to 'void' to avoid
2806           compile-time warning.
2807         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2808           integer constant, not a string.  Range is restricted
2809           to maximum positive 32-bit integer (2+ billion) to
2810           fit in with the use of 'int' in the front-end's
2811           switch handling logic.
2813 2011-05-06  Gary Funck  <gary@intrepid.com>
2815         Upgrade c-family source files to conform with modularity
2816         improvements.  Mainly, remove #include of c-tree.h in files
2817         under c-family, and define a new UPC-specific #include file,
2818         c-upc.h, and use it.
2819         * c-family/stub-upc.c: Remove #include of c-tree.h and
2820           upc/upc-act.h.  Replace with #include of c-common.h
2821           and c-upc.h.
2822           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2823           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2824           upc_localsizeof_expr, upc_localsizeof_type,
2825           upc_shared_type_p): Delete.
2826         * c-family/c-opts.c: Add #include of c-upc.h
2827         * c-family/c-common.c: Remove #include of c-tree.h and
2828           add #include of c-upc.h.
2829         * c-family/c-upc.h: New. Define API for UPC-specific functions
2830           (mostly implemented in upc/upc-act.c).
2831         * c-family/c-common.h (upc_cpp_builtins,
2832           upc_write_global_declarations): Remove extern definitions.
2833         * c-family/c-pragma.c: Remove #include of c-tree.h.
2834           Add #include of c-upc.h.
2835         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
2836           c-tree.h.
2837           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
2838           upc/upc-act.c, and define as a macro.
2839           (expand_affinity_test): Remove unused external definition.
2840           (build_upc_unshared_type): Add external definition.
2841           (upc_shared_type_p): Remove external definition.
2842         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2843         * dojump.c: Remove #include of c-tree.h.
2844         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2845           and move to tree.h.
2846           (count_upc_threads_refs, is_multiple_of_upc_threads,
2847           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2848           upc_build_shared_var_addr, upc_build_sync_stmt,
2849           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2850           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2851           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2852           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2853           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2854           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2855           set_upc_consistency_mode, get_upc_consistency_mode,
2856           push_upc_consistency_mode, pop_upc_consistency_mode,
2857           get_upc_pupc_mode):
2858           Move external definitions to c-family/c-upc.h.
2859           (upc_blocksizeof_type, upc_localsizeof_type,
2860           upc_elemsizeof_type): Remove external definitions;
2861           these functions were moved to c-parser.c.
2862         * c-decl.c: Add #include of c-upc.h.
2863         * c-typeck.c: Add #include of c-upc.h.
2864         * c-convert.c: Add #include of c-upc.h.
2865         * ChangeLog.upc: Fix typo.
2866         * Makefile.in: Add references to c-family/c-upc.h, everywhere
2867           there is a reference to c-family/c-objc.h.
2868           Remove extraneous reference to upc-act.h.
2869         * c-parser.c: Add #include of c-upc.h.
2870           (upc_blocksizeof_expr, upc_blocksizeof_type,
2871           upc_elemsizeof_expr, upc_elemsizeof_type,
2872           upc_localsizeof_expr, upc_localsizeof_type):
2873           Move from upc/upc-act.c.
2874         * tree.c (build_upc_unshared_type): New.
2875           Move upc_get_unshared_type from upc/upc-act.c and rename
2876           to build_upc_unshared_type.
2877           c-family/c-common.c (pointer_int_sum): refer to renamed
2878           build_upc_unshared_type function.
2879           c-convert.c (convert): Ditto.
2880           convert.c (convert_to_pointer): Ditto.
2881           c-typeck.c (build_unary_op, build_modify_expr,
2882           really_start_incremental_init): Ditto.
2883           gimplify.c (create_tmp_var_raw): Ditto.
2884           tree.c (build1_stat): Ditto.
2885           tree.h (upc_get_unshared_type): Rename to
2886           build_upc_unshared_type.
2888 2011-05-06  Gary Funck  <gary@intrepid.com>
2890         Merge trunk version 173471 into gupc branch.
2892 2011-05-06  Gary Funck  <gary@intrepid.com>
2894         Eliminate compilation warnings, by fixing
2895         #include's and updating function prototypes.
2896         * upc/upc-gimplify.c: Include bitmap.h.
2897           (upc_gimplify_real_image_ref): Mark various parameters
2898           as unused.  This is a stub procedure for now.
2899         * upc/upc-lang.c: Include c-family/c-upc.h.
2900           upc-gasp.c: Ditto.
2901         * upc/upc-cmd.c (no_start_files): Delete unused variable.
2902           The -nostartfiles switch is now handled by the linker spec.
2903         * ChangeLog: Spell check.
2905 2011-05-06  Gary Funck  <gary@intrepid.com>
2907         Upgrade c-family source files to conform with modularity
2908         improvements.  Mainly, remove #include of c-tree.h in files
2909         under c-family, and define a new UPC-specific #include file,
2910         c-upc.h, and use it.
2911         * upc/upc-act.h (upc_write_global_declarations,
2912           upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
2913           upc_num_threads, upc_diagnose_deprecated_stmt):
2914           Move external definitions to c-family/c-upc.h
2915           (upc_blocksizeof_expr, upc_blocksizeof_type,
2916           upc_elemsizeof_expr, upc_elemsizeof_type,
2917           upc_localsizeof_expr, upc_localsizeof_type):
2918           Remove external definitions; these functions
2919           were moved from upc-act.c to c-parser.c.
2920         * upc/upc-gimplify.c: Add #include of c-family/c-upc.h.
2921           upc-pts-packed.c: Ditto.
2922           upc-pts-struct.c: Ditto.
2923         * upc/config-lang.in: Update gtfiles to refer to c-upc.h
2924           and other files.
2925         * upc/upc-act.c: Add #include of c-family/c-upc.h.
2926           (upc_blocksize, upc_elemsizeof, upc_localsizeof):
2927           Make external so that it can be called from c-parser.c.
2928           (upc_blocksizeof_expr, upc_blocksizeof_type,
2929           upc_elemsizeof_expr, upc_elemsizeof_type,
2930           upc_localsizeof_expr, upc_localsizeof_type):
2931           Move from upc/upc-act.c to c-parser.c.
2932           (upc_set_block_factor): Fix typo in error message.
2933           (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
2934           Move to tree.h and define as a macro.
2935           (upc_get_unshared_type): Delete. renamed to
2936           build_upc_unshared_type and moved to tree.c.
2937         * upc/upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
2938           refer to renamed build_upc_unshared_type function.
2939           upc-act.c (create_unshared_var): Ditto.
2941 2011-05-05  Gary Funck  <gary@intrepid.com>
2943         Make changes that bring the GUPC branch more closely in sync.
2944         with the GCC trunk.  Revert any fixes that are not UPC-specific.
2945         Remove gratuitous re-formatting.
2946         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2947           This file should have been removed in a previous merge
2948           with the trunk.
2949         * ../configure.ac: Remove Cray Catamount/CNL support.
2950         * ../configure: Regenerate.
2951         * ../config.sub: Remove Cray Catamount/CNL support.
2952         * config.gcc: Remove Cray Catamount/CNL support.
2953         * ../maintainer-scripts/gcc_release: Revert to trunk.
2954         * c-family/c-common.h: Define parse_optimize_options.  Its definition
2955           was missed in a previous merge with the trunk.
2956         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2957           procedure.
2958         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2959           in addition to ARRAY_TYPE.
2960         * c-typeck.c: Remove an extra newline character.
2961         * varasm.c: Revert a fix that improved an error message
2962           when TLS common data is unimplemented.
2963         * varasm.c: Revert a gcc_assert that had been added which
2964           checked for a null DECL_SIZE_UNIT field.
2965         * emultls.c: Revert to trunk. Remove possible fix.
2966         * Makefile.in: Revert extra blank line that is present
2967           in the trunk version.
2968         * Makefile.in: Revert a fix that handled long shell
2969           argument lists for plugin headers.
2970         * config/ia64/ia64.opt: Revert an option setting
2971           that increased the default TLS address range.
2972         * config/ia64/crtbegin.asm: Revert to trunk.
2973           Removes an extra newline character.
2974         * ChangeLog.upc: Spell check.
2976 2011-05-03  Gary Funck  <gary@intrepid.com>
2978         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2979           (c_apply_type_quals_to_decl): Ditto.
2980         * c-family/c-common.h: Ditto.
2981         * dojump.c: Ditto.
2982         * c-decl.c (merge_decls): Ditto.
2983         * c-typeck.c (qualify_type, default_conversion,
2984           build_component_ref, build_unary_op,
2985           c_build_qualified_type): Ditto.
2986         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2988 2011-05-03  Gary Funck  <gary@intrepid.com>
2990         * upc/upc-lang.c: Remove extraneous FIXME/TODO comments.
2991         * upc/upc-pts-packed.c (upc_pts_build_cvt): Ditto.
2992         * upc/upc-act.c (upc_set_block_factor): Ditto.
2994 2011-04-29  Gary Funck  <gary@intrepid.com>
2996         * c-decl.c (finish_decl): Improve error diagnostics.
2997           (grokdeclarator): Ditto.
2998         * c-typeck.c (build_c_cast): Improve error diagnostics.
2999           (convert_for_assignment): Ditto.
3000           (build_binary_op): Ditto.
3001         * c-parser.c (c_parser_upc_forall_statement):
3002           Improve error diagnostics.
3003         * convert.c (convert_to_integer):  Improve error diagnostics.
3005 2011-04-29  Gary Funck  <gary@intrepid.com>
3007         * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
3008           (upc_expand_put): Ditto.
3009           (upc_shared_addr): Ditto.
3010           (upc_gimplify_sync_stmt): Ditto.
3011           (upc_gimplify_field_ref): Ditto.
3012         * upc/upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
3013           (upc_pts_build_cvt): Ditto.
3014         * upc/upc-act.c (upc_handle_option): Improve error diagnostics.
3015           (upc_lang_init): Ditto.
3016           (upc_sizeof_type_check): Ditto.
3017           (upc_set_block_factor): Ditto.
3018           (upc_decl_init): Ditto.
3019           (upc_affinity_test): Ditto.
3020           (upc_num_threads): Ditto.
3021           (upc_diagnose_deprecated_stmt): Ditto.
3022           (upc_build_shared_var_addr): Ditto.
3023           (upc_pts_int_sum): Ditto.
3024           (upc_pts_diff): Ditto.
3026 2011-04-28  Gary Funck  <gary@intrepid.com>
3028         * upc/upc-act.c (create_unshared_var): call upc_get_unshared_type()
3029           instead of using TYPE_MAIN_VARIANT() to create an equivalent type
3030           that is not a UPC shared type.  This is sometimes necessary
3031           when the given shared type is derived from a typedef.
3033 2011-04-24  Gary Funck  <gary@intrepid.com>
3035         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
3036           occurred if there is an error in the barrier id
3037           expression.  Map error_mark_node into NULL.
3039 2011-04-24  Gary Funck  <gary@intrepid.com>
3041         * upc/upc-act.c (upc_handle_option): Fix incorrect error
3042           diagnostic messages when both -fupc-debug and
3043           -fupc-inline-lib are asserted.
3045 2011-04-24  Gary Funck  <gary@intrepid.com>
3047         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
3048           to the list of switches that accept arguments.
3049           (main): Check for switches that have a following
3050           argument inside the loop that copies arguments and
3051           adds '-x upc' or '-x none' as necessary.
3052           (main): Misc. clean ups and simplifications.
3054 2011-04-22  Gary Funck  <gary@intrepid.com>
3056         Merge trunk version 172873 into gupc branch.
3058 2011-04-22  Gary Funck  <gary@intrepid.com>
3060         Merge trunk version 172873 into gupc branch.
3061         * upc/upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
3062           on init_func() to prevent it from being removed from
3063           the call graph.
3065 2011-04-19  Gary Funck  <gary@intrepid.com>
3067         Merge trunk version 172359 into gupc branch.
3069 2011-04-19  Gary Funck  <gary@intrepid.com>
3071         Merge trunk version 172359 into gupc branch.
3072         * upc/upc-lang.c (upc_init_ts): New.
3073           (LANG_HOOKS_INIT_TS): use upc_init_ts.
3075 2011-04-19  Gary Funck  <gary@intrepid.com>
3077         Eliminate warnings when compiling upc-cmd.c.
3078         * upc/upc-cmd.c (file_exists): Remove.
3079           (arg_copy): Remove const qualifier.
3081 2011-04-14  Gary Funck  <gary@intrepid.com>
3083         * c-family/c.opt: Add UPC as a valid language for various
3084           switches where it is valid for "C", that were not updated
3085           in previous merges with trunk.
3087 2011-04-13  Gary Funck  <gary@intrepid.com>
3089         * c-family/c.opt (fupc-pre-include): New option definition.
3090         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
3091           -fno-upc-pre-include is asserted.
3093 2011-04-13  Gary Funck  <gary@intrepid.com>
3095         * upc/upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
3096           to the list, and alphabetize.
3098 2011-04-13  Gary Funck  <gary@intrepid.com>
3100         * upc/upc-gimplify.c (upc_gimplify_real_image_ref): New.
3101           Currently, a not-yet-implemented stub.
3102           (upc_gimplify_lval): call upc_gimplify_real_image_ref to
3103           rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
3104           This will avoid an ICE when compiling regular "C"
3105           code that refers to those operators.
3107 2011-04-13  Gary Funck  <gary@intrepid.com>
3109         * upc/upc-cmd.c: Do not add "-isystem <libupc_path>" if
3110           -fno-upc-pre-include is asserted.
3112 2011-04-07  Gary Funck  <gary@intrepid.com>
3114         Merge trunk version 172158 into gupc branch.
3115         to bring in the following fix.
3117 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
3119         PR bootstrap/48403
3120         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3121         if old and new states differ.
3123 2011-04-06  Gary Funck  <gary@intrepid.com>
3125         Merge trunk version 171966 into gupc branch.
3127 2011-04-01  Gary Funck  <gary@intrepid.com>
3129         * tree.h (tree_base): Move UPC flag bits into bit fields
3130           located just before spare bits.  Decrement spare bits.
3131           Rename 'shared_flag' -> 'upc_shared_flag',
3132           'relaxed_flag' -> 'upc_relaxed_flag',
3133           'strict_flag' -> 'upc_strict_flag, and adjust macros
3134           that reference them accordingly.
3136 2011-04-01  Gary Funck  <gary@intrepid.com>
3138         * c-decl.c (grokdeclarator): Fix formatting of
3139           code that sets UPC block size on scalars.
3141 2011-04-01  Gary Funck  <gary@intrepid.com>
3143         * c-decl.c (grokdeclarator): Revert use of white space
3144           to match the trunk (to rationalize diffs).
3145         * c-typeck.c (convert_for_assignment): Ditto.
3146         * tree-ssa.c (useless_type_conversion_p): Ditto.
3148 2011-03-23  Gary Funck  <gary@intrepid.com>
3150         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
3151           the GCC 4.6 release branch.
3153 2011-03-22  Gary Funck  <gary@intrepid.com>
3155         * upc/upc-cmd.c: Move linker switches into libupc/libupc.spec.
3156           (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
3157           (find_ld_script) Remove.
3159 2011-03-21  Gary Funck  <gary@intrepid.com>
3161         Merge trunk version 171202 into gupc branch.
3163 2011-03-20  Gary Funck  <gary@intrepid.com>
3165         * varasm.c: Call error() directly with a format specifier,
3166           rather than using sprintf() to format the message.
3167           This should make it easier to internationalize UPC's error messages.
3169 2011-03-20  Gary Funck  <gary@intrepid.com>
3171         * configure.ac: Fix the check for gnu ld when enabling
3172           UPC link script support.
3173           configure: Regenerate (also picks up changes from previous
3174           merge with trunk).
3176 2011-03-20  Gary Funck  <gary@intrepid.com>
3178         Move UPC start files, end files, and linker specs.
3179         into libupc.  This reduces the impact on common GCC
3180         configuration files, and ensures that these UPC-specific
3181         components are only built when the UPC language dialect is selected.
3182         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
3183           linker specs. Fix typo in -fupc-debug message.
3184         * config/upc-conf.h, config/darwin.h: Move defines for
3185           UPC-related section begins/ends into libupc/config/default/
3186           upc-crt-config.h.
3187         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
3188           UPC-related linker compiler specifications,
3189           accessed via %:include().
3190         * configure.ac, configure: Remove logic related to building
3191           upc-crtbegin/end. Remove config. tests for numa and cpu
3192           affinity (previously used by the 'upc' driver); these
3193           settings are now propagated by target-specific compiler
3194           specs. built by libupc.  Regenerate autoconf.
3195         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
3196           linker compiler specifications, accessed via %:include().
3197           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
3198           'link_upc_spec'.
3199         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
3200         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
3201           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
3202           config/ia64/linux.h, config/mips/t-iris,
3203           config/mips/iris6.h: Revert to trunk version 167307.
3204         libgcc/
3205         * configure, configure.ac, config.host, Makefile.in:
3206           Revert to trunk version 167307.
3208 2011-03-20  Gary Funck  <gary@intrepid.com>
3210         * upc/upc-act.c: Call error() directly with a format specifier,
3211           rather than using sprintf() to format the message.
3212           This should make it easier to internationalize UPC's error messages.
3214 2011-03-20  Gary Funck  <gary@intrepid.com>
3216         Move UPC start files, end files, and linker specs.
3217         into libupc.  This reduces the impact on common GCC
3218         configuration files, and ensures that these UPC-specific
3219         components are only built when the UPC language dialect is selected.
3220         * upc/config-lang.in: Remove setting of 'upc_extra_parts', which
3221           was used to specify which upc-crtbegin and upc-crtend files
3222           need to built.  Remove extraneous (commented out)
3223           settings of 'cfiles'.  The listed configuration files
3224           have been reverted to trunk, and weren't referenced
3225           via cfiles in any event.
3226         * upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
3227           Simply test for the presence of the UPC link script
3228           in the current directory or the libupc directory.
3229           Add -B<path-to-libupc> to the switches passed to 'gcc';
3230           this is needed in order to find the upc-crtbegin
3231           and upc-crtend object files now built in libupc.
3232           Remove test for and inclusion of UPC_LINKER_SWITCHES.
3233           if extra switches are needed for a particular target
3234           (like SGI/Irix), they will be defined by the custom
3235           linker spec. built in libupc.  Remove test for
3236           HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
3237           will be added to the custom linker specs. built
3238           in libupc.
3239         * upc/upc-crtstuff.c: Move to libupc.
3241 2011-02-23  Gary Funck  <gary@intrepid.com>
3243         * c-decl.c (undeclared_variable): fix typo. Inadvertently
3244         removed negation on following 'if'.
3246 2011-02-22  Gary Funck  <gary@intrepid.com>
3248         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
3249         to check for the usage of certain deprecated UPC keywords.
3250         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
3251         * c-tree.h (undeclared_variable): Define prototype.
3253 2011-02-22  Gary Funck  <gary@intrepid.com>
3255         * upc/upc-act.c (upc_diagnose_deprecated_stmt): New.
3256           upc-act.h (upc_diagnose_deprecated_stmt): Define.
3257           Check usage of deprecated keywords and issue
3258           error message.
3260 2011-02-12  Gary Funck  <gary@intrepid.com>
3262         * c-typeck.c: (build_c_cast, convert_for_assignment)
3263           Diagnose an attempt to convert from an integer to
3264           a pointer-to-shared as an error.  Also, fix various
3265           error messages so that they use the preferred term
3266           pointer-to-shared instead of "shared pointer".
3268 2011-02-08  Gary Funck  <gary@intrepid.com>
3270         * upc/upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
3271           for struct-pts representation
3272           Analysis indicated that for something like (+ ptr -80) this was
3273           being represented as (+ ptr (- 80)) and further, when the
3274           calculations were propagated into the individual operations on the
3275           components of the 'struct' pointer, it would end up with something
3276           like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
3277           "long unsigned int" because of the addition to the pointer.  This
3278           caused the calculations involving the signed 'int' operand to be
3279           performed incorrectly.  This fix insures that the 'int' operand is
3280           signed.
3282 2011-02-08  Gary Funck  <gary@intrepid.com>
3284         * upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
3285           upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
3286           upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
3287           upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
3288           upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
3289           upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
3290         Update copyright notices.
3292 2011-02-07  Gary Funck  <gary@intrepid.com>
3294         * c-typeck.c: (convert_for_assignment)
3295           Fix typo. in error message.
3297 2011-01-23  Gary Funck  <gary@intrepid.com>
3299         * c-typeck.c: (c_build_qualified_type)
3300           derive UPC block size by calling upc_get_block_size(),
3301           to ensure that the element type of an array of an array
3302           is derived correctly.
3304 2011-01-09  Gary Funck  <gary@intrepid.com>
3306         Fix behavior of upc_localsizeof() when called in a dynamic
3307         threads compilation environment.  This bug, and the expected
3308         behavior is documented in this bug report:
3309         https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
3310         * upc/_act.c (upc_localsizeof): Re-implement.
3312 2010-12-29  Gary Funck  <gary@intrepid.com>
3314         Merge trunk version 168314 into gupc branch.
3316 2010-12-15  Gary Funck  <gary@intrepid.com>
3318         Merge trunk version 167307 into gupc branch.
3320 2010-12-15  Gary Funck  <gary@intrepid.com>
3322         Merge trunk version 167307 into gupc branch.
3323         * upc/_act.h: (upc_handle_option) add location and struct
3324         cl_option_handlers * parameters.
3325         (upc_finish_file) Remove.
3326         (upc_write_global_declarations) New, replaces upc_finish_file.
3327         * lang-spec.h: Disable multi-file compilation for .upc files.
3328         This fixes an issue where file-scoped static variables were
3329         diagnosed as multiply-defined.  Both "C" and "ObjC" also disable
3330         multi-file compilation.
3331         * upc/upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
3332         explicitly when deciding whether a UPC shared object is addressable.
3333         is_gimple_addressable() used to do this, but now checks for MEM_REF
3334         which does not apply to UPC shared objects.
3335         (upc_gimplify_lval, upc_gimplify_expr) Delete references to
3336         ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
3337         These are no longer defined.
3338         (upc_genericize) Add call to bitmap_obstack_initialize()
3339         and bitmap_obstack_release() around call to gimplify_function_tree().
3340         * upc/upc-lang.c: Add #include of "opts.h" and "options.h".
3341         (flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
3342         flag_upc_instrument_functions) Remove.  Use definitions
3343         generated by the options file.
3344         (upc_init_options) Use cl_decoded_option struct.
3345         (LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
3346         (finish_file) Delete.
3347         (upc_init_options) Call control_warning_option() to specify
3348         -Werror=pointer-arith as the default.  Remove call to
3349         enable_warning_as_error().
3350         * upc/upc-pts-struct.c: (upc_pts_init_type) Move test that
3351         UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
3352         rather than an #ifdef; this macro now depends upon a
3353         target size macro which must be evaluated at runtime.
3354         * upc/Make-lang.in: (cc1-dummy) Remove make target.
3355         (cc1upc-checksum.c) Generate directly from object files.
3356         * upc/upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
3357         references to these deprecated macro definitions.
3358         (GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
3359         (all_exec_args) Delete variable.
3360         (exec_args) Re-define as (const char *).
3361         (exec_arg_list) New.  Make copy of exec_args to pass to 'exec'.
3362         * upc/upc-act.c: (upc_handle_option) Update argument list to accept
3363         (cl_option_handlers *) argument.
3364         (upc_finish_file) Rename to upc_write_global_declarations.
3365         (upc_write_global_declarations) New.
3367 2010-10-19  Gary Funck  <gary@intrepid.com>
3369         * c-typeck.c: Fix typo in previous fix
3370           which led to a mis-compare for equal block sizes.
3372 2010-10-18  Gary Funck  <gary@intrepid.com>
3374         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
3375           diagnosed as an error
3376           The conversion from any type (shared or not) to
3377           a shared type is likely either meaningless or an error.  This update
3378           makes any conversion to a shared type, an error.
3380 2010-10-18  Gary Funck  <gary@intrepid.com>
3382         * c-typeck.c: Fix bug: passing int to shared pointer arg.
3383           generates spurious warning
3384           Add a #define procedure that does the same thing as
3385           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
3386           this procedure to diagnose passing an integer value to a
3387           pointer-to-shared as an error.
3389 2010-10-18  Gary Funck  <gary@intrepid.com>
3391         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
3392           matching routine declaration.
3393           When checking for type compatibility, shared qualified types must
3394           have the same block factor.  This check was missing from
3395           comptypes_internal().  This update adds the check for blocking
3396           factor equality.
3398 2010-10-17  Gary Funck  <gary@intrepid.com>
3400         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
3401           found (-O1 -g)
3402           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
3404 2010-10-17  Gary Funck  <gary@intrepid.com>
3406         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
3407           45869 - [4.5/4.6 Regression] type mismatch in shift expression
3408           produces ice with -O3 and -m32.
3409           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
3411 2010-10-17  Gary Funck  <gary@intrepid.com>
3413         * c-common.c: Diagnose the application of the various "*sizeof"
3414           operations on generic pointer-to-shared as a compilation error.
3416 2010-10-17  Gary Funck  <gary@intrepid.com>
3418         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
3419           message regarding a function parameter being declared with a shared
3420           qualifier.
3421           The parameter's 'name' value is not defined at this point, and
3422           cannot be used in the error message.  This update removes the
3423           reference to 'name', and eliminates the segfault.
3425 2010-10-17  Gary Funck  <gary@intrepid.com>
3427         * upc/upc-act.c: Issue a compilation error on attempts to perform
3428           arithmetic on generic pointer-to-shared values.
3429           (The rest of this update is a small code clean up.)
3431 2010-10-17  Gary Funck  <gary@intrepid.com>
3433         * upc/upc-lang.c: For UPC only, issue errors for arithmetic and related
3434           operations on void types.
3435           This update simulates the effect of -Werror=pointer-arith, thus
3436           causing arithmetic on void types, sizeof(void) and so on to be
3437           considered compilation errors.  This meets the expectations of some
3438           harness tests and the RTED/CTED test suites.  GCC is more
3439           permissive, but since this is for UPC only, we can fairly safely
3440           define this new policy.
3442 2010-10-16  Gary Funck  <gary@intrepid.com>
3444         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
3445           The gcc/Makefile.in rules for install-plugin had to be re-written to
3446           break up a long list of header files that exceeded the command line
3447           limitation imposed by Irix.
3448           Access functions for TFmode types had to be implemented.
3449           Apparently, this is the mode used for the SGI/MIPS port to represent
3450           "long float".
3452 2010-10-16  Gary Funck  <gary@intrepid.com>
3454         * upc/upc-act.c: Fix bug: Static initialization of shared
3455           arrays is unsupported -- issue an error message.
3456           Currently, static initialization of a shared array is not
3457           implemented correctly.
3458           We do not plan to fix this for a while, therefore the compiler will
3459           issue an error message indicating that this is an unsupported
3460           operation.
3462 2010-10-14  Gary Funck  <gary@intrepid.com>
3464         * c-decl.c: Fix bug: Multiple equal blocking factors specified
3465           via typedef chain should not be diagnosed as an error.
3466           If the block size that is given by the typedef is equal to the block
3467           size given explicitly in the variable declaration, then do not
3468           complain.  The easiest way to make this check was to create a
3469           temporary type that is a clone of the element type and then set its
3470           block size using the given layout qualifier.  Then compare the block
3471           size of the temporary (the declaration) to the block size specified
3472           in the typedef.  This complexity is needed, because the '[*]' block
3473           size needs to be calculated, and the '[]' needs to be mapped into a
3474           zero block size.
3476 2010-10-13  Gary Funck  <gary@intrepid.com>
3478         * upc/upc-act.c: Fix bug: negative layout qualifiers not diagnosed
3479           as an error.
3480           The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
3481           it was not diagnosed as an error.  With this fix, negative block
3482           sizes will generate a translation error.
3484 2010-10-10  Gary Funck  <gary@intrepid.com>
3486         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
3487           specified
3488           The compiler properly detected the presence of two or more layout
3489           qualifiers as an error, but then hit an assertion check, because the
3490           code that followed the error expected to see a qualifier and not a
3491           layout specifier.  The fix is simple: just return immediately after
3492           detecting the error.
3494 2010-10-10  Gary Funck  <gary@intrepid.com>
3496         * c-decl.c: Improve error diagnostics for various cases of UPC
3497           shared array type declarations.
3498           Add the check for this error: "In the dynamic translation
3499           environment, THREADS may not appear in declarations of shared arrays
3500           with indefinite block size".  Also, fix up a few of the other
3501           related error diagnostics.
3503 2010-10-10  Gary Funck  <gary@intrepid.com>
3505         * upc/upc-act.c: Fix bug: ICE: Attempt to take the difference of
3506           shared and non-shared pointers
3507           The compiler detected the error, and then tried to return
3508           error_mark_node.  This apparently is not acceptable, as there is an
3509           explicit assertion check to prevent this from happening in
3510           build_binary_op.  Return the more user-friendly size_one_node
3511           instead.
3513 2010-10-09  Gary Funck  <gary@intrepid.com>
3515         * c-common.c: Fix bug: segfault on incomplete array definition.
3516           This turned out to be a bit complicated.   The logic in
3517           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3518           the THREADS identifier in the case where the blocking factor has
3519           been set to indefinite ([]).  This can happen when indefinite array
3520           declarations are processed for shared arrays.  At that time, the
3521           file scope has been closed and THREADS is no longer in scope.  Some
3522           more work is needed on upc_lang_layout_decl().  It has some
3523           duplication, and notably duplicates the two branches of the if
3524           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3525           caller of this routine (layout_decl()).
3526           The method of forcing a layout qualifier of [] in the indefinite
3527           declaration handler is odd a well.  The code that just does the
3528           setting of the block factor, needs to moved into its own routine
3529           that doesn't depend upon a declspec for '[]' to be passed in, just
3530           in order to set the blocking factor to some value (in this case, 0).
3531           Also, the logic for how that shared type is constructed is strange.
3532           First the type with 0 blocking factor is set.  Then the shared
3533           qualifier is removed from the type, and then added back later.  The
3534           intermediate type has a blocking factor set, but it has no shared
3535           qualifier.  Fixing this will require some thought.  It is tempting
3536           just to make indefinite shared arrays an error, rather than forcing
3537           the dimension to be '1'.
3538           This likely fixes a serious error in the previous update to
3539           upc_lang_layout_decl(), where it didn't have the logic to set
3540           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3541           the previous update would fail on many tests.
3543 2010-10-09  Gary Funck  <gary@intrepid.com>
3545         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
3546           (decl) is null, which can happen if some layout error occurred
3547           upstream.
3549 2010-10-09  Gary Funck  <gary@intrepid.com>
3551         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
3552           "variable-sized" when compiled in dynamic threads.
3553           This long-standing bug is easily fixed.  Just check
3554           for the situation that the non-constant sized type is shared and
3555           that it does not have a dimension that references a multiple of
3556           threads.  If this criteria is met, then issue a meaningful
3557           diagnostic.
3559 2010-10-09  Gary Funck  <gary@intrepid.com>
3561         * upc/upc-act.c: Fix bug: segfault on incomplete array definition.
3562           This turned out to be a bit complicated.   The logic in
3563           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
3564           the THREADS identifier in the case where the blocking factor has
3565           been set to indefinite ([]).  This can happen when indefinite array
3566           declarations are processed for shared arrays.  At that time, the
3567           file scope has been closed and THREADS is no longer in scope.  Some
3568           more work is needed on upc_lang_layout_decl().  It has some
3569           duplication, and notably duplicates the two branches of the if
3570           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
3571           caller of this routine (layout_decl()).
3572           The method of forcing a layout qualifier of [] in the indefinite
3573           declaration handler is odd a well.  The code that just does the
3574           setting of the block factor, needs to moved into its own routine
3575           that doesn't depend upon a declspec for '[]' to be passed in, just
3576           in order to set the blocking factor to some value (in this case, 0).
3577           Also, the logic for how that shared type is constructed is strange.
3578           First the type with 0 blocking factor is set.  Then the shared
3579           qualifier is removed from the type, and then added back later.  The
3580           intermediate type has a blocking factor set, but it has no shared
3581           qualifier.  Fixing this will require some thought.  It is tempting
3582           just to make indefinite shared arrays an error, rather than forcing
3583           the dimension to be '1'.
3584           This likely fixes a serious error in the previous update to
3585           upc_lang_layout_decl(), where it didn't have the logic to set
3586           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
3587           the previous update would fail on many tests.
3588           See also: gcc/c-common.c gcc/upc/upc-act.c
3590 2010-10-01  Gary Funck  <gary@intrepid.com>
3592         * configure, configure.ac: Update manual page, and bug reporting
3593           URL.
3594           Update "man" page to reflect debugging switches.  Also, some general
3595           clean up.  Change the bug reporting URL to point to gccupc.org.
3597 2010-10-01  Gary Funck  <gary@intrepid.com>
3599         * upc/upc-manpage.html, upc.1: Update manual page, and bug reporting
3600           URL.
3601           Update "man" page to reflect debugging switches.  Also, some general
3602           clean up.  Change the bug reporting URL to point to gccupc.org.
3603           See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
3604           gcc/upc/upc.1
3606 2010-10-01  Gary Funck  <gary@intrepid.com>
3608         * upc/upc-act.c: Do not zap all qualifier bits when constructing a
3609           non-shared result node.
3610           This fix was suggested by Paul H. in the following Berkeley Bugzilla
3611           report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
3612           use of "!" rather than "~" zapped all the type qualifier bits rather
3613           than just those that are related to the "shared" qualifier.  This
3614           fix clears only the relevant bits.
3616 2010-09-27  Gary Funck  <gary@intrepid.com>
3618         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
3619           the UPC forall depth count variable is not found.
3620           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
3621           The compiler will generate code that references this variable in
3622           order to implement nested upc_forall semantics.  If there is a
3623           compiler build or install problem, this variable may not be found.
3624           In this case, terminate with an internal_error().
3626 2010-09-26  Gary Funck  <gary@intrepid.com>
3628         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
3629           mis-diagnosed as syntax error.
3630           Fix a failure exhibited by the Berkeley test case,
3631           bug873a.upc, which has the code:
3632                double d;
3633                upc_forall (;;;d) {...} The compiler did not properly handle
3634           the empty "condition" clause, and did not recover well when it was
3635           determined that the use of a double value, "d" above, was neither a
3636           pointer-to-shared nor an integer expression.  The update implements a
3637           fix for both issues.
3638           See also: gcc/c-parser.c gcc/upc/upc-act.c
3640 2010-09-26  Gary Funck  <gary@intrepid.com>
3642         * upc/upc-act.c: Fix bug: upc_forall with empty clauses
3643           mis-diagnosed as syntax error.
3644           A failure was exhibited by the Berkeley test case,
3645           bug873a.upc, which has the code:
3646                double d;
3647                upc_forall (;;;d) {...} The compiler did not properly handle
3648           the empty "condition" clause, and did not recover well when it was
3649           determined that the use of a double value, "d" above, was neither a
3650           pointer-to-shared nor an integer expression.  The update implements a
3651           fix for both issues.
3652           See also: gcc/c-parser.c gcc/upc/upc-act.c
3654 2010-09-25  Gary Funck  <gary@intrepid.com>
3656         * upc/upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
3657           gimple check when calculating affinity for upc_forall.
3658           Intrepid test, test10.upc, failed to compile due a mis-match between
3659           the COMPONENT_REF node and the internal 'thread' field.  Changed the
3660           code to make the types agree, and added a conversion to sizetype if
3661           necessary.
3663 2010-09-23  Gary Funck  <gary@intrepid.com>
3665         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
3666           incorporated into the referencing type.
3667           This was semi-fixed a few times before.  This update fixes a few
3668           more places where the layout qualifier wasn't being propagated
3669           through typedef's properly.  What made this a bit tricky is shown in
3670           the example cited in the bug report:
3671           typedef shared [5] int A_t; A_t A[5*THREADS];
3672           In the typedef, the blocksize is being applied to a shared *scalar*,
3673           and the code was applying the blocksize only to arrays.  This update
3674           handles shared scalars correctly.
3676 2010-09-23  Gary Funck  <gary@intrepid.com>
3678         * upc/upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
3679           with static threads and size not a multiple of threads.
3680           Add an extra check for an attempt to apply a '[*]' layout qualifier
3681           to a shared array that does not specify a size that is a multiple of
3682           THREADS, when compiled in a static THREADS compilation environment.
3684 2010-09-22  Gary Funck  <gary@intrepid.com>
3686         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
3687           upc_forall() semantics are not implemented
3688           The checkforall test in the Berkeley harness test suite indicated
3689           that GCC/UPC was not properly implementing nested upc_forall
3690           semantics.  Nested upc_forall statements (both statically or
3691           dynamically nested) must implement their affinity clause as if it
3692           were "continue"; thus all steps in the loop must execute without
3693           regard for affinity.  To implement these semantics a global depth
3694           counter, __upc_forall_depth, is maintained by the generated code
3695           that implements upc_forall.
3696           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3697           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3698           libupc/include/upc.h libupc/smp/upc_main.c
3700 2010-09-22  Gary Funck  <gary@intrepid.com>
3702         * upc/upc-act.c, upc/upc-act.h: Fix bug: Nested upc_forall() semantics
3703           are not implemented
3704           The checkforall test in the Berkeley harness test suite indicated
3705           that GCC/UPC was not properly implementing nested upc_forall
3706           semantics.  Nested upc_forall statements (both statically or
3707           dynamically nested) must implement their affinity clause as if it
3708           were "continue"; thus all steps in the loop must execute without
3709           regard for affinity.  To implement these semantics a global depth
3710           counter, __upc_forall_depth, is maintained by the generated code
3711           that implements upc_forall.
3712           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
3713           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
3714           libupc/include/upc.h libupc/smp/upc_main.c
3716 2010-09-19  Gary Funck  <gary@intrepid.com>
3718         * c-decl.c: c-decl.c: zero out the layout specifier, after
3719           processing an array type.
3720           Fix the previous fix, that moved the setting of the type's layout
3721           qualifier to the outside of the array type processing loop.  What is
3722           missing from the fix is that the layout_qualifier variable needs to
3723           be cleared after setting the type's blocksize.
3725 2010-09-19  Gary Funck  <gary@intrepid.com>
3727         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
3728           given blocksize is greater than UPC_MAX_BLOCKSIZE.
3729           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
3730           the actual maximum block size.  Therefore, the message was correct,
3731           but the underlying value that was being checked was wrong.  Change
3732           the values so that they agree with the actual implementation-defined
3733           limit.
3735 2010-09-18  Gary Funck  <gary@intrepid.com>
3737         * upc/upc-act.c, upc/upc-pts-packed.c, upc/upc-pts-struct.c:
3738           Implement -fupc-debug switch.
3740 2010-09-11  Gary Funck  <gary@intrepid.com>
3742         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
3743           multi-dimensional shared array with dynamic threads.
3744           This declaration caused an internal compiler error when compiled
3745           with dynamic threads:
3746               shared [*] int A[THREADS][16]; The bug was discovered when
3747           compiling the RTED_UPC test suite.
3748           The fix is to process layout qualifiers after the entire array type
3749           has been built.  Otherwise, we try to calculate the blocksize on a
3750           shared array type that has not had its "size depends upon the value
3751           of THREADS" flag set.
3752           Also, added a test case.
3753           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
3755 2010-07-11  Gary Funck  <gary@intrepid.com>
3757         Fix a bug where a statement in c_build_qualified_type()
3758         in the trunk had been inadvertently deleted.
3759         This bug showed up in the IA64 port, because jmpbuf's
3760         on that architecture must be 16 byte aligned, and they were not.
3761         c-typeck.c (c_build_qualified_type): Revive the deleted line.
3763 2010-07-08  Gary Funck  <gary@intrepid.com>
3765         Make changes so that other language compilers
3766         will build and bootstrap.
3767         * c-family/c-common.c (compiling_upc, flag_upc,
3768         flag_upc_instrument, flag_upc_instrument_functions,
3769         use_upc_dwarf2_extensions): Move to stub-upc.c and
3770         upc-lang.c.
3771         * c-family/c-common.h (use_upc_dwarf2_extensions,
3772         compiling_upc): Add extern definitions - needed
3773         to compile/build other language front ends.
3774         * c-family/c.opt: Fix the spelling of ObjC.
3775         It had been incorrectly spelled as Objc.
3776         * c-family/c.opt: Add UPC for the various switches
3777         that are valid for both C and ObjC.
3778         * c-fmaily/c-opts.c: Add CL_UPC to the list of
3779         supported options switches when compiling assembly
3780         language.
3781         * lto/lto-lang.c (use_upc_dwarf2_extensions,
3782         flag_upc_instrument, flag_upc_instrument_functions):
3783         Remove these definitions.  They have been moved
3784         to c-family/stub-upc.c.
3785         * upc/ChangeLog: Move relevant entries
3786         to ChangeLog.upc.
3787         * c-family/stub-upc.c (compiling_upc, flag_upc,
3788         flag_upc_instrument, flag_upc_instrument_functions,
3789         use_upc_dwarf2_extensions): Moved from c-common.c
3790         * upc/upc-lang.c (compiling_upc, flag_upc,
3791         flag_upc_instrument, flag_upc_instrument_functions,
3792         use_upc_dwarf2_extensions): Moved from c-common.c
3793         * objc/objc-act.c (objc_gimplify_expr): Add additional
3794         parameters to c_gimplify_expr() call, that are used
3795         by upc's tree rewrites.
3796         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
3797         * gcc/cp/lex.c (init_reswords): If not compiling
3798         UPC, then mask off the UPC keywords.
3799         * cp/Make-lang.in (C_STUB_OBJS): Use this
3800         make macro to link with c-family/stub-objc.o
3801         and c-family/stub-upc.o.
3802         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
3803         * java/Make-lang.in (C_STUB_OBJS): Likewise.
3804         * objc/Make-lang.in: Link with c-family/stub-upc.o
3805         to avoid undefined references.
3806         c-parser.c: Fix line indentation.
3807         * libcpp/include/cpplib.h: Remove CL_UPC from
3808         the list of language kinds accepted by the
3809         C preprocessor.  This is not necessary because
3810         UPC is a derivative of C99, and does not need
3811         a different language kind.
3812         * c-fmaily/c-opts.c (c_common_handle_option):
3813         Call set_std_c99() when processing the
3814         "--lang upc" switch, instead of setting the
3815         language kind to CL_UPC.
3816         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
3818 2010-07-03  Gary Funck  <gary@intrepid.com>
3820         Merge trunk version 161517 into gupc branch.
3821         * gcc/stub-upc.c: Move to gcc/c-family/.
3822         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
3823         Add 'unused' attributes to avoid "set, but
3824         not referenced" warnings.
3825         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
3826         Likewise.
3828 2010-07-03  Gary Funck  <gary@intrepid.com>
3830         Merge trunk version 161517 into gupc branch.
3831         * upc/config-lang.in: Update references to files
3832           moved into c-family/.
3833         * upc/Make-lang.in: Likewise.
3834         * upc/upc-act.c: Likewise.
3835         * upc/upc-gasp.c: Likewise.
3836         * upc/upc-gimplify.c: Likewise.
3837         * upc/upc-lang.c: Likewise.
3838         * upc/upc-pts-packed.c: Likewise.
3839         * upc/upc-pts-struct.c: Likewise.
3840         * upc/upc-act.c: (upc_handle_option) add parameters to
3841           effect pass through call to c_common_handle_option.
3842         * upc/upc-act.h: (upc_handle_option) Likewise.
3843         * upc/upc-act.c: (map_unshared_var) used typed ggc allocation.
3844         * upc/upc-act.c: (upc_build_init_func) add call to
3845           to mark_decl_referenced(), to ensure that UPC shared
3846           variable initializer function is not removed from
3847           the call tree graph.
3849 2010-03-01 Gary Funck  <gary@intrepid.com>
3851         Create gupc branch from trunk version 157149.