Use tab instead of leading white space in ChangeLog.upc
[official-gcc.git] / gcc / ChangeLog.upc
blob52e1311de4a43adcd5574cf3acf673d86c476b44
1 2013-04-04 Gary Funck  <gary@intrepid.com>
3         Per the UPC 1.3 specification, the type of the
4         optional barrier/notify/wait expression is not constrained to
5         'int'. Instead, any type that is assignment compatible
6         with an 'int' type is permitted.
7         * c/c-parser.c (c_parser_upc_sync_statement): Do not check
8         the optional expression type here.  Let upc_build_sync_stmt()
9         handle it.
10         * c/c-tree.h (c_cvt_expr_for_assign): Declare prototype.
11         * c/c-typeck.c (c_cvt_expr_for_assign): New.  Also, call
12         error_at() in lieu of error() when the source location is known.
13         * upc/upc-act.c (upc_build_sync_stmt): Call c_cvt_expr_for_assign()
14         to check/convert the optional synchronization statement
15         expression.
17 2013-04-02 Gary Funck  <gary@intrepid.com>
19         Merge trunk version 197340 into gupc branch.
21 2013-04-02 Gary Funck  <gary@intrepid.com>
23         Revert revision 178346 (2011-08-30)
24         which changed the prototype of check_qualified_type and related
25         functions so that their parameters were just 'tree' and not
26         'const_tree'.  This seemed necessary at the time because of a
27         change to TYPE_BLOCK_FACTOR(), which in turn called function
28         that hashed the type node pointer.  The hash functions did
29         not accept "const void *" pointers.  Implement a work around
30         that removes this restriction.
31         * c/c-typeck.c: Revert.
32         * tree.c: Revert.
33         * tree.h: Revert.  Change prototype of upc_block_factor_lookup()
34         to accept a 'const_tree' pointer to a type node.
35         * c-family/stub-upc.c (upc_block_factor_lookup): Update prototype.
36         * upc/upc-act.c (upc_block_factor_lookup): Accept const_tree
37         input argument and convert this to 'tree' for use with hash function.
39 2013-03-25 Gary Funck  <gary@intrepid.com>
41         Merge trunk version 197029 into gupc branch.
43 2013-03-21 Gary Funck  <gary@intrepid.com>
45         Released GUPC 4.8.0.3 based on version 196601.
46         This release version was committed on 2013-03-11.
47         * DATESTAMP: Bump date stamp.
49 2013-03-18 Gary Funck  <gary@intrepid.com>
51         Merge trunk version 196771 into gupc branch.
52         * DEV-PHASE: Bump release identifier to 4.9.0-1.
54 2013-03-11 Gary Funck  <gary@intrepid.com>
56         Merge trunk version 196592 into gupc branch.
58 2013-03-04 Gary Funck  <gary@intrepid.com>
60         Merge trunk version 196422 into gupc branch.
62 2013-02-25 Gary Funck  <gary@intrepid.com>
64         Merge trunk version 196253 into gupc branch.
66 2013-02-18 Gary Funck  <gary@intrepid.com>
68         Merge trunk version 196115 into gupc branch.
70 2013-02-11 Gary Funck  <gary@intrepid.com>
72         Merge trunk version 195937 into gupc branch.
74 2013-02-04 Gary Funck  <gary@intrepid.com>
76         Merge trunk version 195707 into gupc branch.
78 2013-01-28 Gary Funck  <gary@intrepid.com>
80         Merge trunk version 195502 into gupc branch.
82 2013-01-21 Gary Funck  <gary@intrepid.com>
84         Merge trunk version 195330 into gupc branch.
86 2013-01-14 Gary Funck  <gary@intrepid.com>
88         Merge trunk version 195164 into gupc branch.
90 2013-01-07 Gary Funck  <gary@intrepid.com>
92         Merge trunk version 194962 into gupc branch.
94 2012-12-24 Gary Funck  <gary@intrepid.com>
96         Merge trunk version 194709 into gupc branch.
98 2012-12-17 Gary Funck  <gary@intrepid.com>
100         Merge trunk version 194552 into gupc branch.
102 2012-12-10 Gary Funck  <gary@intrepid.com>
104         Merge trunk version 194351 into gupc branch.
106 2012-12-03 Gary Funck  <gary@intrepid.com>
108         Merge trunk version 194076 into gupc branch.
110 2012-11-30  Gary Funck  <gary@intrepid.com>
112         Released GUPC 4.8.0.2 based on version 193446.
113         Date of release: 2012-11-12.
114         * DEV-PHASE: Bump release identifier to 4.8.0-3.
115         * DATESTAMP: Bump date stamp.
117 2012-11-26 Gary Funck  <gary@intrepid.com>
119         Merge trunk version 193807 into gupc branch.
121 2012-11-20 Gary Funck  <gary@intrepid.com>
123         Merge trunk version 193672 into gupc branch.
125 2012-11-19 Gary Funck  <gary@intrepid.com>
127         Merge trunk version 193617 into gupc branch.
129 2012-11-15 Gary Funck  <gary@intrepid.com>
131         Merge trunk version 193426 into gupc branch.
133 2012-11-12  Gary Funck  <gary@intrepid.com>
135         Released GUPC 4.8.0.1 based on version 192948.
136         Date of release: 2012-10-29.
137         * DEV-PHASE: Bump release identifier to 4.8.0-2.
138         * DATESTAMP: Bump date stamp.
140 2012-11-05 Gary Funck  <gary@intrepid.com>
142         Merge trunk version 193152 into gupc branch.
144 2012-10-29 Gary Funck  <gary@intrepid.com>
146         Merge trunk version 192909 into gupc branch.
148 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
150         Remove unused --upc-pthreads-per-process compile switch.
151         * c-family/c.opt: Remove --upc-pthreads-per-process switch
152         that compiler/runtime do not use.
153         * c-family/c-opts.c (c_common_handle_option): Remove support for
154         --upc-pthreads-per-process switch.
155         * c-family/c-common.c: Ditto.
156         * c-family/c-common.h: Ditto.
158 2012-10-27 Gary Funck  <gary@intrepid.com>
160         * defaults.h: fix typos and formatting in UPC-related entries.
162 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
164         Place shared initialization code into the .text
165         section instead of a separate .upc_init section.
166         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
167         (UPC_INIT_BEGIN_NAME): Delete.
168         (UPC_INIT_END_NAME): Delete.
169         * doc/tm.texi.in: Ditto.
170         * doc/tm.texi: Ditto.
172 2012-10-22 Gary Funck  <gary@intrepid.com>
174         Merge trunk version 192673 into gupc branch.
176 2012-10-15 Gary Funck  <gary@intrepid.com>
178         Merge trunk version 192449 into gupc branch.
180 2012-10-08 Gary Funck  <gary@intrepid.com>
182         Merge trunk version 192198 into gupc branch.
184 2012-10-01 Gary Funck  <gary@intrepid.com>
186         Merge trunk version 191931 into gupc branch.
188 2012-09-26  Gary Funck  <gary@intrepid.com>
190         Implement support for various UPC version 1.3 specification
191         additions and changes. Deprecate support for upc_local_alloc.
192         Add support for upc_tick (wall-clock timer) library.
193         Add support for collective de-allocation functions:
194         upc_all_free and upc_all_lock_free.
195         Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
196         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
198 2012-09-24 Gary Funck  <gary@intrepid.com>
200         Merge trunk version 191658 into gupc branch.
202 2012-09-17  Gary Funck  <gary@intrepid.com>
204         Merge trunk version 191376 into gupc branch.
206 2012-09-10  Gary Funck  <gary@intrepid.com>
208         Merge trunk version 191141 into gupc branch.
210 2012-08-27  Gary Funck  <gary@intrepid.com>
212         Merge trunk version 190707 into gupc branch.
213         * tree.h (struct tree_base): Adjust various
214         UPC tree and type flags to refer to the
215         newly introduced u.bits field.
217 2012-08-20  Gary Funck  <gary@intrepid.com>
219         Merge trunk version 190524 into gupc branch.
220         Incorporates a fix in genoutput.c (to properly use
221         CONST_CAST) that led to build failures with
222         older versions of g++.
224 2012-08-16  Gary Funck  <gary@intrepid.com>
226         Merge trunk version 190437 into gupc branch.
227         Incorporates a fix for a build failure on the PPC
228         due to passing incorrect switches to the assembler.
229         Also, first merged trunk revision that compiles GCC
230         with the C++ compiler in the first stage.
232 2012-08-13  Gary Funck  <gary@intrepid.com>
234         Merge trunk version 190336 into gupc branch.
236 2012-08-09  Gary Funck  <gary@intrepid.com>
238         * c-family/c-common.c (c_fully_fold_internal): Do not fold
239         offsetof-like expressions when they are applied to UPC
240         shared types.
242 2012-08-06  Gary Funck  <gary@intrepid.com>
244         Merge trunk version 190173 into gupc branch.
246 2012-08-01  Gary Funck  <gary@intrepid.com>
248         Merge trunk version 190063 into gupc branch.
249         Incorporates fix for build failure on IA64.
251 2012-07-30  Gary Funck  <gary@intrepid.com>
253         Merge trunk version 189954 into gupc branch.
255 2012-07-27  Gary Funck  <gary@intrepid.com>
257         Merge trunk version 189856 into gupc branch.
258         Incorporates fix for bootstrap with a sub-set of language
259         specific source directories present.
260         * optabs.c: Revert to trunk.  Rather than defining opcodes
261         as a way of defining get/put runtime library function names,
262         generate them directly in gcc/upc/upc-genericize.c.
263         * optabs.h: Ditto.
264         * genopinit.c: Ditto.
266 2012-07-23  Gary Funck  <gary@intrepid.com>
268         Merge trunk version 189777 into gupc branch.
270 2012-07-16  Gary Funck  <gary@intrepid.com>
272         Merge trunk version 189545 into gupc branch.
274 2012-07-12  Gary Funck  <gary@intrepid.com>
276         Merge trunk version 189366 into gupc branch.
278 2012-07-05  Gary Funck  <gary@intrepid.com>
280         Merge trunk version 189274 into gupc branch.
281         Incorporates graphite build infrastructure changes.
283 2012-07-04  Gary Funck  <gary@intrepid.com>
285         Merge trunk version 189080 into gupc branch.
286         * Makefile.in: Adjust for move of C front-end files.
287         * c/Make-lang.in: Ditto.
289 2012-07-03  Gary Funck  <gary@intrepid.com>
291         Merge trunk version 189078 into gupc branch.
293 2012-06-25  Gary Funck  <gary@intrepid.com>
295         Merge trunk version 188931 into gupc branch.
297 2012-06-18  Gary Funck  <gary@intrepid.com>
299         Merge trunk version 188721 into gupc branch.
301 2012-06-11  Gary Funck  <gary@intrepid.com>
303         Merge trunk version 188380 into gupc branch.
305 2012-06-04  Gary Funck  <gary@intrepid.com>
307         Merge trunk version 188168 into gupc branch.
309 2012-05-29  Gary Funck  <gary@intrepid.com>
311         Merge trunk version 187927 into gupc branch.
313 2012-05-18  Gary Funck  <gary@intrepid.com>
315         Merge trunk version 187666 into gupc branch.
316         Incorporates fix for ICE in tree vectorization pass
317         when processing strided loads.
319 2012-05-17  Gary Funck  <gary@intrepid.com>
321         Merge trunk version 187578 into gupc branch.
323 2012-05-09  Gary Funck  <gary@intrepid.com>
325         Merge trunk version 187347 into gupc branch.
326         Incorporates fix for segfault in tree vectorization pass.
328 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
330         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
331         Appropriate libraries and include files are added on the
332         command line to make it possible to compile with the driver
333         from the build tree.
335 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
337         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
338         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
339         a function returns a pointer-to-shared in memory instead
340         of in registers.
341         (rs6000_pass_by_reference): Ditto.
343 2012-04-28  Gary Funck  <gary@intrepid.com>
345         * c-decl.c (grokdeclarator): Set 'type' to error node
346         after detecting "shared auto variable" error to avoid
347         downstream complications.
348         * upc-act.c: Fix a couple of spelling errors in comments.
350 2012-04-26  Gary Funck  <gary@intrepid.com>
352         * c-family/c-pragma.c (handle_pragma_upc):
353         Fix typo in warning message.
355 2012-04-17  Gary Funck  <gary@intrepid.com>
357         Merge trunk version 186486 into gupc branch.
359 2012-04-17  Gary Funck  <gary@intrepid.com>
361         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
362         value of the pupc mode.  Fixes a compile-time warning.
363         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
364         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
365         Improve source formatting.
367 2012-04-09  Gary Funck  <gary@intrepid.com>
369         Merge trunk version 186243 into gupc branch.
370         Incorporates a powerpc 'ffi' fix.
372 2012-03-16  Gary Funck  <gary@intrepid.com>
374         Merge trunk version 185454 into gupc branch.
375         Incorporates a libgcc fix for builds on Darwin.
377 2012-03-13  Gary Funck  <gary@intrepid.com>
379         Merge trunk version 185278 into gupc branch.
380         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
381         call build_pointer_type() to apply UPC-specific qualifiers.
382         * top-level/configure.ac: factor the checking for posix hostst
383         out of the libgomp section so that it can also be used by libgupc.
384         * top-level/configure: Re-generate.
385         * DEV-PHASE: bump to 4.8.0-1.
387 2012-03-12  Gary Funck  <gary@intrepid.com>
389         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
390         the mode for a pointer for upc-pointer-to-shared types.
392 2012-03-04  Gary Funck  <gary@intrepid.com>
394         Merge trunk version 184900 into gupc branch.
396 2012-02-17  Gary Funck  <gary@intrepid.com>
398         Released GUPC 4.7.0.2 based on version 183992.
399         * DEV-PHASE: Bump release identifier to 4.7.0-3.
400         * DATESTAMP: Bump date stamp.
402 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
404         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
405         code generation (same as #pragma pupc off).
406         (set_pupc_mode): New. Set/restore profiling mode.
407         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
408         (set_pupc_mode): New. Prototype.
409         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
410         profiling code for shared variables initialization routines.
412 2012-01-31  Gary Funck  <gary@intrepid.com>
414         Merge trunk version 183751 into gupc branch.
415         Incorporates fix for bootstrap failure on openSUSE 12.1.
417 2012-01-10  Gary Funck  <gary@intrepid.com>
419         Merge trunk version 183072 into gupc branch.
420         Incorporates libcpp __BASE_FILE__ fix.
422 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
424         * top-level/Makefile.def (flags_to_pass): Added GUPC
425         defines. Fixes the make error when upc is not specified as one
426         of the languages to build.
427         * top-level/Makefile.in: Re-generate.
429 2011-11-22  Gary Funck  <gary@intrepid.com>
431         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
432         * dwarf2out.c (gen_compile_unit_die): Check for
433         the "GNU UPC" language string in lieu of "GCC UPC".
434         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
436 2011-11-18  Gary Funck  <gary@intrepid.com>
438         Merge trunk version 181552 into gupc branch.
439         Incorporates libgcc/libunwind fix for IA64.
441 2011-11-19  Gary Funck  <gary@intrepid.com>
443         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
444         Add check for UPC when defining the language type value
445         in a traceback entry.
447 2011-11-18  Gary Funck  <gary@intrepid.com>
449         Merge trunk version 181493 into gupc branch.
450         Incorporates final fix for PR target/49992.
452 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
454         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
455         change that converted relative include paths into absolute
456         ones, as it does not work with older version of make (3.80).
458 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
460         Apply patch for Darwin build - PR49992.
461         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
462         * gcc/configure.ac: Ditto.
463         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
464         * gcc/ada/gcc-interface/Makefile.in: Ditto.
465         * top-level/configure: Re-generate.
466         * gcc/configure: Re-genrate.
468 2011-10-26  Gary Funck  <gary@intrepid.com>
470         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
471         "libupc" to "libgupc".
472         * top-level/configure.ac: Implement support for cross-builds, and
473           adjust for rename of libupc to libgupc.
474         * top-level/Makefile.tpl: Ditto.
475         * top-level/Makefile.def: Ditto.
476         * top-level/configure: Re-generate.
477         * top-level/Makefile.in: Re-generate.
478         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
479         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
480         * doc/tm.texi: Re-generate.
481         * tree-pretty-print.c (dump_block_node): Delete unused variable.
482         * gcc.c: Adjust for rename of libupc to libgupc.
483         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
484         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
485         Change "xupc" to "xgupc".
486         * configure.ac: Change "GCC UPC" to "GNU UPC".
487         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
488         so that they are absolute paths.  This is needed because
489         the upc-crtstuff builds are in the libgupc library build
490         directories which are not at the same level as libgcc.
491         * config/darwin.h: Adjust for rename of libupc to libgupc.
493 2011-10-20  Gary Funck  <gary@intrepid.com>
495         Merge trunk version 180276 into gupc branch.
496         Incorporates fix for PR bootstrap/50709.
498 2011-10-20  Gary Funck  <gary@intrepid.com>
500         Merge trunk version 180246 into gupc branch.
502 2011-10-19  Gary Funck  <gary@intrepid.com>
504         Merge trunk version 180233 into gupc branch.
505         Incorporates fix for PR debug/49310 (var tracking).
507 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
509         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
510         only four (O0 static/dynamic, O3 static/dynamic).
511         Detect -fupc-threads-0 as an option for dynamic threads
512         compile environment.
514 2011-10-10  Gary Funck  <gary@intrepid.com>
516         * tree.c (check_qualified_type, check_aligned_type):
517         Call tree_int_cst_equal() to compare UPC blocking factors
518         if the corresponding tree pointers are not equal.
519         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
521 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
523         Add configuration checks for struct/packed builds so we can
524         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
525         * testsuite/lib/target-supports.exp
526         (check_effective_target_upc_struct_pts): New.
527         (check_effective_target_upc_packed_pts): New.
529 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
531         Add to FLAGS the flags needed to disable inlining of
532         UPC run-time access routines.
533         * testsuite/lib/target-supports.exp
534         (add_options_for_upc_library_calls): New.
536 2011-09-15  Gary Funck  <gary@intrepid.com>
538         Fix ICE involving shared bit field accesses.
539         * tree.c (build3_stat): Propagate TEEE_SHARED()
540         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
542 2011-09-13  Gary Funck  <gary@intrepid.com>
544         Merge trunk version 178795 into gupc branch.
545         Incorporates fix to PR bootstrap/50010 for x86-32.
547 2011-09-08  Gary Funck  <gary@intrepid.com>
549         Merge trunk version 178557 into gupc branch.
551 2011-09-07  Gary Funck  <gary@intrepid.com>
553         Ensure that UPC pointer-to-shared type alignment is
554         propagated to the final type.  Revert to long-standing
555         alignment policy: twice the size of a "C" pointer.
556         * tree.c (build_pointer_type): Propagate the alignment
557         of the UPC pointer-to-shared representation type
558         into the newly built pointer type.
560 2011-08-30  Gary Funck  <gary@intrepid.com>
562         * tree.h (check_qualified_type): Change 'const_tree'
563         argument types back to 'tree' to avoid complaints
564         of assignment drops qualifiers for invocations of the
565         newly implemented TYPE_BLOCK_FACTOR() macro, which
566         invokes hash functions with 'tree' pointer values that
567         are not const qualified.
568         * tree.c (check_qualified_type, check_aligned_type): Ditto.
569         * c-typeck.c (comptypes_internal): Ditto.
571 2011-08-29  Gary Funck  <gary@intrepid.com>
573         Fixes for regressions noted running "make check"
574         versus GCC trunk.
575         * fold-const.c (fold_unary_loc): Execute UPC-specific
576         checks for a cast-of-a-cast, only if one of the
577         operands is a UPC pointer-to-shared value.
578         * opts.c (print_specific_help):  Fix a comparison
579         in an assert that checks that there are enough
580         bits reserved for the number of languages defined
581         in the .opt files.
583 2011-08-29  Gary Funck  <gary@intrepid.com>
585         Implement a hash table to record UPC block factors.
586         * c-family/stub-upc.c (upc_block_factor_insert,
587         upc_block_factor_lookup): New dummy stub procedures.
588         * c-family/c-common.c (c_sizeof_or_alignof_type):
589         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
590         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
591         to copy (hashed) UPC blocking factor.
592         (set_type_quals): Likewise.
593         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
594         TYPE_HAS_THREADS_FACTOR().
595         (type_common.block_factor): Delete.
596         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
597         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
598         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
599         UPC blocking factors greater than one.
600         * dwarf2out.c (modified_type_die): Re-implement
601         logic that records UPC blocking factor in the generated
602         DWARF2 debugging information.
603         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
604         TYPE_HAS_THREADS_FACTOR().
605         * c-decl.c (finish_decl, grokdeclarator):
606         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
607         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
608         used by UPC, and print UPC-specific information.
610 2011-08-28  Gary Funck  <gary@intrepid.com>
612         Re-work the type machinery to fully support and to unify support
613         for the UPC layout qualifier (blocking factor).
614         * c-family/stub-upc.c (upc_set_block_factor): Delete.
615           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
616           and update prototype.
617         * c-family/c-common.c (complete_array_type): call newly
618           defined c_build_qualified_type_1() instead of
619           upc_set_block_factor().
620         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
621           upc_apply_layout_qualifier() and update prototype.
622           (upc_set_block_factor): Delete prototype.
623         * c-family/c-common.h (c_build_qualified_type): redefine
624           as a pre-processor macro that invokes c_build_qualified_type_1()
625           with a null UPC layout qualifier.
626           (c_build_qualified_type_1): New.  Add layout qualifier argument
627           to old c_build_qualified_type() prototype.
628         * tree.c (set_type_quals, check_qualified_type):
629           Add layout qualifier as argument.
630           (check_aligned_type): Add check for UPC block factor equality.
631           (get_qualified_type_1): Rename from get_qualified_type() and
632           add layout qualifier as argument.
633           (build_qualified_type_1): Rename from build_qualified_type() and
634           add layout qualifier as argument.
635         * tree.h (check_qualified_type): Add layout qualifier as argument
636           to the prototype.
637           (get_qualified_type): Re-define as a as a pre-processor macro
638           that invokes get_qualified_type_1() with a null
639           UPC layout qualifier.
640           (get_qualified_type_1): Rename from get_qualified_type() and
641           add layout qualifier as argument.
642         * cp/tree.c (c_build_qualified_type_1): Rename from
643           c_build_qualified_type() and add (unused) layout qualifier
644           argument.
645         * c-decl.c (finish_decl): re-format long error messages.
646           (grokdeclarator): Re-work the logic so that it calls
647           upc_grok_layout_qualifier() to handle the UPC layout
648           qualifier, if present.
649         * c-typeck.c (qualify_type, common_pointer_type,
650           build_component_ref): Re-work the logic so that it calls
651           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
652           if present.
653           (c_build_qualified_type_1): Rename from c_build_qualified_type()
654           and add layout qualifier argument.
655         * print_tree.c (print_node): Re-format a long line.
657 2011-08-26  Gary Funck  <gary@intrepid.com>
659         Merge trunk version 177949 into gupc branch.
660         * c-family/c-common.h (enum rid): Bump the number of type modifiers
661           in the comment.
662         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
663           to add new rliterals column value.
665 2011-08-26  Gary Funck  <gary@intrepid.com>
667         * convert.c (convert_to_integer): Fix the check for the
668           difference between two UPC pointers-to-shared values.
670 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
672         * configure.ac: Fix the name for --with-upc-pts-packed-bits
673           option. Support --with-upc-packed-bits as deprecated. Fix the code to
674           correctly check packed bits.
675         * configure: Re-generate.
677 2011-08-16  Gary Funck  <gary@intrepid.com>
679         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
680           the barrier id expression is not an integer expression.
682 2011-08-12  Gary Funck  <gary@intrepid.com>
684         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
685           (revert to trunk).
686         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
687           Set mode of UPC pointer-to-shared rep. to an
688           integral mode of size at least as large as the
689           size of the representation's struct type.
691 2011-08-12  Gary Funck  <gary@intrepid.com>
693         Rework/simplify the UPC genericize pass.
694         * c-family/stub-upc.c (upc_apply_layout_qualifier,
695           upc_build_pointer_type): New.
696           (upc_set_block_factor): Adjust to new calling sequence.
697           (upc_build_shared_var_addr): Delete.
698         * c-family/c-common.c (complete_array_type): Adjust call
699           to upc_set_block_factor().
700         * c-family/c-upc.h (upc_apply_layout_qualifier,
701           upc_build_pointer_type): New.
702           (upc_build_shared_var_addr): Delete.
703           (upc_set_block_factor): Adjust to new calling sequence.
704         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
705         * c-decl.c (grokdeclarator): Call newly defined
706           upc_apply_layout_qualifier() instead of upc_set_block_factor().
707         * c-decl.c (grokdeclarator): Split long UPC-related error
708           messages into two lines.
709         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
710           directly.  Revert that change to trunk. (upc_genericize() will
711           handle lowering the expressions that take the address of a
712           UPC variable).
713         * config/i386/i386.c (ix86_promote_function_mode): For UPC
714           pointers-to-shared, return the type mode of the UPC pointer-to-shared
715           representation type.
717 2011-08-10  Gary Funck  <gary@intrepid.com>
719         Implement additional fixes for recent merge with trunk.
720         * explow.c (promote_mode): Do not attempt to promote
721           the mode for UPC pointer-to-shared types.
722         * config/i386/i386.c (function_value_64): Ditto.
724 2011-08-07  Gary Funck  <gary@intrepid.com>
726         Merge trunk version 177548 into gupc branch.
727         * config/i386/i386.c (ix86_promote_function_mode):
728           Do not promote UPC pointers-to-shared to Pmode.
729         * c-family/c-ommon.c (pointer_int_sum):
730           Also check the pointer operand, rather than just
731           its type, when making the decision to derive
732           the equivalent unshared type.
733         * tree.c (build2_stat): If the type of the result
734           passed in as an argument is a UPC shared type,
735           derive the unshared equivalent when calculating
736           the result type of the node.
738 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
740         * config/darwin.c: Disable var_tracking option
741           on -O0 as it is supposed to run only when optimization
742           is applied. See GCC bug 49743.
744 2011-07-06  Gary Funck  <gary@intrepid.com>
746         Re-implement the pass that lowers trees generated by
747         the UPC front-end into GENERIC.  Previously this was
748         done within the gimplification framework, but this
749         required that gimplification be run before inlining
750         and various other passes, which did not fit in well
751         with the current design of the middle-end passes.
752         Now, the lowering is done by a newly defined language
753         specific genericize hook.  With this change, we are
754         are able to undo some extensions made to the gimplify
755         logic, and thus can revert several files to trunk.
757         * c-decl.c: Add a check for UPC deprecated names which
758           may appear as undefined function names.
759         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
760           LTI_upc_getaddr): Remove definitions of unused UPC
761           library function names.  These were defined back when
762           the libfunc interface was used to call these routines.
763         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
764           in UPC lowering (genericize) pass.
765         * langhooks.h (gimplify_expr): Revert to trunk's definition.
766           (instrument_func): Delete this hook.  Now handled in
767           upc_genericize().
768         * tree-pass.h: Revert to trunk.
769         * c-typeck.c (build_unary_op): Adjust reference to
770           upc_genericize() in a comment.
771         * gimplify.c (create_tmp_var_raw): Delete logic that
772           was converting UPC shared types into unshared types
773           to be used for temporaries.  Now handled in  upc_genericize().
774           Replace with an assertion check.
775           (prepare_gimple_addressable): Revert to trunk's definition.
776           No longer needed as an externally called function.
777           (flag_instrument_functions_exclude_p): Re-define as
778           an externally called function.
779           (gimplify_function_tree): Delete code that implemented
780           call to UPC's language specific function instrumentation hook.
781         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
782           (prepare_gimple_addressable): Delete extern definition;
783           revert to trunk's definition.
784         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
785           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
786         * c-family/c-gimplify.c: Revert to trunk.
787         * cp/cp-gimplify.c: Revert to trunk.
788         * cp/cp-tree.h: Revert to trunk.
789         * explow.c: Revert to trunk.
790         * langhooks.c: Revert to trunk.
791         * libfuncs.h: Revert to trunk.
792         * objc/objc-act.c: Revert to trunk.
794 2011-06-30  Gary Funck  <gary@intrepid.com>
796         * c-family/c.opt: Bring options definitions up-to-date
797         with respect to changes made in the trunk.
799 2011-06-29  Gary Funck  <gary@intrepid.com>
801         Merge trunk version 175584 into gupc branch.
803 2011-06-13  Gary Funck  <gary@intrepid.com>
805 libcpp/
806         * include/cpplib.h (enum c_lang):
807         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
808         This keeps all the "C" variants together.
809         * init.c (lang_defaults): Add an entry for UPC.
811 2011-06-09  Gary Funck  <gary@intrepid.com>
813         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
814         a 32-bit target, the size expression overflowed, the result was
815         error_mark_node, and an ICE was triggered on an attempt to evaluate
816         C_TYPE_VARIABLE_SIZE() on the error node.
817         (upc_blocksizeof_expr, upc_blocksizeof_type,
818         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
819         Make similar changes to avoid further processing of error_mark_node.
821 2011-06-07  Gary Funck  <gary@intrepid.com>
823         * sel-sched.c (move_op): Incorporate the following
824         patch to eliminate ICE at -O3 on IA64/Altix.
826 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
828         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
829         code_motion_path_driver returned 0 or 1.
830         (sel_region_finish): Clear h_d_i_d.
832 2011-06-02  Gary Funck  <gary@intrepid.com>
834         Merge trunk version 174558 into gupc branch.
836 2011-05-30  Gary Funck  <gary@intrepid.com>
838         * configure.ac: Make the default order of the virtual
839           address field in a UPC pointer-to-shared to be "first".
840           This reverts to the previous setting, and is a short term
841           measure to work around a bug found on the IA64,
842           where vaddr=last led to incorrect code generation.
843           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
844           in AC_DEFINE(), to agree with recent changes in files
845           that reference this define.
846           configure, config.in: Regenerate.
848 2011-05-26  Gary Funck  <gary@intrepid.com>
850         * configure.ac: Fix typo when referring to $upc_vaddr_order.
851           configure: Regenerate.
853         * ../fixincludes/fixincl.x: Revert to trunk.
854           This file is auto-generated, and should not be merged.
856 2011-05-18  Gary Funck  <gary@intrepid.com>
858         Merge trunk version 173845 into gupc branch.
860 2011-05-17  Gary Funck  <gary@intrepid.com>
862         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
863           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
865         * c-family/c-pragma.c: Remove conditional compilation
866           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
867           Test 'compiling_upc' when compiling to determine if
868           the "upc" and "pupc" pragmas should be registered.
870         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
871           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
872           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
873           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
874           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
875           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
876           Move these target-dependent definitions from config/upc-conf.h
877           to here.
879         * configure.ac: Improve the logic for UPC-related options.
880           Delete references to pre-processor definitions that have
881           been moved to "upc/upc-pts.h".
883         * configure, config.in: Regenerate.
885         * Makefile.in (UPC_PTS_REP): Remove definition and revert
886           to trunk.  This substitution variable was used to
887           configure the representation-specific versions of
888           the tree rewrites that operate on UPC pointer-to-shared
889           types and objects.
891         * c-parser.c (c_parser_upc_forall_statement): Remove
892           reference to UPC_FORALL_DEPTH_NAME, and call
893           newly defined upc_rts_forall_depth_var() instead.
895         * config/upc-config.h: Delete. Various definitions
896           moved to "upc/upc-rts-names.h", "defaults.h", and
897           "upc/upc-pts.h".
899         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
900           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
901           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
902           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
903           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
904           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
905           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
906           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
907           New.  Document UPC target macros.
908           doc/tm.texi: Regenerate.
910 2011-05-07  Gary Funck  <gary@intrepid.com>
912         * ../configure.ac: Disable build of libupc
913           on non POSIX hosted systems.  Use AS_HELP_STRING
914           to define messages.  Remove 'word-pair' as a
915           possible --with-upc-pts UPC pointer-to-shared
916           representation.
918         * ../configure: Regenerate.
920         * configure.ac: Use AS_HELP_STRING to define messages.
921           Remove 'word-pair' as a possible --with-upc-pts
922           UPC pointer-to-shared representation.
923           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
924           (UPC_MAX_BLOCK_SIZE): Correct the default value.
926         * configure: Regenerate.
928         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
929           definition.
931         * ChangeLog.upc: Fix some typos.
933 2011-05-07  Gary Funck  <gary@intrepid.com>
935         * ../maintainer-scripts/gcc_release: Add "upc"
936           as one of the released languages.
938 2011-05-06  Gary Funck  <gary@intrepid.com>
940         Eliminate compilation warnings, by fixing
941         #include's and updating function prototypes.
943         * c-family/c-cppbuiltin.c: Include c-upc.h.
945         * optabs.c (gen_libfunc): Change type of 'suffix'
946           parameter to conform with prototype.
948         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
949           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
950           hook used by UPC.
952         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
953           the prototype.
955         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
956           argument values to cp_gimplify_expr.
958         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
959           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
960           pre-processor definitions that are no longer
961           needed to build the 'upc' command (upc-cmd.c)
962           because the linker specs. defined in libupc
963           take care of linking in the needed libraries.
965         * c-parser.c (c_parser_upc_forall_statement):
966           initialize affinity_loc to avoid "maybe unused" warning.
967           (c_parser_upc_sync_statement): Remove un-needed
968           'ret' variable.  Cast return value from
969           'upc_build_sync_stmt' to 'void' to avoid
970           compile-time warning.
972         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
973           integer constant, not a string.  Range is restricted
974           to maximum positive 32-bit integer (2+ billion) to
975           fit in with the use of 'int' in the front-end's
976           switch handling logic.
978 2011-05-06  Gary Funck  <gary@intrepid.com>
980         Upgrade c-family source files to conform with modularity
981         improvements.  Mainly, remove #include of c-tree.h in files
982         under c-family, and define a new UPC-specific #include file,
983         c-upc.h, and use it.
985         * c-family/stub-upc.c: Remove #include of c-tree.h and
986           upc/upc-act.h.  Replace with #include of c-common.h
987           and c-upc.h.
988           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
989           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
990           upc_localsizeof_expr, upc_localsizeof_type,
991           upc_shared_type_p): Delete.
993         * c-family/c-opts.c: Add #include of c-upc.h
995         * c-family/c-common.c: Remove #include of c-tree.h and
996           add #include of c-upc.h.
998         * c-family/c-upc.h: New. Define API for UPC-specific functions
999           (mostly implemented in upc/upc-act.c).
1001         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
1002           Remove extern definitions.
1004         * c-family/c-pragma.c: Remove #include of c-tree.h.
1005           Add #include of c-upc.h.
1007         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
1008           c-tree.h.
1009           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
1010           upc/upc-act.c, and define as a macro.
1011           (expand_affinity_test): Remove unused external definition.
1012           (build_upc_unshared_type): Add external definition.
1013           (upc_shared_type_p): Remove external definition.
1015         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1017         * dojump.c: Remove #include of c-tree.h.
1019         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1020           and move to tree.h.
1021           (count_upc_threads_refs, is_multiple_of_upc_threads,
1022           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1023           upc_build_shared_var_addr, upc_build_sync_stmt,
1024           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1025           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1026           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1027           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1028           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1029           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1030           set_upc_consistency_mode, get_upc_consistency_mode,
1031           push_upc_consistency_mode, pop_upc_consistency_mode,
1032           get_upc_pupc_mode):
1033           Move external definitions to c-family/c-upc.h.
1034           (upc_blocksizeof_type, upc_localsizeof_type,
1035           upc_elemsizeof_type): Remove external definitions;
1036           these functions were moved to c-parser.c.
1038         * c-decl.c: Add #include of c-upc.h.
1040         * c-typeck.c: Add #include of c-upc.h.
1042         * c-convert.c: Add #include of c-upc.h.
1044         * ChangeLog.upc: Fix typo.
1046         * Makefile.in: Add references to c-family/c-upc.h, everywhere
1047           there is a reference to c-family/c-objc.h.
1048           Remove extraneous reference to upc-act.h.
1050         * c-parser.c: Add #include of c-upc.h.
1051           (upc_blocksizeof_expr, upc_blocksizeof_type,
1052           upc_elemsizeof_expr, upc_elemsizeof_type,
1053           upc_localsizeof_expr, upc_localsizeof_type):
1054           Move from upc/upc-act.c.
1056         * tree.c (build_upc_unshared_type): New.
1057           Move upc_get_unshared_type from upc/upc-act.c and rename
1058           to build_upc_unshared_type.
1059           c-family/c-common.c (pointer_int_sum): refer to renamed
1060           build_upc_unshared_type function.
1061           c-convert.c (convert): Ditto.
1062           convert.c (convert_to_pointer): Ditto.
1063           c-typeck.c (build_unary_op, build_modify_expr,
1064           really_start_incremental_init): Ditto.
1065           gimplify.c (create_tmp_var_raw): Ditto.
1066           tree.c (build1_stat): Ditto.
1067           tree.h (upc_get_unshared_type): Rename to
1068           build_upc_unshared_type.
1070 2011-05-06  Gary Funck  <gary@intrepid.com>
1072         Merge trunk version 173471 into gupc branch.
1074 2011-05-05  Gary Funck  <gary@intrepid.com>
1076         Make changes that bring the GUPC branch more closely in sync.
1077         with the GCC trunk.  Revert any fixes that are not UPC-specific.
1078         Remove gratuitous re-formatting.
1080         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1081           This file should have been removed in a previous merge
1082           with the trunk.
1083         * ../configure.ac: Remove Cray Catamount/CNL support.
1084         * ../configure: Regenerate.
1085         * ../config.sub: Remove Cray Catamount/CNL support.
1086         * config.gcc: Remove Cray Catamount/CNL support.
1087         * ../maintainer-scripts/gcc_release: Revert to trunk.
1088         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1089           was missed in a previous merge with the trunk.
1090         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1091           procedure.
1092         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1093           in addition to ARRAY_TYPE.
1094         * c-typeck.c: Remove an extra newline character.
1095         * varasm.c: Revert a fix that improved an error message
1096           when TLS common data is unimplemented.
1097         * varasm.c: Revert a gcc_assert that had been added which
1098           checked for a null DECL_SIZE_UNIT field.
1099         * emultls.c: Revert to trunk. Remove possible fix.
1100         * Makefile.in: Revert extra blank line that is present
1101           in the trunk version.
1102         * Makefile.in: Revert a fix that handled long shell
1103           argument lists for plugin headers.
1104         * config/ia64/ia64.opt: Revert an option setting
1105           that increased the default TLS address range.
1106         * config/ia64/crtbegin.asm: Revert to trunk.
1107           Removes an extra newline character.
1108         * ChangeLog.upc: Spell check.
1110 2011-05-03  Gary Funck  <gary@intrepid.com>
1112         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1113           (c_apply_type_quals_to_decl): Ditto.
1114         * c-family/c-common.h: Ditto.
1115         * dojump.c: Ditto.
1116         * c-decl.c (merge_decls): Ditto.
1117         * c-typeck.c (qualify_type, default_conversion,
1118           build_component_ref, build_unary_op,
1119           c_build_qualified_type): Ditto.
1120         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1122 2011-04-29  Gary Funck  <gary@intrepid.com>
1124         * c-decl.c (finish_decl): Improve error diagnostics.
1125           (grokdeclarator): Ditto.
1127         * c-typeck.c (build_c_cast): Improve error diagnostics.
1128           (convert_for_assignment): Ditto.
1129           (build_binary_op): Ditto.
1131         * c-parser.c (c_parser_upc_forall_statement):
1132           Improve error diagnostics.
1134         * convert.c (convert_to_integer):  Improve error diagnostics.
1136 2011-04-24  Gary Funck  <gary@intrepid.com>
1138         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1139           occurred if there is an error in the barrier id
1140           expression.  Map error_mark_node into NULL.
1142 2011-04-22  Gary Funck  <gary@intrepid.com>
1144         Merge trunk version 172873 into gupc branch.
1146 2011-04-19  Gary Funck  <gary@intrepid.com>
1148         Merge trunk version 172359 into gupc branch.
1150 2011-04-14  Gary Funck  <gary@intrepid.com>
1152         * c-family/c.opt: Add UPC as a valid language for various
1153           switches where it is valid for "C", that were not updated
1154           in previous merges with trunk.
1156 2011-04-13  Gary Funck  <gary@intrepid.com>
1158         * c-family/c.opt (fupc-pre-include): New option definition.
1159         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1160           -fno-upc-pre-include is asserted.
1162 2011-04-07  Gary Funck  <gary@intrepid.com>
1164         Merge trunk version 172158 into gupc branch.
1165         to bring in the following fix.
1167 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1169         PR bootstrap/48403
1170         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1171         if old and new states differ.
1173 2011-04-06  Gary Funck  <gary@intrepid.com>
1175         Merge trunk version 171966 into gupc branch.
1177 2011-04-01  Gary Funck  <gary@intrepid.com>
1179         * tree.h (tree_base): Move UPC flag bits into bit fields
1180           located just before spare bits.  Decrement spare bits.
1181           Rename 'shared_flag' -> 'upc_shared_flag',
1182           'relaxed_flag' -> 'upc_relaxed_flag',
1183           'strict_flag' -> 'upc_strict_flag, and adjust macros
1184           that reference them accordingly.
1186 2011-04-01  Gary Funck  <gary@intrepid.com>
1188         * c-decl.c (grokdeclarator): Fix formatting of
1189           code that sets UPC block size on scalars.
1191 2011-04-01  Gary Funck  <gary@intrepid.com>
1193         * c-decl.c (grokdeclarator): Revert use of white space
1194           to match the trunk (to rationalize diffs).
1195         * c-typeck.c (convert_for_assignment): Ditto.
1196         * tree-ssa.c (useless_type_conversion_p): Ditto.
1198 2011-03-23  Gary Funck  <gary@intrepid.com>
1200         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1201           the GCC 4.6 release branch.
1203 2011-03-21  Gary Funck  <gary@intrepid.com>
1205         Merge trunk version 171202 into gupc branch.
1207 2011-03-20  Gary Funck  <gary@intrepid.com>
1209         * varasm.c: Call error() directly with a format specifier,
1210           rather than using sprintf() to format the message.
1211           This should make it easier to internationalize UPC's error messages.
1213 2011-03-20  Gary Funck  <gary@intrepid.com>
1215         * configure.ac: Fix the check for gnu ld when enabling
1216           UPC link script support.
1217           configure: Regenerate (also picks up changes from previous
1218           merge with trunk).
1220 2011-03-20  Gary Funck  <gary@intrepid.com>
1222         Move UPC start files, end files, and linker specs.
1223         into libupc.  This reduces the impact on common GCC
1224         configuration files, and ensures that these UPC-specific
1225         components are only built when the UPC language dialect is selected.
1228 gcc/
1229         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1230           linker specs. Fix typo in -fupc-debug message.
1232         * config/upc-conf.h, config/darwin.h: Move defines for
1233           UPC-related section begins/ends into libupc/config/default/
1234           upc-crt-config.h.
1236         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1237           UPC-related linker compiler specifications,
1238           accessed via %:include().
1240         * configure.ac, configure: Remove logic related to building
1241           upc-crtbegin/end. Remove config. tests for numa and cpu
1242           affinity (previously used by the 'upc' driver); these
1243           settings are now propagated by target-specific compiler
1244           specs. built by libupc.  Regenerate autoconf.
1246         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1247           linker compiler specifications, accessed via %:include().
1248           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1249           'link_upc_spec'.
1251         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1253         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1254           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1255           config/ia64/linux.h, config/mips/t-iris,
1256           config/mips/iris6.h: Revert to trunk version 167307.
1258 libgcc/
1259         * configure, configure.ac, config.host, Makefile.in:
1260           Revert to trunk version 167307.
1262 2011-02-23  Gary Funck  <gary@intrepid.com>
1264         * c-decl.c (undeclared_variable): fix typo. Inadvertently
1265         removed negation on following 'if'.
1267 2011-02-22  Gary Funck  <gary@intrepid.com>
1269         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1270         to check for the usage of certain deprecated UPC keywords.
1271         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1272         * c-tree.h (undeclared_variable): Define prototype.
1274 2011-02-12  Gary Funck  <gary@intrepid.com>
1276         * c-typeck.c: (build_c_cast, convert_for_assignment)
1277           Diagnose an attempt to convert from an integer to
1278           a pointer-to-shared as an error.  Also, fix various
1279           error messages so that they use the preferred term
1280           pointer-to-shared instead of "shared pointer".
1282 2011-02-07  Gary Funck  <gary@intrepid.com>
1284         * c-typeck.c: (convert_for_assignment)
1285           Fix typo. in error message.
1287 2011-01-23  Gary Funck  <gary@intrepid.com>
1289         * c-typeck.c: (c_build_qualified_type)
1290           derive UPC block size by calling upc_get_block_size(),
1291           to ensure that the element type of an array of an array
1292           is derived correctly.
1294 2010-12-29  Gary Funck  <gary@intrepid.com>
1296         Merge trunk version 168314 into gupc branch.
1298 2010-12-15  Gary Funck  <gary@intrepid.com>
1300         Merge trunk version 167307 into gupc branch.
1302 2010-10-19  Gary Funck  <gary@intrepid.com>
1304         * c-typeck.c: Fix typo in previous fix
1305           which led to a mis-compare for equal block sizes.
1307 2010-10-18  Gary Funck  <gary@intrepid.com>
1309         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1310           diagnosed as an error
1312           The conversion from any type (shared or not) to
1313           a shared type is likely either meaningless or an error.  This update
1314           makes any conversion to a shared type, an error.
1316 2010-10-18  Gary Funck  <gary@intrepid.com>
1318         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1319           generates spurious warning
1321           Add a #define procedure that does the same thing as
1322           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1323           this procedure to diagnose passing an integer value to a
1324           pointer-to-shared as an error.
1326 2010-10-18  Gary Funck  <gary@intrepid.com>
1328         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1329           matching routine declaration.
1331           When checking for type compatibility, shared qualified types must
1332           have the same block factor.  This check was missing from
1333           comptypes_internal().  This update adds the check for blocking
1334           factor equality.
1336 2010-10-17  Gary Funck  <gary@intrepid.com>
1338         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1339           found (-O1 -g)
1341           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1343 2010-10-17  Gary Funck  <gary@intrepid.com>
1345         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1346           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1347           produces ice with -O3 and -m32.
1349           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1351 2010-10-17  Gary Funck  <gary@intrepid.com>
1353         * c-common.c: Diagnose the application of the various "*sizeof"
1354           operations on generic pointer-to-shared as a compilation error.
1356 2010-10-17  Gary Funck  <gary@intrepid.com>
1358         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1359           message regarding a function parameter being declared with a shared
1360           qualifier.
1362           The parameter's 'name' value is not defined at this point, and
1363           cannot be used in the error message.  This update removes the
1364           reference to 'name', and eliminates the segfault.
1366 2010-10-16  Gary Funck  <gary@intrepid.com>
1368         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1370           The gcc/Makefile.in rules for install-plugin had to be re-written to
1371           break up a long list of header files that exceeded the command line
1372           limitation imposed by Irix.
1374           Access functions for TFmode types had to be implemented.
1375           Apparently, this is the mode used for the SGI/MIPS port to represent
1376           "long float".
1378 2010-10-14  Gary Funck  <gary@intrepid.com>
1380         * c-decl.c: Fix bug: Multiple equal blocking factors specified
1381           via typedef chain should not be diagnosed as an error.
1383           If the block size that is given by the typedef is equal to the block
1384           size given explicitly in the variable declaration, then do not
1385           complain.  The easiest way to make this check was to create a
1386           temporary type that is a clone of the element type and then set its
1387           block size using the given layout qualifier.  Then compare the block
1388           size of the temporary (the declaration) to the block size specified
1389           in the typedef.  This complexity is needed, because the '[*]' block
1390           size needs to be calculated, and the '[]' needs to be mapped into a
1391           zero block size.
1393 2010-10-10  Gary Funck  <gary@intrepid.com>
1395         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1396           specified
1398           The compiler properly detected the presence of two or more layout
1399           qualifiers as an error, but then hit an assertion check, because the
1400           code that followed the error expected to see a qualifier and not a
1401           layout specifier.  The fix is simple: just return immediately after
1402           detecting the error.
1404 2010-10-10  Gary Funck  <gary@intrepid.com>
1406         * c-decl.c: Improve error diagnostics for various cases of UPC
1407           shared array type declarations.
1409           Add the check for this error: "In the dynamic translation
1410           environment, THREADS may not appear in declarations of shared arrays
1411           with indefinite block size".  Also, fix up a few of the other
1412           related error diagnostics.
1414 2010-10-09  Gary Funck  <gary@intrepid.com>
1416         * c-common.c: Fix bug: segfault on incomplete array definition.
1418           This turned out to be a bit complicated.   The logic in
1419           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1420           the THREADS identifier in the case where the blocking factor has
1421           been set to indefinite ([]).  This can happen when indefinite array
1422           declarations are processed for shared arrays.  At that time, the
1423           file scope has been closed and THREADS is no longer in scope.  Some
1424           more work is needed on upc_lang_layout_decl().  It has some
1425           duplication, and notably duplicates the two branches of the if
1426           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1427           caller of this routine (layout_decl()).
1429           The method of forcing a layout qualifier of [] in the indefinite
1430           declaration handler is odd a well.  The code that just does the
1431           setting of the block factor, needs to moved into its own routine
1432           that doesn't depend upon a declspec for '[]' to be passed in, just
1433           in order to set the blocking factor to some value (in this case, 0).
1434           Also, the logic for how that shared type is constructed is strange.
1435           First the type with 0 blocking factor is set.  Then the shared
1436           qualifier is removed from the type, and then added back later.  The
1437           intermediate type has a blocking factor set, but it has no shared
1438           qualifier.  Fixing this will require some thought.  It is tempting
1439           just to make indefinite shared arrays an error, rather than forcing
1440           the dimension to be '1'.
1442           This likely fixes a serious error in the previous update to
1443           upc_lang_layout_decl(), where it didn't have the logic to set
1444           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
1445           the previous update would fail on many tests.
1447 2010-10-09  Gary Funck  <gary@intrepid.com>
1449         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1450           (decl) is null, which can happen if some layout error occurred
1451           upstream.
1453 2010-10-09  Gary Funck  <gary@intrepid.com>
1455         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1456           "variable-sized" when compiled in dynamic threads.
1458           This long-standing bug is easily fixed.  Just check
1459           for the situation that the non-constant sized type is shared and
1460           that it does not have a dimension that references a multiple of
1461           threads.  If this criteria is met, then issue a meaningful
1462           diagnostic.
1464 2010-10-01  Gary Funck  <gary@intrepid.com>
1466         * configure, configure.ac: Update manual page, and bug reporting
1467           URL.
1469           Update "man" page to reflect debugging switches.  Also, some general
1470           clean up.  Change the bug reporting URL to point to gccupc.org.
1472 2010-09-27  Gary Funck  <gary@intrepid.com>
1474         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1475           the UPC forall depth count variable is not found.
1477           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1478           The compiler will generate code that references this variable in
1479           order to implement nested upc_forall semantics.  If there is a
1480           compiler build or install problem, this variable may not be found.
1481           In this case, terminate with an internal_error().
1483 2010-09-26  Gary Funck  <gary@intrepid.com>
1485         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1486           mis-diagnosed as syntax error.
1488           Fix a failure exhibited by the Berkeley test case,
1489           bug873a.upc, which has the code:
1490                double d;
1491                upc_forall (;;;d) {...} The compiler did not properly handle
1492           the empty "condition" clause, and did not recover well when it was
1493           determined that the use of a double value, "d" above, was neither a
1494           pointer-to-shared nor an integer expression.  The update implements a
1495           fix for both issues.
1497           See also: gcc/c-parser.c gcc/upc/upc-act.c
1499 2010-09-23  Gary Funck  <gary@intrepid.com>
1501         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1502           incorporated into the referencing type.
1504           This was semi-fixed a few times before.  This update fixes a few
1505           more places where the layout qualifier wasn't being propagated
1506           through typedef's properly.  What made this a bit tricky is shown in
1507           the example cited in the bug report:
1509           typedef shared [5] int A_t; A_t A[5*THREADS];
1511           In the typedef, the blocksize is being applied to a shared *scalar*,
1512           and the code was applying the blocksize only to arrays.  This update
1513           handles shared scalars correctly.
1515 2010-09-22  Gary Funck  <gary@intrepid.com>
1517         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1518           upc_forall() semantics are not implemented
1520           The checkforall test in the Berkeley harness test suite indicated
1521           that GCC/UPC was not properly implementing nested upc_forall
1522           semantics.  Nested upc_forall statements (both statically or
1523           dynamically nested) must implement their affinity clause as if it
1524           were "continue"; thus all steps in the loop must execute without
1525           regard for affinity.  To implement these semantics a global depth
1526           counter, __upc_forall_depth, is maintained by the generated code
1527           that implements upc_forall.
1529           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1530           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1531           libupc/include/upc.h libupc/smp/upc_main.c
1533 2010-09-19  Gary Funck  <gary@intrepid.com>
1535         * c-decl.c: c-decl.c: zero out the layout specifier, after
1536           processing an array type.
1538           Fix the previous fix, that moved the setting of the type's layout
1539           qualifier to the outside of the array type processing loop.  What is
1540           missing from the fix is that the layout_qualifier variable needs to
1541           be cleared after setting the type's blocksize.
1543 2010-09-19  Gary Funck  <gary@intrepid.com>
1545         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1546           given blocksize is greater than UPC_MAX_BLOCKSIZE.
1548           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1549           the actual maximum block size.  Therefore, the message was correct,
1550           but the underlying value that was being checked was wrong.  Change
1551           the values so that they agree with the actual implementation-defined
1552           limit.
1554 2010-09-11  Gary Funck  <gary@intrepid.com>
1556         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1557           multi-dimensional shared array with dynamic threads.
1559           This declaration caused an internal compiler error when compiled
1560           with dynamic threads:
1561               shared [*] int A[THREADS][16]; The bug was discovered when
1562           compiling the RTED_UPC test suite.
1564           The fix is to process layout qualifiers after the entire array type
1565           has been built.  Otherwise, we try to calculate the blocksize on a
1566           shared array type that has not had its "size depends upon the value
1567           of THREADS" flag set.
1569           Also, added a test case.
1571           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1573 2010-07-11  Gary Funck  <gary@intrepid.com>
1575         Fix a bug where a statement in c_build_qualified_type()
1576         in the trunk had been inadvertently deleted.
1577         This bug showed up in the IA64 port, because jmpbuf's
1578         on that architecture must be 16 byte aligned, and they were not.
1579         c-typeck.c (c_build_qualified_type): Revive the deleted line.
1581 2010-07-08  Gary Funck  <gary@intrepid.com>
1583         Make changes so that other language compilers
1584         will build and bootstrap.
1585         * c-family/c-common.c (compiling_upc, flag_upc,
1586         flag_upc_instrument, flag_upc_instrument_functions,
1587         use_upc_dwarf2_extensions): Move to stub-upc.c and
1588         upc-lang.c.
1589         * c-family/c-common.h (use_upc_dwarf2_extensions,
1590         compiling_upc): Add extern definitions - needed
1591         to compile/build other language front ends.
1592         * c-family/c.opt: Fix the spelling of ObjC.
1593         It had been incorrectly spelled as Objc.
1594         * c-family/c.opt: Add UPC for the various switches
1595         that are valid for both C and ObjC.
1596         * c-fmaily/c-opts.c: Add CL_UPC to the list of
1597         supported options switches when compiling assembly
1598         language.
1599         * lto/lto-lang.c (use_upc_dwarf2_extensions,
1600         flag_upc_instrument, flag_upc_instrument_functions):
1601         Remove these definitions.  They have been moved
1602         to c-family/stub-upc.c.
1603         * upc/ChangeLog: Move relevant entries
1604         to ChangeLog.upc.
1605         * c-family/stub-upc.c (compiling_upc, flag_upc,
1606         flag_upc_instrument, flag_upc_instrument_functions,
1607         use_upc_dwarf2_extensions): Moved from c-common.c
1608         * upc/upc-lang.c (compiling_upc, flag_upc,
1609         flag_upc_instrument, flag_upc_instrument_functions,
1610         use_upc_dwarf2_extensions): Moved from c-common.c
1611         * objc/objc-act.c (objc_gimplify_expr): Add additional
1612         parameters to c_gimplify_expr() call, that are used
1613         by upc's tree rewrites.
1614         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1615         * gcc/cp/lex.c (init_reswords): If not compiling
1616         UPC, then mask off the UPC keywords.
1617         * cp/Make-lang.in (C_STUB_OBJS): Use this
1618         make macro to link with c-family/stub-objc.o
1619         and c-family/stub-upc.o.
1620         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1621         * java/Make-lang.in (C_STUB_OBJS): Likewise.
1622         * objc/Make-lang.in: Link with c-family/stub-upc.o
1623         to avoid undefined references.
1624         c-parser.c: Fix line indentation.
1625         * libcpp/include/cpplib.h: Remove CL_UPC from
1626         the list of language kinds accepted by the
1627         C preprocessor.  This is not necessary because
1628         UPC is a derivative of C99, and does not need
1629         a different language kind.
1630         * c-fmaily/c-opts.c (c_common_handle_option):
1631         Call set_std_c99() when processing the
1632         "--lang upc" switch, instead of setting the
1633         language kind to CL_UPC.
1634         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1636 2010-07-03  Gary Funck  <gary@intrepid.com>
1638         Merge trunk version 161517 into gupc branch.
1639         * gcc/stub-upc.c: Move to gcc/c-family/.
1640         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1641         Add 'unused' attributes to avoid "set, but
1642         not referenced" warnings.
1643         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1644         Likewise.
1646 2010-03-01 Gary Funck  <gary@intrepid.com>
1648         Create gupc branch from trunk version 157149.
1649 2011-10-04  Gary Funck  <gary@intrepid.com>
1651         Merge trunk version 179421 into gupc branch.
1653         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1654         argument to the call to check_qualified_type().
1656 2011-09-22  Gary Funck  <gary@intrepid.com>
1658         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1659         information.
1660         (dump_upc_type_quals): New.
1662 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1664         Add to FLAGS the flags needed to disable inlining of
1665         UPC run-time access routines.
1666         * testsuite/lib/target-supports.exp
1667         (add_options_for_upc_library_calls): New.
1669 2011-09-15  Gary Funck  <gary@intrepid.com>
1671         Fix ICE involving shared bit field accesses.
1672         * tree.c (build3_stat): Propagate TEEE_SHARED()
1673         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1675 2011-09-13  Gary Funck  <gary@intrepid.com>
1677         Merge trunk version 178795 into gupc branch.
1678         Incorporates fix to PR bootstrap/50010 for x86-32.
1680 2011-09-08  Gary Funck  <gary@intrepid.com>
1682         Merge trunk version 178557 into gupc branch.
1684 2011-09-07  Gary Funck  <gary@intrepid.com>
1686         Ensure that UPC pointer-to-shared type alignment is
1687         propagated to the final type.  Revert to long-standing
1688         alignment policy: twice the size of a "C" pointer.
1689         * tree.c (build_pointer_type): Propagate the alignment
1690         of the UPC pointer-to-shared representation type
1691         into the newly built pointer type.
1693 2011-08-30  Gary Funck  <gary@intrepid.com>
1695         * tree.h (check_qualified_type): Change 'const_tree'
1696         argument types back to 'tree' to avoid complaints
1697         of assignment drops qualifiers for invocations of the
1698         newly implemented TYPE_BLOCK_FACTOR() macro, which
1699         invokes hash functions with 'tree' pointer values that
1700         are not const qualified.
1701         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1702         * c-typeck.c (comptypes_internal): Ditto.
1704 2011-08-29  Gary Funck  <gary@intrepid.com>
1706         Fixes for regressions noted running "make check"
1707         versus GCC trunk.
1708         * fold-const.c (fold_unary_loc): Execute UPC-specific
1709         checks for a cast-of-a-cast, only if one of the
1710         operands is a UPC pointer-to-shared value.
1711         * opts.c (print_specific_help):  Fix a comparison
1712         in an assert that checks that there are enough
1713         bits reserved for the number of languages defined
1714         in the .opt files.
1716 2011-08-29  Gary Funck  <gary@intrepid.com>
1718         Implement a hash table to record UPC block factors.
1719         * c-family/stub-upc.c (upc_block_factor_insert,
1720         upc_block_factor_lookup): New dummy stub procedures.
1721         * c-family/c-common.c (c_sizeof_or_alignof_type):
1722         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1723         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1724         to copy (hashed) UPC blocking factor.
1725         (set_type_quals): Likewise.
1726         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1727         TYPE_HAS_THREADS_FACTOR().
1728         (type_common.block_factor): Delete.
1729         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1730         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1731         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1732         UPC blocking factors greater than one.
1733         * dwarf2out.c (modified_type_die): Re-implement
1734         logic that records UPC blocking factor in the generated
1735         DWARF2 debugging information.
1736         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1737         TYPE_HAS_THREADS_FACTOR().
1738         * c-decl.c (finish_decl, grokdeclarator):
1739         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1740         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1741         used by UPC, and print UPC-specific information.
1743 2011-08-28  Gary Funck  <gary@intrepid.com>
1745         Re-work the type machinery to fully support and to unify support
1746         for the UPC layout qualifier (blocking factor).
1747         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1748           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1749           and update prototype.
1750         * c-family/c-common.c (complete_array_type): call newly
1751           defined c_build_qualified_type_1() instead of
1752           upc_set_block_factor().
1753         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1754           upc_apply_layout_qualifier() and update prototype.
1755           (upc_set_block_factor): Delete prototype.
1756         * c-family/c-common.h (c_build_qualified_type): redefine
1757           as a pre-processor macro that invokes c_build_qualified_type_1()
1758           with a null UPC layout qualifier.
1759           (c_build_qualified_type_1): New.  Add layout qualifier argument
1760           to old c_build_qualified_type() prototype.
1761         * tree.c (set_type_quals, check_qualified_type):
1762           Add layout qualifier as argument.
1763           (check_aligned_type): Add check for UPC block factor equality.
1764           (get_qualified_type_1): Rename from get_qualified_type() and
1765           add layout qualifier as argument.
1766           (build_qualified_type_1): Rename from build_qualified_type() and
1767           add layout qualifier as argument.
1768         * tree.h (check_qualified_type): Add layout qualifier as argument
1769           to the prototype.
1770           (get_qualified_type): Re-define as a as a pre-processor macro
1771           that invokes get_qualified_type_1() with a null
1772           UPC layout qualifier.
1773           (get_qualified_type_1): Rename from get_qualified_type() and
1774           add layout qualifier as argument.
1775         * cp/tree.c (c_build_qualified_type_1): Rename from
1776           c_build_qualified_type() and add (unused) layout qualifier
1777           argument.
1778         * c-decl.c (finish_decl): re-format long error messages.
1779           (grokdeclarator): Re-work the logic so that it calls
1780           upc_grok_layout_qualifier() to handle the UPC layout
1781           qualifier, if present.
1782         * c-typeck.c (qualify_type, common_pointer_type,
1783           build_component_ref): Re-work the logic so that it calls
1784           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1785           if present.
1786           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1787           and add layout qualifier argument.
1788         * print_tree.c (print_node): Re-format a long line.
1790 2011-08-26  Gary Funck  <gary@intrepid.com>
1792         Merge trunk version 177949 into gupc branch.
1793         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1794           in the comment.
1795         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1796           to add new rliterals column value.
1798 2011-08-26  Gary Funck  <gary@intrepid.com>
1800         * convert.c (convert_to_integer): Fix the check for the
1801           difference between two UPC pointers-to-shared values.
1803 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1805         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1806           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1807           correctly check packed bits.
1808         * configure: Re-generate.
1810 2011-08-16  Gary Funck  <gary@intrepid.com>
1812         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1813           the barrier id expression is not an integer expression.
1815 2011-08-12  Gary Funck  <gary@intrepid.com>
1817         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1818           (revert to trunk).
1819         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1820           Set mode of UPC pointer-to-shared rep. to an
1821           integral mode of size at least as large as the
1822           size of the representation's struct type.
1824 2011-08-12  Gary Funck  <gary@intrepid.com>
1826         Rework/simplify the UPC genericize pass.
1827         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1828           upc_build_pointer_type): New.
1829           (upc_set_block_factor): Adjust to new calling sequence.
1830           (upc_build_shared_var_addr): Delete.
1831         * c-family/c-common.c (complete_array_type): Adjust call
1832           to upc_set_block_factor().
1833         * c-family/c-upc.h (upc_apply_layout_qualifier,
1834           upc_build_pointer_type): New.
1835           (upc_build_shared_var_addr): Delete.
1836           (upc_set_block_factor): Adjust to new calling sequence.
1837         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1838         * c-decl.c (grokdeclarator): Call newly defined
1839           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1840         * c-decl.c (grokdeclarator): Split long UPC-related error
1841           messages into two lines.
1842         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1843           directly.  Revert that change to trunk. (upc_genericize() will
1844           handle lowering the expressions that take the address of a
1845           UPC variable).
1846         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1847           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1848           representation type.
1850 2011-08-10  Gary Funck  <gary@intrepid.com>
1852         Implement additional fixes for recent merge with trunk.
1853         * explow.c (promote_mode): Do not attempt to promote
1854           the mode for UPC pointer-to-shared types.
1855         * config/i386/i386.c (function_value_64): Ditto.
1857 2011-08-07  Gary Funck  <gary@intrepid.com>
1859         Merge trunk version 177548 into gupc branch.
1860         * config/i386/i386.c (ix86_promote_function_mode):
1861           Do not promote UPC pointers-to-shared to Pmode.
1862         * c-family/c-ommon.c (pointer_int_sum):
1863           Also check the pointer operand, rather than just
1864           its type, when making the decision to derive
1865           the equivalent unshared type.
1866         * tree.c (build2_stat): If the type of the result
1867           passed in as an argument is a UPC shared type,
1868           derive the unshared equivalent when calculating
1869           the result type of the node.
1871 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1873         * config/darwin.c: Disable var_tracking option
1874           on -O0 as it is supposed to run only when optimization
1875           is applied. See GCC bug 49743.
1877 2011-07-06  Gary Funck  <gary@intrepid.com>
1879         Re-implement the pass that lowers trees generated by
1880         the UPC front-end into GENERIC.  Previously this was
1881         done within the gimplification framework, but this
1882         required that gimplification be run before inlining
1883         and various other passes, which did not fit in well
1884         with the current design of the middle-end passes.
1885         Now, the lowering is done by a newly defined language
1886         specific genericize hook.  With this change, we are
1887         are able to undo some extensions made to the gimplify
1888         logic, and thus can revert several files to trunk.
1890         * c-decl.c: Add a check for UPC deprecated names which
1891           may appear as undefined function names.
1892         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1893           LTI_upc_getaddr): Remove definitions of unused UPC
1894           library function names.  These were defined back when
1895           the libfunc interface was used to call these routines.
1896         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1897           in UPC lowering (genericize) pass.
1898         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1899           (instrument_func): Delete this hook.  Now handled in
1900           upc_genericize().
1901         * tree-pass.h: Revert to trunk.
1902         * c-typeck.c (build_unary_op): Adjust reference to
1903           upc_genericize() in a comment.
1904         * gimplify.c (create_tmp_var_raw): Delete logic that
1905           was converting UPC shared types into unshared types
1906           to be used for temporaries.  Now handled in  upc_genericize().
1907           Replace with an assertion check.
1908           (prepare_gimple_addressable): Revert to trunk's definition.
1909           No longer needed as an externally called function.
1910           (flag_instrument_functions_exclude_p): Re-define as
1911           an externally called function.
1912           (gimplify_function_tree): Delete code that implemented
1913           call to UPC's language specific function instrumentation hook.
1914         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1915           (prepare_gimple_addressable): Delete extern definition;
1916           revert to trunk's definition.
1917         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1918           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1919         * c-family/c-gimplify.c: Revert to trunk.
1920         * cp/cp-gimplify.c: Revert to trunk.
1921         * cp/cp-tree.h: Revert to trunk.
1922         * explow.c: Revert to trunk.
1923         * langhooks.c: Revert to trunk.
1924         * libfuncs.h: Revert to trunk.
1925         * objc/objc-act.c: Revert to trunk.
1927 2011-06-30  Gary Funck  <gary@intrepid.com>
1929         * c-family/c.opt: Bring options definitions up-to-date
1930         with respect to changes made in the trunk.
1932 2011-06-29  Gary Funck  <gary@intrepid.com>
1934         Merge trunk version 175584 into gupc branch.
1936 2011-06-13  Gary Funck  <gary@intrepid.com>
1938 libcpp/
1939         * include/cpplib.h (enum c_lang):
1940         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1941         This keeps all the "C" variants together.
1942         * init.c (lang_defaults): Add an entry for UPC.
1944 2011-06-09  Gary Funck  <gary@intrepid.com>
1946         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1947         a 32-bit target, the size expression overflowed, the result was
1948         error_mark_node, and an ICE was triggered on an attempt to evaluate
1949         C_TYPE_VARIABLE_SIZE() on the error node.
1950         (upc_blocksizeof_expr, upc_blocksizeof_type,
1951         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1952         Make similar changes to avoid further processing of error_mark_node.
1954 2011-06-07  Gary Funck  <gary@intrepid.com>
1956         * sel-sched.c (move_op): Incorporate the following
1957         patch to eliminate ICE at -O3 on IA64/Altix.
1959 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1961         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1962         code_motion_path_driver returned 0 or 1.
1963         (sel_region_finish): Clear h_d_i_d.
1965 2011-06-02  Gary Funck  <gary@intrepid.com>
1967         Merge trunk version 174558 into gupc branch.
1969 2011-05-30  Gary Funck  <gary@intrepid.com>
1971         * configure.ac: Make the default order of the virtual
1972           address field in a UPC pointer-to-shared to be "first".
1973           This reverts to the previous setting, and is a short term
1974           measure to work around a bug found on the IA64,
1975           where vaddr=last led to incorrect code generation.
1976           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1977           in AC_DEFINE(), to agree with recent changes in files
1978           that reference this define.
1979           configure, config.in: Regenerate.
1981 2011-05-26  Gary Funck  <gary@intrepid.com>
1983         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1984           configure: Regenerate.
1986         * ../fixincludes/fixincl.x: Revert to trunk.
1987           This file is auto-generated, and should not be merged.
1989 2011-05-18  Gary Funck  <gary@intrepid.com>
1991         Merge trunk version 173845 into gupc branch.
1993 2011-05-17  Gary Funck  <gary@intrepid.com>
1995         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1996           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1998         * c-family/c-pragma.c: Remove conditional compilation
1999           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
2000           Test 'compiling_upc' when compiling to determine if
2001           the "upc" and "pupc" pragmas should be registered.
2003         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2004           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2005           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2006           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2007           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2008           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
2009           Move these target-dependent definitions from config/upc-conf.h
2010           to here.
2012         * configure.ac: Improve the logic for UPC-related options.
2013           Delete references to pre-processor definitions that have
2014           been moved to "upc/upc-pts.h".
2016         * configure, config.in: Regenerate.
2018         * Makefile.in (UPC_PTS_REP): Remove definition and revert
2019           to trunk.  This substitution variable was used to
2020           configure the representation-specific versions of
2021           the tree rewrites that operate on UPC pointer-to-shared
2022           types and objects.
2024         * c-parser.c (c_parser_upc_forall_statement): Remove
2025           reference to UPC_FORALL_DEPTH_NAME, and call
2026           newly defined upc_rts_forall_depth_var() instead.
2028         * config/upc-config.h: Delete. Various definitions
2029           moved to "upc/upc-rts-names.h", "defaults.h", and
2030           "upc/upc-pts.h".
2032         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
2033           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
2034           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
2035           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
2036           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
2037           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
2038           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
2039           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
2040           New.  Document UPC target macros.
2041           doc/tm.texi: Regenerate.
2043 2011-05-07  Gary Funck  <gary@intrepid.com>
2045         * ../configure.ac: Disable build of libupc
2046           on non POSIX hosted systems.  Use AS_HELP_STRING
2047           to define messages.  Remove 'word-pair' as a
2048           possible --with-upc-pts UPC pointer-to-shared
2049           representation.
2051         * ../configure: Regenerate.
2053         * configure.ac: Use AS_HELP_STRING to define messages.
2054           Remove 'word-pair' as a possible --with-upc-pts
2055           UPC pointer-to-shared representation.
2056           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
2057           (UPC_MAX_BLOCK_SIZE): Correct the default value.
2059         * configure: Regenerate.
2061         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
2062           definition.
2064         * ChangeLog.upc: Fix some typos.
2066 2011-05-07  Gary Funck  <gary@intrepid.com>
2068         * ../maintainer-scripts/gcc_release: Add "upc"
2069           as one of the released languages.
2071 2011-05-06  Gary Funck  <gary@intrepid.com>
2073         Eliminate compilation warnings, by fixing
2074         #include's and updating function prototypes.
2076         * c-family/c-cppbuiltin.c: Include c-upc.h.
2078         * optabs.c (gen_libfunc): Change type of 'suffix'
2079           parameter to conform with prototype.
2081         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2082           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2083           hook used by UPC.
2085         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2086           the prototype.
2088         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2089           argument values to cp_gimplify_expr.
2091         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2092           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
2093           pre-processor definitions that are no longer
2094           needed to build the 'upc' command (upc-cmd.c)
2095           because the linker specs. defined in libupc
2096           take care of linking in the needed libraries.
2098         * c-parser.c (c_parser_upc_forall_statement):
2099           initialize affinity_loc to avoid "maybe unused" warning.
2100           (c_parser_upc_sync_statement): Remove un-needed
2101           'ret' variable.  Cast return value from
2102           'upc_build_sync_stmt' to 'void' to avoid
2103           compile-time warning.
2105         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2106           integer constant, not a string.  Range is restricted
2107           to maximum positive 32-bit integer (2+ billion) to
2108           fit in with the use of 'int' in the front-end's
2109           switch handling logic.
2111 2011-05-06  Gary Funck  <gary@intrepid.com>
2113         Upgrade c-family source files to conform with modularity
2114         improvements.  Mainly, remove #include of c-tree.h in files
2115         under c-family, and define a new UPC-specific #include file,
2116         c-upc.h, and use it.
2118         * c-family/stub-upc.c: Remove #include of c-tree.h and
2119           upc/upc-act.h.  Replace with #include of c-common.h
2120           and c-upc.h.
2121           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2122           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2123           upc_localsizeof_expr, upc_localsizeof_type,
2124           upc_shared_type_p): Delete.
2126         * c-family/c-opts.c: Add #include of c-upc.h
2128         * c-family/c-common.c: Remove #include of c-tree.h and
2129           add #include of c-upc.h.
2131         * c-family/c-upc.h: New. Define API for UPC-specific functions
2132           (mostly implemented in upc/upc-act.c).
2134         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2135           Remove extern definitions.
2137         * c-family/c-pragma.c: Remove #include of c-tree.h.
2138           Add #include of c-upc.h.
2140         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
2141           c-tree.h.
2142           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
2143           upc/upc-act.c, and define as a macro.
2144           (expand_affinity_test): Remove unused external definition.
2145           (build_upc_unshared_type): Add external definition.
2146           (upc_shared_type_p): Remove external definition.
2148         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2150         * dojump.c: Remove #include of c-tree.h.
2152         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2153           and move to tree.h.
2154           (count_upc_threads_refs, is_multiple_of_upc_threads,
2155           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2156           upc_build_shared_var_addr, upc_build_sync_stmt,
2157           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2158           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2159           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2160           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2161           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2162           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2163           set_upc_consistency_mode, get_upc_consistency_mode,
2164           push_upc_consistency_mode, pop_upc_consistency_mode,
2165           get_upc_pupc_mode):
2166           Move external definitions to c-family/c-upc.h.
2167           (upc_blocksizeof_type, upc_localsizeof_type,
2168           upc_elemsizeof_type): Remove external definitions;
2169           these functions were moved to c-parser.c.
2171         * c-decl.c: Add #include of c-upc.h.
2173         * c-typeck.c: Add #include of c-upc.h.
2175         * c-convert.c: Add #include of c-upc.h.
2177         * ChangeLog.upc: Fix typo.
2179         * Makefile.in: Add references to c-family/c-upc.h, everywhere
2180           there is a reference to c-family/c-objc.h.
2181           Remove extraneous reference to upc-act.h.
2183         * c-parser.c: Add #include of c-upc.h.
2184           (upc_blocksizeof_expr, upc_blocksizeof_type,
2185           upc_elemsizeof_expr, upc_elemsizeof_type,
2186           upc_localsizeof_expr, upc_localsizeof_type):
2187           Move from upc/upc-act.c.
2189         * tree.c (build_upc_unshared_type): New.
2190           Move upc_get_unshared_type from upc/upc-act.c and rename
2191           to build_upc_unshared_type.
2192           c-family/c-common.c (pointer_int_sum): refer to renamed
2193           build_upc_unshared_type function.
2194           c-convert.c (convert): Ditto.
2195           convert.c (convert_to_pointer): Ditto.
2196           c-typeck.c (build_unary_op, build_modify_expr,
2197           really_start_incremental_init): Ditto.
2198           gimplify.c (create_tmp_var_raw): Ditto.
2199           tree.c (build1_stat): Ditto.
2200           tree.h (upc_get_unshared_type): Rename to
2201           build_upc_unshared_type.
2203 2011-05-06  Gary Funck  <gary@intrepid.com>
2205         Merge trunk version 173471 into gupc branch.
2207 2011-05-05  Gary Funck  <gary@intrepid.com>
2209         Make changes that bring the GUPC branch more closely in sync.
2210         with the GCC trunk.  Revert any fixes that are not UPC-specific.
2211         Remove gratuitous re-formatting.
2213         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2214           This file should have been removed in a previous merge
2215           with the trunk.
2216         * ../configure.ac: Remove Cray Catamount/CNL support.
2217         * ../configure: Regenerate.
2218         * ../config.sub: Remove Cray Catamount/CNL support.
2219         * config.gcc: Remove Cray Catamount/CNL support.
2220         * ../maintainer-scripts/gcc_release: Revert to trunk.
2221         * c-family/c-common.h: Define parse_optimize_options.  Its definition
2222           was missed in a previous merge with the trunk.
2223         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2224           procedure.
2225         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2226           in addition to ARRAY_TYPE.
2227         * c-typeck.c: Remove an extra newline character.
2228         * varasm.c: Revert a fix that improved an error message
2229           when TLS common data is unimplemented.
2230         * varasm.c: Revert a gcc_assert that had been added which
2231           checked for a null DECL_SIZE_UNIT field.
2232         * emultls.c: Revert to trunk. Remove possible fix.
2233         * Makefile.in: Revert extra blank line that is present
2234           in the trunk version.
2235         * Makefile.in: Revert a fix that handled long shell
2236           argument lists for plugin headers.
2237         * config/ia64/ia64.opt: Revert an option setting
2238           that increased the default TLS address range.
2239         * config/ia64/crtbegin.asm: Revert to trunk.
2240           Removes an extra newline character.
2241         * ChangeLog.upc: Spell check.
2243 2011-05-03  Gary Funck  <gary@intrepid.com>
2245         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2246           (c_apply_type_quals_to_decl): Ditto.
2247         * c-family/c-common.h: Ditto.
2248         * dojump.c: Ditto.
2249         * c-decl.c (merge_decls): Ditto.
2250         * c-typeck.c (qualify_type, default_conversion,
2251           build_component_ref, build_unary_op,
2252           c_build_qualified_type): Ditto.
2253         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2255 2011-04-29  Gary Funck  <gary@intrepid.com>
2257         * c-decl.c (finish_decl): Improve error diagnostics.
2258           (grokdeclarator): Ditto.
2260         * c-typeck.c (build_c_cast): Improve error diagnostics.
2261           (convert_for_assignment): Ditto.
2262           (build_binary_op): Ditto.
2264         * c-parser.c (c_parser_upc_forall_statement):
2265           Improve error diagnostics.
2267         * convert.c (convert_to_integer):  Improve error diagnostics.
2269 2011-04-24  Gary Funck  <gary@intrepid.com>
2271         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2272           occurred if there is an error in the barrier id
2273           expression.  Map error_mark_node into NULL.
2275 2011-04-22  Gary Funck  <gary@intrepid.com>
2277         Merge trunk version 172873 into gupc branch.
2279 2011-04-19  Gary Funck  <gary@intrepid.com>
2281         Merge trunk version 172359 into gupc branch.
2283 2011-04-14  Gary Funck  <gary@intrepid.com>
2285         * c-family/c.opt: Add UPC as a valid language for various
2286           switches where it is valid for "C", that were not updated
2287           in previous merges with trunk.
2289 2011-04-13  Gary Funck  <gary@intrepid.com>
2291         * c-family/c.opt (fupc-pre-include): New option definition.
2292         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2293           -fno-upc-pre-include is asserted.
2295 2011-04-07  Gary Funck  <gary@intrepid.com>
2297         Merge trunk version 172158 into gupc branch.
2298         to bring in the following fix.
2300 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2302         PR bootstrap/48403
2303         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2304         if old and new states differ.
2306 2011-04-06  Gary Funck  <gary@intrepid.com>
2308         Merge trunk version 171966 into gupc branch.
2310 2011-04-01  Gary Funck  <gary@intrepid.com>
2312         * tree.h (tree_base): Move UPC flag bits into bit fields
2313           located just before spare bits.  Decrement spare bits.
2314           Rename 'shared_flag' -> 'upc_shared_flag',
2315           'relaxed_flag' -> 'upc_relaxed_flag',
2316           'strict_flag' -> 'upc_strict_flag, and adjust macros
2317           that reference them accordingly.
2319 2011-04-01  Gary Funck  <gary@intrepid.com>
2321         * c-decl.c (grokdeclarator): Fix formatting of
2322           code that sets UPC block size on scalars.
2324 2011-04-01  Gary Funck  <gary@intrepid.com>
2326         * c-decl.c (grokdeclarator): Revert use of white space
2327           to match the trunk (to rationalize diffs).
2328         * c-typeck.c (convert_for_assignment): Ditto.
2329         * tree-ssa.c (useless_type_conversion_p): Ditto.
2331 2011-03-23  Gary Funck  <gary@intrepid.com>
2333         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2334           the GCC 4.6 release branch.
2336 2011-03-21  Gary Funck  <gary@intrepid.com>
2338         Merge trunk version 171202 into gupc branch.
2340 2011-03-20  Gary Funck  <gary@intrepid.com>
2342         * varasm.c: Call error() directly with a format specifier,
2343           rather than using sprintf() to format the message.
2344           This should make it easier to internationalize UPC's error messages.
2346 2011-03-20  Gary Funck  <gary@intrepid.com>
2348         * configure.ac: Fix the check for gnu ld when enabling
2349           UPC link script support.
2350           configure: Regenerate (also picks up changes from previous
2351           merge with trunk).
2353 2011-03-20  Gary Funck  <gary@intrepid.com>
2355         Move UPC start files, end files, and linker specs.
2356         into libupc.  This reduces the impact on common GCC
2357         configuration files, and ensures that these UPC-specific
2358         components are only built when the UPC language dialect is selected.
2360 gcc/
2361         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2362           linker specs. Fix typo in -fupc-debug message.
2364         * config/upc-conf.h, config/darwin.h: Move defines for
2365           UPC-related section begins/ends into libupc/config/default/
2366           upc-crt-config.h.
2368         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2369           UPC-related linker compiler specifications,
2370           accessed via %:include().
2372         * configure.ac, configure: Remove logic related to building
2373           upc-crtbegin/end. Remove config. tests for numa and cpu
2374           affinity (previously used by the 'upc' driver); these
2375           settings are now propagated by target-specific compiler
2376           specs. built by libupc.  Regenerate autoconf.
2378         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2379           linker compiler specifications, accessed via %:include().
2380           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2381           'link_upc_spec'.
2383         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2385         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2386           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2387           config/ia64/linux.h, config/mips/t-iris,
2388           config/mips/iris6.h: Revert to trunk version 167307.
2390 libgcc/
2391         * configure, configure.ac, config.host, Makefile.in:
2392           Revert to trunk version 167307.
2394 2011-02-23  Gary Funck  <gary@intrepid.com>
2396         * c-decl.c (undeclared_variable): fix typo. Inadvertently
2397         removed negation on following 'if'.
2399 2011-02-22  Gary Funck  <gary@intrepid.com>
2401         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2402         to check for the usage of certain deprecated UPC keywords.
2403         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2404         * c-tree.h (undeclared_variable): Define prototype.
2406 2011-02-12  Gary Funck  <gary@intrepid.com>
2408         * c-typeck.c: (build_c_cast, convert_for_assignment)
2409           Diagnose an attempt to convert from an integer to
2410           a pointer-to-shared as an error.  Also, fix various
2411           error messages so that they use the preferred term
2412           pointer-to-shared instead of "shared pointer".
2414 2011-02-07  Gary Funck  <gary@intrepid.com>
2416         * c-typeck.c: (convert_for_assignment)
2417           Fix typo. in error message.
2419 2011-01-23  Gary Funck  <gary@intrepid.com>
2421         * c-typeck.c: (c_build_qualified_type)
2422           derive UPC block size by calling upc_get_block_size(),
2423           to ensure that the element type of an array of an array
2424           is derived correctly.
2426 2010-12-29  Gary Funck  <gary@intrepid.com>
2428         Merge trunk version 168314 into gupc branch.
2430 2010-12-15  Gary Funck  <gary@intrepid.com>
2432         Merge trunk version 167307 into gupc branch.
2434 2010-10-19  Gary Funck  <gary@intrepid.com>
2436         * c-typeck.c: Fix typo in previous fix
2437           which led to a mis-compare for equal block sizes.
2439 2010-10-18  Gary Funck  <gary@intrepid.com>
2441         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2442           diagnosed as an error
2444           The conversion from any type (shared or not) to
2445           a shared type is likely either meaningless or an error.  This update
2446           makes any conversion to a shared type, an error.
2448 2010-10-18  Gary Funck  <gary@intrepid.com>
2450         * c-typeck.c: Fix bug: passing int to shared pointer arg.
2451           generates spurious warning
2453           Add a #define procedure that does the same thing as
2454           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
2455           this procedure to diagnose passing an integer value to a
2456           pointer-to-shared as an error.
2458 2010-10-18  Gary Funck  <gary@intrepid.com>
2460         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2461           matching routine declaration.
2463           When checking for type compatibility, shared qualified types must
2464           have the same block factor.  This check was missing from
2465           comptypes_internal().  This update adds the check for blocking
2466           factor equality.
2468 2010-10-17  Gary Funck  <gary@intrepid.com>
2470         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2471           found (-O1 -g)
2473           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2475 2010-10-17  Gary Funck  <gary@intrepid.com>
2477         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2478           45869 - [4.5/4.6 Regression] type mismatch in shift expression
2479           produces ice with -O3 and -m32.
2481           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2483 2010-10-17  Gary Funck  <gary@intrepid.com>
2485         * c-common.c: Diagnose the application of the various "*sizeof"
2486           operations on generic pointer-to-shared as a compilation error.
2488 2010-10-17  Gary Funck  <gary@intrepid.com>
2490         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2491           message regarding a function parameter being declared with a shared
2492           qualifier.
2494           The parameter's 'name' value is not defined at this point, and
2495           cannot be used in the error message.  This update removes the
2496           reference to 'name', and eliminates the segfault.
2498 2010-10-16  Gary Funck  <gary@intrepid.com>
2500         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2502           The gcc/Makefile.in rules for install-plugin had to be re-written to
2503           break up a long list of header files that exceeded the command line
2504           limitation imposed by Irix.
2506           Access functions for TFmode types had to be implemented.
2507           Apparently, this is the mode used for the SGI/MIPS port to represent
2508           "long float".
2510 2010-10-14  Gary Funck  <gary@intrepid.com>
2512         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2513           via typedef chain should not be diagnosed as an error.
2515           If the block size that is given by the typedef is equal to the block
2516           size given explicitly in the variable declaration, then do not
2517           complain.  The easiest way to make this check was to create a
2518           temporary type that is a clone of the element type and then set its
2519           block size using the given layout qualifier.  Then compare the block
2520           size of the temporary (the declaration) to the block size specified
2521           in the typedef.  This complexity is needed, because the '[*]' block
2522           size needs to be calculated, and the '[]' needs to be mapped into a
2523           zero block size.
2525 2010-10-10  Gary Funck  <gary@intrepid.com>
2527         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2528           specified
2530           The compiler properly detected the presence of two or more layout
2531           qualifiers as an error, but then hit an assertion check, because the
2532           code that followed the error expected to see a qualifier and not a
2533           layout specifier.  The fix is simple: just return immediately after
2534           detecting the error.
2536 2010-10-10  Gary Funck  <gary@intrepid.com>
2538         * c-decl.c: Improve error diagnostics for various cases of UPC
2539           shared array type declarations.
2541           Add the check for this error: "In the dynamic translation
2542           environment, THREADS may not appear in declarations of shared arrays
2543           with indefinite block size".  Also, fix up a few of the other
2544           related error diagnostics.
2546 2010-10-09  Gary Funck  <gary@intrepid.com>
2548         * c-common.c: Fix bug: segfault on incomplete array definition.
2550           This turned out to be a bit complicated.   The logic in
2551           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2552           the THREADS identifier in the case where the blocking factor has
2553           been set to indefinite ([]).  This can happen when indefinite array
2554           declarations are processed for shared arrays.  At that time, the
2555           file scope has been closed and THREADS is no longer in scope.  Some
2556           more work is needed on upc_lang_layout_decl().  It has some
2557           duplication, and notably duplicates the two branches of the if
2558           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2559           caller of this routine (layout_decl()).
2561           The method of forcing a layout qualifier of [] in the indefinite
2562           declaration handler is odd a well.  The code that just does the
2563           setting of the block factor, needs to moved into its own routine
2564           that doesn't depend upon a declspec for '[]' to be passed in, just
2565           in order to set the blocking factor to some value (in this case, 0).
2566           Also, the logic for how that shared type is constructed is strange.
2567           First the type with 0 blocking factor is set.  Then the shared
2568           qualifier is removed from the type, and then added back later.  The
2569           intermediate type has a blocking factor set, but it has no shared
2570           qualifier.  Fixing this will require some thought.  It is tempting
2571           just to make indefinite shared arrays an error, rather than forcing
2572           the dimension to be '1'.
2574           This likely fixes a serious error in the previous update to
2575           upc_lang_layout_decl(), where it didn't have the logic to set
2576           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2577           the previous update would fail on many tests.
2579 2010-10-09  Gary Funck  <gary@intrepid.com>
2581         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2582           (decl) is null, which can happen if some layout error occurred
2583           upstream.
2585 2010-10-09  Gary Funck  <gary@intrepid.com>
2587         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2588           "variable-sized" when compiled in dynamic threads.
2590           This long-standing bug is easily fixed.  Just check
2591           for the situation that the non-constant sized type is shared and
2592           that it does not have a dimension that references a multiple of
2593           threads.  If this criteria is met, then issue a meaningful
2594           diagnostic.
2596 2010-10-01  Gary Funck  <gary@intrepid.com>
2598         * configure, configure.ac: Update manual page, and bug reporting
2599           URL.
2601           Update "man" page to reflect debugging switches.  Also, some general
2602           clean up.  Change the bug reporting URL to point to gccupc.org.
2604 2010-09-27  Gary Funck  <gary@intrepid.com>
2606         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2607           the UPC forall depth count variable is not found.
2609           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2610           The compiler will generate code that references this variable in
2611           order to implement nested upc_forall semantics.  If there is a
2612           compiler build or install problem, this variable may not be found.
2613           In this case, terminate with an internal_error().
2615 2010-09-26  Gary Funck  <gary@intrepid.com>
2617         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2618           mis-diagnosed as syntax error.
2620           Fix a failure exhibited by the Berkeley test case,
2621           bug873a.upc, which has the code:
2622                double d;
2623                upc_forall (;;;d) {...} The compiler did not properly handle
2624           the empty "condition" clause, and did not recover well when it was
2625           determined that the use of a double value, "d" above, was neither a
2626           pointer-to-shared nor an integer expression.  The update implements a
2627           fix for both issues.
2629           See also: gcc/c-parser.c gcc/upc/upc-act.c
2631 2010-09-23  Gary Funck  <gary@intrepid.com>
2633         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2634           incorporated into the referencing type.
2636           This was semi-fixed a few times before.  This update fixes a few
2637           more places where the layout qualifier wasn't being propagated
2638           through typedef's properly.  What made this a bit tricky is shown in
2639           the example cited in the bug report:
2641           typedef shared [5] int A_t; A_t A[5*THREADS];
2643           In the typedef, the blocksize is being applied to a shared *scalar*,
2644           and the code was applying the blocksize only to arrays.  This update
2645           handles shared scalars correctly.
2647 2010-09-22  Gary Funck  <gary@intrepid.com>
2649         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2650           upc_forall() semantics are not implemented
2652           The checkforall test in the Berkeley harness test suite indicated
2653           that GCC/UPC was not properly implementing nested upc_forall
2654           semantics.  Nested upc_forall statements (both statically or
2655           dynamically nested) must implement their affinity clause as if it
2656           were "continue"; thus all steps in the loop must execute without
2657           regard for affinity.  To implement these semantics a global depth
2658           counter, __upc_forall_depth, is maintained by the generated code
2659           that implements upc_forall.
2661           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2662           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2663           libupc/include/upc.h libupc/smp/upc_main.c
2665 2010-09-19  Gary Funck  <gary@intrepid.com>
2667         * c-decl.c: c-decl.c: zero out the layout specifier, after
2668           processing an array type.
2670           Fix the previous fix, that moved the setting of the type's layout
2671           qualifier to the outside of the array type processing loop.  What is
2672           missing from the fix is that the layout_qualifier variable needs to
2673           be cleared after setting the type's blocksize.
2675 2010-09-19  Gary Funck  <gary@intrepid.com>
2677         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2678           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2680           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2681           the actual maximum block size.  Therefore, the message was correct,
2682           but the underlying value that was being checked was wrong.  Change
2683           the values so that they agree with the actual implementation-defined
2684           limit.
2686 2010-09-11  Gary Funck  <gary@intrepid.com>
2688         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2689           multi-dimensional shared array with dynamic threads.
2691           This declaration caused an internal compiler error when compiled
2692           with dynamic threads:
2693               shared [*] int A[THREADS][16]; The bug was discovered when
2694           compiling the RTED_UPC test suite.
2696           The fix is to process layout qualifiers after the entire array type
2697           has been built.  Otherwise, we try to calculate the blocksize on a
2698           shared array type that has not had its "size depends upon the value
2699           of THREADS" flag set.
2701           Also, added a test case.
2703           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2705 2010-07-11  Gary Funck  <gary@intrepid.com>
2707         Fix a bug where a statement in c_build_qualified_type()
2708         in the trunk had been inadvertently deleted.
2709         This bug showed up in the IA64 port, because jmpbuf's
2710         on that architecture must be 16 byte aligned, and they were not.
2711         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2713 2010-07-08  Gary Funck  <gary@intrepid.com>
2715         Make changes so that other language compilers
2716         will build and bootstrap.
2717         * c-family/c-common.c (compiling_upc, flag_upc,
2718         flag_upc_instrument, flag_upc_instrument_functions,
2719         use_upc_dwarf2_extensions): Move to stub-upc.c and
2720         upc-lang.c.
2721         * c-family/c-common.h (use_upc_dwarf2_extensions,
2722         compiling_upc): Add extern definitions - needed
2723         to compile/build other language front ends.
2724         * c-family/c.opt: Fix the spelling of ObjC.
2725         It had been incorrectly spelled as Objc.
2726         * c-family/c.opt: Add UPC for the various switches
2727         that are valid for both C and ObjC.
2728         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2729         supported options switches when compiling assembly
2730         language.
2731         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2732         flag_upc_instrument, flag_upc_instrument_functions):
2733         Remove these definitions.  They have been moved
2734         to c-family/stub-upc.c.
2735         * upc/ChangeLog: Move relevant entries
2736         to ChangeLog.upc.
2737         * c-family/stub-upc.c (compiling_upc, flag_upc,
2738         flag_upc_instrument, flag_upc_instrument_functions,
2739         use_upc_dwarf2_extensions): Moved from c-common.c
2740         * upc/upc-lang.c (compiling_upc, flag_upc,
2741         flag_upc_instrument, flag_upc_instrument_functions,
2742         use_upc_dwarf2_extensions): Moved from c-common.c
2743         * objc/objc-act.c (objc_gimplify_expr): Add additional
2744         parameters to c_gimplify_expr() call, that are used
2745         by upc's tree rewrites.
2746         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2747         * gcc/cp/lex.c (init_reswords): If not compiling
2748         UPC, then mask off the UPC keywords.
2749         * cp/Make-lang.in (C_STUB_OBJS): Use this
2750         make macro to link with c-family/stub-objc.o
2751         and c-family/stub-upc.o.
2752         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2753         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2754         * objc/Make-lang.in: Link with c-family/stub-upc.o
2755         to avoid undefined references.
2756         c-parser.c: Fix line indentation.
2757         * libcpp/include/cpplib.h: Remove CL_UPC from
2758         the list of language kinds accepted by the
2759         C preprocessor.  This is not necessary because
2760         UPC is a derivative of C99, and does not need
2761         a different language kind.
2762         * c-fmaily/c-opts.c (c_common_handle_option):
2763         Call set_std_c99() when processing the
2764         "--lang upc" switch, instead of setting the
2765         language kind to CL_UPC.
2766         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2768 2010-07-03  Gary Funck  <gary@intrepid.com>
2770         Merge trunk version 161517 into gupc branch.
2771         * gcc/stub-upc.c: Move to gcc/c-family/.
2772         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2773         Add 'unused' attributes to avoid "set, but
2774         not referenced" warnings.
2775         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2776         Likewise.
2778 2010-03-01 Gary Funck  <gary@intrepid.com>
2780         Create gupc branch from trunk version 157149.