Merge trunk version 189080 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blobbc40f0ebb6e17a6d789815454b7dd5bff1333092
1 2012-07-04  Gary Funck  <gary@intrepid.com>
3         Merge trunk version 189080 into gupc branch.
4         * Makefile.in: Adjust for move of C front-end files.
5         * c/Make-lang.in: Ditto.
7 2012-07-03  Gary Funck  <gary@intrepid.com>
9         Merge trunk version 189078 into gupc branch.
11 2012-06-25  Gary Funck  <gary@intrepid.com>
13         Merge trunk version 188931 into gupc branch.
15 2012-06-18  Gary Funck  <gary@intrepid.com>
17         Merge trunk version 188721 into gupc branch.
19 2012-06-11  Gary Funck  <gary@intrepid.com>
21         Merge trunk version 188380 into gupc branch.
23 2012-06-04  Gary Funck  <gary@intrepid.com>
25         Merge trunk version 188168 into gupc branch.
27 2012-05-29  Gary Funck  <gary@intrepid.com>
29         Merge trunk version 187927 into gupc branch.
31 2012-05-18  Gary Funck  <gary@intrepid.com>
33         Merge trunk version 187666 into gupc branch.
34         Incorporates fix for ICE in tree vectorization pass
35         when processing strided loads.
37 2012-05-17  Gary Funck  <gary@intrepid.com>
39         Merge trunk version 187578 into gupc branch.
41 2012-05-09  Gary Funck  <gary@intrepid.com>
43         Merge trunk version 187347 into gupc branch.
44         Incorporates fix for segfault in tree vectorization pass.
46 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
48         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
49         Appropriate libraries and include files are added on the
50         command line to make it possible to compile with the driver
51         from the build tree.
53 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
55         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
56         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
57         a function returns a pointer-to-shared in memory instead
58         of in registers.
59         (rs6000_pass_by_reference): Ditto.
61 2012-04-28  Gary Funck  <gary@intrepid.com>
63         * c-decl.c (grokdeclarator): Set 'type' to error node
64         after detecting "shared auto variable" error to avoid
65         downstream complications.
66         * upc-act.c: Fix a couple of spelling errors in comments.
68 2012-04-26  Gary Funck  <gary@intrepid.com>
70         * c-family/c-pragma.c (handle_pragma_upc):
71         Fix typo in warning message.
73 2012-04-17  Gary Funck  <gary@intrepid.com>
75         Merge trunk version 186486 into gupc branch.
77 2012-04-17  Gary Funck  <gary@intrepid.com>
79         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
80         value of the pupc mode.  Fixes a compile-time warning.
81         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
82         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
83         Improve source formatting.
85 2012-04-09  Gary Funck  <gary@intrepid.com>
87         Merge trunk version 186243 into gupc branch.
88         Incorporates a powerpc 'ffi' fix.
90 2012-03-16  Gary Funck  <gary@intrepid.com>
92         Merge trunk version 185454 into gupc branch.
93         Incorporates a libgcc fix for builds on Darwin.
95 2012-03-13  Gary Funck  <gary@intrepid.com>
97         Merge trunk version 185278 into gupc branch.
98         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
99         call build_pointer_type() to apply UPC-specific qualifiers.
100         * top-level/configure.ac: factor the checking for posix hostst
101         out of the libgomp section so that it can also be used by libgupc.
102         * top-level/configure: Re-generate.
103         * DEV-PHASE: bump to 4.8.0-1.
105 2012-03-12  Gary Funck  <gary@intrepid.com>
107         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
108         the mode for a pointer for upc-pointer-to-shared types.
110 2012-03-04  Gary Funck  <gary@intrepid.com>
112         Merge trunk version 184900 into gupc branch.
114 2012-02-17  Gary Funck  <gary@intrepid.com>
116         Released GUPC 4.7.0.2 based on version 183992.
117         * DEV-PHASE: Bump release identifier to 4.7.0-3.
118         * DATESTAMP: Bump date stamp.
120 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
122         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
123         code generation (same as #pragma pupc off).
124         (set_pupc_mode): New. Set/restore profiling mode.
125         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
126         (set_pupc_mode): New. Prototype.
127         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
128         profiling code for shared variables initialization routines.
130 2012-01-31  Gary Funck  <gary@intrepid.com>
132         Merge trunk version 183751 into gupc branch.
133         Incorporates fix for bootstrap failure on openSUSE 12.1.
135 2012-01-10  Gary Funck  <gary@intrepid.com>
137         Merge trunk version 183072 into gupc branch.
138         Incorporates libcpp __BASE_FILE__ fix.
140 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
142         * top-level/Makefile.def (flags_to_pass): Added GUPC
143         defines. Fixes the make error when upc is not specified as one
144         of the languages to build.
145         * top-level/Makefile.in: Re-generate.
147 2011-11-22  Gary Funck  <gary@intrepid.com>
149         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
150         * dwarf2out.c (gen_compile_unit_die): Check for
151         the "GNU UPC" language string in lieu of "GCC UPC".
152         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
154 2011-11-18  Gary Funck  <gary@intrepid.com>
156         Merge trunk version 181552 into gupc branch.
157         Incorporates libgcc/libunwind fix for IA64.
159 2011-11-19  Gary Funck  <gary@intrepid.com>
161         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
162         Add check for UPC when defining the language type value
163         in a traceback entry.
165 2011-11-18  Gary Funck  <gary@intrepid.com>
167         Merge trunk version 181493 into gupc branch.
168         Incorporates final fix for PR target/49992.
170 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
172         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
173         change that converted relative include paths into absolute
174         ones, as it does not work with older version of make (3.80).
176 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
178         Apply patch for Darwin build - PR49992.
179         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
180         * gcc/configure.ac: Ditto.
181         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
182         * gcc/ada/gcc-interface/Makefile.in: Ditto.
183         * top-level/configure: Re-generate.
184         * gcc/configure: Re-genrate.
186 2011-10-26  Gary Funck  <gary@intrepid.com>
188         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
189         "libupc" to "libgupc".
190         * top-level/configure.ac: Implement support for cross-builds, and
191           adjust for rename of libupc to libgupc.
192         * top-level/Makefile.tpl: Ditto.
193         * top-level/Makefile.def: Ditto.
194         * top-level/configure: Re-generate.
195         * top-level/Makefile.in: Re-generate.
196         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
197         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
198         * doc/tm.texi: Re-generate.
199         * tree-pretty-print.c (dump_block_node): Delete unused variable.
200         * gcc.c: Adjust for rename of libupc to libgupc.
201         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
202         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
203         Change "xupc" to "xgupc".
204         * configure.ac: Change "GCC UPC" to "GNU UPC".
205         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
206         so that they are absolute paths.  This is needed because
207         the upc-crtstuff builds are in the libgupc library build
208         directories which are not at the same level as libgcc.
209         * config/darwin.h: Adjust for rename of libupc to libgupc.
211 2011-10-20  Gary Funck  <gary@intrepid.com>
213         Merge trunk version 180276 into gupc branch.
214         Incorporates fix for PR bootstrap/50709.
216 2011-10-20  Gary Funck  <gary@intrepid.com>
218         Merge trunk version 180246 into gupc branch.
220 2011-10-19  Gary Funck  <gary@intrepid.com>
222         Merge trunk version 180233 into gupc branch.
223         Incorporates fix for PR debug/49310 (var tracking).
225 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
227         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
228         only four (O0 static/dynamic, O3 static/dynamic).
229         Detect -fupc-threads-0 as an option for dynamic threads
230         compile environment.
232 2011-10-10  Gary Funck  <gary@intrepid.com>
234         * tree.c (check_qualified_type, check_aligned_type):
235         Call tree_int_cst_equal() to compare UPC blocking factors
236         if the corresponding tree pointers are not equal.
237         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
239 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
241         Add configuration checks for struct/packed builds so we can
242         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
243         * testsuite/lib/target-supports.exp
244         (check_effective_target_upc_struct_pts): New.
245         (check_effective_target_upc_packed_pts): New.
247 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
249         Add to FLAGS the flags needed to disable inlining of
250         UPC run-time access routines.
251         * testsuite/lib/target-supports.exp
252         (add_options_for_upc_library_calls): New.
254 2011-09-15  Gary Funck  <gary@intrepid.com>
256         Fix ICE involving shared bit field accesses.
257         * tree.c (build3_stat): Propagate TEEE_SHARED()
258         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
260 2011-09-13  Gary Funck  <gary@intrepid.com>
262         Merge trunk version 178795 into gupc branch.
263         Incorporates fix to PR bootstrap/50010 for x86-32.
265 2011-09-08  Gary Funck  <gary@intrepid.com>
267         Merge trunk version 178557 into gupc branch.
269 2011-09-07  Gary Funck  <gary@intrepid.com>
271         Ensure that UPC pointer-to-shared type alignment is
272         propagated to the final type.  Revert to long-standing
273         alignment policy: twice the size of a "C" pointer.
274         * tree.c (build_pointer_type): Propagate the alignment
275         of the UPC pointer-to-shared representation type
276         into the newly built pointer type.
278 2011-08-30  Gary Funck  <gary@intrepid.com>
280         * tree.h (check_qualified_type): Change 'const_tree'
281         argument types back to 'tree' to avoid complaints
282         of assignment drops qualifiers for invocations of the
283         newly implemented TYPE_BLOCK_FACTOR() macro, which
284         invokes hash functions with 'tree' pointer values that
285         are not const qualified.
286         * tree.c (check_qualified_type, check_aligned_type): Ditto.
287         * c-typeck.c (comptypes_internal): Ditto.
289 2011-08-29  Gary Funck  <gary@intrepid.com>
291         Fixes for regressions noted running "make check"
292         versus GCC trunk.
293         * fold-const.c (fold_unary_loc): Execute UPC-specific
294         checks for a cast-of-a-cast, only if one of the
295         operands is a UPC pointer-to-shared value.
296         * opts.c (print_specific_help):  Fix a comparison
297         in an assert that checks that there are enough
298         bits reserved for the number of languages defined
299         in the .opt files.
301 2011-08-29  Gary Funck  <gary@intrepid.com>
303         Implement a hash table to record UPC block factors.
304         * c-family/stub-upc.c (upc_block_factor_insert,
305         upc_block_factor_lookup): New dummy stub procedures.
306         * c-family/c-common.c (c_sizeof_or_alignof_type):
307         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
308         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
309         to copy (hashed) UPC blocking factor.
310         (set_type_quals): Likewise.
311         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
312         TYPE_HAS_THREADS_FACTOR().
313         (type_common.block_factor): Delete.
314         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
315         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
316         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
317         UPC blocking factors greater than one.
318         * dwarf2out.c (modified_type_die): Re-implement
319         logic that records UPC blocking factor in the generated
320         DWARF2 debugging information.
321         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
322         TYPE_HAS_THREADS_FACTOR().
323         * c-decl.c (finish_decl, grokdeclarator):
324         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
325         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
326         used by UPC, and print UPC-specific information.
328 2011-08-28  Gary Funck  <gary@intrepid.com>
330         Re-work the type machinery to fully support and to unify support
331         for the UPC layout qualifier (blocking factor).
332         * c-family/stub-upc.c (upc_set_block_factor): Delete.
333           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
334           and update prototype.
335         * c-family/c-common.c (complete_array_type): call newly
336           defined c_build_qualified_type_1() instead of
337           upc_set_block_factor().
338         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
339           upc_apply_layout_qualifier() and update prototype.
340           (upc_set_block_factor): Delete prototype.
341         * c-family/c-common.h (c_build_qualified_type): redefine
342           as a pre-processor macro that invokes c_build_qualified_type_1()
343           with a null UPC layout qualifier.
344           (c_build_qualified_type_1): New.  Add layout qualifier argument
345           to old c_build_qualified_type() prototype.
346         * tree.c (set_type_quals, check_qualified_type):
347           Add layout qualifier as argument.
348           (check_aligned_type): Add check for UPC block factor equality.
349           (get_qualified_type_1): Rename from get_qualified_type() and
350           add layout qualifier as argument.
351           (build_qualified_type_1): Rename from build_qualified_type() and
352           add layout qualifier as argument.
353         * tree.h (check_qualified_type): Add layout qualifier as argument
354           to the prototype.
355           (get_qualified_type): Re-define as a as a pre-processor macro
356           that invokes get_qualified_type_1() with a null
357           UPC layout qualifier.
358           (get_qualified_type_1): Rename from get_qualified_type() and
359           add layout qualifier as argument.
360         * cp/tree.c (c_build_qualified_type_1): Rename from
361           c_build_qualified_type() and add (unused) layout qualifier
362           argument.
363         * c-decl.c (finish_decl): re-format long error messages.
364           (grokdeclarator): Re-work the logic so that it calls
365           upc_grok_layout_qualifier() to handle the UPC layout
366           qualifier, if present.
367         * c-typeck.c (qualify_type, common_pointer_type,
368           build_component_ref): Re-work the logic so that it calls
369           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
370           if present.
371           (c_build_qualified_type_1): Rename from c_build_qualified_type()
372           and add layout qualifier argument.
373         * print_tree.c (print_node): Re-format a long line.
375 2011-08-26  Gary Funck  <gary@intrepid.com>
377         Merge trunk version 177949 into gupc branch.
378         * c-family/c-common.h (enum rid): Bump the number of type modifiers
379           in the comment.
380         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
381           to add new rliterals column value.
383 2011-08-26  Gary Funck  <gary@intrepid.com>
385         * convert.c (convert_to_integer): Fix the check for the
386           difference between two UPC pointers-to-shared values.
388 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
390         * configure.ac: Fix the name for --with-upc-pts-packed-bits
391           option. Support --with-upc-packed-bits as deprecated. Fix the code to
392           correctly check packed bits.
393         * configure: Re-generate.
395 2011-08-16  Gary Funck  <gary@intrepid.com>
397         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
398           the barrier id expression is not an integer expression.
400 2011-08-12  Gary Funck  <gary@intrepid.com>
402         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
403           (revert to trunk).
404         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
405           Set mode of UPC pointer-to-shared rep. to an
406           integral mode of size at least as large as the
407           size of the representation's struct type.
409 2011-08-12  Gary Funck  <gary@intrepid.com>
411         Rework/simplify the UPC genericize pass.
412         * c-family/stub-upc.c (upc_apply_layout_qualifier,
413           upc_build_pointer_type): New.
414           (upc_set_block_factor): Adjust to new calling sequence.
415           (upc_build_shared_var_addr): Delete.
416         * c-family/c-common.c (complete_array_type): Adjust call
417           to upc_set_block_factor().
418         * c-family/c-upc.h (upc_apply_layout_qualifier,
419           upc_build_pointer_type): New.
420           (upc_build_shared_var_addr): Delete.
421           (upc_set_block_factor): Adjust to new calling sequence.
422         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
423         * c-decl.c (grokdeclarator): Call newly defined
424           upc_apply_layout_qualifier() instead of upc_set_block_factor().
425         * c-decl.c (grokdeclarator): Split long UPC-related error
426           messages into two lines.
427         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
428           directly.  Revert that change to trunk. (upc_genericize() will
429           handle lowering the expressions that take the address of a
430           UPC variable).
431         * config/i386/i386.c (ix86_promote_function_mode): For UPC
432           pointers-to-shared, return the type mode of the UPC pointer-to-shared
433           representation type.
435 2011-08-10  Gary Funck  <gary@intrepid.com>
437         Implement additional fixes for recent merge with trunk.
438         * explow.c (promote_mode): Do not attempt to promote
439           the mode for UPC pointer-to-shared types.
440         * config/i386/i386.c (function_value_64): Ditto.
442 2011-08-07  Gary Funck  <gary@intrepid.com>
444         Merge trunk version 177548 into gupc branch.
445         * config/i386/i386.c (ix86_promote_function_mode):
446           Do not promote UPC pointers-to-shared to Pmode.
447         * c-family/c-ommon.c (pointer_int_sum):
448           Also check the pointer operand, rather than just
449           its type, when making the decision to derive
450           the equivalent unshared type.
451         * tree.c (build2_stat): If the type of the result
452           passed in as an argument is a UPC shared type,
453           derive the unshared equivalent when calculating
454           the result type of the node.
456 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
458         * config/darwin.c: Disable var_tracking option
459           on -O0 as it is supposed to run only when optimization
460           is applied. See GCC bug 49743.
462 2011-07-06  Gary Funck  <gary@intrepid.com>
464         Re-implement the pass that lowers trees generated by
465         the UPC front-end into GENERIC.  Previously this was
466         done within the gimplification framework, but this
467         required that gimplification be run before inlining
468         and various other passes, which did not fit in well
469         with the current design of the middle-end passes.
470         Now, the lowering is done by a newly defined language
471         specific genericize hook.  With this change, we are
472         are able to undo some extensions made to the gimplify
473         logic, and thus can revert several files to trunk.
475         * c-decl.c: Add a check for UPC deprecated names which
476           may appear as undefined function names.
477         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
478           LTI_upc_getaddr): Remove definitions of unused UPC
479           library function names.  These were defined back when
480           the libfunc interface was used to call these routines.
481         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
482           in UPC lowering (genericize) pass.
483         * langhooks.h (gimplify_expr): Revert to trunk's definition.
484           (instrument_func): Delete this hook.  Now handled in
485           upc_genericize().
486         * tree-pass.h: Revert to trunk.
487         * c-typeck.c (build_unary_op): Adjust reference to
488           upc_genericize() in a comment.
489         * gimplify.c (create_tmp_var_raw): Delete logic that
490           was converting UPC shared types into unshared types
491           to be used for temporaries.  Now handled in  upc_genericize().
492           Replace with an assertion check.
493           (prepare_gimple_addressable): Revert to trunk's definition.
494           No longer needed as an externally called function.
495           (flag_instrument_functions_exclude_p): Re-define as
496           an externally called function.
497           (gimplify_function_tree): Delete code that implemented
498           call to UPC's language specific function instrumentation hook.
499         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
500           (prepare_gimple_addressable): Delete extern definition;
501           revert to trunk's definition.
502         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
503           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
504         * c-family/c-gimplify.c: Revert to trunk.
505         * cp/cp-gimplify.c: Revert to trunk.
506         * cp/cp-tree.h: Revert to trunk.
507         * explow.c: Revert to trunk.
508         * langhooks.c: Revert to trunk.
509         * libfuncs.h: Revert to trunk.
510         * objc/objc-act.c: Revert to trunk.
512 2011-06-30  Gary Funck  <gary@intrepid.com>
514         * c-family/c.opt: Bring options definitions up-to-date
515         with respect to changes made in the trunk.
517 2011-06-29  Gary Funck  <gary@intrepid.com>
519         Merge trunk version 175584 into gupc branch.
521 2011-06-13  Gary Funck  <gary@intrepid.com>
523 libcpp/
524         * include/cpplib.h (enum c_lang):
525         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
526         This keeps all the "C" variants together.
527         * init.c (lang_defaults): Add an entry for UPC.
529 2011-06-09  Gary Funck  <gary@intrepid.com>
531         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
532         a 32-bit target, the size expression overflowed, the result was
533         error_mark_node, and an ICE was triggered on an attempt to evaluate
534         C_TYPE_VARIABLE_SIZE() on the error node.
535         (upc_blocksizeof_expr, upc_blocksizeof_type,
536         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
537         Make similar changes to avoid further processing of error_mark_node.
539 2011-06-07  Gary Funck  <gary@intrepid.com>
541         * sel-sched.c (move_op): Incorporate the following
542         patch to eliminate ICE at -O3 on IA64/Altix.
544 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
546         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
547         code_motion_path_driver returned 0 or 1.
548         (sel_region_finish): Clear h_d_i_d.
550 2011-06-02  Gary Funck  <gary@intrepid.com>
552         Merge trunk version 174558 into gupc branch.
554 2011-05-30  Gary Funck  <gary@intrepid.com>
556         * configure.ac: Make the default order of the virtual
557           address field in a UPC pointer-to-shared to be "first".
558           This reverts to the previous setting, and is a short term
559           measure to work around a bug found on the IA64,
560           where vaddr=last led to incorrect code generation.
561           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
562           in AC_DEFINE(), to agree with recent changes in files
563           that reference this define.
564           configure, config.in: Regenerate.
566 2011-05-26  Gary Funck  <gary@intrepid.com>
568         * configure.ac: Fix typo when referring to $upc_vaddr_order.
569           configure: Regenerate.
571         * ../fixincludes/fixincl.x: Revert to trunk.
572           This file is auto-generated, and should not be merged.
574 2011-05-18  Gary Funck  <gary@intrepid.com>
576         Merge trunk version 173845 into gupc branch.
578 2011-05-17  Gary Funck  <gary@intrepid.com>
580         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
581           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
583         * c-family/c-pragma.c: Remove conditional compilation
584           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
585           Test 'compiling_upc' when compiling to determine if
586           the "upc" and "pupc" pragmas should be registered.
588         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
589           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
590           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
591           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
592           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
593           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
594           Move these target-dependent definitions from config/upc-conf.h
595           to here.
597         * configure.ac: Improve the logic for UPC-related options.
598           Delete references to pre-processor definitions that have
599           been moved to "upc/upc-pts.h".
601         * configure, config.in: Regenerate.
603         * Makefile.in (UPC_PTS_REP): Remove definition and revert
604           to trunk.  This substitution variable was used to
605           configure the representation-specific versions of
606           the tree rewrites that operate on UPC pointer-to-shared
607           types and objects.
609         * c-parser.c (c_parser_upc_forall_statement): Remove
610           reference to UPC_FORALL_DEPTH_NAME, and call
611           newly defined upc_rts_forall_depth_var() instead.
613         * config/upc-config.h: Delete. Various definitions
614           moved to "upc/upc-rts-names.h", "defaults.h", and
615           "upc/upc-pts.h".
617         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
618           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
619           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
620           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
621           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
622           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
623           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
624           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
625           New.  Document UPC target macros.
626           doc/tm.texi: Regenerate.
628 2011-05-07  Gary Funck  <gary@intrepid.com>
630         * ../configure.ac: Disable build of libupc
631           on non POSIX hosted systems.  Use AS_HELP_STRING
632           to define messages.  Remove 'word-pair' as a
633           possible --with-upc-pts UPC pointer-to-shared
634           representation.
636         * ../configure: Regenerate.
638         * configure.ac: Use AS_HELP_STRING to define messages.
639           Remove 'word-pair' as a possible --with-upc-pts
640           UPC pointer-to-shared representation.
641           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
642           (UPC_MAX_BLOCK_SIZE): Correct the default value.
644         * configure: Regenerate.
646         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
647           definition.
649         * ChangeLog.upc: Fix some typos.
651 2011-05-07  Gary Funck  <gary@intrepid.com>
653         * ../maintainer-scripts/gcc_release: Add "upc"
654           as one of the released languages.
656 2011-05-06  Gary Funck  <gary@intrepid.com>
658         Eliminate compilation warnings, by fixing
659         #include's and updating function prototypes.
661         * c-family/c-cppbuiltin.c: Include c-upc.h.
663         * optabs.c (gen_libfunc): Change type of 'suffix'
664           parameter to conform with prototype.
666         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
667           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
668           hook used by UPC.
670         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
671           the prototype.
673         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
674           argument values to cp_gimplify_expr.
676         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
677           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
678           pre-processor definitions that are no longer
679           needed to build the 'upc' command (upc-cmd.c)
680           because the linker specs. defined in libupc
681           take care of linking in the needed libraries.
683         * c-parser.c (c_parser_upc_forall_statement):
684           initialize affinity_loc to avoid "maybe unused" warning.
685           (c_parser_upc_sync_statement): Remove un-needed
686           'ret' variable.  Cast return value from
687           'upc_build_sync_stmt' to 'void' to avoid
688           compile-time warning.
690         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
691           integer constant, not a string.  Range is restricted
692           to maximum positive 32-bit integer (2+ billion) to
693           fit in with the use of 'int' in the front-end's
694           switch handling logic.
696 2011-05-06  Gary Funck  <gary@intrepid.com>
698         Upgrade c-family source files to conform with modularity
699         improvements.  Mainly, remove #include of c-tree.h in files
700         under c-family, and define a new UPC-specific #include file,
701         c-upc.h, and use it.
703         * c-family/stub-upc.c: Remove #include of c-tree.h and
704           upc/upc-act.h.  Replace with #include of c-common.h
705           and c-upc.h.
706           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
707           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
708           upc_localsizeof_expr, upc_localsizeof_type,
709           upc_shared_type_p): Delete.
711         * c-family/c-opts.c: Add #include of c-upc.h
713         * c-family/c-common.c: Remove #include of c-tree.h and
714           add #include of c-upc.h.
716         * c-family/c-upc.h: New. Define API for UPC-specific functions
717           (mostly implemented in upc/upc-act.c).
719         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
720           Remove extern definitions.
722         * c-family/c-pragma.c: Remove #include of c-tree.h.
723           Add #include of c-upc.h.
725         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
726           c-tree.h.
727           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
728           upc/upc-act.c, and define as a macro.
729           (expand_affinity_test): Remove unused external definition.
730           (build_upc_unshared_type): Add external definition.
731           (upc_shared_type_p): Remove external definition.
733         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
735         * dojump.c: Remove #include of c-tree.h.
737         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
738           and move to tree.h.
739           (count_upc_threads_refs, is_multiple_of_upc_threads,
740           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
741           upc_build_shared_var_addr, upc_build_sync_stmt,
742           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
743           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
744           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
745           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
746           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
747           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
748           set_upc_consistency_mode, get_upc_consistency_mode,
749           push_upc_consistency_mode, pop_upc_consistency_mode,
750           get_upc_pupc_mode):
751           Move external definitions to c-family/c-upc.h.
752           (upc_blocksizeof_type, upc_localsizeof_type,
753           upc_elemsizeof_type): Remove external definitions;
754           these functions were moved to c-parser.c.
756         * c-decl.c: Add #include of c-upc.h.
758         * c-typeck.c: Add #include of c-upc.h.
760         * c-convert.c: Add #include of c-upc.h.
762         * ChangeLog.upc: Fix typo.
764         * Makefile.in: Add references to c-family/c-upc.h, everywhere
765           there is a reference to c-family/c-objc.h.
766           Remove extraneous reference to upc-act.h.
768         * c-parser.c: Add #include of c-upc.h.
769           (upc_blocksizeof_expr, upc_blocksizeof_type,
770           upc_elemsizeof_expr, upc_elemsizeof_type,
771           upc_localsizeof_expr, upc_localsizeof_type):
772           Move from upc/upc-act.c.
774         * tree.c (build_upc_unshared_type): New.
775           Move upc_get_unshared_type from upc/upc-act.c and rename
776           to build_upc_unshared_type.
777           c-family/c-common.c (pointer_int_sum): refer to renamed
778           build_upc_unshared_type function.
779           c-convert.c (convert): Ditto.
780           convert.c (convert_to_pointer): Ditto.
781           c-typeck.c (build_unary_op, build_modify_expr,
782           really_start_incremental_init): Ditto.
783           gimplify.c (create_tmp_var_raw): Ditto.
784           tree.c (build1_stat): Ditto.
785           tree.h (upc_get_unshared_type): Rename to
786           build_upc_unshared_type.
788 2011-05-06  Gary Funck  <gary@intrepid.com>
790         Merge trunk version 173471 into gupc branch.
792 2011-05-05  Gary Funck  <gary@intrepid.com>
794         Make changes that bring the GUPC branch more closely in sync.
795         with the GCC trunk.  Revert any fixes that are not UPC-specific.
796         Remove gratuitous re-formatting.
798         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
799           This file should have been removed in a previous merge
800           with the trunk.
801         * ../configure.ac: Remove Cray Catamount/CNL support.
802         * ../configure: Regenerate.
803         * ../config.sub: Remove Cray Catamount/CNL support.
804         * config.gcc: Remove Cray Catamount/CNL support.
805         * ../maintainer-scripts/gcc_release: Revert to trunk.
806         * c-family/c-common.h: Define parse_optimize_options.  Its definition
807           was missed in a previous merge with the trunk.
808         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
809           procedure.
810         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
811           in addition to ARRAY_TYPE.
812         * c-typeck.c: Remove an extra newline character.
813         * varasm.c: Revert a fix that improved an error message
814           when TLS common data is unimplemented.
815         * varasm.c: Revert a gcc_assert that had been added which
816           checked for a null DECL_SIZE_UNIT field.
817         * emultls.c: Revert to trunk. Remove possible fix.
818         * Makefile.in: Revert extra blank line that is present
819           in the trunk version.
820         * Makefile.in: Revert a fix that handled long shell
821           argument lists for plugin headers.
822         * config/ia64/ia64.opt: Revert an option setting
823           that increased the default TLS address range.
824         * config/ia64/crtbegin.asm: Revert to trunk.
825           Removes an extra newline character.
826         * ChangeLog.upc: Spell check.
828 2011-05-03  Gary Funck  <gary@intrepid.com>
830         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
831           (c_apply_type_quals_to_decl): Ditto.
832         * c-family/c-common.h: Ditto.
833         * dojump.c: Ditto.
834         * c-decl.c (merge_decls): Ditto.
835         * c-typeck.c (qualify_type, default_conversion,
836           build_component_ref, build_unary_op,
837           c_build_qualified_type): Ditto.
838         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
840 2011-04-29  Gary Funck  <gary@intrepid.com>
842         * c-decl.c (finish_decl): Improve error diagnostics.
843           (grokdeclarator): Ditto.
845         * c-typeck.c (build_c_cast): Improve error diagnostics.
846           (convert_for_assignment): Ditto.
847           (build_binary_op): Ditto.
849         * c-parser.c (c_parser_upc_forall_statement):
850           Improve error diagnostics.
852         * convert.c (convert_to_integer):  Improve error diagnostics.
854 2011-04-24  Gary Funck  <gary@intrepid.com>
856         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
857           occurred if there is an error in the barrier id
858           expression.  Map error_mark_node into NULL.
860 2011-04-22  Gary Funck  <gary@intrepid.com>
862         Merge trunk version 172873 into gupc branch.
864 2011-04-19  Gary Funck  <gary@intrepid.com>
866         Merge trunk version 172359 into gupc branch.
868 2011-04-14  Gary Funck  <gary@intrepid.com>
870         * c-family/c.opt: Add UPC as a valid language for various
871           switches where it is valid for "C", that were not updated
872           in previous merges with trunk.
874 2011-04-13  Gary Funck  <gary@intrepid.com>
876         * c-family/c.opt (fupc-pre-include): New option definition.
877         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
878           -fno-upc-pre-include is asserted.
880 2011-04-07  Gary Funck  <gary@intrepid.com>
882         Merge trunk version 172158 into gupc branch.
883         to bring in the following fix.
885 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
887         PR bootstrap/48403
888         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
889         if old and new states differ.
891 2011-04-06  Gary Funck  <gary@intrepid.com>
893         Merge trunk version 171966 into gupc branch.
895 2011-04-01  Gary Funck  <gary@intrepid.com>
897         * tree.h (tree_base): Move UPC flag bits into bit fields
898           located just before spare bits.  Decrement spare bits.
899           Rename 'shared_flag' -> 'upc_shared_flag',
900           'relaxed_flag' -> 'upc_relaxed_flag',
901           'strict_flag' -> 'upc_strict_flag, and adjust macros
902           that reference them accordingly.
904 2011-04-01  Gary Funck  <gary@intrepid.com>
906         * c-decl.c (grokdeclarator): Fix formatting of
907           code that sets UPC block size on scalars.
909 2011-04-01  Gary Funck  <gary@intrepid.com>
911         * c-decl.c (grokdeclarator): Revert use of white space
912           to match the trunk (to rationalize diffs).
913         * c-typeck.c (convert_for_assignment): Ditto.
914         * tree-ssa.c (useless_type_conversion_p): Ditto.
916 2011-03-23  Gary Funck  <gary@intrepid.com>
918         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
919           the GCC 4.6 release branch.
921 2011-03-21  Gary Funck  <gary@intrepid.com>
923         Merge trunk version 171202 into gupc branch.
925 2011-03-20  Gary Funck  <gary@intrepid.com>
927         * varasm.c: Call error() directly with a format specifier,
928           rather than using sprintf() to format the message.
929           This should make it easier to internationalize UPC's error messages.
931 2011-03-20  Gary Funck  <gary@intrepid.com>
933         * configure.ac: Fix the check for gnu ld when enabling
934           UPC link script support.
935           configure: Regenerate (also picks up changes from previous
936           merge with trunk).
938 2011-03-20  Gary Funck  <gary@intrepid.com>
940         Move UPC start files, end files, and linker specs.
941         into libupc.  This reduces the impact on common GCC
942         configuration files, and ensures that these UPC-specific
943         components are only built when the UPC language dialect is selected.
946 gcc/
947         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
948           linker specs. Fix typo in -fupc-debug message.
950         * config/upc-conf.h, config/darwin.h: Move defines for
951           UPC-related section begins/ends into libupc/config/default/
952           upc-crt-config.h.
954         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
955           UPC-related linker compiler specifications,
956           accessed via %:include().
958         * configure.ac, configure: Remove logic related to building
959           upc-crtbegin/end. Remove config. tests for numa and cpu
960           affinity (previously used by the 'upc' driver); these
961           settings are now propagated by target-specific compiler
962           specs. built by libupc.  Regenerate autoconf.
964         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
965           linker compiler specifications, accessed via %:include().
966           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
967           'link_upc_spec'.
969         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
971         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
972           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
973           config/ia64/linux.h, config/mips/t-iris,
974           config/mips/iris6.h: Revert to trunk version 167307.
976 libgcc/
977         * configure, configure.ac, config.host, Makefile.in:
978           Revert to trunk version 167307.
980 2011-02-23  Gary Funck  <gary@intrepid.com>
982         * c-decl.c (undeclared_variable): fix typo. Inadvertently
983         removed negation on following 'if'.
985 2011-02-22  Gary Funck  <gary@intrepid.com>
987         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
988         to check for the usage of certain deprecated UPC keywords.
989         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
990         * c-tree.h (undeclared_variable): Define prototype.
992 2011-02-12  Gary Funck  <gary@intrepid.com>
994         * c-typeck.c: (build_c_cast, convert_for_assignment)
995           Diagnose an attempt to convert from an integer to
996           a pointer-to-shared as an error.  Also, fix various
997           error messages so that they use the preferred term
998           pointer-to-shared instead of "shared pointer".
1000 2011-02-07  Gary Funck  <gary@intrepid.com>
1002         * c-typeck.c: (convert_for_assignment)
1003           Fix typo. in error message.
1005 2011-01-23  Gary Funck  <gary@intrepid.com>
1007         * c-typeck.c: (c_build_qualified_type)
1008           derive UPC block size by calling upc_get_block_size(),
1009           to ensure that the element type of an array of an array
1010           is derived correctly.
1012 2010-12-29  Gary Funck  <gary@intrepid.com>
1014         Merge trunk version 168314 into gupc branch.
1016 2010-12-15  Gary Funck  <gary@intrepid.com>
1018         Merge trunk version 167307 into gupc branch.
1020 2010-10-19  Gary Funck  <gary@intrepid.com>
1022         * c-typeck.c: Fix typo in previous fix
1023           which led to a mis-compare for equal block sizes.
1025 2010-10-18  Gary Funck  <gary@intrepid.com>
1027         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1028           diagnosed as an error
1030           The conversion from any type (shared or not) to
1031           a shared type is likely either meaningless or an error.  This update
1032           makes any conversion to a shared type, an error.
1034 2010-10-18  Gary Funck  <gary@intrepid.com>
1036         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1037           generates spurious warning
1039           Add a #define procedure that does the same thing as
1040           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1041           this procedure to diagnose passing an integer value to a
1042           pointer-to-shared as an error.
1044 2010-10-18  Gary Funck  <gary@intrepid.com>
1046         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1047           matching routine declaration.
1049           When checking for type compatibility, shared qualified types must
1050           have the same block factor.  This check was missing from
1051           comptypes_internal().  This update adds the check for blocking
1052           factor equality.
1054 2010-10-17  Gary Funck  <gary@intrepid.com>
1056         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1057           found (-O1 -g)
1059           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1061 2010-10-17  Gary Funck  <gary@intrepid.com>
1063         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1064           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1065           produces ice with -O3 and -m32.
1067           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1069 2010-10-17  Gary Funck  <gary@intrepid.com>
1071         * c-common.c: Diagnose the application of the various "*sizeof"
1072           operations on generic pointer-to-shared as a compilation error.
1074 2010-10-17  Gary Funck  <gary@intrepid.com>
1076         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1077           message regarding a function parameter being declared with a shared
1078           qualifier.
1080           The parameter's 'name' value is not defined at this point, and
1081           cannot be used in the error message.  This update removes the
1082           reference to 'name', and eliminates the segfault.
1084 2010-10-16  Gary Funck  <gary@intrepid.com>
1086         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1088           The gcc/Makefile.in rules for install-plugin had to be re-written to
1089           break up a long list of header files that exceeded the command line
1090           limitation imposed by Irix.
1092           Access functions for TFmode types had to be implemented.
1093           Apparently, this is the mode used for the SGI/MIPS port to represent
1094           "long float".
1096 2010-10-14  Gary Funck  <gary@intrepid.com>
1098         * c-decl.c: Fix bug: Multiple equal blocking factors specified
1099           via typedef chain should not be diagnosed as an error.
1101           If the block size that is given by the typedef is equal to the block
1102           size given explicitly in the variable declaration, then do not
1103           complain.  The easiest way to make this check was to create a
1104           temporary type that is a clone of the element type and then set its
1105           block size using the given layout qualifier.  Then compare the block
1106           size of the temporary (the declaration) to the block size specified
1107           in the typedef.  This complexity is needed, because the '[*]' block
1108           size needs to be calculated, and the '[]' needs to be mapped into a
1109           zero block size.
1111 2010-10-10  Gary Funck  <gary@intrepid.com>
1113         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1114           specified
1116           The compiler properly detected the presence of two or more layout
1117           qualifiers as an error, but then hit an assertion check, because the
1118           code that followed the error expected to see a qualifier and not a
1119           layout specifier.  The fix is simple: just return immediately after
1120           detecting the error.
1122 2010-10-10  Gary Funck  <gary@intrepid.com>
1124         * c-decl.c: Improve error diagnostics for various cases of UPC
1125           shared array type declarations.
1127           Add the check for this error: "In the dynamic translation
1128           environment, THREADS may not appear in declarations of shared arrays
1129           with indefinite block size".  Also, fix up a few of the other
1130           related error diagnostics.
1132 2010-10-09  Gary Funck  <gary@intrepid.com>
1134         * c-common.c: Fix bug: segfault on incomplete array definition.
1136           This turned out to be a bit complicated.   The logic in
1137           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1138           the THREADS identifier in the case where the blocking factor has
1139           been set to indefinite ([]).  This can happen when indefinite array
1140           declarations are processed for shared arrays.  At that time, the
1141           file scope has been closed and THREADS is no longer in scope.  Some
1142           more work is needed on upc_lang_layout_decl().  It has some
1143           duplication, and notably duplicates the two branches of the if
1144           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1145           caller of this routine (layout_decl()).
1147           The method of forcing a layout qualifier of [] in the indefinite
1148           declaration handler is odd a well.  The code that just does the
1149           setting of the block factor, needs to moved into its own routine
1150           that doesn't depend upon a declspec for '[]' to be passed in, just
1151           in order to set the blocking factor to some value (in this case, 0).
1152           Also, the logic for how that shared type is constructed is strange.
1153           First the type with 0 blocking factor is set.  Then the shared
1154           qualifier is removed from the type, and then added back later.  The
1155           intermediate type has a blocking factor set, but it has no shared
1156           qualifier.  Fixing this will require some thought.  It is tempting
1157           just to make indefinite shared arrays an error, rather than forcing
1158           the dimension to be '1'.
1160           This likely fixes a serious error in the previous update to
1161           upc_lang_layout_decl(), where it didn't have the logic to set
1162           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
1163           the previous update would fail on many tests.
1165 2010-10-09  Gary Funck  <gary@intrepid.com>
1167         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1168           (decl) is null, which can happen if some layout error occurred
1169           upstream.
1171 2010-10-09  Gary Funck  <gary@intrepid.com>
1173         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1174           "variable-sized" when compiled in dynamic threads.
1176           This long-standing bug is easily fixed.  Just check
1177           for the situation that the non-constant sized type is shared and
1178           that it does not have a dimension that references a multiple of
1179           threads.  If this criteria is met, then issue a meaningful
1180           diagnostic.
1182 2010-10-01  Gary Funck  <gary@intrepid.com>
1184         * configure, configure.ac: Update manual page, and bug reporting
1185           URL.
1187           Update "man" page to reflect debugging switches.  Also, some general
1188           clean up.  Change the bug reporting URL to point to gccupc.org.
1190 2010-09-27  Gary Funck  <gary@intrepid.com>
1192         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1193           the UPC forall depth count variable is not found.
1195           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1196           The compiler will generate code that references this variable in
1197           order to implement nested upc_forall semantics.  If there is a
1198           compiler build or install problem, this variable may not be found.
1199           In this case, terminate with an internal_error().
1201 2010-09-26  Gary Funck  <gary@intrepid.com>
1203         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1204           mis-diagnosed as syntax error.
1206           Fix a failure exhibited by the Berkeley test case,
1207           bug873a.upc, which has the code:
1208                double d;
1209                upc_forall (;;;d) {...} The compiler did not properly handle
1210           the empty "condition" clause, and did not recover well when it was
1211           determined that the use of a double value, "d" above, was neither a
1212           pointer-to-shared nor an integer expression.  The update implements a
1213           fix for both issues.
1215           See also: gcc/c-parser.c gcc/upc/upc-act.c
1217 2010-09-23  Gary Funck  <gary@intrepid.com>
1219         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1220           incorporated into the referencing type.
1222           This was semi-fixed a few times before.  This update fixes a few
1223           more places where the layout qualifier wasn't being propagated
1224           through typedef's properly.  What made this a bit tricky is shown in
1225           the example cited in the bug report:
1227           typedef shared [5] int A_t; A_t A[5*THREADS];
1229           In the typedef, the blocksize is being applied to a shared *scalar*,
1230           and the code was applying the blocksize only to arrays.  This update
1231           handles shared scalars correctly.
1233 2010-09-22  Gary Funck  <gary@intrepid.com>
1235         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1236           upc_forall() semantics are not implemented
1238           The checkforall test in the Berkeley harness test suite indicated
1239           that GCC/UPC was not properly implementing nested upc_forall
1240           semantics.  Nested upc_forall statements (both statically or
1241           dynamically nested) must implement their affinity clause as if it
1242           were "continue"; thus all steps in the loop must execute without
1243           regard for affinity.  To implement these semantics a global depth
1244           counter, __upc_forall_depth, is maintained by the generated code
1245           that implements upc_forall.
1247           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1248           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1249           libupc/include/upc.h libupc/smp/upc_main.c
1251 2010-09-19  Gary Funck  <gary@intrepid.com>
1253         * c-decl.c: c-decl.c: zero out the layout specifier, after
1254           processing an array type.
1256           Fix the previous fix, that moved the setting of the type's layout
1257           qualifier to the outside of the array type processing loop.  What is
1258           missing from the fix is that the layout_qualifier variable needs to
1259           be cleared after setting the type's blocksize.
1261 2010-09-19  Gary Funck  <gary@intrepid.com>
1263         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1264           given blocksize is greater than UPC_MAX_BLOCKSIZE.
1266           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1267           the actual maximum block size.  Therefore, the message was correct,
1268           but the underlying value that was being checked was wrong.  Change
1269           the values so that they agree with the actual implementation-defined
1270           limit.
1272 2010-09-11  Gary Funck  <gary@intrepid.com>
1274         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1275           multi-dimensional shared array with dynamic threads.
1277           This declaration caused an internal compiler error when compiled
1278           with dynamic threads:
1279               shared [*] int A[THREADS][16]; The bug was discovered when
1280           compiling the RTED_UPC test suite.
1282           The fix is to process layout qualifiers after the entire array type
1283           has been built.  Otherwise, we try to calculate the blocksize on a
1284           shared array type that has not had its "size depends upon the value
1285           of THREADS" flag set.
1287           Also, added a test case.
1289           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1291 2010-07-11  Gary Funck  <gary@intrepid.com>
1293         Fix a bug where a statement in c_build_qualified_type()
1294         in the trunk had been inadvertently deleted.
1295         This bug showed up in the IA64 port, because jmpbuf's
1296         on that architecture must be 16 byte aligned, and they were not.
1297         c-typeck.c (c_build_qualified_type): Revive the deleted line.
1299 2010-07-08  Gary Funck  <gary@intrepid.com>
1301         Make changes so that other language compilers
1302         will build and bootstrap.
1303         * c-family/c-common.c (compiling_upc, flag_upc,
1304         flag_upc_instrument, flag_upc_instrument_functions,
1305         use_upc_dwarf2_extensions): Move to stub-upc.c and
1306         upc-lang.c.
1307         * c-family/c-common.h (use_upc_dwarf2_extensions,
1308         compiling_upc): Add extern definitions - needed
1309         to compile/build other language front ends.
1310         * c-family/c.opt: Fix the spelling of ObjC.
1311         It had been incorrectly spelled as Objc.
1312         * c-family/c.opt: Add UPC for the various switches
1313         that are valid for both C and ObjC.
1314         * c-fmaily/c-opts.c: Add CL_UPC to the list of
1315         supported options switches when compiling assembly
1316         language.
1317         * lto/lto-lang.c (use_upc_dwarf2_extensions,
1318         flag_upc_instrument, flag_upc_instrument_functions):
1319         Remove these definitions.  They have been moved
1320         to c-family/stub-upc.c.
1321         * upc/ChangeLog: Move relevant entries
1322         to ChangeLog.upc.
1323         * c-family/stub-upc.c (compiling_upc, flag_upc,
1324         flag_upc_instrument, flag_upc_instrument_functions,
1325         use_upc_dwarf2_extensions): Moved from c-common.c
1326         * upc/upc-lang.c (compiling_upc, flag_upc,
1327         flag_upc_instrument, flag_upc_instrument_functions,
1328         use_upc_dwarf2_extensions): Moved from c-common.c
1329         * objc/objc-act.c (objc_gimplify_expr): Add additional
1330         parameters to c_gimplify_expr() call, that are used
1331         by upc's tree rewrites.
1332         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1333         * gcc/cp/lex.c (init_reswords): If not compiling
1334         UPC, then mask off the UPC keywords.
1335         * cp/Make-lang.in (C_STUB_OBJS): Use this
1336         make macro to link with c-family/stub-objc.o
1337         and c-family/stub-upc.o.
1338         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1339         * java/Make-lang.in (C_STUB_OBJS): Likewise.
1340         * objc/Make-lang.in: Link with c-family/stub-upc.o
1341         to avoid undefined references.
1342         c-parser.c: Fix line indentation.
1343         * libcpp/include/cpplib.h: Remove CL_UPC from
1344         the list of language kinds accepted by the
1345         C preprocessor.  This is not necessary because
1346         UPC is a derivative of C99, and does not need
1347         a different language kind.
1348         * c-fmaily/c-opts.c (c_common_handle_option):
1349         Call set_std_c99() when processing the
1350         "--lang upc" switch, instead of setting the
1351         language kind to CL_UPC.
1352         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1354 2010-07-03  Gary Funck  <gary@intrepid.com>
1356         Merge trunk version 161517 into gupc branch.
1357         * gcc/stub-upc.c: Move to gcc/c-family/.
1358         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1359         Add 'unused' attributes to avoid "set, but
1360         not referenced" warnings.
1361         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1362         Likewise.
1364 2010-03-01 Gary Funck  <gary@intrepid.com>
1366         Create gupc branch from trunk version 157149.
1367 2011-10-04  Gary Funck  <gary@intrepid.com>
1369         Merge trunk version 179421 into gupc branch.
1371         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1372         argument to the call to check_qualified_type().
1374 2011-09-22  Gary Funck  <gary@intrepid.com>
1376         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1377         information.
1378         (dump_upc_type_quals): New.
1380 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1382         Add to FLAGS the flags needed to disable inlining of
1383         UPC run-time access routines.
1384         * testsuite/lib/target-supports.exp
1385         (add_options_for_upc_library_calls): New.
1387 2011-09-15  Gary Funck  <gary@intrepid.com>
1389         Fix ICE involving shared bit field accesses.
1390         * tree.c (build3_stat): Propagate TEEE_SHARED()
1391         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1393 2011-09-13  Gary Funck  <gary@intrepid.com>
1395         Merge trunk version 178795 into gupc branch.
1396         Incorporates fix to PR bootstrap/50010 for x86-32.
1398 2011-09-08  Gary Funck  <gary@intrepid.com>
1400         Merge trunk version 178557 into gupc branch.
1402 2011-09-07  Gary Funck  <gary@intrepid.com>
1404         Ensure that UPC pointer-to-shared type alignment is
1405         propagated to the final type.  Revert to long-standing
1406         alignment policy: twice the size of a "C" pointer.
1407         * tree.c (build_pointer_type): Propagate the alignment
1408         of the UPC pointer-to-shared representation type
1409         into the newly built pointer type.
1411 2011-08-30  Gary Funck  <gary@intrepid.com>
1413         * tree.h (check_qualified_type): Change 'const_tree'
1414         argument types back to 'tree' to avoid complaints
1415         of assignment drops qualifiers for invocations of the
1416         newly implemented TYPE_BLOCK_FACTOR() macro, which
1417         invokes hash functions with 'tree' pointer values that
1418         are not const qualified.
1419         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1420         * c-typeck.c (comptypes_internal): Ditto.
1422 2011-08-29  Gary Funck  <gary@intrepid.com>
1424         Fixes for regressions noted running "make check"
1425         versus GCC trunk.
1426         * fold-const.c (fold_unary_loc): Execute UPC-specific
1427         checks for a cast-of-a-cast, only if one of the
1428         operands is a UPC pointer-to-shared value.
1429         * opts.c (print_specific_help):  Fix a comparison
1430         in an assert that checks that there are enough
1431         bits reserved for the number of languages defined
1432         in the .opt files.
1434 2011-08-29  Gary Funck  <gary@intrepid.com>
1436         Implement a hash table to record UPC block factors.
1437         * c-family/stub-upc.c (upc_block_factor_insert,
1438         upc_block_factor_lookup): New dummy stub procedures.
1439         * c-family/c-common.c (c_sizeof_or_alignof_type):
1440         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1441         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1442         to copy (hashed) UPC blocking factor.
1443         (set_type_quals): Likewise.
1444         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1445         TYPE_HAS_THREADS_FACTOR().
1446         (type_common.block_factor): Delete.
1447         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1448         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1449         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1450         UPC blocking factors greater than one.
1451         * dwarf2out.c (modified_type_die): Re-implement
1452         logic that records UPC blocking factor in the generated
1453         DWARF2 debugging information.
1454         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1455         TYPE_HAS_THREADS_FACTOR().
1456         * c-decl.c (finish_decl, grokdeclarator):
1457         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1458         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1459         used by UPC, and print UPC-specific information.
1461 2011-08-28  Gary Funck  <gary@intrepid.com>
1463         Re-work the type machinery to fully support and to unify support
1464         for the UPC layout qualifier (blocking factor).
1465         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1466           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1467           and update prototype.
1468         * c-family/c-common.c (complete_array_type): call newly
1469           defined c_build_qualified_type_1() instead of
1470           upc_set_block_factor().
1471         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1472           upc_apply_layout_qualifier() and update prototype.
1473           (upc_set_block_factor): Delete prototype.
1474         * c-family/c-common.h (c_build_qualified_type): redefine
1475           as a pre-processor macro that invokes c_build_qualified_type_1()
1476           with a null UPC layout qualifier.
1477           (c_build_qualified_type_1): New.  Add layout qualifier argument
1478           to old c_build_qualified_type() prototype.
1479         * tree.c (set_type_quals, check_qualified_type):
1480           Add layout qualifier as argument.
1481           (check_aligned_type): Add check for UPC block factor equality.
1482           (get_qualified_type_1): Rename from get_qualified_type() and
1483           add layout qualifier as argument.
1484           (build_qualified_type_1): Rename from build_qualified_type() and
1485           add layout qualifier as argument.
1486         * tree.h (check_qualified_type): Add layout qualifier as argument
1487           to the prototype.
1488           (get_qualified_type): Re-define as a as a pre-processor macro
1489           that invokes get_qualified_type_1() with a null
1490           UPC layout qualifier.
1491           (get_qualified_type_1): Rename from get_qualified_type() and
1492           add layout qualifier as argument.
1493         * cp/tree.c (c_build_qualified_type_1): Rename from
1494           c_build_qualified_type() and add (unused) layout qualifier
1495           argument.
1496         * c-decl.c (finish_decl): re-format long error messages.
1497           (grokdeclarator): Re-work the logic so that it calls
1498           upc_grok_layout_qualifier() to handle the UPC layout
1499           qualifier, if present.
1500         * c-typeck.c (qualify_type, common_pointer_type,
1501           build_component_ref): Re-work the logic so that it calls
1502           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1503           if present.
1504           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1505           and add layout qualifier argument.
1506         * print_tree.c (print_node): Re-format a long line.
1508 2011-08-26  Gary Funck  <gary@intrepid.com>
1510         Merge trunk version 177949 into gupc branch.
1511         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1512           in the comment.
1513         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1514           to add new rliterals column value.
1516 2011-08-26  Gary Funck  <gary@intrepid.com>
1518         * convert.c (convert_to_integer): Fix the check for the
1519           difference between two UPC pointers-to-shared values.
1521 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1523         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1524           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1525           correctly check packed bits.
1526         * configure: Re-generate.
1528 2011-08-16  Gary Funck  <gary@intrepid.com>
1530         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1531           the barrier id expression is not an integer expression.
1533 2011-08-12  Gary Funck  <gary@intrepid.com>
1535         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1536           (revert to trunk).
1537         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1538           Set mode of UPC pointer-to-shared rep. to an
1539           integral mode of size at least as large as the
1540           size of the representation's struct type.
1542 2011-08-12  Gary Funck  <gary@intrepid.com>
1544         Rework/simplify the UPC genericize pass.
1545         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1546           upc_build_pointer_type): New.
1547           (upc_set_block_factor): Adjust to new calling sequence.
1548           (upc_build_shared_var_addr): Delete.
1549         * c-family/c-common.c (complete_array_type): Adjust call
1550           to upc_set_block_factor().
1551         * c-family/c-upc.h (upc_apply_layout_qualifier,
1552           upc_build_pointer_type): New.
1553           (upc_build_shared_var_addr): Delete.
1554           (upc_set_block_factor): Adjust to new calling sequence.
1555         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1556         * c-decl.c (grokdeclarator): Call newly defined
1557           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1558         * c-decl.c (grokdeclarator): Split long UPC-related error
1559           messages into two lines.
1560         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1561           directly.  Revert that change to trunk. (upc_genericize() will
1562           handle lowering the expressions that take the address of a
1563           UPC variable).
1564         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1565           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1566           representation type.
1568 2011-08-10  Gary Funck  <gary@intrepid.com>
1570         Implement additional fixes for recent merge with trunk.
1571         * explow.c (promote_mode): Do not attempt to promote
1572           the mode for UPC pointer-to-shared types.
1573         * config/i386/i386.c (function_value_64): Ditto.
1575 2011-08-07  Gary Funck  <gary@intrepid.com>
1577         Merge trunk version 177548 into gupc branch.
1578         * config/i386/i386.c (ix86_promote_function_mode):
1579           Do not promote UPC pointers-to-shared to Pmode.
1580         * c-family/c-ommon.c (pointer_int_sum):
1581           Also check the pointer operand, rather than just
1582           its type, when making the decision to derive
1583           the equivalent unshared type.
1584         * tree.c (build2_stat): If the type of the result
1585           passed in as an argument is a UPC shared type,
1586           derive the unshared equivalent when calculating
1587           the result type of the node.
1589 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1591         * config/darwin.c: Disable var_tracking option
1592           on -O0 as it is supposed to run only when optimization
1593           is applied. See GCC bug 49743.
1595 2011-07-06  Gary Funck  <gary@intrepid.com>
1597         Re-implement the pass that lowers trees generated by
1598         the UPC front-end into GENERIC.  Previously this was
1599         done within the gimplification framework, but this
1600         required that gimplification be run before inlining
1601         and various other passes, which did not fit in well
1602         with the current design of the middle-end passes.
1603         Now, the lowering is done by a newly defined language
1604         specific genericize hook.  With this change, we are
1605         are able to undo some extensions made to the gimplify
1606         logic, and thus can revert several files to trunk.
1608         * c-decl.c: Add a check for UPC deprecated names which
1609           may appear as undefined function names.
1610         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1611           LTI_upc_getaddr): Remove definitions of unused UPC
1612           library function names.  These were defined back when
1613           the libfunc interface was used to call these routines.
1614         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1615           in UPC lowering (genericize) pass.
1616         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1617           (instrument_func): Delete this hook.  Now handled in
1618           upc_genericize().
1619         * tree-pass.h: Revert to trunk.
1620         * c-typeck.c (build_unary_op): Adjust reference to
1621           upc_genericize() in a comment.
1622         * gimplify.c (create_tmp_var_raw): Delete logic that
1623           was converting UPC shared types into unshared types
1624           to be used for temporaries.  Now handled in  upc_genericize().
1625           Replace with an assertion check.
1626           (prepare_gimple_addressable): Revert to trunk's definition.
1627           No longer needed as an externally called function.
1628           (flag_instrument_functions_exclude_p): Re-define as
1629           an externally called function.
1630           (gimplify_function_tree): Delete code that implemented
1631           call to UPC's language specific function instrumentation hook.
1632         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1633           (prepare_gimple_addressable): Delete extern definition;
1634           revert to trunk's definition.
1635         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1636           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1637         * c-family/c-gimplify.c: Revert to trunk.
1638         * cp/cp-gimplify.c: Revert to trunk.
1639         * cp/cp-tree.h: Revert to trunk.
1640         * explow.c: Revert to trunk.
1641         * langhooks.c: Revert to trunk.
1642         * libfuncs.h: Revert to trunk.
1643         * objc/objc-act.c: Revert to trunk.
1645 2011-06-30  Gary Funck  <gary@intrepid.com>
1647         * c-family/c.opt: Bring options definitions up-to-date
1648         with respect to changes made in the trunk.
1650 2011-06-29  Gary Funck  <gary@intrepid.com>
1652         Merge trunk version 175584 into gupc branch.
1654 2011-06-13  Gary Funck  <gary@intrepid.com>
1656 libcpp/
1657         * include/cpplib.h (enum c_lang):
1658         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1659         This keeps all the "C" variants together.
1660         * init.c (lang_defaults): Add an entry for UPC.
1662 2011-06-09  Gary Funck  <gary@intrepid.com>
1664         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1665         a 32-bit target, the size expression overflowed, the result was
1666         error_mark_node, and an ICE was triggered on an attempt to evaluate
1667         C_TYPE_VARIABLE_SIZE() on the error node.
1668         (upc_blocksizeof_expr, upc_blocksizeof_type,
1669         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1670         Make similar changes to avoid further processing of error_mark_node.
1672 2011-06-07  Gary Funck  <gary@intrepid.com>
1674         * sel-sched.c (move_op): Incorporate the following
1675         patch to eliminate ICE at -O3 on IA64/Altix.
1677 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1679         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1680         code_motion_path_driver returned 0 or 1.
1681         (sel_region_finish): Clear h_d_i_d.
1683 2011-06-02  Gary Funck  <gary@intrepid.com>
1685         Merge trunk version 174558 into gupc branch.
1687 2011-05-30  Gary Funck  <gary@intrepid.com>
1689         * configure.ac: Make the default order of the virtual
1690           address field in a UPC pointer-to-shared to be "first".
1691           This reverts to the previous setting, and is a short term
1692           measure to work around a bug found on the IA64,
1693           where vaddr=last led to incorrect code generation.
1694           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1695           in AC_DEFINE(), to agree with recent changes in files
1696           that reference this define.
1697           configure, config.in: Regenerate.
1699 2011-05-26  Gary Funck  <gary@intrepid.com>
1701         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1702           configure: Regenerate.
1704         * ../fixincludes/fixincl.x: Revert to trunk.
1705           This file is auto-generated, and should not be merged.
1707 2011-05-18  Gary Funck  <gary@intrepid.com>
1709         Merge trunk version 173845 into gupc branch.
1711 2011-05-17  Gary Funck  <gary@intrepid.com>
1713         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1714           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1716         * c-family/c-pragma.c: Remove conditional compilation
1717           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1718           Test 'compiling_upc' when compiling to determine if
1719           the "upc" and "pupc" pragmas should be registered.
1721         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1722           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1723           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1724           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1725           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1726           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1727           Move these target-dependent definitions from config/upc-conf.h
1728           to here.
1730         * configure.ac: Improve the logic for UPC-related options.
1731           Delete references to pre-processor definitions that have
1732           been moved to "upc/upc-pts.h".
1734         * configure, config.in: Regenerate.
1736         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1737           to trunk.  This substitution variable was used to
1738           configure the representation-specific versions of
1739           the tree rewrites that operate on UPC pointer-to-shared
1740           types and objects.
1742         * c-parser.c (c_parser_upc_forall_statement): Remove
1743           reference to UPC_FORALL_DEPTH_NAME, and call
1744           newly defined upc_rts_forall_depth_var() instead.
1746         * config/upc-config.h: Delete. Various definitions
1747           moved to "upc/upc-rts-names.h", "defaults.h", and
1748           "upc/upc-pts.h".
1750         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1751           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1752           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1753           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1754           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1755           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1756           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1757           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1758           New.  Document UPC target macros.
1759           doc/tm.texi: Regenerate.
1761 2011-05-07  Gary Funck  <gary@intrepid.com>
1763         * ../configure.ac: Disable build of libupc
1764           on non POSIX hosted systems.  Use AS_HELP_STRING
1765           to define messages.  Remove 'word-pair' as a
1766           possible --with-upc-pts UPC pointer-to-shared
1767           representation.
1769         * ../configure: Regenerate.
1771         * configure.ac: Use AS_HELP_STRING to define messages.
1772           Remove 'word-pair' as a possible --with-upc-pts
1773           UPC pointer-to-shared representation.
1774           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1775           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1777         * configure: Regenerate.
1779         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1780           definition.
1782         * ChangeLog.upc: Fix some typos.
1784 2011-05-07  Gary Funck  <gary@intrepid.com>
1786         * ../maintainer-scripts/gcc_release: Add "upc"
1787           as one of the released languages.
1789 2011-05-06  Gary Funck  <gary@intrepid.com>
1791         Eliminate compilation warnings, by fixing
1792         #include's and updating function prototypes.
1794         * c-family/c-cppbuiltin.c: Include c-upc.h.
1796         * optabs.c (gen_libfunc): Change type of 'suffix'
1797           parameter to conform with prototype.
1799         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1800           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1801           hook used by UPC.
1803         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
1804           the prototype.
1806         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
1807           argument values to cp_gimplify_expr.
1809         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
1810           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
1811           pre-processor definitions that are no longer
1812           needed to build the 'upc' command (upc-cmd.c)
1813           because the linker specs. defined in libupc
1814           take care of linking in the needed libraries.
1816         * c-parser.c (c_parser_upc_forall_statement):
1817           initialize affinity_loc to avoid "maybe unused" warning.
1818           (c_parser_upc_sync_statement): Remove un-needed
1819           'ret' variable.  Cast return value from
1820           'upc_build_sync_stmt' to 'void' to avoid
1821           compile-time warning.
1823         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
1824           integer constant, not a string.  Range is restricted
1825           to maximum positive 32-bit integer (2+ billion) to
1826           fit in with the use of 'int' in the front-end's
1827           switch handling logic.
1829 2011-05-06  Gary Funck  <gary@intrepid.com>
1831         Upgrade c-family source files to conform with modularity
1832         improvements.  Mainly, remove #include of c-tree.h in files
1833         under c-family, and define a new UPC-specific #include file,
1834         c-upc.h, and use it.
1836         * c-family/stub-upc.c: Remove #include of c-tree.h and
1837           upc/upc-act.h.  Replace with #include of c-common.h
1838           and c-upc.h.
1839           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
1840           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
1841           upc_localsizeof_expr, upc_localsizeof_type,
1842           upc_shared_type_p): Delete.
1844         * c-family/c-opts.c: Add #include of c-upc.h
1846         * c-family/c-common.c: Remove #include of c-tree.h and
1847           add #include of c-upc.h.
1849         * c-family/c-upc.h: New. Define API for UPC-specific functions
1850           (mostly implemented in upc/upc-act.c).
1852         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
1853           Remove extern definitions.
1855         * c-family/c-pragma.c: Remove #include of c-tree.h.
1856           Add #include of c-upc.h.
1858         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
1859           c-tree.h.
1860           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
1861           upc/upc-act.c, and define as a macro.
1862           (expand_affinity_test): Remove unused external definition.
1863           (build_upc_unshared_type): Add external definition.
1864           (upc_shared_type_p): Remove external definition.
1866         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
1868         * dojump.c: Remove #include of c-tree.h.
1870         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
1871           and move to tree.h.
1872           (count_upc_threads_refs, is_multiple_of_upc_threads,
1873           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
1874           upc_build_shared_var_addr, upc_build_sync_stmt,
1875           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
1876           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
1877           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
1878           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
1879           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
1880           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
1881           set_upc_consistency_mode, get_upc_consistency_mode,
1882           push_upc_consistency_mode, pop_upc_consistency_mode,
1883           get_upc_pupc_mode):
1884           Move external definitions to c-family/c-upc.h.
1885           (upc_blocksizeof_type, upc_localsizeof_type,
1886           upc_elemsizeof_type): Remove external definitions;
1887           these functions were moved to c-parser.c.
1889         * c-decl.c: Add #include of c-upc.h.
1891         * c-typeck.c: Add #include of c-upc.h.
1893         * c-convert.c: Add #include of c-upc.h.
1895         * ChangeLog.upc: Fix typo.
1897         * Makefile.in: Add references to c-family/c-upc.h, everywhere
1898           there is a reference to c-family/c-objc.h.
1899           Remove extraneous reference to upc-act.h.
1901         * c-parser.c: Add #include of c-upc.h.
1902           (upc_blocksizeof_expr, upc_blocksizeof_type,
1903           upc_elemsizeof_expr, upc_elemsizeof_type,
1904           upc_localsizeof_expr, upc_localsizeof_type):
1905           Move from upc/upc-act.c.
1907         * tree.c (build_upc_unshared_type): New.
1908           Move upc_get_unshared_type from upc/upc-act.c and rename
1909           to build_upc_unshared_type.
1910           c-family/c-common.c (pointer_int_sum): refer to renamed
1911           build_upc_unshared_type function.
1912           c-convert.c (convert): Ditto.
1913           convert.c (convert_to_pointer): Ditto.
1914           c-typeck.c (build_unary_op, build_modify_expr,
1915           really_start_incremental_init): Ditto.
1916           gimplify.c (create_tmp_var_raw): Ditto.
1917           tree.c (build1_stat): Ditto.
1918           tree.h (upc_get_unshared_type): Rename to
1919           build_upc_unshared_type.
1921 2011-05-06  Gary Funck  <gary@intrepid.com>
1923         Merge trunk version 173471 into gupc branch.
1925 2011-05-05  Gary Funck  <gary@intrepid.com>
1927         Make changes that bring the GUPC branch more closely in sync.
1928         with the GCC trunk.  Revert any fixes that are not UPC-specific.
1929         Remove gratuitous re-formatting.
1931         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1932           This file should have been removed in a previous merge
1933           with the trunk.
1934         * ../configure.ac: Remove Cray Catamount/CNL support.
1935         * ../configure: Regenerate.
1936         * ../config.sub: Remove Cray Catamount/CNL support.
1937         * config.gcc: Remove Cray Catamount/CNL support.
1938         * ../maintainer-scripts/gcc_release: Revert to trunk.
1939         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1940           was missed in a previous merge with the trunk.
1941         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1942           procedure.
1943         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1944           in addition to ARRAY_TYPE.
1945         * c-typeck.c: Remove an extra newline character.
1946         * varasm.c: Revert a fix that improved an error message
1947           when TLS common data is unimplemented.
1948         * varasm.c: Revert a gcc_assert that had been added which
1949           checked for a null DECL_SIZE_UNIT field.
1950         * emultls.c: Revert to trunk. Remove possible fix.
1951         * Makefile.in: Revert extra blank line that is present
1952           in the trunk version.
1953         * Makefile.in: Revert a fix that handled long shell
1954           argument lists for plugin headers.
1955         * config/ia64/ia64.opt: Revert an option setting
1956           that increased the default TLS address range.
1957         * config/ia64/crtbegin.asm: Revert to trunk.
1958           Removes an extra newline character.
1959         * ChangeLog.upc: Spell check.
1961 2011-05-03  Gary Funck  <gary@intrepid.com>
1963         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1964           (c_apply_type_quals_to_decl): Ditto.
1965         * c-family/c-common.h: Ditto.
1966         * dojump.c: Ditto.
1967         * c-decl.c (merge_decls): Ditto.
1968         * c-typeck.c (qualify_type, default_conversion,
1969           build_component_ref, build_unary_op,
1970           c_build_qualified_type): Ditto.
1971         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1973 2011-04-29  Gary Funck  <gary@intrepid.com>
1975         * c-decl.c (finish_decl): Improve error diagnostics.
1976           (grokdeclarator): Ditto.
1978         * c-typeck.c (build_c_cast): Improve error diagnostics.
1979           (convert_for_assignment): Ditto.
1980           (build_binary_op): Ditto.
1982         * c-parser.c (c_parser_upc_forall_statement):
1983           Improve error diagnostics.
1985         * convert.c (convert_to_integer):  Improve error diagnostics.
1987 2011-04-24  Gary Funck  <gary@intrepid.com>
1989         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1990           occurred if there is an error in the barrier id
1991           expression.  Map error_mark_node into NULL.
1993 2011-04-22  Gary Funck  <gary@intrepid.com>
1995         Merge trunk version 172873 into gupc branch.
1997 2011-04-19  Gary Funck  <gary@intrepid.com>
1999         Merge trunk version 172359 into gupc branch.
2001 2011-04-14  Gary Funck  <gary@intrepid.com>
2003         * c-family/c.opt: Add UPC as a valid language for various
2004           switches where it is valid for "C", that were not updated
2005           in previous merges with trunk.
2007 2011-04-13  Gary Funck  <gary@intrepid.com>
2009         * c-family/c.opt (fupc-pre-include): New option definition.
2010         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2011           -fno-upc-pre-include is asserted.
2013 2011-04-07  Gary Funck  <gary@intrepid.com>
2015         Merge trunk version 172158 into gupc branch.
2016         to bring in the following fix.
2018 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2020         PR bootstrap/48403
2021         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2022         if old and new states differ.
2024 2011-04-06  Gary Funck  <gary@intrepid.com>
2026         Merge trunk version 171966 into gupc branch.
2028 2011-04-01  Gary Funck  <gary@intrepid.com>
2030         * tree.h (tree_base): Move UPC flag bits into bit fields
2031           located just before spare bits.  Decrement spare bits.
2032           Rename 'shared_flag' -> 'upc_shared_flag',
2033           'relaxed_flag' -> 'upc_relaxed_flag',
2034           'strict_flag' -> 'upc_strict_flag, and adjust macros
2035           that reference them accordingly.
2037 2011-04-01  Gary Funck  <gary@intrepid.com>
2039         * c-decl.c (grokdeclarator): Fix formatting of
2040           code that sets UPC block size on scalars.
2042 2011-04-01  Gary Funck  <gary@intrepid.com>
2044         * c-decl.c (grokdeclarator): Revert use of white space
2045           to match the trunk (to rationalize diffs).
2046         * c-typeck.c (convert_for_assignment): Ditto.
2047         * tree-ssa.c (useless_type_conversion_p): Ditto.
2049 2011-03-23  Gary Funck  <gary@intrepid.com>
2051         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2052           the GCC 4.6 release branch.
2054 2011-03-21  Gary Funck  <gary@intrepid.com>
2056         Merge trunk version 171202 into gupc branch.
2058 2011-03-20  Gary Funck  <gary@intrepid.com>
2060         * varasm.c: Call error() directly with a format specifier,
2061           rather than using sprintf() to format the message.
2062           This should make it easier to internationalize UPC's error messages.
2064 2011-03-20  Gary Funck  <gary@intrepid.com>
2066         * configure.ac: Fix the check for gnu ld when enabling
2067           UPC link script support.
2068           configure: Regenerate (also picks up changes from previous
2069           merge with trunk).
2071 2011-03-20  Gary Funck  <gary@intrepid.com>
2073         Move UPC start files, end files, and linker specs.
2074         into libupc.  This reduces the impact on common GCC
2075         configuration files, and ensures that these UPC-specific
2076         components are only built when the UPC language dialect is selected.
2078 gcc/
2079         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2080           linker specs. Fix typo in -fupc-debug message.
2082         * config/upc-conf.h, config/darwin.h: Move defines for
2083           UPC-related section begins/ends into libupc/config/default/
2084           upc-crt-config.h.
2086         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2087           UPC-related linker compiler specifications,
2088           accessed via %:include().
2090         * configure.ac, configure: Remove logic related to building
2091           upc-crtbegin/end. Remove config. tests for numa and cpu
2092           affinity (previously used by the 'upc' driver); these
2093           settings are now propagated by target-specific compiler
2094           specs. built by libupc.  Regenerate autoconf.
2096         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2097           linker compiler specifications, accessed via %:include().
2098           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2099           'link_upc_spec'.
2101         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2103         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2104           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2105           config/ia64/linux.h, config/mips/t-iris,
2106           config/mips/iris6.h: Revert to trunk version 167307.
2108 libgcc/
2109         * configure, configure.ac, config.host, Makefile.in:
2110           Revert to trunk version 167307.
2112 2011-02-23  Gary Funck  <gary@intrepid.com>
2114         * c-decl.c (undeclared_variable): fix typo. Inadvertently
2115         removed negation on following 'if'.
2117 2011-02-22  Gary Funck  <gary@intrepid.com>
2119         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2120         to check for the usage of certain deprecated UPC keywords.
2121         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2122         * c-tree.h (undeclared_variable): Define prototype.
2124 2011-02-12  Gary Funck  <gary@intrepid.com>
2126         * c-typeck.c: (build_c_cast, convert_for_assignment)
2127           Diagnose an attempt to convert from an integer to
2128           a pointer-to-shared as an error.  Also, fix various
2129           error messages so that they use the preferred term
2130           pointer-to-shared instead of "shared pointer".
2132 2011-02-07  Gary Funck  <gary@intrepid.com>
2134         * c-typeck.c: (convert_for_assignment)
2135           Fix typo. in error message.
2137 2011-01-23  Gary Funck  <gary@intrepid.com>
2139         * c-typeck.c: (c_build_qualified_type)
2140           derive UPC block size by calling upc_get_block_size(),
2141           to ensure that the element type of an array of an array
2142           is derived correctly.
2144 2010-12-29  Gary Funck  <gary@intrepid.com>
2146         Merge trunk version 168314 into gupc branch.
2148 2010-12-15  Gary Funck  <gary@intrepid.com>
2150         Merge trunk version 167307 into gupc branch.
2152 2010-10-19  Gary Funck  <gary@intrepid.com>
2154         * c-typeck.c: Fix typo in previous fix
2155           which led to a mis-compare for equal block sizes.
2157 2010-10-18  Gary Funck  <gary@intrepid.com>
2159         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2160           diagnosed as an error
2162           The conversion from any type (shared or not) to
2163           a shared type is likely either meaningless or an error.  This update
2164           makes any conversion to a shared type, an error.
2166 2010-10-18  Gary Funck  <gary@intrepid.com>
2168         * c-typeck.c: Fix bug: passing int to shared pointer arg.
2169           generates spurious warning
2171           Add a #define procedure that does the same thing as
2172           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
2173           this procedure to diagnose passing an integer value to a
2174           pointer-to-shared as an error.
2176 2010-10-18  Gary Funck  <gary@intrepid.com>
2178         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2179           matching routine declaration.
2181           When checking for type compatibility, shared qualified types must
2182           have the same block factor.  This check was missing from
2183           comptypes_internal().  This update adds the check for blocking
2184           factor equality.
2186 2010-10-17  Gary Funck  <gary@intrepid.com>
2188         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2189           found (-O1 -g)
2191           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2193 2010-10-17  Gary Funck  <gary@intrepid.com>
2195         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2196           45869 - [4.5/4.6 Regression] type mismatch in shift expression
2197           produces ice with -O3 and -m32.
2199           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2201 2010-10-17  Gary Funck  <gary@intrepid.com>
2203         * c-common.c: Diagnose the application of the various "*sizeof"
2204           operations on generic pointer-to-shared as a compilation error.
2206 2010-10-17  Gary Funck  <gary@intrepid.com>
2208         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2209           message regarding a function parameter being declared with a shared
2210           qualifier.
2212           The parameter's 'name' value is not defined at this point, and
2213           cannot be used in the error message.  This update removes the
2214           reference to 'name', and eliminates the segfault.
2216 2010-10-16  Gary Funck  <gary@intrepid.com>
2218         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2220           The gcc/Makefile.in rules for install-plugin had to be re-written to
2221           break up a long list of header files that exceeded the command line
2222           limitation imposed by Irix.
2224           Access functions for TFmode types had to be implemented.
2225           Apparently, this is the mode used for the SGI/MIPS port to represent
2226           "long float".
2228 2010-10-14  Gary Funck  <gary@intrepid.com>
2230         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2231           via typedef chain should not be diagnosed as an error.
2233           If the block size that is given by the typedef is equal to the block
2234           size given explicitly in the variable declaration, then do not
2235           complain.  The easiest way to make this check was to create a
2236           temporary type that is a clone of the element type and then set its
2237           block size using the given layout qualifier.  Then compare the block
2238           size of the temporary (the declaration) to the block size specified
2239           in the typedef.  This complexity is needed, because the '[*]' block
2240           size needs to be calculated, and the '[]' needs to be mapped into a
2241           zero block size.
2243 2010-10-10  Gary Funck  <gary@intrepid.com>
2245         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2246           specified
2248           The compiler properly detected the presence of two or more layout
2249           qualifiers as an error, but then hit an assertion check, because the
2250           code that followed the error expected to see a qualifier and not a
2251           layout specifier.  The fix is simple: just return immediately after
2252           detecting the error.
2254 2010-10-10  Gary Funck  <gary@intrepid.com>
2256         * c-decl.c: Improve error diagnostics for various cases of UPC
2257           shared array type declarations.
2259           Add the check for this error: "In the dynamic translation
2260           environment, THREADS may not appear in declarations of shared arrays
2261           with indefinite block size".  Also, fix up a few of the other
2262           related error diagnostics.
2264 2010-10-09  Gary Funck  <gary@intrepid.com>
2266         * c-common.c: Fix bug: segfault on incomplete array definition.
2268           This turned out to be a bit complicated.   The logic in
2269           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2270           the THREADS identifier in the case where the blocking factor has
2271           been set to indefinite ([]).  This can happen when indefinite array
2272           declarations are processed for shared arrays.  At that time, the
2273           file scope has been closed and THREADS is no longer in scope.  Some
2274           more work is needed on upc_lang_layout_decl().  It has some
2275           duplication, and notably duplicates the two branches of the if
2276           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2277           caller of this routine (layout_decl()).
2279           The method of forcing a layout qualifier of [] in the indefinite
2280           declaration handler is odd a well.  The code that just does the
2281           setting of the block factor, needs to moved into its own routine
2282           that doesn't depend upon a declspec for '[]' to be passed in, just
2283           in order to set the blocking factor to some value (in this case, 0).
2284           Also, the logic for how that shared type is constructed is strange.
2285           First the type with 0 blocking factor is set.  Then the shared
2286           qualifier is removed from the type, and then added back later.  The
2287           intermediate type has a blocking factor set, but it has no shared
2288           qualifier.  Fixing this will require some thought.  It is tempting
2289           just to make indefinite shared arrays an error, rather than forcing
2290           the dimension to be '1'.
2292           This likely fixes a serious error in the previous update to
2293           upc_lang_layout_decl(), where it didn't have the logic to set
2294           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2295           the previous update would fail on many tests.
2297 2010-10-09  Gary Funck  <gary@intrepid.com>
2299         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2300           (decl) is null, which can happen if some layout error occurred
2301           upstream.
2303 2010-10-09  Gary Funck  <gary@intrepid.com>
2305         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2306           "variable-sized" when compiled in dynamic threads.
2308           This long-standing bug is easily fixed.  Just check
2309           for the situation that the non-constant sized type is shared and
2310           that it does not have a dimension that references a multiple of
2311           threads.  If this criteria is met, then issue a meaningful
2312           diagnostic.
2314 2010-10-01  Gary Funck  <gary@intrepid.com>
2316         * configure, configure.ac: Update manual page, and bug reporting
2317           URL.
2319           Update "man" page to reflect debugging switches.  Also, some general
2320           clean up.  Change the bug reporting URL to point to gccupc.org.
2322 2010-09-27  Gary Funck  <gary@intrepid.com>
2324         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2325           the UPC forall depth count variable is not found.
2327           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2328           The compiler will generate code that references this variable in
2329           order to implement nested upc_forall semantics.  If there is a
2330           compiler build or install problem, this variable may not be found.
2331           In this case, terminate with an internal_error().
2333 2010-09-26  Gary Funck  <gary@intrepid.com>
2335         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2336           mis-diagnosed as syntax error.
2338           Fix a failure exhibited by the Berkeley test case,
2339           bug873a.upc, which has the code:
2340                double d;
2341                upc_forall (;;;d) {...} The compiler did not properly handle
2342           the empty "condition" clause, and did not recover well when it was
2343           determined that the use of a double value, "d" above, was neither a
2344           pointer-to-shared nor an integer expression.  The update implements a
2345           fix for both issues.
2347           See also: gcc/c-parser.c gcc/upc/upc-act.c
2349 2010-09-23  Gary Funck  <gary@intrepid.com>
2351         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2352           incorporated into the referencing type.
2354           This was semi-fixed a few times before.  This update fixes a few
2355           more places where the layout qualifier wasn't being propagated
2356           through typedef's properly.  What made this a bit tricky is shown in
2357           the example cited in the bug report:
2359           typedef shared [5] int A_t; A_t A[5*THREADS];
2361           In the typedef, the blocksize is being applied to a shared *scalar*,
2362           and the code was applying the blocksize only to arrays.  This update
2363           handles shared scalars correctly.
2365 2010-09-22  Gary Funck  <gary@intrepid.com>
2367         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2368           upc_forall() semantics are not implemented
2370           The checkforall test in the Berkeley harness test suite indicated
2371           that GCC/UPC was not properly implementing nested upc_forall
2372           semantics.  Nested upc_forall statements (both statically or
2373           dynamically nested) must implement their affinity clause as if it
2374           were "continue"; thus all steps in the loop must execute without
2375           regard for affinity.  To implement these semantics a global depth
2376           counter, __upc_forall_depth, is maintained by the generated code
2377           that implements upc_forall.
2379           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2380           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2381           libupc/include/upc.h libupc/smp/upc_main.c
2383 2010-09-19  Gary Funck  <gary@intrepid.com>
2385         * c-decl.c: c-decl.c: zero out the layout specifier, after
2386           processing an array type.
2388           Fix the previous fix, that moved the setting of the type's layout
2389           qualifier to the outside of the array type processing loop.  What is
2390           missing from the fix is that the layout_qualifier variable needs to
2391           be cleared after setting the type's blocksize.
2393 2010-09-19  Gary Funck  <gary@intrepid.com>
2395         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2396           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2398           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2399           the actual maximum block size.  Therefore, the message was correct,
2400           but the underlying value that was being checked was wrong.  Change
2401           the values so that they agree with the actual implementation-defined
2402           limit.
2404 2010-09-11  Gary Funck  <gary@intrepid.com>
2406         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2407           multi-dimensional shared array with dynamic threads.
2409           This declaration caused an internal compiler error when compiled
2410           with dynamic threads:
2411               shared [*] int A[THREADS][16]; The bug was discovered when
2412           compiling the RTED_UPC test suite.
2414           The fix is to process layout qualifiers after the entire array type
2415           has been built.  Otherwise, we try to calculate the blocksize on a
2416           shared array type that has not had its "size depends upon the value
2417           of THREADS" flag set.
2419           Also, added a test case.
2421           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2423 2010-07-11  Gary Funck  <gary@intrepid.com>
2425         Fix a bug where a statement in c_build_qualified_type()
2426         in the trunk had been inadvertently deleted.
2427         This bug showed up in the IA64 port, because jmpbuf's
2428         on that architecture must be 16 byte aligned, and they were not.
2429         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2431 2010-07-08  Gary Funck  <gary@intrepid.com>
2433         Make changes so that other language compilers
2434         will build and bootstrap.
2435         * c-family/c-common.c (compiling_upc, flag_upc,
2436         flag_upc_instrument, flag_upc_instrument_functions,
2437         use_upc_dwarf2_extensions): Move to stub-upc.c and
2438         upc-lang.c.
2439         * c-family/c-common.h (use_upc_dwarf2_extensions,
2440         compiling_upc): Add extern definitions - needed
2441         to compile/build other language front ends.
2442         * c-family/c.opt: Fix the spelling of ObjC.
2443         It had been incorrectly spelled as Objc.
2444         * c-family/c.opt: Add UPC for the various switches
2445         that are valid for both C and ObjC.
2446         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2447         supported options switches when compiling assembly
2448         language.
2449         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2450         flag_upc_instrument, flag_upc_instrument_functions):
2451         Remove these definitions.  They have been moved
2452         to c-family/stub-upc.c.
2453         * upc/ChangeLog: Move relevant entries
2454         to ChangeLog.upc.
2455         * c-family/stub-upc.c (compiling_upc, flag_upc,
2456         flag_upc_instrument, flag_upc_instrument_functions,
2457         use_upc_dwarf2_extensions): Moved from c-common.c
2458         * upc/upc-lang.c (compiling_upc, flag_upc,
2459         flag_upc_instrument, flag_upc_instrument_functions,
2460         use_upc_dwarf2_extensions): Moved from c-common.c
2461         * objc/objc-act.c (objc_gimplify_expr): Add additional
2462         parameters to c_gimplify_expr() call, that are used
2463         by upc's tree rewrites.
2464         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2465         * gcc/cp/lex.c (init_reswords): If not compiling
2466         UPC, then mask off the UPC keywords.
2467         * cp/Make-lang.in (C_STUB_OBJS): Use this
2468         make macro to link with c-family/stub-objc.o
2469         and c-family/stub-upc.o.
2470         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2471         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2472         * objc/Make-lang.in: Link with c-family/stub-upc.o
2473         to avoid undefined references.
2474         c-parser.c: Fix line indentation.
2475         * libcpp/include/cpplib.h: Remove CL_UPC from
2476         the list of language kinds accepted by the
2477         C preprocessor.  This is not necessary because
2478         UPC is a derivative of C99, and does not need
2479         a different language kind.
2480         * c-fmaily/c-opts.c (c_common_handle_option):
2481         Call set_std_c99() when processing the
2482         "--lang upc" switch, instead of setting the
2483         language kind to CL_UPC.
2484         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2486 2010-07-03  Gary Funck  <gary@intrepid.com>
2488         Merge trunk version 161517 into gupc branch.
2489         * gcc/stub-upc.c: Move to gcc/c-family/.
2490         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2491         Add 'unused' attributes to avoid "set, but
2492         not referenced" warnings.
2493         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2494         Likewise.
2496 2010-03-01 Gary Funck  <gary@intrepid.com>
2498         Create gupc branch from trunk version 157149.