Merge trunk version 194076 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blob66b01732a248ea4c8e7fe913f582e23c1176d769
1 2012-12-03 Gary Funck  <gary@intrepid.com>
3         Merge trunk version 194076 into gupc branch.
5 2012-11-30  Gary Funck  <gary@intrepid.com>
7         Released GUPC 4.8.0.2 based on version 193446.
8         Date of release: 2012-11-12.
9         * DEV-PHASE: Bump release identifier to 4.8.0-3.
10         * DATESTAMP: Bump date stamp.
12 2012-11-26 Gary Funck  <gary@intrepid.com>
14         Merge trunk version 193807 into gupc branch.
16 2012-11-20 Gary Funck  <gary@intrepid.com>
18         Merge trunk version 193672 into gupc branch.
20 2012-11-19 Gary Funck  <gary@intrepid.com>
22         Merge trunk version 193617 into gupc branch.
24 2012-11-15 Gary Funck  <gary@intrepid.com>
26         Merge trunk version 193426 into gupc branch.
28 2012-11-12  Gary Funck  <gary@intrepid.com>
30         Released GUPC 4.8.0.1 based on version 192948.
31         Date of release: 2012-10-29.
32         * DEV-PHASE: Bump release identifier to 4.8.0-2.
33         * DATESTAMP: Bump date stamp.
35 2012-11-05 Gary Funck  <gary@intrepid.com>
37         Merge trunk version 193152 into gupc branch.
39 2012-10-29 Gary Funck  <gary@intrepid.com>
41         Merge trunk version 192909 into gupc branch.
43 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
45         Remove unused --upc-pthreads-per-process compile switch. 
46         * c-family/c.opt: Remove --upc-pthreads-per-process switch
47         that compiler/runtime do not use.
48         * c-family/c-opts.c (c_common_handle_option): Remove support for
49         --upc-pthreads-per-process switch.
50         * c-family/c-common.c: Ditto.
51         * c-family/c-common.h: Ditto.
53 2012-10-27 Gary Funck  <gary@intrepid.com>
55         * defaults.h: fix typos and formatting in UPC-related entries.
57 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
59         Place shared initialization code into the .text
60         section instead of a separate .upc_init section.
61         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
62         (UPC_INIT_BEGIN_NAME): Delete.
63         (UPC_INIT_END_NAME): Delete.
64         * doc/tm.texi.in: Ditto.
65         * doc/tm.texi: Ditto.
67 2012-10-22 Gary Funck  <gary@intrepid.com>
69         Merge trunk version 192673 into gupc branch.
71 2012-10-15 Gary Funck  <gary@intrepid.com>
73         Merge trunk version 192449 into gupc branch.
75 2012-10-08 Gary Funck  <gary@intrepid.com>
77         Merge trunk version 192198 into gupc branch.
79 2012-10-01 Gary Funck  <gary@intrepid.com>
81         Merge trunk version 191931 into gupc branch.
83 2012-09-26  Gary Funck  <gary@intrepid.com>
85         Implement support for various UPC version 1.3 specification
86         additions and changes. Deprecate support for upc_local_alloc.
87         Add support for upc_tick (wall-clock timer) library.
88         Add support for collective de-allocation functions:
89         upc_all_free and upc_all_lock_free.
90         Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
91         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
93 2012-09-24 Gary Funck  <gary@intrepid.com>
95         Merge trunk version 191658 into gupc branch.
97 2012-09-17  Gary Funck  <gary@intrepid.com>
99         Merge trunk version 191376 into gupc branch.
101 2012-09-10  Gary Funck  <gary@intrepid.com>
103         Merge trunk version 191141 into gupc branch.
105 2012-08-27  Gary Funck  <gary@intrepid.com>
107         Merge trunk version 190707 into gupc branch.
108         * tree.h (struct tree_base): Adjust various
109         UPC tree and type flags to refer to the
110         newly introduced u.bits field.
112 2012-08-20  Gary Funck  <gary@intrepid.com>
114         Merge trunk version 190524 into gupc branch.
115         Incorporates a fix in genoutput.c (to properly use
116         CONST_CAST) that led to build failures with
117         older versions of g++.
119 2012-08-16  Gary Funck  <gary@intrepid.com>
121         Merge trunk version 190437 into gupc branch.
122         Incorporates a fix for a build failure on the PPC
123         due to passing incorrect switches to the assembler.
124         Also, first merged trunk revision that compiles GCC
125         with the C++ compiler in the first stage.
127 2012-08-13  Gary Funck  <gary@intrepid.com>
129         Merge trunk version 190336 into gupc branch.
131 2012-08-09  Gary Funck  <gary@intrepid.com>
133         * c-family/c-common.c (c_fully_fold_internal): Do not fold
134         offsetof-like expressions when they are applied to UPC
135         shared types.
137 2012-08-06  Gary Funck  <gary@intrepid.com>
139         Merge trunk version 190173 into gupc branch.
141 2012-08-01  Gary Funck  <gary@intrepid.com>
143         Merge trunk version 190063 into gupc branch.
144         Incorporates fix for build failure on IA64.
146 2012-07-30  Gary Funck  <gary@intrepid.com>
148         Merge trunk version 189954 into gupc branch.
150 2012-07-27  Gary Funck  <gary@intrepid.com>
152         Merge trunk version 189856 into gupc branch.
153         Incorporates fix for bootstrap with a sub-set of language
154         specific source directories present.
155         * optabs.c: Revert to trunk.  Rather than defining opcodes
156         as a way of defining get/put runtime library function names,
157         generate them directly in gcc/upc/upc-genericize.c.
158         * optabs.h: Ditto.
159         * genopinit.c: Ditto.
161 2012-07-23  Gary Funck  <gary@intrepid.com>
163         Merge trunk version 189777 into gupc branch.
165 2012-07-16  Gary Funck  <gary@intrepid.com>
167         Merge trunk version 189545 into gupc branch.
169 2012-07-12  Gary Funck  <gary@intrepid.com>
171         Merge trunk version 189366 into gupc branch.
173 2012-07-05  Gary Funck  <gary@intrepid.com>
175         Merge trunk version 189274 into gupc branch.
176         Incorporates graphite build infrastructure changes.
178 2012-07-04  Gary Funck  <gary@intrepid.com>
180         Merge trunk version 189080 into gupc branch.
181         * Makefile.in: Adjust for move of C front-end files.
182         * c/Make-lang.in: Ditto.
184 2012-07-03  Gary Funck  <gary@intrepid.com>
186         Merge trunk version 189078 into gupc branch.
188 2012-06-25  Gary Funck  <gary@intrepid.com>
190         Merge trunk version 188931 into gupc branch.
192 2012-06-18  Gary Funck  <gary@intrepid.com>
194         Merge trunk version 188721 into gupc branch.
196 2012-06-11  Gary Funck  <gary@intrepid.com>
198         Merge trunk version 188380 into gupc branch.
200 2012-06-04  Gary Funck  <gary@intrepid.com>
202         Merge trunk version 188168 into gupc branch.
204 2012-05-29  Gary Funck  <gary@intrepid.com>
206         Merge trunk version 187927 into gupc branch.
208 2012-05-18  Gary Funck  <gary@intrepid.com>
210         Merge trunk version 187666 into gupc branch.
211         Incorporates fix for ICE in tree vectorization pass
212         when processing strided loads.
214 2012-05-17  Gary Funck  <gary@intrepid.com>
216         Merge trunk version 187578 into gupc branch.
218 2012-05-09  Gary Funck  <gary@intrepid.com>
220         Merge trunk version 187347 into gupc branch.
221         Incorporates fix for segfault in tree vectorization pass.
223 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
225         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
226         Appropriate libraries and include files are added on the
227         command line to make it possible to compile with the driver
228         from the build tree.
230 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
232         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
233         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
234         a function returns a pointer-to-shared in memory instead
235         of in registers.
236         (rs6000_pass_by_reference): Ditto.
238 2012-04-28  Gary Funck  <gary@intrepid.com>
240         * c-decl.c (grokdeclarator): Set 'type' to error node
241         after detecting "shared auto variable" error to avoid
242         downstream complications.
243         * upc-act.c: Fix a couple of spelling errors in comments.
245 2012-04-26  Gary Funck  <gary@intrepid.com>
247         * c-family/c-pragma.c (handle_pragma_upc):
248         Fix typo in warning message.
250 2012-04-17  Gary Funck  <gary@intrepid.com>
252         Merge trunk version 186486 into gupc branch.
254 2012-04-17  Gary Funck  <gary@intrepid.com>
256         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
257         value of the pupc mode.  Fixes a compile-time warning.
258         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
259         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
260         Improve source formatting.
262 2012-04-09  Gary Funck  <gary@intrepid.com>
264         Merge trunk version 186243 into gupc branch.
265         Incorporates a powerpc 'ffi' fix.
267 2012-03-16  Gary Funck  <gary@intrepid.com>
269         Merge trunk version 185454 into gupc branch.
270         Incorporates a libgcc fix for builds on Darwin.
272 2012-03-13  Gary Funck  <gary@intrepid.com>
274         Merge trunk version 185278 into gupc branch.
275         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
276         call build_pointer_type() to apply UPC-specific qualifiers.
277         * top-level/configure.ac: factor the checking for posix hostst
278         out of the libgomp section so that it can also be used by libgupc.
279         * top-level/configure: Re-generate.
280         * DEV-PHASE: bump to 4.8.0-1.
282 2012-03-12  Gary Funck  <gary@intrepid.com>
284         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
285         the mode for a pointer for upc-pointer-to-shared types.
287 2012-03-04  Gary Funck  <gary@intrepid.com>
289         Merge trunk version 184900 into gupc branch.
291 2012-02-17  Gary Funck  <gary@intrepid.com>
293         Released GUPC 4.7.0.2 based on version 183992.
294         * DEV-PHASE: Bump release identifier to 4.7.0-3.
295         * DATESTAMP: Bump date stamp.
297 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
299         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
300         code generation (same as #pragma pupc off).
301         (set_pupc_mode): New. Set/restore profiling mode.
302         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
303         (set_pupc_mode): New. Prototype.
304         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
305         profiling code for shared variables initialization routines.
307 2012-01-31  Gary Funck  <gary@intrepid.com>
309         Merge trunk version 183751 into gupc branch.
310         Incorporates fix for bootstrap failure on openSUSE 12.1.
312 2012-01-10  Gary Funck  <gary@intrepid.com>
314         Merge trunk version 183072 into gupc branch.
315         Incorporates libcpp __BASE_FILE__ fix.
317 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
319         * top-level/Makefile.def (flags_to_pass): Added GUPC
320         defines. Fixes the make error when upc is not specified as one
321         of the languages to build.
322         * top-level/Makefile.in: Re-generate.
324 2011-11-22  Gary Funck  <gary@intrepid.com>
326         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
327         * dwarf2out.c (gen_compile_unit_die): Check for
328         the "GNU UPC" language string in lieu of "GCC UPC".
329         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
331 2011-11-18  Gary Funck  <gary@intrepid.com>
333         Merge trunk version 181552 into gupc branch.
334         Incorporates libgcc/libunwind fix for IA64.
336 2011-11-19  Gary Funck  <gary@intrepid.com>
338         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
339         Add check for UPC when defining the language type value
340         in a traceback entry.
342 2011-11-18  Gary Funck  <gary@intrepid.com>
344         Merge trunk version 181493 into gupc branch.
345         Incorporates final fix for PR target/49992.
347 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
349         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
350         change that converted relative include paths into absolute
351         ones, as it does not work with older version of make (3.80).
353 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
355         Apply patch for Darwin build - PR49992.
356         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
357         * gcc/configure.ac: Ditto.
358         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
359         * gcc/ada/gcc-interface/Makefile.in: Ditto.
360         * top-level/configure: Re-generate.
361         * gcc/configure: Re-genrate.
363 2011-10-26  Gary Funck  <gary@intrepid.com>
365         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
366         "libupc" to "libgupc".
367         * top-level/configure.ac: Implement support for cross-builds, and
368           adjust for rename of libupc to libgupc.
369         * top-level/Makefile.tpl: Ditto.
370         * top-level/Makefile.def: Ditto.
371         * top-level/configure: Re-generate.
372         * top-level/Makefile.in: Re-generate.
373         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
374         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
375         * doc/tm.texi: Re-generate.
376         * tree-pretty-print.c (dump_block_node): Delete unused variable.
377         * gcc.c: Adjust for rename of libupc to libgupc.
378         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
379         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
380         Change "xupc" to "xgupc".
381         * configure.ac: Change "GCC UPC" to "GNU UPC".
382         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
383         so that they are absolute paths.  This is needed because
384         the upc-crtstuff builds are in the libgupc library build
385         directories which are not at the same level as libgcc.
386         * config/darwin.h: Adjust for rename of libupc to libgupc.
388 2011-10-20  Gary Funck  <gary@intrepid.com>
390         Merge trunk version 180276 into gupc branch.
391         Incorporates fix for PR bootstrap/50709.
393 2011-10-20  Gary Funck  <gary@intrepid.com>
395         Merge trunk version 180246 into gupc branch.
397 2011-10-19  Gary Funck  <gary@intrepid.com>
399         Merge trunk version 180233 into gupc branch.
400         Incorporates fix for PR debug/49310 (var tracking).
402 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
404         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
405         only four (O0 static/dynamic, O3 static/dynamic).
406         Detect -fupc-threads-0 as an option for dynamic threads
407         compile environment.
409 2011-10-10  Gary Funck  <gary@intrepid.com>
411         * tree.c (check_qualified_type, check_aligned_type):
412         Call tree_int_cst_equal() to compare UPC blocking factors
413         if the corresponding tree pointers are not equal.
414         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
416 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
418         Add configuration checks for struct/packed builds so we can
419         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
420         * testsuite/lib/target-supports.exp
421         (check_effective_target_upc_struct_pts): New.
422         (check_effective_target_upc_packed_pts): New.
424 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
426         Add to FLAGS the flags needed to disable inlining of
427         UPC run-time access routines.
428         * testsuite/lib/target-supports.exp
429         (add_options_for_upc_library_calls): New.
431 2011-09-15  Gary Funck  <gary@intrepid.com>
433         Fix ICE involving shared bit field accesses.
434         * tree.c (build3_stat): Propagate TEEE_SHARED()
435         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
437 2011-09-13  Gary Funck  <gary@intrepid.com>
439         Merge trunk version 178795 into gupc branch.
440         Incorporates fix to PR bootstrap/50010 for x86-32.
442 2011-09-08  Gary Funck  <gary@intrepid.com>
444         Merge trunk version 178557 into gupc branch.
446 2011-09-07  Gary Funck  <gary@intrepid.com>
448         Ensure that UPC pointer-to-shared type alignment is
449         propagated to the final type.  Revert to long-standing
450         alignment policy: twice the size of a "C" pointer.
451         * tree.c (build_pointer_type): Propagate the alignment
452         of the UPC pointer-to-shared representation type
453         into the newly built pointer type.
455 2011-08-30  Gary Funck  <gary@intrepid.com>
457         * tree.h (check_qualified_type): Change 'const_tree'
458         argument types back to 'tree' to avoid complaints
459         of assignment drops qualifiers for invocations of the
460         newly implemented TYPE_BLOCK_FACTOR() macro, which
461         invokes hash functions with 'tree' pointer values that
462         are not const qualified.
463         * tree.c (check_qualified_type, check_aligned_type): Ditto.
464         * c-typeck.c (comptypes_internal): Ditto.
466 2011-08-29  Gary Funck  <gary@intrepid.com>
468         Fixes for regressions noted running "make check"
469         versus GCC trunk.
470         * fold-const.c (fold_unary_loc): Execute UPC-specific
471         checks for a cast-of-a-cast, only if one of the
472         operands is a UPC pointer-to-shared value.
473         * opts.c (print_specific_help):  Fix a comparison
474         in an assert that checks that there are enough
475         bits reserved for the number of languages defined
476         in the .opt files.
478 2011-08-29  Gary Funck  <gary@intrepid.com>
480         Implement a hash table to record UPC block factors.
481         * c-family/stub-upc.c (upc_block_factor_insert,
482         upc_block_factor_lookup): New dummy stub procedures.
483         * c-family/c-common.c (c_sizeof_or_alignof_type):
484         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
485         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
486         to copy (hashed) UPC blocking factor.
487         (set_type_quals): Likewise.
488         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
489         TYPE_HAS_THREADS_FACTOR().
490         (type_common.block_factor): Delete.
491         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
492         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
493         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
494         UPC blocking factors greater than one.
495         * dwarf2out.c (modified_type_die): Re-implement
496         logic that records UPC blocking factor in the generated
497         DWARF2 debugging information.
498         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
499         TYPE_HAS_THREADS_FACTOR().
500         * c-decl.c (finish_decl, grokdeclarator):
501         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
502         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
503         used by UPC, and print UPC-specific information.
505 2011-08-28  Gary Funck  <gary@intrepid.com>
507         Re-work the type machinery to fully support and to unify support
508         for the UPC layout qualifier (blocking factor).
509         * c-family/stub-upc.c (upc_set_block_factor): Delete.
510           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
511           and update prototype.
512         * c-family/c-common.c (complete_array_type): call newly
513           defined c_build_qualified_type_1() instead of
514           upc_set_block_factor().
515         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
516           upc_apply_layout_qualifier() and update prototype.
517           (upc_set_block_factor): Delete prototype.
518         * c-family/c-common.h (c_build_qualified_type): redefine
519           as a pre-processor macro that invokes c_build_qualified_type_1()
520           with a null UPC layout qualifier.
521           (c_build_qualified_type_1): New.  Add layout qualifier argument
522           to old c_build_qualified_type() prototype.
523         * tree.c (set_type_quals, check_qualified_type):
524           Add layout qualifier as argument.
525           (check_aligned_type): Add check for UPC block factor equality.
526           (get_qualified_type_1): Rename from get_qualified_type() and
527           add layout qualifier as argument.
528           (build_qualified_type_1): Rename from build_qualified_type() and
529           add layout qualifier as argument.
530         * tree.h (check_qualified_type): Add layout qualifier as argument
531           to the prototype.
532           (get_qualified_type): Re-define as a as a pre-processor macro
533           that invokes get_qualified_type_1() with a null
534           UPC layout qualifier.
535           (get_qualified_type_1): Rename from get_qualified_type() and
536           add layout qualifier as argument.
537         * cp/tree.c (c_build_qualified_type_1): Rename from
538           c_build_qualified_type() and add (unused) layout qualifier
539           argument.
540         * c-decl.c (finish_decl): re-format long error messages.
541           (grokdeclarator): Re-work the logic so that it calls
542           upc_grok_layout_qualifier() to handle the UPC layout
543           qualifier, if present.
544         * c-typeck.c (qualify_type, common_pointer_type,
545           build_component_ref): Re-work the logic so that it calls
546           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
547           if present.
548           (c_build_qualified_type_1): Rename from c_build_qualified_type()
549           and add layout qualifier argument.
550         * print_tree.c (print_node): Re-format a long line.
552 2011-08-26  Gary Funck  <gary@intrepid.com>
554         Merge trunk version 177949 into gupc branch.
555         * c-family/c-common.h (enum rid): Bump the number of type modifiers
556           in the comment.
557         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
558           to add new rliterals column value.
560 2011-08-26  Gary Funck  <gary@intrepid.com>
562         * convert.c (convert_to_integer): Fix the check for the
563           difference between two UPC pointers-to-shared values.
565 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
567         * configure.ac: Fix the name for --with-upc-pts-packed-bits
568           option. Support --with-upc-packed-bits as deprecated. Fix the code to
569           correctly check packed bits.
570         * configure: Re-generate.
572 2011-08-16  Gary Funck  <gary@intrepid.com>
574         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
575           the barrier id expression is not an integer expression.
577 2011-08-12  Gary Funck  <gary@intrepid.com>
579         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
580           (revert to trunk).
581         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
582           Set mode of UPC pointer-to-shared rep. to an
583           integral mode of size at least as large as the
584           size of the representation's struct type.
586 2011-08-12  Gary Funck  <gary@intrepid.com>
588         Rework/simplify the UPC genericize pass.
589         * c-family/stub-upc.c (upc_apply_layout_qualifier,
590           upc_build_pointer_type): New.
591           (upc_set_block_factor): Adjust to new calling sequence.
592           (upc_build_shared_var_addr): Delete.
593         * c-family/c-common.c (complete_array_type): Adjust call
594           to upc_set_block_factor().
595         * c-family/c-upc.h (upc_apply_layout_qualifier,
596           upc_build_pointer_type): New.
597           (upc_build_shared_var_addr): Delete.
598           (upc_set_block_factor): Adjust to new calling sequence.
599         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
600         * c-decl.c (grokdeclarator): Call newly defined
601           upc_apply_layout_qualifier() instead of upc_set_block_factor().
602         * c-decl.c (grokdeclarator): Split long UPC-related error
603           messages into two lines.
604         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
605           directly.  Revert that change to trunk. (upc_genericize() will
606           handle lowering the expressions that take the address of a
607           UPC variable).
608         * config/i386/i386.c (ix86_promote_function_mode): For UPC
609           pointers-to-shared, return the type mode of the UPC pointer-to-shared
610           representation type.
612 2011-08-10  Gary Funck  <gary@intrepid.com>
614         Implement additional fixes for recent merge with trunk.
615         * explow.c (promote_mode): Do not attempt to promote
616           the mode for UPC pointer-to-shared types.
617         * config/i386/i386.c (function_value_64): Ditto.
619 2011-08-07  Gary Funck  <gary@intrepid.com>
621         Merge trunk version 177548 into gupc branch.
622         * config/i386/i386.c (ix86_promote_function_mode):
623           Do not promote UPC pointers-to-shared to Pmode.
624         * c-family/c-ommon.c (pointer_int_sum):
625           Also check the pointer operand, rather than just
626           its type, when making the decision to derive
627           the equivalent unshared type.
628         * tree.c (build2_stat): If the type of the result
629           passed in as an argument is a UPC shared type,
630           derive the unshared equivalent when calculating
631           the result type of the node.
633 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
635         * config/darwin.c: Disable var_tracking option
636           on -O0 as it is supposed to run only when optimization
637           is applied. See GCC bug 49743.
639 2011-07-06  Gary Funck  <gary@intrepid.com>
641         Re-implement the pass that lowers trees generated by
642         the UPC front-end into GENERIC.  Previously this was
643         done within the gimplification framework, but this
644         required that gimplification be run before inlining
645         and various other passes, which did not fit in well
646         with the current design of the middle-end passes.
647         Now, the lowering is done by a newly defined language
648         specific genericize hook.  With this change, we are
649         are able to undo some extensions made to the gimplify
650         logic, and thus can revert several files to trunk.
652         * c-decl.c: Add a check for UPC deprecated names which
653           may appear as undefined function names.
654         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
655           LTI_upc_getaddr): Remove definitions of unused UPC
656           library function names.  These were defined back when
657           the libfunc interface was used to call these routines.
658         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
659           in UPC lowering (genericize) pass.
660         * langhooks.h (gimplify_expr): Revert to trunk's definition.
661           (instrument_func): Delete this hook.  Now handled in
662           upc_genericize().
663         * tree-pass.h: Revert to trunk.
664         * c-typeck.c (build_unary_op): Adjust reference to
665           upc_genericize() in a comment.
666         * gimplify.c (create_tmp_var_raw): Delete logic that
667           was converting UPC shared types into unshared types
668           to be used for temporaries.  Now handled in  upc_genericize().
669           Replace with an assertion check.
670           (prepare_gimple_addressable): Revert to trunk's definition.
671           No longer needed as an externally called function.
672           (flag_instrument_functions_exclude_p): Re-define as
673           an externally called function.
674           (gimplify_function_tree): Delete code that implemented
675           call to UPC's language specific function instrumentation hook.
676         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
677           (prepare_gimple_addressable): Delete extern definition;
678           revert to trunk's definition.
679         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
680           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
681         * c-family/c-gimplify.c: Revert to trunk.
682         * cp/cp-gimplify.c: Revert to trunk.
683         * cp/cp-tree.h: Revert to trunk.
684         * explow.c: Revert to trunk.
685         * langhooks.c: Revert to trunk.
686         * libfuncs.h: Revert to trunk.
687         * objc/objc-act.c: Revert to trunk.
689 2011-06-30  Gary Funck  <gary@intrepid.com>
691         * c-family/c.opt: Bring options definitions up-to-date
692         with respect to changes made in the trunk.
694 2011-06-29  Gary Funck  <gary@intrepid.com>
696         Merge trunk version 175584 into gupc branch.
698 2011-06-13  Gary Funck  <gary@intrepid.com>
700 libcpp/
701         * include/cpplib.h (enum c_lang):
702         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
703         This keeps all the "C" variants together.
704         * init.c (lang_defaults): Add an entry for UPC.
706 2011-06-09  Gary Funck  <gary@intrepid.com>
708         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
709         a 32-bit target, the size expression overflowed, the result was
710         error_mark_node, and an ICE was triggered on an attempt to evaluate
711         C_TYPE_VARIABLE_SIZE() on the error node.
712         (upc_blocksizeof_expr, upc_blocksizeof_type,
713         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
714         Make similar changes to avoid further processing of error_mark_node.
716 2011-06-07  Gary Funck  <gary@intrepid.com>
718         * sel-sched.c (move_op): Incorporate the following
719         patch to eliminate ICE at -O3 on IA64/Altix.
721 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
723         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
724         code_motion_path_driver returned 0 or 1.
725         (sel_region_finish): Clear h_d_i_d.
727 2011-06-02  Gary Funck  <gary@intrepid.com>
729         Merge trunk version 174558 into gupc branch.
731 2011-05-30  Gary Funck  <gary@intrepid.com>
733         * configure.ac: Make the default order of the virtual
734           address field in a UPC pointer-to-shared to be "first".
735           This reverts to the previous setting, and is a short term
736           measure to work around a bug found on the IA64,
737           where vaddr=last led to incorrect code generation.
738           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
739           in AC_DEFINE(), to agree with recent changes in files
740           that reference this define.
741           configure, config.in: Regenerate.
743 2011-05-26  Gary Funck  <gary@intrepid.com>
745         * configure.ac: Fix typo when referring to $upc_vaddr_order.
746           configure: Regenerate.
748         * ../fixincludes/fixincl.x: Revert to trunk.
749           This file is auto-generated, and should not be merged.
751 2011-05-18  Gary Funck  <gary@intrepid.com>
753         Merge trunk version 173845 into gupc branch.
755 2011-05-17  Gary Funck  <gary@intrepid.com>
757         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
758           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
760         * c-family/c-pragma.c: Remove conditional compilation
761           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
762           Test 'compiling_upc' when compiling to determine if
763           the "upc" and "pupc" pragmas should be registered.
765         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
766           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
767           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
768           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
769           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
770           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
771           Move these target-dependent definitions from config/upc-conf.h
772           to here.
774         * configure.ac: Improve the logic for UPC-related options.
775           Delete references to pre-processor definitions that have
776           been moved to "upc/upc-pts.h".
778         * configure, config.in: Regenerate.
780         * Makefile.in (UPC_PTS_REP): Remove definition and revert
781           to trunk.  This substitution variable was used to
782           configure the representation-specific versions of
783           the tree rewrites that operate on UPC pointer-to-shared
784           types and objects.
786         * c-parser.c (c_parser_upc_forall_statement): Remove
787           reference to UPC_FORALL_DEPTH_NAME, and call
788           newly defined upc_rts_forall_depth_var() instead.
790         * config/upc-config.h: Delete. Various definitions
791           moved to "upc/upc-rts-names.h", "defaults.h", and
792           "upc/upc-pts.h".
794         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
795           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
796           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
797           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
798           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
799           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
800           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
801           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
802           New.  Document UPC target macros.
803           doc/tm.texi: Regenerate.
805 2011-05-07  Gary Funck  <gary@intrepid.com>
807         * ../configure.ac: Disable build of libupc
808           on non POSIX hosted systems.  Use AS_HELP_STRING
809           to define messages.  Remove 'word-pair' as a
810           possible --with-upc-pts UPC pointer-to-shared
811           representation.
813         * ../configure: Regenerate.
815         * configure.ac: Use AS_HELP_STRING to define messages.
816           Remove 'word-pair' as a possible --with-upc-pts
817           UPC pointer-to-shared representation.
818           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
819           (UPC_MAX_BLOCK_SIZE): Correct the default value.
821         * configure: Regenerate.
823         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
824           definition.
826         * ChangeLog.upc: Fix some typos.
828 2011-05-07  Gary Funck  <gary@intrepid.com>
830         * ../maintainer-scripts/gcc_release: Add "upc"
831           as one of the released languages.
833 2011-05-06  Gary Funck  <gary@intrepid.com>
835         Eliminate compilation warnings, by fixing
836         #include's and updating function prototypes.
838         * c-family/c-cppbuiltin.c: Include c-upc.h.
840         * optabs.c (gen_libfunc): Change type of 'suffix'
841           parameter to conform with prototype.
843         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
844           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
845           hook used by UPC.
847         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
848           the prototype.
850         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
851           argument values to cp_gimplify_expr.
853         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
854           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
855           pre-processor definitions that are no longer
856           needed to build the 'upc' command (upc-cmd.c)
857           because the linker specs. defined in libupc
858           take care of linking in the needed libraries.
860         * c-parser.c (c_parser_upc_forall_statement):
861           initialize affinity_loc to avoid "maybe unused" warning.
862           (c_parser_upc_sync_statement): Remove un-needed
863           'ret' variable.  Cast return value from
864           'upc_build_sync_stmt' to 'void' to avoid
865           compile-time warning.
867         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
868           integer constant, not a string.  Range is restricted
869           to maximum positive 32-bit integer (2+ billion) to
870           fit in with the use of 'int' in the front-end's
871           switch handling logic.
873 2011-05-06  Gary Funck  <gary@intrepid.com>
875         Upgrade c-family source files to conform with modularity
876         improvements.  Mainly, remove #include of c-tree.h in files
877         under c-family, and define a new UPC-specific #include file,
878         c-upc.h, and use it.
880         * c-family/stub-upc.c: Remove #include of c-tree.h and
881           upc/upc-act.h.  Replace with #include of c-common.h
882           and c-upc.h.
883           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
884           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
885           upc_localsizeof_expr, upc_localsizeof_type,
886           upc_shared_type_p): Delete.
888         * c-family/c-opts.c: Add #include of c-upc.h
890         * c-family/c-common.c: Remove #include of c-tree.h and
891           add #include of c-upc.h.
893         * c-family/c-upc.h: New. Define API for UPC-specific functions
894           (mostly implemented in upc/upc-act.c).
896         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
897           Remove extern definitions.
899         * c-family/c-pragma.c: Remove #include of c-tree.h.
900           Add #include of c-upc.h.
902         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
903           c-tree.h.
904           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
905           upc/upc-act.c, and define as a macro.
906           (expand_affinity_test): Remove unused external definition.
907           (build_upc_unshared_type): Add external definition.
908           (upc_shared_type_p): Remove external definition.
910         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
912         * dojump.c: Remove #include of c-tree.h.
914         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
915           and move to tree.h.
916           (count_upc_threads_refs, is_multiple_of_upc_threads,
917           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
918           upc_build_shared_var_addr, upc_build_sync_stmt,
919           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
920           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
921           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
922           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
923           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
924           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
925           set_upc_consistency_mode, get_upc_consistency_mode,
926           push_upc_consistency_mode, pop_upc_consistency_mode,
927           get_upc_pupc_mode):
928           Move external definitions to c-family/c-upc.h.
929           (upc_blocksizeof_type, upc_localsizeof_type,
930           upc_elemsizeof_type): Remove external definitions;
931           these functions were moved to c-parser.c.
933         * c-decl.c: Add #include of c-upc.h.
935         * c-typeck.c: Add #include of c-upc.h.
937         * c-convert.c: Add #include of c-upc.h.
939         * ChangeLog.upc: Fix typo.
941         * Makefile.in: Add references to c-family/c-upc.h, everywhere
942           there is a reference to c-family/c-objc.h.
943           Remove extraneous reference to upc-act.h.
945         * c-parser.c: Add #include of c-upc.h.
946           (upc_blocksizeof_expr, upc_blocksizeof_type,
947           upc_elemsizeof_expr, upc_elemsizeof_type,
948           upc_localsizeof_expr, upc_localsizeof_type):
949           Move from upc/upc-act.c.
951         * tree.c (build_upc_unshared_type): New.
952           Move upc_get_unshared_type from upc/upc-act.c and rename
953           to build_upc_unshared_type.
954           c-family/c-common.c (pointer_int_sum): refer to renamed
955           build_upc_unshared_type function.
956           c-convert.c (convert): Ditto.
957           convert.c (convert_to_pointer): Ditto.
958           c-typeck.c (build_unary_op, build_modify_expr,
959           really_start_incremental_init): Ditto.
960           gimplify.c (create_tmp_var_raw): Ditto.
961           tree.c (build1_stat): Ditto.
962           tree.h (upc_get_unshared_type): Rename to
963           build_upc_unshared_type.
965 2011-05-06  Gary Funck  <gary@intrepid.com>
967         Merge trunk version 173471 into gupc branch.
969 2011-05-05  Gary Funck  <gary@intrepid.com>
971         Make changes that bring the GUPC branch more closely in sync.
972         with the GCC trunk.  Revert any fixes that are not UPC-specific.
973         Remove gratuitous re-formatting.
975         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
976           This file should have been removed in a previous merge
977           with the trunk.
978         * ../configure.ac: Remove Cray Catamount/CNL support.
979         * ../configure: Regenerate.
980         * ../config.sub: Remove Cray Catamount/CNL support.
981         * config.gcc: Remove Cray Catamount/CNL support.
982         * ../maintainer-scripts/gcc_release: Revert to trunk.
983         * c-family/c-common.h: Define parse_optimize_options.  Its definition
984           was missed in a previous merge with the trunk.
985         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
986           procedure.
987         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
988           in addition to ARRAY_TYPE.
989         * c-typeck.c: Remove an extra newline character.
990         * varasm.c: Revert a fix that improved an error message
991           when TLS common data is unimplemented.
992         * varasm.c: Revert a gcc_assert that had been added which
993           checked for a null DECL_SIZE_UNIT field.
994         * emultls.c: Revert to trunk. Remove possible fix.
995         * Makefile.in: Revert extra blank line that is present
996           in the trunk version.
997         * Makefile.in: Revert a fix that handled long shell
998           argument lists for plugin headers.
999         * config/ia64/ia64.opt: Revert an option setting
1000           that increased the default TLS address range.
1001         * config/ia64/crtbegin.asm: Revert to trunk.
1002           Removes an extra newline character.
1003         * ChangeLog.upc: Spell check.
1005 2011-05-03  Gary Funck  <gary@intrepid.com>
1007         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1008           (c_apply_type_quals_to_decl): Ditto.
1009         * c-family/c-common.h: Ditto.
1010         * dojump.c: Ditto.
1011         * c-decl.c (merge_decls): Ditto.
1012         * c-typeck.c (qualify_type, default_conversion,
1013           build_component_ref, build_unary_op,
1014           c_build_qualified_type): Ditto.
1015         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1017 2011-04-29  Gary Funck  <gary@intrepid.com>
1019         * c-decl.c (finish_decl): Improve error diagnostics.
1020           (grokdeclarator): Ditto.
1022         * c-typeck.c (build_c_cast): Improve error diagnostics.
1023           (convert_for_assignment): Ditto.
1024           (build_binary_op): Ditto.
1026         * c-parser.c (c_parser_upc_forall_statement):
1027           Improve error diagnostics.
1029         * convert.c (convert_to_integer):  Improve error diagnostics.
1031 2011-04-24  Gary Funck  <gary@intrepid.com>
1033         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1034           occurred if there is an error in the barrier id
1035           expression.  Map error_mark_node into NULL.
1037 2011-04-22  Gary Funck  <gary@intrepid.com>
1039         Merge trunk version 172873 into gupc branch.
1041 2011-04-19  Gary Funck  <gary@intrepid.com>
1043         Merge trunk version 172359 into gupc branch.
1045 2011-04-14  Gary Funck  <gary@intrepid.com>
1047         * c-family/c.opt: Add UPC as a valid language for various
1048           switches where it is valid for "C", that were not updated
1049           in previous merges with trunk.
1051 2011-04-13  Gary Funck  <gary@intrepid.com>
1053         * c-family/c.opt (fupc-pre-include): New option definition.
1054         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1055           -fno-upc-pre-include is asserted.
1057 2011-04-07  Gary Funck  <gary@intrepid.com>
1059         Merge trunk version 172158 into gupc branch.
1060         to bring in the following fix.
1062 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1064         PR bootstrap/48403
1065         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1066         if old and new states differ.
1068 2011-04-06  Gary Funck  <gary@intrepid.com>
1070         Merge trunk version 171966 into gupc branch.
1072 2011-04-01  Gary Funck  <gary@intrepid.com>
1074         * tree.h (tree_base): Move UPC flag bits into bit fields
1075           located just before spare bits.  Decrement spare bits.
1076           Rename 'shared_flag' -> 'upc_shared_flag',
1077           'relaxed_flag' -> 'upc_relaxed_flag',
1078           'strict_flag' -> 'upc_strict_flag, and adjust macros
1079           that reference them accordingly.
1081 2011-04-01  Gary Funck  <gary@intrepid.com>
1083         * c-decl.c (grokdeclarator): Fix formatting of
1084           code that sets UPC block size on scalars.
1086 2011-04-01  Gary Funck  <gary@intrepid.com>
1088         * c-decl.c (grokdeclarator): Revert use of white space
1089           to match the trunk (to rationalize diffs).
1090         * c-typeck.c (convert_for_assignment): Ditto.
1091         * tree-ssa.c (useless_type_conversion_p): Ditto.
1093 2011-03-23  Gary Funck  <gary@intrepid.com>
1095         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1096           the GCC 4.6 release branch.
1098 2011-03-21  Gary Funck  <gary@intrepid.com>
1100         Merge trunk version 171202 into gupc branch.
1102 2011-03-20  Gary Funck  <gary@intrepid.com>
1104         * varasm.c: Call error() directly with a format specifier,
1105           rather than using sprintf() to format the message.
1106           This should make it easier to internationalize UPC's error messages.
1108 2011-03-20  Gary Funck  <gary@intrepid.com>
1110         * configure.ac: Fix the check for gnu ld when enabling
1111           UPC link script support.
1112           configure: Regenerate (also picks up changes from previous
1113           merge with trunk).
1115 2011-03-20  Gary Funck  <gary@intrepid.com>
1117         Move UPC start files, end files, and linker specs.
1118         into libupc.  This reduces the impact on common GCC
1119         configuration files, and ensures that these UPC-specific
1120         components are only built when the UPC language dialect is selected.
1123 gcc/
1124         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1125           linker specs. Fix typo in -fupc-debug message.
1127         * config/upc-conf.h, config/darwin.h: Move defines for
1128           UPC-related section begins/ends into libupc/config/default/
1129           upc-crt-config.h.
1131         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1132           UPC-related linker compiler specifications,
1133           accessed via %:include().
1135         * configure.ac, configure: Remove logic related to building
1136           upc-crtbegin/end. Remove config. tests for numa and cpu
1137           affinity (previously used by the 'upc' driver); these
1138           settings are now propagated by target-specific compiler
1139           specs. built by libupc.  Regenerate autoconf.
1141         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1142           linker compiler specifications, accessed via %:include().
1143           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1144           'link_upc_spec'.
1146         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1148         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1149           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1150           config/ia64/linux.h, config/mips/t-iris,
1151           config/mips/iris6.h: Revert to trunk version 167307.
1153 libgcc/
1154         * configure, configure.ac, config.host, Makefile.in:
1155           Revert to trunk version 167307.
1157 2011-02-23  Gary Funck  <gary@intrepid.com>
1159         * c-decl.c (undeclared_variable): fix typo. Inadvertently
1160         removed negation on following 'if'.
1162 2011-02-22  Gary Funck  <gary@intrepid.com>
1164         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1165         to check for the usage of certain deprecated UPC keywords.
1166         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1167         * c-tree.h (undeclared_variable): Define prototype.
1169 2011-02-12  Gary Funck  <gary@intrepid.com>
1171         * c-typeck.c: (build_c_cast, convert_for_assignment)
1172           Diagnose an attempt to convert from an integer to
1173           a pointer-to-shared as an error.  Also, fix various
1174           error messages so that they use the preferred term
1175           pointer-to-shared instead of "shared pointer".
1177 2011-02-07  Gary Funck  <gary@intrepid.com>
1179         * c-typeck.c: (convert_for_assignment)
1180           Fix typo. in error message.
1182 2011-01-23  Gary Funck  <gary@intrepid.com>
1184         * c-typeck.c: (c_build_qualified_type)
1185           derive UPC block size by calling upc_get_block_size(),
1186           to ensure that the element type of an array of an array
1187           is derived correctly.
1189 2010-12-29  Gary Funck  <gary@intrepid.com>
1191         Merge trunk version 168314 into gupc branch.
1193 2010-12-15  Gary Funck  <gary@intrepid.com>
1195         Merge trunk version 167307 into gupc branch.
1197 2010-10-19  Gary Funck  <gary@intrepid.com>
1199         * c-typeck.c: Fix typo in previous fix
1200           which led to a mis-compare for equal block sizes.
1202 2010-10-18  Gary Funck  <gary@intrepid.com>
1204         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1205           diagnosed as an error
1207           The conversion from any type (shared or not) to
1208           a shared type is likely either meaningless or an error.  This update
1209           makes any conversion to a shared type, an error.
1211 2010-10-18  Gary Funck  <gary@intrepid.com>
1213         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1214           generates spurious warning
1216           Add a #define procedure that does the same thing as
1217           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1218           this procedure to diagnose passing an integer value to a
1219           pointer-to-shared as an error.
1221 2010-10-18  Gary Funck  <gary@intrepid.com>
1223         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1224           matching routine declaration.
1226           When checking for type compatibility, shared qualified types must
1227           have the same block factor.  This check was missing from
1228           comptypes_internal().  This update adds the check for blocking
1229           factor equality.
1231 2010-10-17  Gary Funck  <gary@intrepid.com>
1233         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1234           found (-O1 -g)
1236           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1238 2010-10-17  Gary Funck  <gary@intrepid.com>
1240         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1241           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1242           produces ice with -O3 and -m32.
1244           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1246 2010-10-17  Gary Funck  <gary@intrepid.com>
1248         * c-common.c: Diagnose the application of the various "*sizeof"
1249           operations on generic pointer-to-shared as a compilation error.
1251 2010-10-17  Gary Funck  <gary@intrepid.com>
1253         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1254           message regarding a function parameter being declared with a shared
1255           qualifier.
1257           The parameter's 'name' value is not defined at this point, and
1258           cannot be used in the error message.  This update removes the
1259           reference to 'name', and eliminates the segfault.
1261 2010-10-16  Gary Funck  <gary@intrepid.com>
1263         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1265           The gcc/Makefile.in rules for install-plugin had to be re-written to
1266           break up a long list of header files that exceeded the command line
1267           limitation imposed by Irix.
1269           Access functions for TFmode types had to be implemented.
1270           Apparently, this is the mode used for the SGI/MIPS port to represent
1271           "long float".
1273 2010-10-14  Gary Funck  <gary@intrepid.com>
1275         * c-decl.c: Fix bug: Multiple equal blocking factors specified
1276           via typedef chain should not be diagnosed as an error.
1278           If the block size that is given by the typedef is equal to the block
1279           size given explicitly in the variable declaration, then do not
1280           complain.  The easiest way to make this check was to create a
1281           temporary type that is a clone of the element type and then set its
1282           block size using the given layout qualifier.  Then compare the block
1283           size of the temporary (the declaration) to the block size specified
1284           in the typedef.  This complexity is needed, because the '[*]' block
1285           size needs to be calculated, and the '[]' needs to be mapped into a
1286           zero block size.
1288 2010-10-10  Gary Funck  <gary@intrepid.com>
1290         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1291           specified
1293           The compiler properly detected the presence of two or more layout
1294           qualifiers as an error, but then hit an assertion check, because the
1295           code that followed the error expected to see a qualifier and not a
1296           layout specifier.  The fix is simple: just return immediately after
1297           detecting the error.
1299 2010-10-10  Gary Funck  <gary@intrepid.com>
1301         * c-decl.c: Improve error diagnostics for various cases of UPC
1302           shared array type declarations.
1304           Add the check for this error: "In the dynamic translation
1305           environment, THREADS may not appear in declarations of shared arrays
1306           with indefinite block size".  Also, fix up a few of the other
1307           related error diagnostics.
1309 2010-10-09  Gary Funck  <gary@intrepid.com>
1311         * c-common.c: Fix bug: segfault on incomplete array definition.
1313           This turned out to be a bit complicated.   The logic in
1314           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1315           the THREADS identifier in the case where the blocking factor has
1316           been set to indefinite ([]).  This can happen when indefinite array
1317           declarations are processed for shared arrays.  At that time, the
1318           file scope has been closed and THREADS is no longer in scope.  Some
1319           more work is needed on upc_lang_layout_decl().  It has some
1320           duplication, and notably duplicates the two branches of the if
1321           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1322           caller of this routine (layout_decl()).
1324           The method of forcing a layout qualifier of [] in the indefinite
1325           declaration handler is odd a well.  The code that just does the
1326           setting of the block factor, needs to moved into its own routine
1327           that doesn't depend upon a declspec for '[]' to be passed in, just
1328           in order to set the blocking factor to some value (in this case, 0).
1329           Also, the logic for how that shared type is constructed is strange.
1330           First the type with 0 blocking factor is set.  Then the shared
1331           qualifier is removed from the type, and then added back later.  The
1332           intermediate type has a blocking factor set, but it has no shared
1333           qualifier.  Fixing this will require some thought.  It is tempting
1334           just to make indefinite shared arrays an error, rather than forcing
1335           the dimension to be '1'.
1337           This likely fixes a serious error in the previous update to
1338           upc_lang_layout_decl(), where it didn't have the logic to set
1339           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
1340           the previous update would fail on many tests.
1342 2010-10-09  Gary Funck  <gary@intrepid.com>
1344         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1345           (decl) is null, which can happen if some layout error occurred
1346           upstream.
1348 2010-10-09  Gary Funck  <gary@intrepid.com>
1350         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1351           "variable-sized" when compiled in dynamic threads.
1353           This long-standing bug is easily fixed.  Just check
1354           for the situation that the non-constant sized type is shared and
1355           that it does not have a dimension that references a multiple of
1356           threads.  If this criteria is met, then issue a meaningful
1357           diagnostic.
1359 2010-10-01  Gary Funck  <gary@intrepid.com>
1361         * configure, configure.ac: Update manual page, and bug reporting
1362           URL.
1364           Update "man" page to reflect debugging switches.  Also, some general
1365           clean up.  Change the bug reporting URL to point to gccupc.org.
1367 2010-09-27  Gary Funck  <gary@intrepid.com>
1369         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1370           the UPC forall depth count variable is not found.
1372           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1373           The compiler will generate code that references this variable in
1374           order to implement nested upc_forall semantics.  If there is a
1375           compiler build or install problem, this variable may not be found.
1376           In this case, terminate with an internal_error().
1378 2010-09-26  Gary Funck  <gary@intrepid.com>
1380         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1381           mis-diagnosed as syntax error.
1383           Fix a failure exhibited by the Berkeley test case,
1384           bug873a.upc, which has the code:
1385                double d;
1386                upc_forall (;;;d) {...} The compiler did not properly handle
1387           the empty "condition" clause, and did not recover well when it was
1388           determined that the use of a double value, "d" above, was neither a
1389           pointer-to-shared nor an integer expression.  The update implements a
1390           fix for both issues.
1392           See also: gcc/c-parser.c gcc/upc/upc-act.c
1394 2010-09-23  Gary Funck  <gary@intrepid.com>
1396         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1397           incorporated into the referencing type.
1399           This was semi-fixed a few times before.  This update fixes a few
1400           more places where the layout qualifier wasn't being propagated
1401           through typedef's properly.  What made this a bit tricky is shown in
1402           the example cited in the bug report:
1404           typedef shared [5] int A_t; A_t A[5*THREADS];
1406           In the typedef, the blocksize is being applied to a shared *scalar*,
1407           and the code was applying the blocksize only to arrays.  This update
1408           handles shared scalars correctly.
1410 2010-09-22  Gary Funck  <gary@intrepid.com>
1412         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1413           upc_forall() semantics are not implemented
1415           The checkforall test in the Berkeley harness test suite indicated
1416           that GCC/UPC was not properly implementing nested upc_forall
1417           semantics.  Nested upc_forall statements (both statically or
1418           dynamically nested) must implement their affinity clause as if it
1419           were "continue"; thus all steps in the loop must execute without
1420           regard for affinity.  To implement these semantics a global depth
1421           counter, __upc_forall_depth, is maintained by the generated code
1422           that implements upc_forall.
1424           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1425           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1426           libupc/include/upc.h libupc/smp/upc_main.c
1428 2010-09-19  Gary Funck  <gary@intrepid.com>
1430         * c-decl.c: c-decl.c: zero out the layout specifier, after
1431           processing an array type.
1433           Fix the previous fix, that moved the setting of the type's layout
1434           qualifier to the outside of the array type processing loop.  What is
1435           missing from the fix is that the layout_qualifier variable needs to
1436           be cleared after setting the type's blocksize.
1438 2010-09-19  Gary Funck  <gary@intrepid.com>
1440         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1441           given blocksize is greater than UPC_MAX_BLOCKSIZE.
1443           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1444           the actual maximum block size.  Therefore, the message was correct,
1445           but the underlying value that was being checked was wrong.  Change
1446           the values so that they agree with the actual implementation-defined
1447           limit.
1449 2010-09-11  Gary Funck  <gary@intrepid.com>
1451         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1452           multi-dimensional shared array with dynamic threads.
1454           This declaration caused an internal compiler error when compiled
1455           with dynamic threads:
1456               shared [*] int A[THREADS][16]; The bug was discovered when
1457           compiling the RTED_UPC test suite.
1459           The fix is to process layout qualifiers after the entire array type
1460           has been built.  Otherwise, we try to calculate the blocksize on a
1461           shared array type that has not had its "size depends upon the value
1462           of THREADS" flag set.
1464           Also, added a test case.
1466           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1468 2010-07-11  Gary Funck  <gary@intrepid.com>
1470         Fix a bug where a statement in c_build_qualified_type()
1471         in the trunk had been inadvertently deleted.
1472         This bug showed up in the IA64 port, because jmpbuf's
1473         on that architecture must be 16 byte aligned, and they were not.
1474         c-typeck.c (c_build_qualified_type): Revive the deleted line.
1476 2010-07-08  Gary Funck  <gary@intrepid.com>
1478         Make changes so that other language compilers
1479         will build and bootstrap.
1480         * c-family/c-common.c (compiling_upc, flag_upc,
1481         flag_upc_instrument, flag_upc_instrument_functions,
1482         use_upc_dwarf2_extensions): Move to stub-upc.c and
1483         upc-lang.c.
1484         * c-family/c-common.h (use_upc_dwarf2_extensions,
1485         compiling_upc): Add extern definitions - needed
1486         to compile/build other language front ends.
1487         * c-family/c.opt: Fix the spelling of ObjC.
1488         It had been incorrectly spelled as Objc.
1489         * c-family/c.opt: Add UPC for the various switches
1490         that are valid for both C and ObjC.
1491         * c-fmaily/c-opts.c: Add CL_UPC to the list of
1492         supported options switches when compiling assembly
1493         language.
1494         * lto/lto-lang.c (use_upc_dwarf2_extensions,
1495         flag_upc_instrument, flag_upc_instrument_functions):
1496         Remove these definitions.  They have been moved
1497         to c-family/stub-upc.c.
1498         * upc/ChangeLog: Move relevant entries
1499         to ChangeLog.upc.
1500         * c-family/stub-upc.c (compiling_upc, flag_upc,
1501         flag_upc_instrument, flag_upc_instrument_functions,
1502         use_upc_dwarf2_extensions): Moved from c-common.c
1503         * upc/upc-lang.c (compiling_upc, flag_upc,
1504         flag_upc_instrument, flag_upc_instrument_functions,
1505         use_upc_dwarf2_extensions): Moved from c-common.c
1506         * objc/objc-act.c (objc_gimplify_expr): Add additional
1507         parameters to c_gimplify_expr() call, that are used
1508         by upc's tree rewrites.
1509         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1510         * gcc/cp/lex.c (init_reswords): If not compiling
1511         UPC, then mask off the UPC keywords.
1512         * cp/Make-lang.in (C_STUB_OBJS): Use this
1513         make macro to link with c-family/stub-objc.o
1514         and c-family/stub-upc.o.
1515         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1516         * java/Make-lang.in (C_STUB_OBJS): Likewise.
1517         * objc/Make-lang.in: Link with c-family/stub-upc.o
1518         to avoid undefined references.
1519         c-parser.c: Fix line indentation.
1520         * libcpp/include/cpplib.h: Remove CL_UPC from
1521         the list of language kinds accepted by the
1522         C preprocessor.  This is not necessary because
1523         UPC is a derivative of C99, and does not need
1524         a different language kind.
1525         * c-fmaily/c-opts.c (c_common_handle_option):
1526         Call set_std_c99() when processing the
1527         "--lang upc" switch, instead of setting the
1528         language kind to CL_UPC.
1529         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1531 2010-07-03  Gary Funck  <gary@intrepid.com>
1533         Merge trunk version 161517 into gupc branch.
1534         * gcc/stub-upc.c: Move to gcc/c-family/.
1535         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1536         Add 'unused' attributes to avoid "set, but
1537         not referenced" warnings.
1538         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1539         Likewise.
1541 2010-03-01 Gary Funck  <gary@intrepid.com>
1543         Create gupc branch from trunk version 157149.
1544 2011-10-04  Gary Funck  <gary@intrepid.com>
1546         Merge trunk version 179421 into gupc branch.
1548         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1549         argument to the call to check_qualified_type().
1551 2011-09-22  Gary Funck  <gary@intrepid.com>
1553         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1554         information.
1555         (dump_upc_type_quals): New.
1557 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1559         Add to FLAGS the flags needed to disable inlining of
1560         UPC run-time access routines.
1561         * testsuite/lib/target-supports.exp
1562         (add_options_for_upc_library_calls): New.
1564 2011-09-15  Gary Funck  <gary@intrepid.com>
1566         Fix ICE involving shared bit field accesses.
1567         * tree.c (build3_stat): Propagate TEEE_SHARED()
1568         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1570 2011-09-13  Gary Funck  <gary@intrepid.com>
1572         Merge trunk version 178795 into gupc branch.
1573         Incorporates fix to PR bootstrap/50010 for x86-32.
1575 2011-09-08  Gary Funck  <gary@intrepid.com>
1577         Merge trunk version 178557 into gupc branch.
1579 2011-09-07  Gary Funck  <gary@intrepid.com>
1581         Ensure that UPC pointer-to-shared type alignment is
1582         propagated to the final type.  Revert to long-standing
1583         alignment policy: twice the size of a "C" pointer.
1584         * tree.c (build_pointer_type): Propagate the alignment
1585         of the UPC pointer-to-shared representation type
1586         into the newly built pointer type.
1588 2011-08-30  Gary Funck  <gary@intrepid.com>
1590         * tree.h (check_qualified_type): Change 'const_tree'
1591         argument types back to 'tree' to avoid complaints
1592         of assignment drops qualifiers for invocations of the
1593         newly implemented TYPE_BLOCK_FACTOR() macro, which
1594         invokes hash functions with 'tree' pointer values that
1595         are not const qualified.
1596         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1597         * c-typeck.c (comptypes_internal): Ditto.
1599 2011-08-29  Gary Funck  <gary@intrepid.com>
1601         Fixes for regressions noted running "make check"
1602         versus GCC trunk.
1603         * fold-const.c (fold_unary_loc): Execute UPC-specific
1604         checks for a cast-of-a-cast, only if one of the
1605         operands is a UPC pointer-to-shared value.
1606         * opts.c (print_specific_help):  Fix a comparison
1607         in an assert that checks that there are enough
1608         bits reserved for the number of languages defined
1609         in the .opt files.
1611 2011-08-29  Gary Funck  <gary@intrepid.com>
1613         Implement a hash table to record UPC block factors.
1614         * c-family/stub-upc.c (upc_block_factor_insert,
1615         upc_block_factor_lookup): New dummy stub procedures.
1616         * c-family/c-common.c (c_sizeof_or_alignof_type):
1617         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1618         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1619         to copy (hashed) UPC blocking factor.
1620         (set_type_quals): Likewise.
1621         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1622         TYPE_HAS_THREADS_FACTOR().
1623         (type_common.block_factor): Delete.
1624         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1625         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1626         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1627         UPC blocking factors greater than one.
1628         * dwarf2out.c (modified_type_die): Re-implement
1629         logic that records UPC blocking factor in the generated
1630         DWARF2 debugging information.
1631         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1632         TYPE_HAS_THREADS_FACTOR().
1633         * c-decl.c (finish_decl, grokdeclarator):
1634         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1635         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1636         used by UPC, and print UPC-specific information.
1638 2011-08-28  Gary Funck  <gary@intrepid.com>
1640         Re-work the type machinery to fully support and to unify support
1641         for the UPC layout qualifier (blocking factor).
1642         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1643           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1644           and update prototype.
1645         * c-family/c-common.c (complete_array_type): call newly
1646           defined c_build_qualified_type_1() instead of
1647           upc_set_block_factor().
1648         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1649           upc_apply_layout_qualifier() and update prototype.
1650           (upc_set_block_factor): Delete prototype.
1651         * c-family/c-common.h (c_build_qualified_type): redefine
1652           as a pre-processor macro that invokes c_build_qualified_type_1()
1653           with a null UPC layout qualifier.
1654           (c_build_qualified_type_1): New.  Add layout qualifier argument
1655           to old c_build_qualified_type() prototype.
1656         * tree.c (set_type_quals, check_qualified_type):
1657           Add layout qualifier as argument.
1658           (check_aligned_type): Add check for UPC block factor equality.
1659           (get_qualified_type_1): Rename from get_qualified_type() and
1660           add layout qualifier as argument.
1661           (build_qualified_type_1): Rename from build_qualified_type() and
1662           add layout qualifier as argument.
1663         * tree.h (check_qualified_type): Add layout qualifier as argument
1664           to the prototype.
1665           (get_qualified_type): Re-define as a as a pre-processor macro
1666           that invokes get_qualified_type_1() with a null
1667           UPC layout qualifier.
1668           (get_qualified_type_1): Rename from get_qualified_type() and
1669           add layout qualifier as argument.
1670         * cp/tree.c (c_build_qualified_type_1): Rename from
1671           c_build_qualified_type() and add (unused) layout qualifier
1672           argument.
1673         * c-decl.c (finish_decl): re-format long error messages.
1674           (grokdeclarator): Re-work the logic so that it calls
1675           upc_grok_layout_qualifier() to handle the UPC layout
1676           qualifier, if present.
1677         * c-typeck.c (qualify_type, common_pointer_type,
1678           build_component_ref): Re-work the logic so that it calls
1679           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1680           if present.
1681           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1682           and add layout qualifier argument.
1683         * print_tree.c (print_node): Re-format a long line.
1685 2011-08-26  Gary Funck  <gary@intrepid.com>
1687         Merge trunk version 177949 into gupc branch.
1688         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1689           in the comment.
1690         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1691           to add new rliterals column value.
1693 2011-08-26  Gary Funck  <gary@intrepid.com>
1695         * convert.c (convert_to_integer): Fix the check for the
1696           difference between two UPC pointers-to-shared values.
1698 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1700         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1701           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1702           correctly check packed bits.
1703         * configure: Re-generate.
1705 2011-08-16  Gary Funck  <gary@intrepid.com>
1707         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1708           the barrier id expression is not an integer expression.
1710 2011-08-12  Gary Funck  <gary@intrepid.com>
1712         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1713           (revert to trunk).
1714         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1715           Set mode of UPC pointer-to-shared rep. to an
1716           integral mode of size at least as large as the
1717           size of the representation's struct type.
1719 2011-08-12  Gary Funck  <gary@intrepid.com>
1721         Rework/simplify the UPC genericize pass.
1722         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1723           upc_build_pointer_type): New.
1724           (upc_set_block_factor): Adjust to new calling sequence.
1725           (upc_build_shared_var_addr): Delete.
1726         * c-family/c-common.c (complete_array_type): Adjust call
1727           to upc_set_block_factor().
1728         * c-family/c-upc.h (upc_apply_layout_qualifier,
1729           upc_build_pointer_type): New.
1730           (upc_build_shared_var_addr): Delete.
1731           (upc_set_block_factor): Adjust to new calling sequence.
1732         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1733         * c-decl.c (grokdeclarator): Call newly defined
1734           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1735         * c-decl.c (grokdeclarator): Split long UPC-related error
1736           messages into two lines.
1737         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1738           directly.  Revert that change to trunk. (upc_genericize() will
1739           handle lowering the expressions that take the address of a
1740           UPC variable).
1741         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1742           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1743           representation type.
1745 2011-08-10  Gary Funck  <gary@intrepid.com>
1747         Implement additional fixes for recent merge with trunk.
1748         * explow.c (promote_mode): Do not attempt to promote
1749           the mode for UPC pointer-to-shared types.
1750         * config/i386/i386.c (function_value_64): Ditto.
1752 2011-08-07  Gary Funck  <gary@intrepid.com>
1754         Merge trunk version 177548 into gupc branch.
1755         * config/i386/i386.c (ix86_promote_function_mode):
1756           Do not promote UPC pointers-to-shared to Pmode.
1757         * c-family/c-ommon.c (pointer_int_sum):
1758           Also check the pointer operand, rather than just
1759           its type, when making the decision to derive
1760           the equivalent unshared type.
1761         * tree.c (build2_stat): If the type of the result
1762           passed in as an argument is a UPC shared type,
1763           derive the unshared equivalent when calculating
1764           the result type of the node.
1766 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1768         * config/darwin.c: Disable var_tracking option
1769           on -O0 as it is supposed to run only when optimization
1770           is applied. See GCC bug 49743.
1772 2011-07-06  Gary Funck  <gary@intrepid.com>
1774         Re-implement the pass that lowers trees generated by
1775         the UPC front-end into GENERIC.  Previously this was
1776         done within the gimplification framework, but this
1777         required that gimplification be run before inlining
1778         and various other passes, which did not fit in well
1779         with the current design of the middle-end passes.
1780         Now, the lowering is done by a newly defined language
1781         specific genericize hook.  With this change, we are
1782         are able to undo some extensions made to the gimplify
1783         logic, and thus can revert several files to trunk.
1785         * c-decl.c: Add a check for UPC deprecated names which
1786           may appear as undefined function names.
1787         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1788           LTI_upc_getaddr): Remove definitions of unused UPC
1789           library function names.  These were defined back when
1790           the libfunc interface was used to call these routines.
1791         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1792           in UPC lowering (genericize) pass.
1793         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1794           (instrument_func): Delete this hook.  Now handled in
1795           upc_genericize().
1796         * tree-pass.h: Revert to trunk.
1797         * c-typeck.c (build_unary_op): Adjust reference to
1798           upc_genericize() in a comment.
1799         * gimplify.c (create_tmp_var_raw): Delete logic that
1800           was converting UPC shared types into unshared types
1801           to be used for temporaries.  Now handled in  upc_genericize().
1802           Replace with an assertion check.
1803           (prepare_gimple_addressable): Revert to trunk's definition.
1804           No longer needed as an externally called function.
1805           (flag_instrument_functions_exclude_p): Re-define as
1806           an externally called function.
1807           (gimplify_function_tree): Delete code that implemented
1808           call to UPC's language specific function instrumentation hook.
1809         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1810           (prepare_gimple_addressable): Delete extern definition;
1811           revert to trunk's definition.
1812         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1813           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1814         * c-family/c-gimplify.c: Revert to trunk.
1815         * cp/cp-gimplify.c: Revert to trunk.
1816         * cp/cp-tree.h: Revert to trunk.
1817         * explow.c: Revert to trunk.
1818         * langhooks.c: Revert to trunk.
1819         * libfuncs.h: Revert to trunk.
1820         * objc/objc-act.c: Revert to trunk.
1822 2011-06-30  Gary Funck  <gary@intrepid.com>
1824         * c-family/c.opt: Bring options definitions up-to-date
1825         with respect to changes made in the trunk.
1827 2011-06-29  Gary Funck  <gary@intrepid.com>
1829         Merge trunk version 175584 into gupc branch.
1831 2011-06-13  Gary Funck  <gary@intrepid.com>
1833 libcpp/
1834         * include/cpplib.h (enum c_lang):
1835         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1836         This keeps all the "C" variants together.
1837         * init.c (lang_defaults): Add an entry for UPC.
1839 2011-06-09  Gary Funck  <gary@intrepid.com>
1841         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1842         a 32-bit target, the size expression overflowed, the result was
1843         error_mark_node, and an ICE was triggered on an attempt to evaluate
1844         C_TYPE_VARIABLE_SIZE() on the error node.
1845         (upc_blocksizeof_expr, upc_blocksizeof_type,
1846         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1847         Make similar changes to avoid further processing of error_mark_node.
1849 2011-06-07  Gary Funck  <gary@intrepid.com>
1851         * sel-sched.c (move_op): Incorporate the following
1852         patch to eliminate ICE at -O3 on IA64/Altix.
1854 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1856         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1857         code_motion_path_driver returned 0 or 1.
1858         (sel_region_finish): Clear h_d_i_d.
1860 2011-06-02  Gary Funck  <gary@intrepid.com>
1862         Merge trunk version 174558 into gupc branch.
1864 2011-05-30  Gary Funck  <gary@intrepid.com>
1866         * configure.ac: Make the default order of the virtual
1867           address field in a UPC pointer-to-shared to be "first".
1868           This reverts to the previous setting, and is a short term
1869           measure to work around a bug found on the IA64,
1870           where vaddr=last led to incorrect code generation.
1871           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1872           in AC_DEFINE(), to agree with recent changes in files
1873           that reference this define.
1874           configure, config.in: Regenerate.
1876 2011-05-26  Gary Funck  <gary@intrepid.com>
1878         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1879           configure: Regenerate.
1881         * ../fixincludes/fixincl.x: Revert to trunk.
1882           This file is auto-generated, and should not be merged.
1884 2011-05-18  Gary Funck  <gary@intrepid.com>
1886         Merge trunk version 173845 into gupc branch.
1888 2011-05-17  Gary Funck  <gary@intrepid.com>
1890         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1891           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1893         * c-family/c-pragma.c: Remove conditional compilation
1894           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1895           Test 'compiling_upc' when compiling to determine if
1896           the "upc" and "pupc" pragmas should be registered.
1898         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1899           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1900           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1901           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1902           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1903           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1904           Move these target-dependent definitions from config/upc-conf.h
1905           to here.
1907         * configure.ac: Improve the logic for UPC-related options.
1908           Delete references to pre-processor definitions that have
1909           been moved to "upc/upc-pts.h".
1911         * configure, config.in: Regenerate.
1913         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1914           to trunk.  This substitution variable was used to
1915           configure the representation-specific versions of
1916           the tree rewrites that operate on UPC pointer-to-shared
1917           types and objects.
1919         * c-parser.c (c_parser_upc_forall_statement): Remove
1920           reference to UPC_FORALL_DEPTH_NAME, and call
1921           newly defined upc_rts_forall_depth_var() instead.
1923         * config/upc-config.h: Delete. Various definitions
1924           moved to "upc/upc-rts-names.h", "defaults.h", and
1925           "upc/upc-pts.h".
1927         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1928           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1929           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1930           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1931           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1932           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1933           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1934           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1935           New.  Document UPC target macros.
1936           doc/tm.texi: Regenerate.
1938 2011-05-07  Gary Funck  <gary@intrepid.com>
1940         * ../configure.ac: Disable build of libupc
1941           on non POSIX hosted systems.  Use AS_HELP_STRING
1942           to define messages.  Remove 'word-pair' as a
1943           possible --with-upc-pts UPC pointer-to-shared
1944           representation.
1946         * ../configure: Regenerate.
1948         * configure.ac: Use AS_HELP_STRING to define messages.
1949           Remove 'word-pair' as a possible --with-upc-pts
1950           UPC pointer-to-shared representation.
1951           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1952           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1954         * configure: Regenerate.
1956         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1957           definition.
1959         * ChangeLog.upc: Fix some typos.
1961 2011-05-07  Gary Funck  <gary@intrepid.com>
1963         * ../maintainer-scripts/gcc_release: Add "upc"
1964           as one of the released languages.
1966 2011-05-06  Gary Funck  <gary@intrepid.com>
1968         Eliminate compilation warnings, by fixing
1969         #include's and updating function prototypes.
1971         * c-family/c-cppbuiltin.c: Include c-upc.h.
1973         * optabs.c (gen_libfunc): Change type of 'suffix'
1974           parameter to conform with prototype.
1976         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1977           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1978           hook used by UPC.
1980         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1981           the prototype.
1983         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1984           argument values to cp_gimplify_expr.
1986         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1987           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
1988           pre-processor definitions that are no longer
1989           needed to build the 'upc' command (upc-cmd.c)
1990           because the linker specs. defined in libupc
1991           take care of linking in the needed libraries.
1993         * c-parser.c (c_parser_upc_forall_statement):
1994           initialize affinity_loc to avoid "maybe unused" warning.
1995           (c_parser_upc_sync_statement): Remove un-needed
1996           'ret' variable.  Cast return value from
1997           'upc_build_sync_stmt' to 'void' to avoid
1998           compile-time warning.
2000         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2001           integer constant, not a string.  Range is restricted
2002           to maximum positive 32-bit integer (2+ billion) to
2003           fit in with the use of 'int' in the front-end's
2004           switch handling logic.
2006 2011-05-06  Gary Funck  <gary@intrepid.com>
2008         Upgrade c-family source files to conform with modularity
2009         improvements.  Mainly, remove #include of c-tree.h in files
2010         under c-family, and define a new UPC-specific #include file,
2011         c-upc.h, and use it.
2013         * c-family/stub-upc.c: Remove #include of c-tree.h and
2014           upc/upc-act.h.  Replace with #include of c-common.h
2015           and c-upc.h.
2016           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2017           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2018           upc_localsizeof_expr, upc_localsizeof_type,
2019           upc_shared_type_p): Delete.
2021         * c-family/c-opts.c: Add #include of c-upc.h
2023         * c-family/c-common.c: Remove #include of c-tree.h and
2024           add #include of c-upc.h.
2026         * c-family/c-upc.h: New. Define API for UPC-specific functions
2027           (mostly implemented in upc/upc-act.c).
2029         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2030           Remove extern definitions.
2032         * c-family/c-pragma.c: Remove #include of c-tree.h.
2033           Add #include of c-upc.h.
2035         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
2036           c-tree.h.
2037           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
2038           upc/upc-act.c, and define as a macro.
2039           (expand_affinity_test): Remove unused external definition.
2040           (build_upc_unshared_type): Add external definition.
2041           (upc_shared_type_p): Remove external definition.
2043         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2045         * dojump.c: Remove #include of c-tree.h.
2047         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2048           and move to tree.h.
2049           (count_upc_threads_refs, is_multiple_of_upc_threads,
2050           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2051           upc_build_shared_var_addr, upc_build_sync_stmt,
2052           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2053           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2054           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2055           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2056           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2057           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2058           set_upc_consistency_mode, get_upc_consistency_mode,
2059           push_upc_consistency_mode, pop_upc_consistency_mode,
2060           get_upc_pupc_mode):
2061           Move external definitions to c-family/c-upc.h.
2062           (upc_blocksizeof_type, upc_localsizeof_type,
2063           upc_elemsizeof_type): Remove external definitions;
2064           these functions were moved to c-parser.c.
2066         * c-decl.c: Add #include of c-upc.h.
2068         * c-typeck.c: Add #include of c-upc.h.
2070         * c-convert.c: Add #include of c-upc.h.
2072         * ChangeLog.upc: Fix typo.
2074         * Makefile.in: Add references to c-family/c-upc.h, everywhere
2075           there is a reference to c-family/c-objc.h.
2076           Remove extraneous reference to upc-act.h.
2078         * c-parser.c: Add #include of c-upc.h.
2079           (upc_blocksizeof_expr, upc_blocksizeof_type,
2080           upc_elemsizeof_expr, upc_elemsizeof_type,
2081           upc_localsizeof_expr, upc_localsizeof_type):
2082           Move from upc/upc-act.c.
2084         * tree.c (build_upc_unshared_type): New.
2085           Move upc_get_unshared_type from upc/upc-act.c and rename
2086           to build_upc_unshared_type.
2087           c-family/c-common.c (pointer_int_sum): refer to renamed
2088           build_upc_unshared_type function.
2089           c-convert.c (convert): Ditto.
2090           convert.c (convert_to_pointer): Ditto.
2091           c-typeck.c (build_unary_op, build_modify_expr,
2092           really_start_incremental_init): Ditto.
2093           gimplify.c (create_tmp_var_raw): Ditto.
2094           tree.c (build1_stat): Ditto.
2095           tree.h (upc_get_unshared_type): Rename to
2096           build_upc_unshared_type.
2098 2011-05-06  Gary Funck  <gary@intrepid.com>
2100         Merge trunk version 173471 into gupc branch.
2102 2011-05-05  Gary Funck  <gary@intrepid.com>
2104         Make changes that bring the GUPC branch more closely in sync.
2105         with the GCC trunk.  Revert any fixes that are not UPC-specific.
2106         Remove gratuitous re-formatting.
2108         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2109           This file should have been removed in a previous merge
2110           with the trunk.
2111         * ../configure.ac: Remove Cray Catamount/CNL support.
2112         * ../configure: Regenerate.
2113         * ../config.sub: Remove Cray Catamount/CNL support.
2114         * config.gcc: Remove Cray Catamount/CNL support.
2115         * ../maintainer-scripts/gcc_release: Revert to trunk.
2116         * c-family/c-common.h: Define parse_optimize_options.  Its definition
2117           was missed in a previous merge with the trunk.
2118         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2119           procedure.
2120         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2121           in addition to ARRAY_TYPE.
2122         * c-typeck.c: Remove an extra newline character.
2123         * varasm.c: Revert a fix that improved an error message
2124           when TLS common data is unimplemented.
2125         * varasm.c: Revert a gcc_assert that had been added which
2126           checked for a null DECL_SIZE_UNIT field.
2127         * emultls.c: Revert to trunk. Remove possible fix.
2128         * Makefile.in: Revert extra blank line that is present
2129           in the trunk version.
2130         * Makefile.in: Revert a fix that handled long shell
2131           argument lists for plugin headers.
2132         * config/ia64/ia64.opt: Revert an option setting
2133           that increased the default TLS address range.
2134         * config/ia64/crtbegin.asm: Revert to trunk.
2135           Removes an extra newline character.
2136         * ChangeLog.upc: Spell check.
2138 2011-05-03  Gary Funck  <gary@intrepid.com>
2140         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2141           (c_apply_type_quals_to_decl): Ditto.
2142         * c-family/c-common.h: Ditto.
2143         * dojump.c: Ditto.
2144         * c-decl.c (merge_decls): Ditto.
2145         * c-typeck.c (qualify_type, default_conversion,
2146           build_component_ref, build_unary_op,
2147           c_build_qualified_type): Ditto.
2148         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2150 2011-04-29  Gary Funck  <gary@intrepid.com>
2152         * c-decl.c (finish_decl): Improve error diagnostics.
2153           (grokdeclarator): Ditto.
2155         * c-typeck.c (build_c_cast): Improve error diagnostics.
2156           (convert_for_assignment): Ditto.
2157           (build_binary_op): Ditto.
2159         * c-parser.c (c_parser_upc_forall_statement):
2160           Improve error diagnostics.
2162         * convert.c (convert_to_integer):  Improve error diagnostics.
2164 2011-04-24  Gary Funck  <gary@intrepid.com>
2166         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2167           occurred if there is an error in the barrier id
2168           expression.  Map error_mark_node into NULL.
2170 2011-04-22  Gary Funck  <gary@intrepid.com>
2172         Merge trunk version 172873 into gupc branch.
2174 2011-04-19  Gary Funck  <gary@intrepid.com>
2176         Merge trunk version 172359 into gupc branch.
2178 2011-04-14  Gary Funck  <gary@intrepid.com>
2180         * c-family/c.opt: Add UPC as a valid language for various
2181           switches where it is valid for "C", that were not updated
2182           in previous merges with trunk.
2184 2011-04-13  Gary Funck  <gary@intrepid.com>
2186         * c-family/c.opt (fupc-pre-include): New option definition.
2187         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2188           -fno-upc-pre-include is asserted.
2190 2011-04-07  Gary Funck  <gary@intrepid.com>
2192         Merge trunk version 172158 into gupc branch.
2193         to bring in the following fix.
2195 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2197         PR bootstrap/48403
2198         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2199         if old and new states differ.
2201 2011-04-06  Gary Funck  <gary@intrepid.com>
2203         Merge trunk version 171966 into gupc branch.
2205 2011-04-01  Gary Funck  <gary@intrepid.com>
2207         * tree.h (tree_base): Move UPC flag bits into bit fields
2208           located just before spare bits.  Decrement spare bits.
2209           Rename 'shared_flag' -> 'upc_shared_flag',
2210           'relaxed_flag' -> 'upc_relaxed_flag',
2211           'strict_flag' -> 'upc_strict_flag, and adjust macros
2212           that reference them accordingly.
2214 2011-04-01  Gary Funck  <gary@intrepid.com>
2216         * c-decl.c (grokdeclarator): Fix formatting of
2217           code that sets UPC block size on scalars.
2219 2011-04-01  Gary Funck  <gary@intrepid.com>
2221         * c-decl.c (grokdeclarator): Revert use of white space
2222           to match the trunk (to rationalize diffs).
2223         * c-typeck.c (convert_for_assignment): Ditto.
2224         * tree-ssa.c (useless_type_conversion_p): Ditto.
2226 2011-03-23  Gary Funck  <gary@intrepid.com>
2228         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2229           the GCC 4.6 release branch.
2231 2011-03-21  Gary Funck  <gary@intrepid.com>
2233         Merge trunk version 171202 into gupc branch.
2235 2011-03-20  Gary Funck  <gary@intrepid.com>
2237         * varasm.c: Call error() directly with a format specifier,
2238           rather than using sprintf() to format the message.
2239           This should make it easier to internationalize UPC's error messages.
2241 2011-03-20  Gary Funck  <gary@intrepid.com>
2243         * configure.ac: Fix the check for gnu ld when enabling
2244           UPC link script support.
2245           configure: Regenerate (also picks up changes from previous
2246           merge with trunk).
2248 2011-03-20  Gary Funck  <gary@intrepid.com>
2250         Move UPC start files, end files, and linker specs.
2251         into libupc.  This reduces the impact on common GCC
2252         configuration files, and ensures that these UPC-specific
2253         components are only built when the UPC language dialect is selected.
2255 gcc/
2256         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2257           linker specs. Fix typo in -fupc-debug message.
2259         * config/upc-conf.h, config/darwin.h: Move defines for
2260           UPC-related section begins/ends into libupc/config/default/
2261           upc-crt-config.h.
2263         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2264           UPC-related linker compiler specifications,
2265           accessed via %:include().
2267         * configure.ac, configure: Remove logic related to building
2268           upc-crtbegin/end. Remove config. tests for numa and cpu
2269           affinity (previously used by the 'upc' driver); these
2270           settings are now propagated by target-specific compiler
2271           specs. built by libupc.  Regenerate autoconf.
2273         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2274           linker compiler specifications, accessed via %:include().
2275           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2276           'link_upc_spec'.
2278         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2280         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2281           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2282           config/ia64/linux.h, config/mips/t-iris,
2283           config/mips/iris6.h: Revert to trunk version 167307.
2285 libgcc/
2286         * configure, configure.ac, config.host, Makefile.in:
2287           Revert to trunk version 167307.
2289 2011-02-23  Gary Funck  <gary@intrepid.com>
2291         * c-decl.c (undeclared_variable): fix typo. Inadvertently
2292         removed negation on following 'if'.
2294 2011-02-22  Gary Funck  <gary@intrepid.com>
2296         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2297         to check for the usage of certain deprecated UPC keywords.
2298         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2299         * c-tree.h (undeclared_variable): Define prototype.
2301 2011-02-12  Gary Funck  <gary@intrepid.com>
2303         * c-typeck.c: (build_c_cast, convert_for_assignment)
2304           Diagnose an attempt to convert from an integer to
2305           a pointer-to-shared as an error.  Also, fix various
2306           error messages so that they use the preferred term
2307           pointer-to-shared instead of "shared pointer".
2309 2011-02-07  Gary Funck  <gary@intrepid.com>
2311         * c-typeck.c: (convert_for_assignment)
2312           Fix typo. in error message.
2314 2011-01-23  Gary Funck  <gary@intrepid.com>
2316         * c-typeck.c: (c_build_qualified_type)
2317           derive UPC block size by calling upc_get_block_size(),
2318           to ensure that the element type of an array of an array
2319           is derived correctly.
2321 2010-12-29  Gary Funck  <gary@intrepid.com>
2323         Merge trunk version 168314 into gupc branch.
2325 2010-12-15  Gary Funck  <gary@intrepid.com>
2327         Merge trunk version 167307 into gupc branch.
2329 2010-10-19  Gary Funck  <gary@intrepid.com>
2331         * c-typeck.c: Fix typo in previous fix
2332           which led to a mis-compare for equal block sizes.
2334 2010-10-18  Gary Funck  <gary@intrepid.com>
2336         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2337           diagnosed as an error
2339           The conversion from any type (shared or not) to
2340           a shared type is likely either meaningless or an error.  This update
2341           makes any conversion to a shared type, an error.
2343 2010-10-18  Gary Funck  <gary@intrepid.com>
2345         * c-typeck.c: Fix bug: passing int to shared pointer arg.
2346           generates spurious warning
2348           Add a #define procedure that does the same thing as
2349           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
2350           this procedure to diagnose passing an integer value to a
2351           pointer-to-shared as an error.
2353 2010-10-18  Gary Funck  <gary@intrepid.com>
2355         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2356           matching routine declaration.
2358           When checking for type compatibility, shared qualified types must
2359           have the same block factor.  This check was missing from
2360           comptypes_internal().  This update adds the check for blocking
2361           factor equality.
2363 2010-10-17  Gary Funck  <gary@intrepid.com>
2365         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2366           found (-O1 -g)
2368           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2370 2010-10-17  Gary Funck  <gary@intrepid.com>
2372         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2373           45869 - [4.5/4.6 Regression] type mismatch in shift expression
2374           produces ice with -O3 and -m32.
2376           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2378 2010-10-17  Gary Funck  <gary@intrepid.com>
2380         * c-common.c: Diagnose the application of the various "*sizeof"
2381           operations on generic pointer-to-shared as a compilation error.
2383 2010-10-17  Gary Funck  <gary@intrepid.com>
2385         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2386           message regarding a function parameter being declared with a shared
2387           qualifier.
2389           The parameter's 'name' value is not defined at this point, and
2390           cannot be used in the error message.  This update removes the
2391           reference to 'name', and eliminates the segfault.
2393 2010-10-16  Gary Funck  <gary@intrepid.com>
2395         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2397           The gcc/Makefile.in rules for install-plugin had to be re-written to
2398           break up a long list of header files that exceeded the command line
2399           limitation imposed by Irix.
2401           Access functions for TFmode types had to be implemented.
2402           Apparently, this is the mode used for the SGI/MIPS port to represent
2403           "long float".
2405 2010-10-14  Gary Funck  <gary@intrepid.com>
2407         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2408           via typedef chain should not be diagnosed as an error.
2410           If the block size that is given by the typedef is equal to the block
2411           size given explicitly in the variable declaration, then do not
2412           complain.  The easiest way to make this check was to create a
2413           temporary type that is a clone of the element type and then set its
2414           block size using the given layout qualifier.  Then compare the block
2415           size of the temporary (the declaration) to the block size specified
2416           in the typedef.  This complexity is needed, because the '[*]' block
2417           size needs to be calculated, and the '[]' needs to be mapped into a
2418           zero block size.
2420 2010-10-10  Gary Funck  <gary@intrepid.com>
2422         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2423           specified
2425           The compiler properly detected the presence of two or more layout
2426           qualifiers as an error, but then hit an assertion check, because the
2427           code that followed the error expected to see a qualifier and not a
2428           layout specifier.  The fix is simple: just return immediately after
2429           detecting the error.
2431 2010-10-10  Gary Funck  <gary@intrepid.com>
2433         * c-decl.c: Improve error diagnostics for various cases of UPC
2434           shared array type declarations.
2436           Add the check for this error: "In the dynamic translation
2437           environment, THREADS may not appear in declarations of shared arrays
2438           with indefinite block size".  Also, fix up a few of the other
2439           related error diagnostics.
2441 2010-10-09  Gary Funck  <gary@intrepid.com>
2443         * c-common.c: Fix bug: segfault on incomplete array definition.
2445           This turned out to be a bit complicated.   The logic in
2446           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2447           the THREADS identifier in the case where the blocking factor has
2448           been set to indefinite ([]).  This can happen when indefinite array
2449           declarations are processed for shared arrays.  At that time, the
2450           file scope has been closed and THREADS is no longer in scope.  Some
2451           more work is needed on upc_lang_layout_decl().  It has some
2452           duplication, and notably duplicates the two branches of the if
2453           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2454           caller of this routine (layout_decl()).
2456           The method of forcing a layout qualifier of [] in the indefinite
2457           declaration handler is odd a well.  The code that just does the
2458           setting of the block factor, needs to moved into its own routine
2459           that doesn't depend upon a declspec for '[]' to be passed in, just
2460           in order to set the blocking factor to some value (in this case, 0).
2461           Also, the logic for how that shared type is constructed is strange.
2462           First the type with 0 blocking factor is set.  Then the shared
2463           qualifier is removed from the type, and then added back later.  The
2464           intermediate type has a blocking factor set, but it has no shared
2465           qualifier.  Fixing this will require some thought.  It is tempting
2466           just to make indefinite shared arrays an error, rather than forcing
2467           the dimension to be '1'.
2469           This likely fixes a serious error in the previous update to
2470           upc_lang_layout_decl(), where it didn't have the logic to set
2471           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2472           the previous update would fail on many tests.
2474 2010-10-09  Gary Funck  <gary@intrepid.com>
2476         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2477           (decl) is null, which can happen if some layout error occurred
2478           upstream.
2480 2010-10-09  Gary Funck  <gary@intrepid.com>
2482         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2483           "variable-sized" when compiled in dynamic threads.
2485           This long-standing bug is easily fixed.  Just check
2486           for the situation that the non-constant sized type is shared and
2487           that it does not have a dimension that references a multiple of
2488           threads.  If this criteria is met, then issue a meaningful
2489           diagnostic.
2491 2010-10-01  Gary Funck  <gary@intrepid.com>
2493         * configure, configure.ac: Update manual page, and bug reporting
2494           URL.
2496           Update "man" page to reflect debugging switches.  Also, some general
2497           clean up.  Change the bug reporting URL to point to gccupc.org.
2499 2010-09-27  Gary Funck  <gary@intrepid.com>
2501         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2502           the UPC forall depth count variable is not found.
2504           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2505           The compiler will generate code that references this variable in
2506           order to implement nested upc_forall semantics.  If there is a
2507           compiler build or install problem, this variable may not be found.
2508           In this case, terminate with an internal_error().
2510 2010-09-26  Gary Funck  <gary@intrepid.com>
2512         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2513           mis-diagnosed as syntax error.
2515           Fix a failure exhibited by the Berkeley test case,
2516           bug873a.upc, which has the code:
2517                double d;
2518                upc_forall (;;;d) {...} The compiler did not properly handle
2519           the empty "condition" clause, and did not recover well when it was
2520           determined that the use of a double value, "d" above, was neither a
2521           pointer-to-shared nor an integer expression.  The update implements a
2522           fix for both issues.
2524           See also: gcc/c-parser.c gcc/upc/upc-act.c
2526 2010-09-23  Gary Funck  <gary@intrepid.com>
2528         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2529           incorporated into the referencing type.
2531           This was semi-fixed a few times before.  This update fixes a few
2532           more places where the layout qualifier wasn't being propagated
2533           through typedef's properly.  What made this a bit tricky is shown in
2534           the example cited in the bug report:
2536           typedef shared [5] int A_t; A_t A[5*THREADS];
2538           In the typedef, the blocksize is being applied to a shared *scalar*,
2539           and the code was applying the blocksize only to arrays.  This update
2540           handles shared scalars correctly.
2542 2010-09-22  Gary Funck  <gary@intrepid.com>
2544         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2545           upc_forall() semantics are not implemented
2547           The checkforall test in the Berkeley harness test suite indicated
2548           that GCC/UPC was not properly implementing nested upc_forall
2549           semantics.  Nested upc_forall statements (both statically or
2550           dynamically nested) must implement their affinity clause as if it
2551           were "continue"; thus all steps in the loop must execute without
2552           regard for affinity.  To implement these semantics a global depth
2553           counter, __upc_forall_depth, is maintained by the generated code
2554           that implements upc_forall.
2556           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2557           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2558           libupc/include/upc.h libupc/smp/upc_main.c
2560 2010-09-19  Gary Funck  <gary@intrepid.com>
2562         * c-decl.c: c-decl.c: zero out the layout specifier, after
2563           processing an array type.
2565           Fix the previous fix, that moved the setting of the type's layout
2566           qualifier to the outside of the array type processing loop.  What is
2567           missing from the fix is that the layout_qualifier variable needs to
2568           be cleared after setting the type's blocksize.
2570 2010-09-19  Gary Funck  <gary@intrepid.com>
2572         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2573           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2575           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2576           the actual maximum block size.  Therefore, the message was correct,
2577           but the underlying value that was being checked was wrong.  Change
2578           the values so that they agree with the actual implementation-defined
2579           limit.
2581 2010-09-11  Gary Funck  <gary@intrepid.com>
2583         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2584           multi-dimensional shared array with dynamic threads.
2586           This declaration caused an internal compiler error when compiled
2587           with dynamic threads:
2588               shared [*] int A[THREADS][16]; The bug was discovered when
2589           compiling the RTED_UPC test suite.
2591           The fix is to process layout qualifiers after the entire array type
2592           has been built.  Otherwise, we try to calculate the blocksize on a
2593           shared array type that has not had its "size depends upon the value
2594           of THREADS" flag set.
2596           Also, added a test case.
2598           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2600 2010-07-11  Gary Funck  <gary@intrepid.com>
2602         Fix a bug where a statement in c_build_qualified_type()
2603         in the trunk had been inadvertently deleted.
2604         This bug showed up in the IA64 port, because jmpbuf's
2605         on that architecture must be 16 byte aligned, and they were not.
2606         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2608 2010-07-08  Gary Funck  <gary@intrepid.com>
2610         Make changes so that other language compilers
2611         will build and bootstrap.
2612         * c-family/c-common.c (compiling_upc, flag_upc,
2613         flag_upc_instrument, flag_upc_instrument_functions,
2614         use_upc_dwarf2_extensions): Move to stub-upc.c and
2615         upc-lang.c.
2616         * c-family/c-common.h (use_upc_dwarf2_extensions,
2617         compiling_upc): Add extern definitions - needed
2618         to compile/build other language front ends.
2619         * c-family/c.opt: Fix the spelling of ObjC.
2620         It had been incorrectly spelled as Objc.
2621         * c-family/c.opt: Add UPC for the various switches
2622         that are valid for both C and ObjC.
2623         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2624         supported options switches when compiling assembly
2625         language.
2626         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2627         flag_upc_instrument, flag_upc_instrument_functions):
2628         Remove these definitions.  They have been moved
2629         to c-family/stub-upc.c.
2630         * upc/ChangeLog: Move relevant entries
2631         to ChangeLog.upc.
2632         * c-family/stub-upc.c (compiling_upc, flag_upc,
2633         flag_upc_instrument, flag_upc_instrument_functions,
2634         use_upc_dwarf2_extensions): Moved from c-common.c
2635         * upc/upc-lang.c (compiling_upc, flag_upc,
2636         flag_upc_instrument, flag_upc_instrument_functions,
2637         use_upc_dwarf2_extensions): Moved from c-common.c
2638         * objc/objc-act.c (objc_gimplify_expr): Add additional
2639         parameters to c_gimplify_expr() call, that are used
2640         by upc's tree rewrites.
2641         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2642         * gcc/cp/lex.c (init_reswords): If not compiling
2643         UPC, then mask off the UPC keywords.
2644         * cp/Make-lang.in (C_STUB_OBJS): Use this
2645         make macro to link with c-family/stub-objc.o
2646         and c-family/stub-upc.o.
2647         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2648         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2649         * objc/Make-lang.in: Link with c-family/stub-upc.o
2650         to avoid undefined references.
2651         c-parser.c: Fix line indentation.
2652         * libcpp/include/cpplib.h: Remove CL_UPC from
2653         the list of language kinds accepted by the
2654         C preprocessor.  This is not necessary because
2655         UPC is a derivative of C99, and does not need
2656         a different language kind.
2657         * c-fmaily/c-opts.c (c_common_handle_option):
2658         Call set_std_c99() when processing the
2659         "--lang upc" switch, instead of setting the
2660         language kind to CL_UPC.
2661         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2663 2010-07-03  Gary Funck  <gary@intrepid.com>
2665         Merge trunk version 161517 into gupc branch.
2666         * gcc/stub-upc.c: Move to gcc/c-family/.
2667         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2668         Add 'unused' attributes to avoid "set, but
2669         not referenced" warnings.
2670         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2671         Likewise.
2673 2010-03-01 Gary Funck  <gary@intrepid.com>
2675         Create gupc branch from trunk version 157149.