Merge trunk version 195330 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blob71d792417d22fe5b7d2540ea7ec84896264f45af
1 2013-01-21 Gary Funck  <gary@intrepid.com>
3         Merge trunk version 195330 into gupc branch.
5 2013-01-14 Gary Funck  <gary@intrepid.com>
7         Merge trunk version 195164 into gupc branch.
9 2013-01-07 Gary Funck  <gary@intrepid.com>
11         Merge trunk version 194962 into gupc branch.
13 2012-12-24 Gary Funck  <gary@intrepid.com>
15         Merge trunk version 194709 into gupc branch.
17 2012-12-17 Gary Funck  <gary@intrepid.com>
19         Merge trunk version 194552 into gupc branch.
21 2012-12-10 Gary Funck  <gary@intrepid.com>
23         Merge trunk version 194351 into gupc branch.
25 2012-12-03 Gary Funck  <gary@intrepid.com>
27         Merge trunk version 194076 into gupc branch.
29 2012-11-30  Gary Funck  <gary@intrepid.com>
31         Released GUPC 4.8.0.2 based on version 193446.
32         Date of release: 2012-11-12.
33         * DEV-PHASE: Bump release identifier to 4.8.0-3.
34         * DATESTAMP: Bump date stamp.
36 2012-11-26 Gary Funck  <gary@intrepid.com>
38         Merge trunk version 193807 into gupc branch.
40 2012-11-20 Gary Funck  <gary@intrepid.com>
42         Merge trunk version 193672 into gupc branch.
44 2012-11-19 Gary Funck  <gary@intrepid.com>
46         Merge trunk version 193617 into gupc branch.
48 2012-11-15 Gary Funck  <gary@intrepid.com>
50         Merge trunk version 193426 into gupc branch.
52 2012-11-12  Gary Funck  <gary@intrepid.com>
54         Released GUPC 4.8.0.1 based on version 192948.
55         Date of release: 2012-10-29.
56         * DEV-PHASE: Bump release identifier to 4.8.0-2.
57         * DATESTAMP: Bump date stamp.
59 2012-11-05 Gary Funck  <gary@intrepid.com>
61         Merge trunk version 193152 into gupc branch.
63 2012-10-29 Gary Funck  <gary@intrepid.com>
65         Merge trunk version 192909 into gupc branch.
67 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
69         Remove unused --upc-pthreads-per-process compile switch. 
70         * c-family/c.opt: Remove --upc-pthreads-per-process switch
71         that compiler/runtime do not use.
72         * c-family/c-opts.c (c_common_handle_option): Remove support for
73         --upc-pthreads-per-process switch.
74         * c-family/c-common.c: Ditto.
75         * c-family/c-common.h: Ditto.
77 2012-10-27 Gary Funck  <gary@intrepid.com>
79         * defaults.h: fix typos and formatting in UPC-related entries.
81 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
83         Place shared initialization code into the .text
84         section instead of a separate .upc_init section.
85         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
86         (UPC_INIT_BEGIN_NAME): Delete.
87         (UPC_INIT_END_NAME): Delete.
88         * doc/tm.texi.in: Ditto.
89         * doc/tm.texi: Ditto.
91 2012-10-22 Gary Funck  <gary@intrepid.com>
93         Merge trunk version 192673 into gupc branch.
95 2012-10-15 Gary Funck  <gary@intrepid.com>
97         Merge trunk version 192449 into gupc branch.
99 2012-10-08 Gary Funck  <gary@intrepid.com>
101         Merge trunk version 192198 into gupc branch.
103 2012-10-01 Gary Funck  <gary@intrepid.com>
105         Merge trunk version 191931 into gupc branch.
107 2012-09-26  Gary Funck  <gary@intrepid.com>
109         Implement support for various UPC version 1.3 specification
110         additions and changes. Deprecate support for upc_local_alloc.
111         Add support for upc_tick (wall-clock timer) library.
112         Add support for collective de-allocation functions:
113         upc_all_free and upc_all_lock_free.
114         Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
115         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
117 2012-09-24 Gary Funck  <gary@intrepid.com>
119         Merge trunk version 191658 into gupc branch.
121 2012-09-17  Gary Funck  <gary@intrepid.com>
123         Merge trunk version 191376 into gupc branch.
125 2012-09-10  Gary Funck  <gary@intrepid.com>
127         Merge trunk version 191141 into gupc branch.
129 2012-08-27  Gary Funck  <gary@intrepid.com>
131         Merge trunk version 190707 into gupc branch.
132         * tree.h (struct tree_base): Adjust various
133         UPC tree and type flags to refer to the
134         newly introduced u.bits field.
136 2012-08-20  Gary Funck  <gary@intrepid.com>
138         Merge trunk version 190524 into gupc branch.
139         Incorporates a fix in genoutput.c (to properly use
140         CONST_CAST) that led to build failures with
141         older versions of g++.
143 2012-08-16  Gary Funck  <gary@intrepid.com>
145         Merge trunk version 190437 into gupc branch.
146         Incorporates a fix for a build failure on the PPC
147         due to passing incorrect switches to the assembler.
148         Also, first merged trunk revision that compiles GCC
149         with the C++ compiler in the first stage.
151 2012-08-13  Gary Funck  <gary@intrepid.com>
153         Merge trunk version 190336 into gupc branch.
155 2012-08-09  Gary Funck  <gary@intrepid.com>
157         * c-family/c-common.c (c_fully_fold_internal): Do not fold
158         offsetof-like expressions when they are applied to UPC
159         shared types.
161 2012-08-06  Gary Funck  <gary@intrepid.com>
163         Merge trunk version 190173 into gupc branch.
165 2012-08-01  Gary Funck  <gary@intrepid.com>
167         Merge trunk version 190063 into gupc branch.
168         Incorporates fix for build failure on IA64.
170 2012-07-30  Gary Funck  <gary@intrepid.com>
172         Merge trunk version 189954 into gupc branch.
174 2012-07-27  Gary Funck  <gary@intrepid.com>
176         Merge trunk version 189856 into gupc branch.
177         Incorporates fix for bootstrap with a sub-set of language
178         specific source directories present.
179         * optabs.c: Revert to trunk.  Rather than defining opcodes
180         as a way of defining get/put runtime library function names,
181         generate them directly in gcc/upc/upc-genericize.c.
182         * optabs.h: Ditto.
183         * genopinit.c: Ditto.
185 2012-07-23  Gary Funck  <gary@intrepid.com>
187         Merge trunk version 189777 into gupc branch.
189 2012-07-16  Gary Funck  <gary@intrepid.com>
191         Merge trunk version 189545 into gupc branch.
193 2012-07-12  Gary Funck  <gary@intrepid.com>
195         Merge trunk version 189366 into gupc branch.
197 2012-07-05  Gary Funck  <gary@intrepid.com>
199         Merge trunk version 189274 into gupc branch.
200         Incorporates graphite build infrastructure changes.
202 2012-07-04  Gary Funck  <gary@intrepid.com>
204         Merge trunk version 189080 into gupc branch.
205         * Makefile.in: Adjust for move of C front-end files.
206         * c/Make-lang.in: Ditto.
208 2012-07-03  Gary Funck  <gary@intrepid.com>
210         Merge trunk version 189078 into gupc branch.
212 2012-06-25  Gary Funck  <gary@intrepid.com>
214         Merge trunk version 188931 into gupc branch.
216 2012-06-18  Gary Funck  <gary@intrepid.com>
218         Merge trunk version 188721 into gupc branch.
220 2012-06-11  Gary Funck  <gary@intrepid.com>
222         Merge trunk version 188380 into gupc branch.
224 2012-06-04  Gary Funck  <gary@intrepid.com>
226         Merge trunk version 188168 into gupc branch.
228 2012-05-29  Gary Funck  <gary@intrepid.com>
230         Merge trunk version 187927 into gupc branch.
232 2012-05-18  Gary Funck  <gary@intrepid.com>
234         Merge trunk version 187666 into gupc branch.
235         Incorporates fix for ICE in tree vectorization pass
236         when processing strided loads.
238 2012-05-17  Gary Funck  <gary@intrepid.com>
240         Merge trunk version 187578 into gupc branch.
242 2012-05-09  Gary Funck  <gary@intrepid.com>
244         Merge trunk version 187347 into gupc branch.
245         Incorporates fix for segfault in tree vectorization pass.
247 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
249         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
250         Appropriate libraries and include files are added on the
251         command line to make it possible to compile with the driver
252         from the build tree.
254 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
256         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
257         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
258         a function returns a pointer-to-shared in memory instead
259         of in registers.
260         (rs6000_pass_by_reference): Ditto.
262 2012-04-28  Gary Funck  <gary@intrepid.com>
264         * c-decl.c (grokdeclarator): Set 'type' to error node
265         after detecting "shared auto variable" error to avoid
266         downstream complications.
267         * upc-act.c: Fix a couple of spelling errors in comments.
269 2012-04-26  Gary Funck  <gary@intrepid.com>
271         * c-family/c-pragma.c (handle_pragma_upc):
272         Fix typo in warning message.
274 2012-04-17  Gary Funck  <gary@intrepid.com>
276         Merge trunk version 186486 into gupc branch.
278 2012-04-17  Gary Funck  <gary@intrepid.com>
280         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
281         value of the pupc mode.  Fixes a compile-time warning.
282         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
283         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
284         Improve source formatting.
286 2012-04-09  Gary Funck  <gary@intrepid.com>
288         Merge trunk version 186243 into gupc branch.
289         Incorporates a powerpc 'ffi' fix.
291 2012-03-16  Gary Funck  <gary@intrepid.com>
293         Merge trunk version 185454 into gupc branch.
294         Incorporates a libgcc fix for builds on Darwin.
296 2012-03-13  Gary Funck  <gary@intrepid.com>
298         Merge trunk version 185278 into gupc branch.
299         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
300         call build_pointer_type() to apply UPC-specific qualifiers.
301         * top-level/configure.ac: factor the checking for posix hostst
302         out of the libgomp section so that it can also be used by libgupc.
303         * top-level/configure: Re-generate.
304         * DEV-PHASE: bump to 4.8.0-1.
306 2012-03-12  Gary Funck  <gary@intrepid.com>
308         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
309         the mode for a pointer for upc-pointer-to-shared types.
311 2012-03-04  Gary Funck  <gary@intrepid.com>
313         Merge trunk version 184900 into gupc branch.
315 2012-02-17  Gary Funck  <gary@intrepid.com>
317         Released GUPC 4.7.0.2 based on version 183992.
318         * DEV-PHASE: Bump release identifier to 4.7.0-3.
319         * DATESTAMP: Bump date stamp.
321 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
323         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
324         code generation (same as #pragma pupc off).
325         (set_pupc_mode): New. Set/restore profiling mode.
326         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
327         (set_pupc_mode): New. Prototype.
328         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
329         profiling code for shared variables initialization routines.
331 2012-01-31  Gary Funck  <gary@intrepid.com>
333         Merge trunk version 183751 into gupc branch.
334         Incorporates fix for bootstrap failure on openSUSE 12.1.
336 2012-01-10  Gary Funck  <gary@intrepid.com>
338         Merge trunk version 183072 into gupc branch.
339         Incorporates libcpp __BASE_FILE__ fix.
341 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
343         * top-level/Makefile.def (flags_to_pass): Added GUPC
344         defines. Fixes the make error when upc is not specified as one
345         of the languages to build.
346         * top-level/Makefile.in: Re-generate.
348 2011-11-22  Gary Funck  <gary@intrepid.com>
350         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
351         * dwarf2out.c (gen_compile_unit_die): Check for
352         the "GNU UPC" language string in lieu of "GCC UPC".
353         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
355 2011-11-18  Gary Funck  <gary@intrepid.com>
357         Merge trunk version 181552 into gupc branch.
358         Incorporates libgcc/libunwind fix for IA64.
360 2011-11-19  Gary Funck  <gary@intrepid.com>
362         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
363         Add check for UPC when defining the language type value
364         in a traceback entry.
366 2011-11-18  Gary Funck  <gary@intrepid.com>
368         Merge trunk version 181493 into gupc branch.
369         Incorporates final fix for PR target/49992.
371 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
373         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
374         change that converted relative include paths into absolute
375         ones, as it does not work with older version of make (3.80).
377 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
379         Apply patch for Darwin build - PR49992.
380         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
381         * gcc/configure.ac: Ditto.
382         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
383         * gcc/ada/gcc-interface/Makefile.in: Ditto.
384         * top-level/configure: Re-generate.
385         * gcc/configure: Re-genrate.
387 2011-10-26  Gary Funck  <gary@intrepid.com>
389         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
390         "libupc" to "libgupc".
391         * top-level/configure.ac: Implement support for cross-builds, and
392           adjust for rename of libupc to libgupc.
393         * top-level/Makefile.tpl: Ditto.
394         * top-level/Makefile.def: Ditto.
395         * top-level/configure: Re-generate.
396         * top-level/Makefile.in: Re-generate.
397         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
398         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
399         * doc/tm.texi: Re-generate.
400         * tree-pretty-print.c (dump_block_node): Delete unused variable.
401         * gcc.c: Adjust for rename of libupc to libgupc.
402         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
403         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
404         Change "xupc" to "xgupc".
405         * configure.ac: Change "GCC UPC" to "GNU UPC".
406         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
407         so that they are absolute paths.  This is needed because
408         the upc-crtstuff builds are in the libgupc library build
409         directories which are not at the same level as libgcc.
410         * config/darwin.h: Adjust for rename of libupc to libgupc.
412 2011-10-20  Gary Funck  <gary@intrepid.com>
414         Merge trunk version 180276 into gupc branch.
415         Incorporates fix for PR bootstrap/50709.
417 2011-10-20  Gary Funck  <gary@intrepid.com>
419         Merge trunk version 180246 into gupc branch.
421 2011-10-19  Gary Funck  <gary@intrepid.com>
423         Merge trunk version 180233 into gupc branch.
424         Incorporates fix for PR debug/49310 (var tracking).
426 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
428         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
429         only four (O0 static/dynamic, O3 static/dynamic).
430         Detect -fupc-threads-0 as an option for dynamic threads
431         compile environment.
433 2011-10-10  Gary Funck  <gary@intrepid.com>
435         * tree.c (check_qualified_type, check_aligned_type):
436         Call tree_int_cst_equal() to compare UPC blocking factors
437         if the corresponding tree pointers are not equal.
438         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
440 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
442         Add configuration checks for struct/packed builds so we can
443         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
444         * testsuite/lib/target-supports.exp
445         (check_effective_target_upc_struct_pts): New.
446         (check_effective_target_upc_packed_pts): New.
448 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
450         Add to FLAGS the flags needed to disable inlining of
451         UPC run-time access routines.
452         * testsuite/lib/target-supports.exp
453         (add_options_for_upc_library_calls): New.
455 2011-09-15  Gary Funck  <gary@intrepid.com>
457         Fix ICE involving shared bit field accesses.
458         * tree.c (build3_stat): Propagate TEEE_SHARED()
459         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
461 2011-09-13  Gary Funck  <gary@intrepid.com>
463         Merge trunk version 178795 into gupc branch.
464         Incorporates fix to PR bootstrap/50010 for x86-32.
466 2011-09-08  Gary Funck  <gary@intrepid.com>
468         Merge trunk version 178557 into gupc branch.
470 2011-09-07  Gary Funck  <gary@intrepid.com>
472         Ensure that UPC pointer-to-shared type alignment is
473         propagated to the final type.  Revert to long-standing
474         alignment policy: twice the size of a "C" pointer.
475         * tree.c (build_pointer_type): Propagate the alignment
476         of the UPC pointer-to-shared representation type
477         into the newly built pointer type.
479 2011-08-30  Gary Funck  <gary@intrepid.com>
481         * tree.h (check_qualified_type): Change 'const_tree'
482         argument types back to 'tree' to avoid complaints
483         of assignment drops qualifiers for invocations of the
484         newly implemented TYPE_BLOCK_FACTOR() macro, which
485         invokes hash functions with 'tree' pointer values that
486         are not const qualified.
487         * tree.c (check_qualified_type, check_aligned_type): Ditto.
488         * c-typeck.c (comptypes_internal): Ditto.
490 2011-08-29  Gary Funck  <gary@intrepid.com>
492         Fixes for regressions noted running "make check"
493         versus GCC trunk.
494         * fold-const.c (fold_unary_loc): Execute UPC-specific
495         checks for a cast-of-a-cast, only if one of the
496         operands is a UPC pointer-to-shared value.
497         * opts.c (print_specific_help):  Fix a comparison
498         in an assert that checks that there are enough
499         bits reserved for the number of languages defined
500         in the .opt files.
502 2011-08-29  Gary Funck  <gary@intrepid.com>
504         Implement a hash table to record UPC block factors.
505         * c-family/stub-upc.c (upc_block_factor_insert,
506         upc_block_factor_lookup): New dummy stub procedures.
507         * c-family/c-common.c (c_sizeof_or_alignof_type):
508         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
509         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
510         to copy (hashed) UPC blocking factor.
511         (set_type_quals): Likewise.
512         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
513         TYPE_HAS_THREADS_FACTOR().
514         (type_common.block_factor): Delete.
515         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
516         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
517         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
518         UPC blocking factors greater than one.
519         * dwarf2out.c (modified_type_die): Re-implement
520         logic that records UPC blocking factor in the generated
521         DWARF2 debugging information.
522         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
523         TYPE_HAS_THREADS_FACTOR().
524         * c-decl.c (finish_decl, grokdeclarator):
525         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
526         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
527         used by UPC, and print UPC-specific information.
529 2011-08-28  Gary Funck  <gary@intrepid.com>
531         Re-work the type machinery to fully support and to unify support
532         for the UPC layout qualifier (blocking factor).
533         * c-family/stub-upc.c (upc_set_block_factor): Delete.
534           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
535           and update prototype.
536         * c-family/c-common.c (complete_array_type): call newly
537           defined c_build_qualified_type_1() instead of
538           upc_set_block_factor().
539         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
540           upc_apply_layout_qualifier() and update prototype.
541           (upc_set_block_factor): Delete prototype.
542         * c-family/c-common.h (c_build_qualified_type): redefine
543           as a pre-processor macro that invokes c_build_qualified_type_1()
544           with a null UPC layout qualifier.
545           (c_build_qualified_type_1): New.  Add layout qualifier argument
546           to old c_build_qualified_type() prototype.
547         * tree.c (set_type_quals, check_qualified_type):
548           Add layout qualifier as argument.
549           (check_aligned_type): Add check for UPC block factor equality.
550           (get_qualified_type_1): Rename from get_qualified_type() and
551           add layout qualifier as argument.
552           (build_qualified_type_1): Rename from build_qualified_type() and
553           add layout qualifier as argument.
554         * tree.h (check_qualified_type): Add layout qualifier as argument
555           to the prototype.
556           (get_qualified_type): Re-define as a as a pre-processor macro
557           that invokes get_qualified_type_1() with a null
558           UPC layout qualifier.
559           (get_qualified_type_1): Rename from get_qualified_type() and
560           add layout qualifier as argument.
561         * cp/tree.c (c_build_qualified_type_1): Rename from
562           c_build_qualified_type() and add (unused) layout qualifier
563           argument.
564         * c-decl.c (finish_decl): re-format long error messages.
565           (grokdeclarator): Re-work the logic so that it calls
566           upc_grok_layout_qualifier() to handle the UPC layout
567           qualifier, if present.
568         * c-typeck.c (qualify_type, common_pointer_type,
569           build_component_ref): Re-work the logic so that it calls
570           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
571           if present.
572           (c_build_qualified_type_1): Rename from c_build_qualified_type()
573           and add layout qualifier argument.
574         * print_tree.c (print_node): Re-format a long line.
576 2011-08-26  Gary Funck  <gary@intrepid.com>
578         Merge trunk version 177949 into gupc branch.
579         * c-family/c-common.h (enum rid): Bump the number of type modifiers
580           in the comment.
581         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
582           to add new rliterals column value.
584 2011-08-26  Gary Funck  <gary@intrepid.com>
586         * convert.c (convert_to_integer): Fix the check for the
587           difference between two UPC pointers-to-shared values.
589 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
591         * configure.ac: Fix the name for --with-upc-pts-packed-bits
592           option. Support --with-upc-packed-bits as deprecated. Fix the code to
593           correctly check packed bits.
594         * configure: Re-generate.
596 2011-08-16  Gary Funck  <gary@intrepid.com>
598         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
599           the barrier id expression is not an integer expression.
601 2011-08-12  Gary Funck  <gary@intrepid.com>
603         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
604           (revert to trunk).
605         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
606           Set mode of UPC pointer-to-shared rep. to an
607           integral mode of size at least as large as the
608           size of the representation's struct type.
610 2011-08-12  Gary Funck  <gary@intrepid.com>
612         Rework/simplify the UPC genericize pass.
613         * c-family/stub-upc.c (upc_apply_layout_qualifier,
614           upc_build_pointer_type): New.
615           (upc_set_block_factor): Adjust to new calling sequence.
616           (upc_build_shared_var_addr): Delete.
617         * c-family/c-common.c (complete_array_type): Adjust call
618           to upc_set_block_factor().
619         * c-family/c-upc.h (upc_apply_layout_qualifier,
620           upc_build_pointer_type): New.
621           (upc_build_shared_var_addr): Delete.
622           (upc_set_block_factor): Adjust to new calling sequence.
623         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
624         * c-decl.c (grokdeclarator): Call newly defined
625           upc_apply_layout_qualifier() instead of upc_set_block_factor().
626         * c-decl.c (grokdeclarator): Split long UPC-related error
627           messages into two lines.
628         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
629           directly.  Revert that change to trunk. (upc_genericize() will
630           handle lowering the expressions that take the address of a
631           UPC variable).
632         * config/i386/i386.c (ix86_promote_function_mode): For UPC
633           pointers-to-shared, return the type mode of the UPC pointer-to-shared
634           representation type.
636 2011-08-10  Gary Funck  <gary@intrepid.com>
638         Implement additional fixes for recent merge with trunk.
639         * explow.c (promote_mode): Do not attempt to promote
640           the mode for UPC pointer-to-shared types.
641         * config/i386/i386.c (function_value_64): Ditto.
643 2011-08-07  Gary Funck  <gary@intrepid.com>
645         Merge trunk version 177548 into gupc branch.
646         * config/i386/i386.c (ix86_promote_function_mode):
647           Do not promote UPC pointers-to-shared to Pmode.
648         * c-family/c-ommon.c (pointer_int_sum):
649           Also check the pointer operand, rather than just
650           its type, when making the decision to derive
651           the equivalent unshared type.
652         * tree.c (build2_stat): If the type of the result
653           passed in as an argument is a UPC shared type,
654           derive the unshared equivalent when calculating
655           the result type of the node.
657 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
659         * config/darwin.c: Disable var_tracking option
660           on -O0 as it is supposed to run only when optimization
661           is applied. See GCC bug 49743.
663 2011-07-06  Gary Funck  <gary@intrepid.com>
665         Re-implement the pass that lowers trees generated by
666         the UPC front-end into GENERIC.  Previously this was
667         done within the gimplification framework, but this
668         required that gimplification be run before inlining
669         and various other passes, which did not fit in well
670         with the current design of the middle-end passes.
671         Now, the lowering is done by a newly defined language
672         specific genericize hook.  With this change, we are
673         are able to undo some extensions made to the gimplify
674         logic, and thus can revert several files to trunk.
676         * c-decl.c: Add a check for UPC deprecated names which
677           may appear as undefined function names.
678         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
679           LTI_upc_getaddr): Remove definitions of unused UPC
680           library function names.  These were defined back when
681           the libfunc interface was used to call these routines.
682         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
683           in UPC lowering (genericize) pass.
684         * langhooks.h (gimplify_expr): Revert to trunk's definition.
685           (instrument_func): Delete this hook.  Now handled in
686           upc_genericize().
687         * tree-pass.h: Revert to trunk.
688         * c-typeck.c (build_unary_op): Adjust reference to
689           upc_genericize() in a comment.
690         * gimplify.c (create_tmp_var_raw): Delete logic that
691           was converting UPC shared types into unshared types
692           to be used for temporaries.  Now handled in  upc_genericize().
693           Replace with an assertion check.
694           (prepare_gimple_addressable): Revert to trunk's definition.
695           No longer needed as an externally called function.
696           (flag_instrument_functions_exclude_p): Re-define as
697           an externally called function.
698           (gimplify_function_tree): Delete code that implemented
699           call to UPC's language specific function instrumentation hook.
700         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
701           (prepare_gimple_addressable): Delete extern definition;
702           revert to trunk's definition.
703         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
704           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
705         * c-family/c-gimplify.c: Revert to trunk.
706         * cp/cp-gimplify.c: Revert to trunk.
707         * cp/cp-tree.h: Revert to trunk.
708         * explow.c: Revert to trunk.
709         * langhooks.c: Revert to trunk.
710         * libfuncs.h: Revert to trunk.
711         * objc/objc-act.c: Revert to trunk.
713 2011-06-30  Gary Funck  <gary@intrepid.com>
715         * c-family/c.opt: Bring options definitions up-to-date
716         with respect to changes made in the trunk.
718 2011-06-29  Gary Funck  <gary@intrepid.com>
720         Merge trunk version 175584 into gupc branch.
722 2011-06-13  Gary Funck  <gary@intrepid.com>
724 libcpp/
725         * include/cpplib.h (enum c_lang):
726         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
727         This keeps all the "C" variants together.
728         * init.c (lang_defaults): Add an entry for UPC.
730 2011-06-09  Gary Funck  <gary@intrepid.com>
732         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
733         a 32-bit target, the size expression overflowed, the result was
734         error_mark_node, and an ICE was triggered on an attempt to evaluate
735         C_TYPE_VARIABLE_SIZE() on the error node.
736         (upc_blocksizeof_expr, upc_blocksizeof_type,
737         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
738         Make similar changes to avoid further processing of error_mark_node.
740 2011-06-07  Gary Funck  <gary@intrepid.com>
742         * sel-sched.c (move_op): Incorporate the following
743         patch to eliminate ICE at -O3 on IA64/Altix.
745 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
747         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
748         code_motion_path_driver returned 0 or 1.
749         (sel_region_finish): Clear h_d_i_d.
751 2011-06-02  Gary Funck  <gary@intrepid.com>
753         Merge trunk version 174558 into gupc branch.
755 2011-05-30  Gary Funck  <gary@intrepid.com>
757         * configure.ac: Make the default order of the virtual
758           address field in a UPC pointer-to-shared to be "first".
759           This reverts to the previous setting, and is a short term
760           measure to work around a bug found on the IA64,
761           where vaddr=last led to incorrect code generation.
762           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
763           in AC_DEFINE(), to agree with recent changes in files
764           that reference this define.
765           configure, config.in: Regenerate.
767 2011-05-26  Gary Funck  <gary@intrepid.com>
769         * configure.ac: Fix typo when referring to $upc_vaddr_order.
770           configure: Regenerate.
772         * ../fixincludes/fixincl.x: Revert to trunk.
773           This file is auto-generated, and should not be merged.
775 2011-05-18  Gary Funck  <gary@intrepid.com>
777         Merge trunk version 173845 into gupc branch.
779 2011-05-17  Gary Funck  <gary@intrepid.com>
781         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
782           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
784         * c-family/c-pragma.c: Remove conditional compilation
785           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
786           Test 'compiling_upc' when compiling to determine if
787           the "upc" and "pupc" pragmas should be registered.
789         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
790           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
791           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
792           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
793           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
794           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
795           Move these target-dependent definitions from config/upc-conf.h
796           to here.
798         * configure.ac: Improve the logic for UPC-related options.
799           Delete references to pre-processor definitions that have
800           been moved to "upc/upc-pts.h".
802         * configure, config.in: Regenerate.
804         * Makefile.in (UPC_PTS_REP): Remove definition and revert
805           to trunk.  This substitution variable was used to
806           configure the representation-specific versions of
807           the tree rewrites that operate on UPC pointer-to-shared
808           types and objects.
810         * c-parser.c (c_parser_upc_forall_statement): Remove
811           reference to UPC_FORALL_DEPTH_NAME, and call
812           newly defined upc_rts_forall_depth_var() instead.
814         * config/upc-config.h: Delete. Various definitions
815           moved to "upc/upc-rts-names.h", "defaults.h", and
816           "upc/upc-pts.h".
818         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
819           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
820           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
821           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
822           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
823           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
824           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
825           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
826           New.  Document UPC target macros.
827           doc/tm.texi: Regenerate.
829 2011-05-07  Gary Funck  <gary@intrepid.com>
831         * ../configure.ac: Disable build of libupc
832           on non POSIX hosted systems.  Use AS_HELP_STRING
833           to define messages.  Remove 'word-pair' as a
834           possible --with-upc-pts UPC pointer-to-shared
835           representation.
837         * ../configure: Regenerate.
839         * configure.ac: Use AS_HELP_STRING to define messages.
840           Remove 'word-pair' as a possible --with-upc-pts
841           UPC pointer-to-shared representation.
842           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
843           (UPC_MAX_BLOCK_SIZE): Correct the default value.
845         * configure: Regenerate.
847         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
848           definition.
850         * ChangeLog.upc: Fix some typos.
852 2011-05-07  Gary Funck  <gary@intrepid.com>
854         * ../maintainer-scripts/gcc_release: Add "upc"
855           as one of the released languages.
857 2011-05-06  Gary Funck  <gary@intrepid.com>
859         Eliminate compilation warnings, by fixing
860         #include's and updating function prototypes.
862         * c-family/c-cppbuiltin.c: Include c-upc.h.
864         * optabs.c (gen_libfunc): Change type of 'suffix'
865           parameter to conform with prototype.
867         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
868           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
869           hook used by UPC.
871         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
872           the prototype.
874         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
875           argument values to cp_gimplify_expr.
877         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
878           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
879           pre-processor definitions that are no longer
880           needed to build the 'upc' command (upc-cmd.c)
881           because the linker specs. defined in libupc
882           take care of linking in the needed libraries.
884         * c-parser.c (c_parser_upc_forall_statement):
885           initialize affinity_loc to avoid "maybe unused" warning.
886           (c_parser_upc_sync_statement): Remove un-needed
887           'ret' variable.  Cast return value from
888           'upc_build_sync_stmt' to 'void' to avoid
889           compile-time warning.
891         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
892           integer constant, not a string.  Range is restricted
893           to maximum positive 32-bit integer (2+ billion) to
894           fit in with the use of 'int' in the front-end's
895           switch handling logic.
897 2011-05-06  Gary Funck  <gary@intrepid.com>
899         Upgrade c-family source files to conform with modularity
900         improvements.  Mainly, remove #include of c-tree.h in files
901         under c-family, and define a new UPC-specific #include file,
902         c-upc.h, and use it.
904         * c-family/stub-upc.c: Remove #include of c-tree.h and
905           upc/upc-act.h.  Replace with #include of c-common.h
906           and c-upc.h.
907           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
908           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
909           upc_localsizeof_expr, upc_localsizeof_type,
910           upc_shared_type_p): Delete.
912         * c-family/c-opts.c: Add #include of c-upc.h
914         * c-family/c-common.c: Remove #include of c-tree.h and
915           add #include of c-upc.h.
917         * c-family/c-upc.h: New. Define API for UPC-specific functions
918           (mostly implemented in upc/upc-act.c).
920         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
921           Remove extern definitions.
923         * c-family/c-pragma.c: Remove #include of c-tree.h.
924           Add #include of c-upc.h.
926         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
927           c-tree.h.
928           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
929           upc/upc-act.c, and define as a macro.
930           (expand_affinity_test): Remove unused external definition.
931           (build_upc_unshared_type): Add external definition.
932           (upc_shared_type_p): Remove external definition.
934         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
936         * dojump.c: Remove #include of c-tree.h.
938         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
939           and move to tree.h.
940           (count_upc_threads_refs, is_multiple_of_upc_threads,
941           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
942           upc_build_shared_var_addr, upc_build_sync_stmt,
943           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
944           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
945           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
946           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
947           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
948           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
949           set_upc_consistency_mode, get_upc_consistency_mode,
950           push_upc_consistency_mode, pop_upc_consistency_mode,
951           get_upc_pupc_mode):
952           Move external definitions to c-family/c-upc.h.
953           (upc_blocksizeof_type, upc_localsizeof_type,
954           upc_elemsizeof_type): Remove external definitions;
955           these functions were moved to c-parser.c.
957         * c-decl.c: Add #include of c-upc.h.
959         * c-typeck.c: Add #include of c-upc.h.
961         * c-convert.c: Add #include of c-upc.h.
963         * ChangeLog.upc: Fix typo.
965         * Makefile.in: Add references to c-family/c-upc.h, everywhere
966           there is a reference to c-family/c-objc.h.
967           Remove extraneous reference to upc-act.h.
969         * c-parser.c: Add #include of c-upc.h.
970           (upc_blocksizeof_expr, upc_blocksizeof_type,
971           upc_elemsizeof_expr, upc_elemsizeof_type,
972           upc_localsizeof_expr, upc_localsizeof_type):
973           Move from upc/upc-act.c.
975         * tree.c (build_upc_unshared_type): New.
976           Move upc_get_unshared_type from upc/upc-act.c and rename
977           to build_upc_unshared_type.
978           c-family/c-common.c (pointer_int_sum): refer to renamed
979           build_upc_unshared_type function.
980           c-convert.c (convert): Ditto.
981           convert.c (convert_to_pointer): Ditto.
982           c-typeck.c (build_unary_op, build_modify_expr,
983           really_start_incremental_init): Ditto.
984           gimplify.c (create_tmp_var_raw): Ditto.
985           tree.c (build1_stat): Ditto.
986           tree.h (upc_get_unshared_type): Rename to
987           build_upc_unshared_type.
989 2011-05-06  Gary Funck  <gary@intrepid.com>
991         Merge trunk version 173471 into gupc branch.
993 2011-05-05  Gary Funck  <gary@intrepid.com>
995         Make changes that bring the GUPC branch more closely in sync.
996         with the GCC trunk.  Revert any fixes that are not UPC-specific.
997         Remove gratuitous re-formatting.
999         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1000           This file should have been removed in a previous merge
1001           with the trunk.
1002         * ../configure.ac: Remove Cray Catamount/CNL support.
1003         * ../configure: Regenerate.
1004         * ../config.sub: Remove Cray Catamount/CNL support.
1005         * config.gcc: Remove Cray Catamount/CNL support.
1006         * ../maintainer-scripts/gcc_release: Revert to trunk.
1007         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1008           was missed in a previous merge with the trunk.
1009         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1010           procedure.
1011         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1012           in addition to ARRAY_TYPE.
1013         * c-typeck.c: Remove an extra newline character.
1014         * varasm.c: Revert a fix that improved an error message
1015           when TLS common data is unimplemented.
1016         * varasm.c: Revert a gcc_assert that had been added which
1017           checked for a null DECL_SIZE_UNIT field.
1018         * emultls.c: Revert to trunk. Remove possible fix.
1019         * Makefile.in: Revert extra blank line that is present
1020           in the trunk version.
1021         * Makefile.in: Revert a fix that handled long shell
1022           argument lists for plugin headers.
1023         * config/ia64/ia64.opt: Revert an option setting
1024           that increased the default TLS address range.
1025         * config/ia64/crtbegin.asm: Revert to trunk.
1026           Removes an extra newline character.
1027         * ChangeLog.upc: Spell check.
1029 2011-05-03  Gary Funck  <gary@intrepid.com>
1031         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1032           (c_apply_type_quals_to_decl): Ditto.
1033         * c-family/c-common.h: Ditto.
1034         * dojump.c: Ditto.
1035         * c-decl.c (merge_decls): Ditto.
1036         * c-typeck.c (qualify_type, default_conversion,
1037           build_component_ref, build_unary_op,
1038           c_build_qualified_type): Ditto.
1039         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1041 2011-04-29  Gary Funck  <gary@intrepid.com>
1043         * c-decl.c (finish_decl): Improve error diagnostics.
1044           (grokdeclarator): Ditto.
1046         * c-typeck.c (build_c_cast): Improve error diagnostics.
1047           (convert_for_assignment): Ditto.
1048           (build_binary_op): Ditto.
1050         * c-parser.c (c_parser_upc_forall_statement):
1051           Improve error diagnostics.
1053         * convert.c (convert_to_integer):  Improve error diagnostics.
1055 2011-04-24  Gary Funck  <gary@intrepid.com>
1057         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1058           occurred if there is an error in the barrier id
1059           expression.  Map error_mark_node into NULL.
1061 2011-04-22  Gary Funck  <gary@intrepid.com>
1063         Merge trunk version 172873 into gupc branch.
1065 2011-04-19  Gary Funck  <gary@intrepid.com>
1067         Merge trunk version 172359 into gupc branch.
1069 2011-04-14  Gary Funck  <gary@intrepid.com>
1071         * c-family/c.opt: Add UPC as a valid language for various
1072           switches where it is valid for "C", that were not updated
1073           in previous merges with trunk.
1075 2011-04-13  Gary Funck  <gary@intrepid.com>
1077         * c-family/c.opt (fupc-pre-include): New option definition.
1078         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1079           -fno-upc-pre-include is asserted.
1081 2011-04-07  Gary Funck  <gary@intrepid.com>
1083         Merge trunk version 172158 into gupc branch.
1084         to bring in the following fix.
1086 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1088         PR bootstrap/48403
1089         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1090         if old and new states differ.
1092 2011-04-06  Gary Funck  <gary@intrepid.com>
1094         Merge trunk version 171966 into gupc branch.
1096 2011-04-01  Gary Funck  <gary@intrepid.com>
1098         * tree.h (tree_base): Move UPC flag bits into bit fields
1099           located just before spare bits.  Decrement spare bits.
1100           Rename 'shared_flag' -> 'upc_shared_flag',
1101           'relaxed_flag' -> 'upc_relaxed_flag',
1102           'strict_flag' -> 'upc_strict_flag, and adjust macros
1103           that reference them accordingly.
1105 2011-04-01  Gary Funck  <gary@intrepid.com>
1107         * c-decl.c (grokdeclarator): Fix formatting of
1108           code that sets UPC block size on scalars.
1110 2011-04-01  Gary Funck  <gary@intrepid.com>
1112         * c-decl.c (grokdeclarator): Revert use of white space
1113           to match the trunk (to rationalize diffs).
1114         * c-typeck.c (convert_for_assignment): Ditto.
1115         * tree-ssa.c (useless_type_conversion_p): Ditto.
1117 2011-03-23  Gary Funck  <gary@intrepid.com>
1119         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1120           the GCC 4.6 release branch.
1122 2011-03-21  Gary Funck  <gary@intrepid.com>
1124         Merge trunk version 171202 into gupc branch.
1126 2011-03-20  Gary Funck  <gary@intrepid.com>
1128         * varasm.c: Call error() directly with a format specifier,
1129           rather than using sprintf() to format the message.
1130           This should make it easier to internationalize UPC's error messages.
1132 2011-03-20  Gary Funck  <gary@intrepid.com>
1134         * configure.ac: Fix the check for gnu ld when enabling
1135           UPC link script support.
1136           configure: Regenerate (also picks up changes from previous
1137           merge with trunk).
1139 2011-03-20  Gary Funck  <gary@intrepid.com>
1141         Move UPC start files, end files, and linker specs.
1142         into libupc.  This reduces the impact on common GCC
1143         configuration files, and ensures that these UPC-specific
1144         components are only built when the UPC language dialect is selected.
1147 gcc/
1148         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1149           linker specs. Fix typo in -fupc-debug message.
1151         * config/upc-conf.h, config/darwin.h: Move defines for
1152           UPC-related section begins/ends into libupc/config/default/
1153           upc-crt-config.h.
1155         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1156           UPC-related linker compiler specifications,
1157           accessed via %:include().
1159         * configure.ac, configure: Remove logic related to building
1160           upc-crtbegin/end. Remove config. tests for numa and cpu
1161           affinity (previously used by the 'upc' driver); these
1162           settings are now propagated by target-specific compiler
1163           specs. built by libupc.  Regenerate autoconf.
1165         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1166           linker compiler specifications, accessed via %:include().
1167           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1168           'link_upc_spec'.
1170         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1172         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1173           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1174           config/ia64/linux.h, config/mips/t-iris,
1175           config/mips/iris6.h: Revert to trunk version 167307.
1177 libgcc/
1178         * configure, configure.ac, config.host, Makefile.in:
1179           Revert to trunk version 167307.
1181 2011-02-23  Gary Funck  <gary@intrepid.com>
1183         * c-decl.c (undeclared_variable): fix typo. Inadvertently
1184         removed negation on following 'if'.
1186 2011-02-22  Gary Funck  <gary@intrepid.com>
1188         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1189         to check for the usage of certain deprecated UPC keywords.
1190         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1191         * c-tree.h (undeclared_variable): Define prototype.
1193 2011-02-12  Gary Funck  <gary@intrepid.com>
1195         * c-typeck.c: (build_c_cast, convert_for_assignment)
1196           Diagnose an attempt to convert from an integer to
1197           a pointer-to-shared as an error.  Also, fix various
1198           error messages so that they use the preferred term
1199           pointer-to-shared instead of "shared pointer".
1201 2011-02-07  Gary Funck  <gary@intrepid.com>
1203         * c-typeck.c: (convert_for_assignment)
1204           Fix typo. in error message.
1206 2011-01-23  Gary Funck  <gary@intrepid.com>
1208         * c-typeck.c: (c_build_qualified_type)
1209           derive UPC block size by calling upc_get_block_size(),
1210           to ensure that the element type of an array of an array
1211           is derived correctly.
1213 2010-12-29  Gary Funck  <gary@intrepid.com>
1215         Merge trunk version 168314 into gupc branch.
1217 2010-12-15  Gary Funck  <gary@intrepid.com>
1219         Merge trunk version 167307 into gupc branch.
1221 2010-10-19  Gary Funck  <gary@intrepid.com>
1223         * c-typeck.c: Fix typo in previous fix
1224           which led to a mis-compare for equal block sizes.
1226 2010-10-18  Gary Funck  <gary@intrepid.com>
1228         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1229           diagnosed as an error
1231           The conversion from any type (shared or not) to
1232           a shared type is likely either meaningless or an error.  This update
1233           makes any conversion to a shared type, an error.
1235 2010-10-18  Gary Funck  <gary@intrepid.com>
1237         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1238           generates spurious warning
1240           Add a #define procedure that does the same thing as
1241           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1242           this procedure to diagnose passing an integer value to a
1243           pointer-to-shared as an error.
1245 2010-10-18  Gary Funck  <gary@intrepid.com>
1247         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1248           matching routine declaration.
1250           When checking for type compatibility, shared qualified types must
1251           have the same block factor.  This check was missing from
1252           comptypes_internal().  This update adds the check for blocking
1253           factor equality.
1255 2010-10-17  Gary Funck  <gary@intrepid.com>
1257         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1258           found (-O1 -g)
1260           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1262 2010-10-17  Gary Funck  <gary@intrepid.com>
1264         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1265           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1266           produces ice with -O3 and -m32.
1268           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1270 2010-10-17  Gary Funck  <gary@intrepid.com>
1272         * c-common.c: Diagnose the application of the various "*sizeof"
1273           operations on generic pointer-to-shared as a compilation error.
1275 2010-10-17  Gary Funck  <gary@intrepid.com>
1277         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1278           message regarding a function parameter being declared with a shared
1279           qualifier.
1281           The parameter's 'name' value is not defined at this point, and
1282           cannot be used in the error message.  This update removes the
1283           reference to 'name', and eliminates the segfault.
1285 2010-10-16  Gary Funck  <gary@intrepid.com>
1287         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1289           The gcc/Makefile.in rules for install-plugin had to be re-written to
1290           break up a long list of header files that exceeded the command line
1291           limitation imposed by Irix.
1293           Access functions for TFmode types had to be implemented.
1294           Apparently, this is the mode used for the SGI/MIPS port to represent
1295           "long float".
1297 2010-10-14  Gary Funck  <gary@intrepid.com>
1299         * c-decl.c: Fix bug: Multiple equal blocking factors specified
1300           via typedef chain should not be diagnosed as an error.
1302           If the block size that is given by the typedef is equal to the block
1303           size given explicitly in the variable declaration, then do not
1304           complain.  The easiest way to make this check was to create a
1305           temporary type that is a clone of the element type and then set its
1306           block size using the given layout qualifier.  Then compare the block
1307           size of the temporary (the declaration) to the block size specified
1308           in the typedef.  This complexity is needed, because the '[*]' block
1309           size needs to be calculated, and the '[]' needs to be mapped into a
1310           zero block size.
1312 2010-10-10  Gary Funck  <gary@intrepid.com>
1314         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1315           specified
1317           The compiler properly detected the presence of two or more layout
1318           qualifiers as an error, but then hit an assertion check, because the
1319           code that followed the error expected to see a qualifier and not a
1320           layout specifier.  The fix is simple: just return immediately after
1321           detecting the error.
1323 2010-10-10  Gary Funck  <gary@intrepid.com>
1325         * c-decl.c: Improve error diagnostics for various cases of UPC
1326           shared array type declarations.
1328           Add the check for this error: "In the dynamic translation
1329           environment, THREADS may not appear in declarations of shared arrays
1330           with indefinite block size".  Also, fix up a few of the other
1331           related error diagnostics.
1333 2010-10-09  Gary Funck  <gary@intrepid.com>
1335         * c-common.c: Fix bug: segfault on incomplete array definition.
1337           This turned out to be a bit complicated.   The logic in
1338           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1339           the THREADS identifier in the case where the blocking factor has
1340           been set to indefinite ([]).  This can happen when indefinite array
1341           declarations are processed for shared arrays.  At that time, the
1342           file scope has been closed and THREADS is no longer in scope.  Some
1343           more work is needed on upc_lang_layout_decl().  It has some
1344           duplication, and notably duplicates the two branches of the if
1345           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1346           caller of this routine (layout_decl()).
1348           The method of forcing a layout qualifier of [] in the indefinite
1349           declaration handler is odd a well.  The code that just does the
1350           setting of the block factor, needs to moved into its own routine
1351           that doesn't depend upon a declspec for '[]' to be passed in, just
1352           in order to set the blocking factor to some value (in this case, 0).
1353           Also, the logic for how that shared type is constructed is strange.
1354           First the type with 0 blocking factor is set.  Then the shared
1355           qualifier is removed from the type, and then added back later.  The
1356           intermediate type has a blocking factor set, but it has no shared
1357           qualifier.  Fixing this will require some thought.  It is tempting
1358           just to make indefinite shared arrays an error, rather than forcing
1359           the dimension to be '1'.
1361           This likely fixes a serious error in the previous update to
1362           upc_lang_layout_decl(), where it didn't have the logic to set
1363           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
1364           the previous update would fail on many tests.
1366 2010-10-09  Gary Funck  <gary@intrepid.com>
1368         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1369           (decl) is null, which can happen if some layout error occurred
1370           upstream.
1372 2010-10-09  Gary Funck  <gary@intrepid.com>
1374         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1375           "variable-sized" when compiled in dynamic threads.
1377           This long-standing bug is easily fixed.  Just check
1378           for the situation that the non-constant sized type is shared and
1379           that it does not have a dimension that references a multiple of
1380           threads.  If this criteria is met, then issue a meaningful
1381           diagnostic.
1383 2010-10-01  Gary Funck  <gary@intrepid.com>
1385         * configure, configure.ac: Update manual page, and bug reporting
1386           URL.
1388           Update "man" page to reflect debugging switches.  Also, some general
1389           clean up.  Change the bug reporting URL to point to gccupc.org.
1391 2010-09-27  Gary Funck  <gary@intrepid.com>
1393         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1394           the UPC forall depth count variable is not found.
1396           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1397           The compiler will generate code that references this variable in
1398           order to implement nested upc_forall semantics.  If there is a
1399           compiler build or install problem, this variable may not be found.
1400           In this case, terminate with an internal_error().
1402 2010-09-26  Gary Funck  <gary@intrepid.com>
1404         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1405           mis-diagnosed as syntax error.
1407           Fix a failure exhibited by the Berkeley test case,
1408           bug873a.upc, which has the code:
1409                double d;
1410                upc_forall (;;;d) {...} The compiler did not properly handle
1411           the empty "condition" clause, and did not recover well when it was
1412           determined that the use of a double value, "d" above, was neither a
1413           pointer-to-shared nor an integer expression.  The update implements a
1414           fix for both issues.
1416           See also: gcc/c-parser.c gcc/upc/upc-act.c
1418 2010-09-23  Gary Funck  <gary@intrepid.com>
1420         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1421           incorporated into the referencing type.
1423           This was semi-fixed a few times before.  This update fixes a few
1424           more places where the layout qualifier wasn't being propagated
1425           through typedef's properly.  What made this a bit tricky is shown in
1426           the example cited in the bug report:
1428           typedef shared [5] int A_t; A_t A[5*THREADS];
1430           In the typedef, the blocksize is being applied to a shared *scalar*,
1431           and the code was applying the blocksize only to arrays.  This update
1432           handles shared scalars correctly.
1434 2010-09-22  Gary Funck  <gary@intrepid.com>
1436         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1437           upc_forall() semantics are not implemented
1439           The checkforall test in the Berkeley harness test suite indicated
1440           that GCC/UPC was not properly implementing nested upc_forall
1441           semantics.  Nested upc_forall statements (both statically or
1442           dynamically nested) must implement their affinity clause as if it
1443           were "continue"; thus all steps in the loop must execute without
1444           regard for affinity.  To implement these semantics a global depth
1445           counter, __upc_forall_depth, is maintained by the generated code
1446           that implements upc_forall.
1448           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1449           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1450           libupc/include/upc.h libupc/smp/upc_main.c
1452 2010-09-19  Gary Funck  <gary@intrepid.com>
1454         * c-decl.c: c-decl.c: zero out the layout specifier, after
1455           processing an array type.
1457           Fix the previous fix, that moved the setting of the type's layout
1458           qualifier to the outside of the array type processing loop.  What is
1459           missing from the fix is that the layout_qualifier variable needs to
1460           be cleared after setting the type's blocksize.
1462 2010-09-19  Gary Funck  <gary@intrepid.com>
1464         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1465           given blocksize is greater than UPC_MAX_BLOCKSIZE.
1467           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1468           the actual maximum block size.  Therefore, the message was correct,
1469           but the underlying value that was being checked was wrong.  Change
1470           the values so that they agree with the actual implementation-defined
1471           limit.
1473 2010-09-11  Gary Funck  <gary@intrepid.com>
1475         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1476           multi-dimensional shared array with dynamic threads.
1478           This declaration caused an internal compiler error when compiled
1479           with dynamic threads:
1480               shared [*] int A[THREADS][16]; The bug was discovered when
1481           compiling the RTED_UPC test suite.
1483           The fix is to process layout qualifiers after the entire array type
1484           has been built.  Otherwise, we try to calculate the blocksize on a
1485           shared array type that has not had its "size depends upon the value
1486           of THREADS" flag set.
1488           Also, added a test case.
1490           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1492 2010-07-11  Gary Funck  <gary@intrepid.com>
1494         Fix a bug where a statement in c_build_qualified_type()
1495         in the trunk had been inadvertently deleted.
1496         This bug showed up in the IA64 port, because jmpbuf's
1497         on that architecture must be 16 byte aligned, and they were not.
1498         c-typeck.c (c_build_qualified_type): Revive the deleted line.
1500 2010-07-08  Gary Funck  <gary@intrepid.com>
1502         Make changes so that other language compilers
1503         will build and bootstrap.
1504         * c-family/c-common.c (compiling_upc, flag_upc,
1505         flag_upc_instrument, flag_upc_instrument_functions,
1506         use_upc_dwarf2_extensions): Move to stub-upc.c and
1507         upc-lang.c.
1508         * c-family/c-common.h (use_upc_dwarf2_extensions,
1509         compiling_upc): Add extern definitions - needed
1510         to compile/build other language front ends.
1511         * c-family/c.opt: Fix the spelling of ObjC.
1512         It had been incorrectly spelled as Objc.
1513         * c-family/c.opt: Add UPC for the various switches
1514         that are valid for both C and ObjC.
1515         * c-fmaily/c-opts.c: Add CL_UPC to the list of
1516         supported options switches when compiling assembly
1517         language.
1518         * lto/lto-lang.c (use_upc_dwarf2_extensions,
1519         flag_upc_instrument, flag_upc_instrument_functions):
1520         Remove these definitions.  They have been moved
1521         to c-family/stub-upc.c.
1522         * upc/ChangeLog: Move relevant entries
1523         to ChangeLog.upc.
1524         * c-family/stub-upc.c (compiling_upc, flag_upc,
1525         flag_upc_instrument, flag_upc_instrument_functions,
1526         use_upc_dwarf2_extensions): Moved from c-common.c
1527         * upc/upc-lang.c (compiling_upc, flag_upc,
1528         flag_upc_instrument, flag_upc_instrument_functions,
1529         use_upc_dwarf2_extensions): Moved from c-common.c
1530         * objc/objc-act.c (objc_gimplify_expr): Add additional
1531         parameters to c_gimplify_expr() call, that are used
1532         by upc's tree rewrites.
1533         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1534         * gcc/cp/lex.c (init_reswords): If not compiling
1535         UPC, then mask off the UPC keywords.
1536         * cp/Make-lang.in (C_STUB_OBJS): Use this
1537         make macro to link with c-family/stub-objc.o
1538         and c-family/stub-upc.o.
1539         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1540         * java/Make-lang.in (C_STUB_OBJS): Likewise.
1541         * objc/Make-lang.in: Link with c-family/stub-upc.o
1542         to avoid undefined references.
1543         c-parser.c: Fix line indentation.
1544         * libcpp/include/cpplib.h: Remove CL_UPC from
1545         the list of language kinds accepted by the
1546         C preprocessor.  This is not necessary because
1547         UPC is a derivative of C99, and does not need
1548         a different language kind.
1549         * c-fmaily/c-opts.c (c_common_handle_option):
1550         Call set_std_c99() when processing the
1551         "--lang upc" switch, instead of setting the
1552         language kind to CL_UPC.
1553         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1555 2010-07-03  Gary Funck  <gary@intrepid.com>
1557         Merge trunk version 161517 into gupc branch.
1558         * gcc/stub-upc.c: Move to gcc/c-family/.
1559         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1560         Add 'unused' attributes to avoid "set, but
1561         not referenced" warnings.
1562         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1563         Likewise.
1565 2010-03-01 Gary Funck  <gary@intrepid.com>
1567         Create gupc branch from trunk version 157149.
1568 2011-10-04  Gary Funck  <gary@intrepid.com>
1570         Merge trunk version 179421 into gupc branch.
1572         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1573         argument to the call to check_qualified_type().
1575 2011-09-22  Gary Funck  <gary@intrepid.com>
1577         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1578         information.
1579         (dump_upc_type_quals): New.
1581 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1583         Add to FLAGS the flags needed to disable inlining of
1584         UPC run-time access routines.
1585         * testsuite/lib/target-supports.exp
1586         (add_options_for_upc_library_calls): New.
1588 2011-09-15  Gary Funck  <gary@intrepid.com>
1590         Fix ICE involving shared bit field accesses.
1591         * tree.c (build3_stat): Propagate TEEE_SHARED()
1592         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1594 2011-09-13  Gary Funck  <gary@intrepid.com>
1596         Merge trunk version 178795 into gupc branch.
1597         Incorporates fix to PR bootstrap/50010 for x86-32.
1599 2011-09-08  Gary Funck  <gary@intrepid.com>
1601         Merge trunk version 178557 into gupc branch.
1603 2011-09-07  Gary Funck  <gary@intrepid.com>
1605         Ensure that UPC pointer-to-shared type alignment is
1606         propagated to the final type.  Revert to long-standing
1607         alignment policy: twice the size of a "C" pointer.
1608         * tree.c (build_pointer_type): Propagate the alignment
1609         of the UPC pointer-to-shared representation type
1610         into the newly built pointer type.
1612 2011-08-30  Gary Funck  <gary@intrepid.com>
1614         * tree.h (check_qualified_type): Change 'const_tree'
1615         argument types back to 'tree' to avoid complaints
1616         of assignment drops qualifiers for invocations of the
1617         newly implemented TYPE_BLOCK_FACTOR() macro, which
1618         invokes hash functions with 'tree' pointer values that
1619         are not const qualified.
1620         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1621         * c-typeck.c (comptypes_internal): Ditto.
1623 2011-08-29  Gary Funck  <gary@intrepid.com>
1625         Fixes for regressions noted running "make check"
1626         versus GCC trunk.
1627         * fold-const.c (fold_unary_loc): Execute UPC-specific
1628         checks for a cast-of-a-cast, only if one of the
1629         operands is a UPC pointer-to-shared value.
1630         * opts.c (print_specific_help):  Fix a comparison
1631         in an assert that checks that there are enough
1632         bits reserved for the number of languages defined
1633         in the .opt files.
1635 2011-08-29  Gary Funck  <gary@intrepid.com>
1637         Implement a hash table to record UPC block factors.
1638         * c-family/stub-upc.c (upc_block_factor_insert,
1639         upc_block_factor_lookup): New dummy stub procedures.
1640         * c-family/c-common.c (c_sizeof_or_alignof_type):
1641         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1642         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1643         to copy (hashed) UPC blocking factor.
1644         (set_type_quals): Likewise.
1645         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1646         TYPE_HAS_THREADS_FACTOR().
1647         (type_common.block_factor): Delete.
1648         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1649         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1650         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1651         UPC blocking factors greater than one.
1652         * dwarf2out.c (modified_type_die): Re-implement
1653         logic that records UPC blocking factor in the generated
1654         DWARF2 debugging information.
1655         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1656         TYPE_HAS_THREADS_FACTOR().
1657         * c-decl.c (finish_decl, grokdeclarator):
1658         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1659         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1660         used by UPC, and print UPC-specific information.
1662 2011-08-28  Gary Funck  <gary@intrepid.com>
1664         Re-work the type machinery to fully support and to unify support
1665         for the UPC layout qualifier (blocking factor).
1666         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1667           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1668           and update prototype.
1669         * c-family/c-common.c (complete_array_type): call newly
1670           defined c_build_qualified_type_1() instead of
1671           upc_set_block_factor().
1672         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1673           upc_apply_layout_qualifier() and update prototype.
1674           (upc_set_block_factor): Delete prototype.
1675         * c-family/c-common.h (c_build_qualified_type): redefine
1676           as a pre-processor macro that invokes c_build_qualified_type_1()
1677           with a null UPC layout qualifier.
1678           (c_build_qualified_type_1): New.  Add layout qualifier argument
1679           to old c_build_qualified_type() prototype.
1680         * tree.c (set_type_quals, check_qualified_type):
1681           Add layout qualifier as argument.
1682           (check_aligned_type): Add check for UPC block factor equality.
1683           (get_qualified_type_1): Rename from get_qualified_type() and
1684           add layout qualifier as argument.
1685           (build_qualified_type_1): Rename from build_qualified_type() and
1686           add layout qualifier as argument.
1687         * tree.h (check_qualified_type): Add layout qualifier as argument
1688           to the prototype.
1689           (get_qualified_type): Re-define as a as a pre-processor macro
1690           that invokes get_qualified_type_1() with a null
1691           UPC layout qualifier.
1692           (get_qualified_type_1): Rename from get_qualified_type() and
1693           add layout qualifier as argument.
1694         * cp/tree.c (c_build_qualified_type_1): Rename from
1695           c_build_qualified_type() and add (unused) layout qualifier
1696           argument.
1697         * c-decl.c (finish_decl): re-format long error messages.
1698           (grokdeclarator): Re-work the logic so that it calls
1699           upc_grok_layout_qualifier() to handle the UPC layout
1700           qualifier, if present.
1701         * c-typeck.c (qualify_type, common_pointer_type,
1702           build_component_ref): Re-work the logic so that it calls
1703           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1704           if present.
1705           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1706           and add layout qualifier argument.
1707         * print_tree.c (print_node): Re-format a long line.
1709 2011-08-26  Gary Funck  <gary@intrepid.com>
1711         Merge trunk version 177949 into gupc branch.
1712         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1713           in the comment.
1714         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1715           to add new rliterals column value.
1717 2011-08-26  Gary Funck  <gary@intrepid.com>
1719         * convert.c (convert_to_integer): Fix the check for the
1720           difference between two UPC pointers-to-shared values.
1722 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1724         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1725           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1726           correctly check packed bits.
1727         * configure: Re-generate.
1729 2011-08-16  Gary Funck  <gary@intrepid.com>
1731         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1732           the barrier id expression is not an integer expression.
1734 2011-08-12  Gary Funck  <gary@intrepid.com>
1736         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1737           (revert to trunk).
1738         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1739           Set mode of UPC pointer-to-shared rep. to an
1740           integral mode of size at least as large as the
1741           size of the representation's struct type.
1743 2011-08-12  Gary Funck  <gary@intrepid.com>
1745         Rework/simplify the UPC genericize pass.
1746         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1747           upc_build_pointer_type): New.
1748           (upc_set_block_factor): Adjust to new calling sequence.
1749           (upc_build_shared_var_addr): Delete.
1750         * c-family/c-common.c (complete_array_type): Adjust call
1751           to upc_set_block_factor().
1752         * c-family/c-upc.h (upc_apply_layout_qualifier,
1753           upc_build_pointer_type): New.
1754           (upc_build_shared_var_addr): Delete.
1755           (upc_set_block_factor): Adjust to new calling sequence.
1756         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1757         * c-decl.c (grokdeclarator): Call newly defined
1758           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1759         * c-decl.c (grokdeclarator): Split long UPC-related error
1760           messages into two lines.
1761         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1762           directly.  Revert that change to trunk. (upc_genericize() will
1763           handle lowering the expressions that take the address of a
1764           UPC variable).
1765         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1766           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1767           representation type.
1769 2011-08-10  Gary Funck  <gary@intrepid.com>
1771         Implement additional fixes for recent merge with trunk.
1772         * explow.c (promote_mode): Do not attempt to promote
1773           the mode for UPC pointer-to-shared types.
1774         * config/i386/i386.c (function_value_64): Ditto.
1776 2011-08-07  Gary Funck  <gary@intrepid.com>
1778         Merge trunk version 177548 into gupc branch.
1779         * config/i386/i386.c (ix86_promote_function_mode):
1780           Do not promote UPC pointers-to-shared to Pmode.
1781         * c-family/c-ommon.c (pointer_int_sum):
1782           Also check the pointer operand, rather than just
1783           its type, when making the decision to derive
1784           the equivalent unshared type.
1785         * tree.c (build2_stat): If the type of the result
1786           passed in as an argument is a UPC shared type,
1787           derive the unshared equivalent when calculating
1788           the result type of the node.
1790 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1792         * config/darwin.c: Disable var_tracking option
1793           on -O0 as it is supposed to run only when optimization
1794           is applied. See GCC bug 49743.
1796 2011-07-06  Gary Funck  <gary@intrepid.com>
1798         Re-implement the pass that lowers trees generated by
1799         the UPC front-end into GENERIC.  Previously this was
1800         done within the gimplification framework, but this
1801         required that gimplification be run before inlining
1802         and various other passes, which did not fit in well
1803         with the current design of the middle-end passes.
1804         Now, the lowering is done by a newly defined language
1805         specific genericize hook.  With this change, we are
1806         are able to undo some extensions made to the gimplify
1807         logic, and thus can revert several files to trunk.
1809         * c-decl.c: Add a check for UPC deprecated names which
1810           may appear as undefined function names.
1811         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1812           LTI_upc_getaddr): Remove definitions of unused UPC
1813           library function names.  These were defined back when
1814           the libfunc interface was used to call these routines.
1815         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1816           in UPC lowering (genericize) pass.
1817         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1818           (instrument_func): Delete this hook.  Now handled in
1819           upc_genericize().
1820         * tree-pass.h: Revert to trunk.
1821         * c-typeck.c (build_unary_op): Adjust reference to
1822           upc_genericize() in a comment.
1823         * gimplify.c (create_tmp_var_raw): Delete logic that
1824           was converting UPC shared types into unshared types
1825           to be used for temporaries.  Now handled in  upc_genericize().
1826           Replace with an assertion check.
1827           (prepare_gimple_addressable): Revert to trunk's definition.
1828           No longer needed as an externally called function.
1829           (flag_instrument_functions_exclude_p): Re-define as
1830           an externally called function.
1831           (gimplify_function_tree): Delete code that implemented
1832           call to UPC's language specific function instrumentation hook.
1833         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1834           (prepare_gimple_addressable): Delete extern definition;
1835           revert to trunk's definition.
1836         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1837           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1838         * c-family/c-gimplify.c: Revert to trunk.
1839         * cp/cp-gimplify.c: Revert to trunk.
1840         * cp/cp-tree.h: Revert to trunk.
1841         * explow.c: Revert to trunk.
1842         * langhooks.c: Revert to trunk.
1843         * libfuncs.h: Revert to trunk.
1844         * objc/objc-act.c: Revert to trunk.
1846 2011-06-30  Gary Funck  <gary@intrepid.com>
1848         * c-family/c.opt: Bring options definitions up-to-date
1849         with respect to changes made in the trunk.
1851 2011-06-29  Gary Funck  <gary@intrepid.com>
1853         Merge trunk version 175584 into gupc branch.
1855 2011-06-13  Gary Funck  <gary@intrepid.com>
1857 libcpp/
1858         * include/cpplib.h (enum c_lang):
1859         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1860         This keeps all the "C" variants together.
1861         * init.c (lang_defaults): Add an entry for UPC.
1863 2011-06-09  Gary Funck  <gary@intrepid.com>
1865         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1866         a 32-bit target, the size expression overflowed, the result was
1867         error_mark_node, and an ICE was triggered on an attempt to evaluate
1868         C_TYPE_VARIABLE_SIZE() on the error node.
1869         (upc_blocksizeof_expr, upc_blocksizeof_type,
1870         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1871         Make similar changes to avoid further processing of error_mark_node.
1873 2011-06-07  Gary Funck  <gary@intrepid.com>
1875         * sel-sched.c (move_op): Incorporate the following
1876         patch to eliminate ICE at -O3 on IA64/Altix.
1878 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1880         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1881         code_motion_path_driver returned 0 or 1.
1882         (sel_region_finish): Clear h_d_i_d.
1884 2011-06-02  Gary Funck  <gary@intrepid.com>
1886         Merge trunk version 174558 into gupc branch.
1888 2011-05-30  Gary Funck  <gary@intrepid.com>
1890         * configure.ac: Make the default order of the virtual
1891           address field in a UPC pointer-to-shared to be "first".
1892           This reverts to the previous setting, and is a short term
1893           measure to work around a bug found on the IA64,
1894           where vaddr=last led to incorrect code generation.
1895           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1896           in AC_DEFINE(), to agree with recent changes in files
1897           that reference this define.
1898           configure, config.in: Regenerate.
1900 2011-05-26  Gary Funck  <gary@intrepid.com>
1902         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1903           configure: Regenerate.
1905         * ../fixincludes/fixincl.x: Revert to trunk.
1906           This file is auto-generated, and should not be merged.
1908 2011-05-18  Gary Funck  <gary@intrepid.com>
1910         Merge trunk version 173845 into gupc branch.
1912 2011-05-17  Gary Funck  <gary@intrepid.com>
1914         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1915           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1917         * c-family/c-pragma.c: Remove conditional compilation
1918           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1919           Test 'compiling_upc' when compiling to determine if
1920           the "upc" and "pupc" pragmas should be registered.
1922         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1923           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1924           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1925           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1926           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1927           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1928           Move these target-dependent definitions from config/upc-conf.h
1929           to here.
1931         * configure.ac: Improve the logic for UPC-related options.
1932           Delete references to pre-processor definitions that have
1933           been moved to "upc/upc-pts.h".
1935         * configure, config.in: Regenerate.
1937         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1938           to trunk.  This substitution variable was used to
1939           configure the representation-specific versions of
1940           the tree rewrites that operate on UPC pointer-to-shared
1941           types and objects.
1943         * c-parser.c (c_parser_upc_forall_statement): Remove
1944           reference to UPC_FORALL_DEPTH_NAME, and call
1945           newly defined upc_rts_forall_depth_var() instead.
1947         * config/upc-config.h: Delete. Various definitions
1948           moved to "upc/upc-rts-names.h", "defaults.h", and
1949           "upc/upc-pts.h".
1951         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1952           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1953           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1954           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1955           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1956           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1957           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1958           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1959           New.  Document UPC target macros.
1960           doc/tm.texi: Regenerate.
1962 2011-05-07  Gary Funck  <gary@intrepid.com>
1964         * ../configure.ac: Disable build of libupc
1965           on non POSIX hosted systems.  Use AS_HELP_STRING
1966           to define messages.  Remove 'word-pair' as a
1967           possible --with-upc-pts UPC pointer-to-shared
1968           representation.
1970         * ../configure: Regenerate.
1972         * configure.ac: Use AS_HELP_STRING to define messages.
1973           Remove 'word-pair' as a possible --with-upc-pts
1974           UPC pointer-to-shared representation.
1975           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1976           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1978         * configure: Regenerate.
1980         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1981           definition.
1983         * ChangeLog.upc: Fix some typos.
1985 2011-05-07  Gary Funck  <gary@intrepid.com>
1987         * ../maintainer-scripts/gcc_release: Add "upc"
1988           as one of the released languages.
1990 2011-05-06  Gary Funck  <gary@intrepid.com>
1992         Eliminate compilation warnings, by fixing
1993         #include's and updating function prototypes.
1995         * c-family/c-cppbuiltin.c: Include c-upc.h.
1997         * optabs.c (gen_libfunc): Change type of 'suffix'
1998           parameter to conform with prototype.
2000         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2001           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2002           hook used by UPC.
2004         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2005           the prototype.
2007         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2008           argument values to cp_gimplify_expr.
2010         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2011           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
2012           pre-processor definitions that are no longer
2013           needed to build the 'upc' command (upc-cmd.c)
2014           because the linker specs. defined in libupc
2015           take care of linking in the needed libraries.
2017         * c-parser.c (c_parser_upc_forall_statement):
2018           initialize affinity_loc to avoid "maybe unused" warning.
2019           (c_parser_upc_sync_statement): Remove un-needed
2020           'ret' variable.  Cast return value from
2021           'upc_build_sync_stmt' to 'void' to avoid
2022           compile-time warning.
2024         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2025           integer constant, not a string.  Range is restricted
2026           to maximum positive 32-bit integer (2+ billion) to
2027           fit in with the use of 'int' in the front-end's
2028           switch handling logic.
2030 2011-05-06  Gary Funck  <gary@intrepid.com>
2032         Upgrade c-family source files to conform with modularity
2033         improvements.  Mainly, remove #include of c-tree.h in files
2034         under c-family, and define a new UPC-specific #include file,
2035         c-upc.h, and use it.
2037         * c-family/stub-upc.c: Remove #include of c-tree.h and
2038           upc/upc-act.h.  Replace with #include of c-common.h
2039           and c-upc.h.
2040           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2041           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2042           upc_localsizeof_expr, upc_localsizeof_type,
2043           upc_shared_type_p): Delete.
2045         * c-family/c-opts.c: Add #include of c-upc.h
2047         * c-family/c-common.c: Remove #include of c-tree.h and
2048           add #include of c-upc.h.
2050         * c-family/c-upc.h: New. Define API for UPC-specific functions
2051           (mostly implemented in upc/upc-act.c).
2053         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2054           Remove extern definitions.
2056         * c-family/c-pragma.c: Remove #include of c-tree.h.
2057           Add #include of c-upc.h.
2059         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
2060           c-tree.h.
2061           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
2062           upc/upc-act.c, and define as a macro.
2063           (expand_affinity_test): Remove unused external definition.
2064           (build_upc_unshared_type): Add external definition.
2065           (upc_shared_type_p): Remove external definition.
2067         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2069         * dojump.c: Remove #include of c-tree.h.
2071         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2072           and move to tree.h.
2073           (count_upc_threads_refs, is_multiple_of_upc_threads,
2074           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2075           upc_build_shared_var_addr, upc_build_sync_stmt,
2076           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2077           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2078           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2079           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2080           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2081           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2082           set_upc_consistency_mode, get_upc_consistency_mode,
2083           push_upc_consistency_mode, pop_upc_consistency_mode,
2084           get_upc_pupc_mode):
2085           Move external definitions to c-family/c-upc.h.
2086           (upc_blocksizeof_type, upc_localsizeof_type,
2087           upc_elemsizeof_type): Remove external definitions;
2088           these functions were moved to c-parser.c.
2090         * c-decl.c: Add #include of c-upc.h.
2092         * c-typeck.c: Add #include of c-upc.h.
2094         * c-convert.c: Add #include of c-upc.h.
2096         * ChangeLog.upc: Fix typo.
2098         * Makefile.in: Add references to c-family/c-upc.h, everywhere
2099           there is a reference to c-family/c-objc.h.
2100           Remove extraneous reference to upc-act.h.
2102         * c-parser.c: Add #include of c-upc.h.
2103           (upc_blocksizeof_expr, upc_blocksizeof_type,
2104           upc_elemsizeof_expr, upc_elemsizeof_type,
2105           upc_localsizeof_expr, upc_localsizeof_type):
2106           Move from upc/upc-act.c.
2108         * tree.c (build_upc_unshared_type): New.
2109           Move upc_get_unshared_type from upc/upc-act.c and rename
2110           to build_upc_unshared_type.
2111           c-family/c-common.c (pointer_int_sum): refer to renamed
2112           build_upc_unshared_type function.
2113           c-convert.c (convert): Ditto.
2114           convert.c (convert_to_pointer): Ditto.
2115           c-typeck.c (build_unary_op, build_modify_expr,
2116           really_start_incremental_init): Ditto.
2117           gimplify.c (create_tmp_var_raw): Ditto.
2118           tree.c (build1_stat): Ditto.
2119           tree.h (upc_get_unshared_type): Rename to
2120           build_upc_unshared_type.
2122 2011-05-06  Gary Funck  <gary@intrepid.com>
2124         Merge trunk version 173471 into gupc branch.
2126 2011-05-05  Gary Funck  <gary@intrepid.com>
2128         Make changes that bring the GUPC branch more closely in sync.
2129         with the GCC trunk.  Revert any fixes that are not UPC-specific.
2130         Remove gratuitous re-formatting.
2132         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2133           This file should have been removed in a previous merge
2134           with the trunk.
2135         * ../configure.ac: Remove Cray Catamount/CNL support.
2136         * ../configure: Regenerate.
2137         * ../config.sub: Remove Cray Catamount/CNL support.
2138         * config.gcc: Remove Cray Catamount/CNL support.
2139         * ../maintainer-scripts/gcc_release: Revert to trunk.
2140         * c-family/c-common.h: Define parse_optimize_options.  Its definition
2141           was missed in a previous merge with the trunk.
2142         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2143           procedure.
2144         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2145           in addition to ARRAY_TYPE.
2146         * c-typeck.c: Remove an extra newline character.
2147         * varasm.c: Revert a fix that improved an error message
2148           when TLS common data is unimplemented.
2149         * varasm.c: Revert a gcc_assert that had been added which
2150           checked for a null DECL_SIZE_UNIT field.
2151         * emultls.c: Revert to trunk. Remove possible fix.
2152         * Makefile.in: Revert extra blank line that is present
2153           in the trunk version.
2154         * Makefile.in: Revert a fix that handled long shell
2155           argument lists for plugin headers.
2156         * config/ia64/ia64.opt: Revert an option setting
2157           that increased the default TLS address range.
2158         * config/ia64/crtbegin.asm: Revert to trunk.
2159           Removes an extra newline character.
2160         * ChangeLog.upc: Spell check.
2162 2011-05-03  Gary Funck  <gary@intrepid.com>
2164         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2165           (c_apply_type_quals_to_decl): Ditto.
2166         * c-family/c-common.h: Ditto.
2167         * dojump.c: Ditto.
2168         * c-decl.c (merge_decls): Ditto.
2169         * c-typeck.c (qualify_type, default_conversion,
2170           build_component_ref, build_unary_op,
2171           c_build_qualified_type): Ditto.
2172         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2174 2011-04-29  Gary Funck  <gary@intrepid.com>
2176         * c-decl.c (finish_decl): Improve error diagnostics.
2177           (grokdeclarator): Ditto.
2179         * c-typeck.c (build_c_cast): Improve error diagnostics.
2180           (convert_for_assignment): Ditto.
2181           (build_binary_op): Ditto.
2183         * c-parser.c (c_parser_upc_forall_statement):
2184           Improve error diagnostics.
2186         * convert.c (convert_to_integer):  Improve error diagnostics.
2188 2011-04-24  Gary Funck  <gary@intrepid.com>
2190         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2191           occurred if there is an error in the barrier id
2192           expression.  Map error_mark_node into NULL.
2194 2011-04-22  Gary Funck  <gary@intrepid.com>
2196         Merge trunk version 172873 into gupc branch.
2198 2011-04-19  Gary Funck  <gary@intrepid.com>
2200         Merge trunk version 172359 into gupc branch.
2202 2011-04-14  Gary Funck  <gary@intrepid.com>
2204         * c-family/c.opt: Add UPC as a valid language for various
2205           switches where it is valid for "C", that were not updated
2206           in previous merges with trunk.
2208 2011-04-13  Gary Funck  <gary@intrepid.com>
2210         * c-family/c.opt (fupc-pre-include): New option definition.
2211         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2212           -fno-upc-pre-include is asserted.
2214 2011-04-07  Gary Funck  <gary@intrepid.com>
2216         Merge trunk version 172158 into gupc branch.
2217         to bring in the following fix.
2219 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2221         PR bootstrap/48403
2222         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2223         if old and new states differ.
2225 2011-04-06  Gary Funck  <gary@intrepid.com>
2227         Merge trunk version 171966 into gupc branch.
2229 2011-04-01  Gary Funck  <gary@intrepid.com>
2231         * tree.h (tree_base): Move UPC flag bits into bit fields
2232           located just before spare bits.  Decrement spare bits.
2233           Rename 'shared_flag' -> 'upc_shared_flag',
2234           'relaxed_flag' -> 'upc_relaxed_flag',
2235           'strict_flag' -> 'upc_strict_flag, and adjust macros
2236           that reference them accordingly.
2238 2011-04-01  Gary Funck  <gary@intrepid.com>
2240         * c-decl.c (grokdeclarator): Fix formatting of
2241           code that sets UPC block size on scalars.
2243 2011-04-01  Gary Funck  <gary@intrepid.com>
2245         * c-decl.c (grokdeclarator): Revert use of white space
2246           to match the trunk (to rationalize diffs).
2247         * c-typeck.c (convert_for_assignment): Ditto.
2248         * tree-ssa.c (useless_type_conversion_p): Ditto.
2250 2011-03-23  Gary Funck  <gary@intrepid.com>
2252         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2253           the GCC 4.6 release branch.
2255 2011-03-21  Gary Funck  <gary@intrepid.com>
2257         Merge trunk version 171202 into gupc branch.
2259 2011-03-20  Gary Funck  <gary@intrepid.com>
2261         * varasm.c: Call error() directly with a format specifier,
2262           rather than using sprintf() to format the message.
2263           This should make it easier to internationalize UPC's error messages.
2265 2011-03-20  Gary Funck  <gary@intrepid.com>
2267         * configure.ac: Fix the check for gnu ld when enabling
2268           UPC link script support.
2269           configure: Regenerate (also picks up changes from previous
2270           merge with trunk).
2272 2011-03-20  Gary Funck  <gary@intrepid.com>
2274         Move UPC start files, end files, and linker specs.
2275         into libupc.  This reduces the impact on common GCC
2276         configuration files, and ensures that these UPC-specific
2277         components are only built when the UPC language dialect is selected.
2279 gcc/
2280         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2281           linker specs. Fix typo in -fupc-debug message.
2283         * config/upc-conf.h, config/darwin.h: Move defines for
2284           UPC-related section begins/ends into libupc/config/default/
2285           upc-crt-config.h.
2287         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2288           UPC-related linker compiler specifications,
2289           accessed via %:include().
2291         * configure.ac, configure: Remove logic related to building
2292           upc-crtbegin/end. Remove config. tests for numa and cpu
2293           affinity (previously used by the 'upc' driver); these
2294           settings are now propagated by target-specific compiler
2295           specs. built by libupc.  Regenerate autoconf.
2297         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2298           linker compiler specifications, accessed via %:include().
2299           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2300           'link_upc_spec'.
2302         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2304         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2305           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2306           config/ia64/linux.h, config/mips/t-iris,
2307           config/mips/iris6.h: Revert to trunk version 167307.
2309 libgcc/
2310         * configure, configure.ac, config.host, Makefile.in:
2311           Revert to trunk version 167307.
2313 2011-02-23  Gary Funck  <gary@intrepid.com>
2315         * c-decl.c (undeclared_variable): fix typo. Inadvertently
2316         removed negation on following 'if'.
2318 2011-02-22  Gary Funck  <gary@intrepid.com>
2320         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2321         to check for the usage of certain deprecated UPC keywords.
2322         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2323         * c-tree.h (undeclared_variable): Define prototype.
2325 2011-02-12  Gary Funck  <gary@intrepid.com>
2327         * c-typeck.c: (build_c_cast, convert_for_assignment)
2328           Diagnose an attempt to convert from an integer to
2329           a pointer-to-shared as an error.  Also, fix various
2330           error messages so that they use the preferred term
2331           pointer-to-shared instead of "shared pointer".
2333 2011-02-07  Gary Funck  <gary@intrepid.com>
2335         * c-typeck.c: (convert_for_assignment)
2336           Fix typo. in error message.
2338 2011-01-23  Gary Funck  <gary@intrepid.com>
2340         * c-typeck.c: (c_build_qualified_type)
2341           derive UPC block size by calling upc_get_block_size(),
2342           to ensure that the element type of an array of an array
2343           is derived correctly.
2345 2010-12-29  Gary Funck  <gary@intrepid.com>
2347         Merge trunk version 168314 into gupc branch.
2349 2010-12-15  Gary Funck  <gary@intrepid.com>
2351         Merge trunk version 167307 into gupc branch.
2353 2010-10-19  Gary Funck  <gary@intrepid.com>
2355         * c-typeck.c: Fix typo in previous fix
2356           which led to a mis-compare for equal block sizes.
2358 2010-10-18  Gary Funck  <gary@intrepid.com>
2360         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2361           diagnosed as an error
2363           The conversion from any type (shared or not) to
2364           a shared type is likely either meaningless or an error.  This update
2365           makes any conversion to a shared type, an error.
2367 2010-10-18  Gary Funck  <gary@intrepid.com>
2369         * c-typeck.c: Fix bug: passing int to shared pointer arg.
2370           generates spurious warning
2372           Add a #define procedure that does the same thing as
2373           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
2374           this procedure to diagnose passing an integer value to a
2375           pointer-to-shared as an error.
2377 2010-10-18  Gary Funck  <gary@intrepid.com>
2379         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2380           matching routine declaration.
2382           When checking for type compatibility, shared qualified types must
2383           have the same block factor.  This check was missing from
2384           comptypes_internal().  This update adds the check for blocking
2385           factor equality.
2387 2010-10-17  Gary Funck  <gary@intrepid.com>
2389         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2390           found (-O1 -g)
2392           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2394 2010-10-17  Gary Funck  <gary@intrepid.com>
2396         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2397           45869 - [4.5/4.6 Regression] type mismatch in shift expression
2398           produces ice with -O3 and -m32.
2400           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2402 2010-10-17  Gary Funck  <gary@intrepid.com>
2404         * c-common.c: Diagnose the application of the various "*sizeof"
2405           operations on generic pointer-to-shared as a compilation error.
2407 2010-10-17  Gary Funck  <gary@intrepid.com>
2409         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2410           message regarding a function parameter being declared with a shared
2411           qualifier.
2413           The parameter's 'name' value is not defined at this point, and
2414           cannot be used in the error message.  This update removes the
2415           reference to 'name', and eliminates the segfault.
2417 2010-10-16  Gary Funck  <gary@intrepid.com>
2419         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2421           The gcc/Makefile.in rules for install-plugin had to be re-written to
2422           break up a long list of header files that exceeded the command line
2423           limitation imposed by Irix.
2425           Access functions for TFmode types had to be implemented.
2426           Apparently, this is the mode used for the SGI/MIPS port to represent
2427           "long float".
2429 2010-10-14  Gary Funck  <gary@intrepid.com>
2431         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2432           via typedef chain should not be diagnosed as an error.
2434           If the block size that is given by the typedef is equal to the block
2435           size given explicitly in the variable declaration, then do not
2436           complain.  The easiest way to make this check was to create a
2437           temporary type that is a clone of the element type and then set its
2438           block size using the given layout qualifier.  Then compare the block
2439           size of the temporary (the declaration) to the block size specified
2440           in the typedef.  This complexity is needed, because the '[*]' block
2441           size needs to be calculated, and the '[]' needs to be mapped into a
2442           zero block size.
2444 2010-10-10  Gary Funck  <gary@intrepid.com>
2446         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2447           specified
2449           The compiler properly detected the presence of two or more layout
2450           qualifiers as an error, but then hit an assertion check, because the
2451           code that followed the error expected to see a qualifier and not a
2452           layout specifier.  The fix is simple: just return immediately after
2453           detecting the error.
2455 2010-10-10  Gary Funck  <gary@intrepid.com>
2457         * c-decl.c: Improve error diagnostics for various cases of UPC
2458           shared array type declarations.
2460           Add the check for this error: "In the dynamic translation
2461           environment, THREADS may not appear in declarations of shared arrays
2462           with indefinite block size".  Also, fix up a few of the other
2463           related error diagnostics.
2465 2010-10-09  Gary Funck  <gary@intrepid.com>
2467         * c-common.c: Fix bug: segfault on incomplete array definition.
2469           This turned out to be a bit complicated.   The logic in
2470           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2471           the THREADS identifier in the case where the blocking factor has
2472           been set to indefinite ([]).  This can happen when indefinite array
2473           declarations are processed for shared arrays.  At that time, the
2474           file scope has been closed and THREADS is no longer in scope.  Some
2475           more work is needed on upc_lang_layout_decl().  It has some
2476           duplication, and notably duplicates the two branches of the if
2477           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2478           caller of this routine (layout_decl()).
2480           The method of forcing a layout qualifier of [] in the indefinite
2481           declaration handler is odd a well.  The code that just does the
2482           setting of the block factor, needs to moved into its own routine
2483           that doesn't depend upon a declspec for '[]' to be passed in, just
2484           in order to set the blocking factor to some value (in this case, 0).
2485           Also, the logic for how that shared type is constructed is strange.
2486           First the type with 0 blocking factor is set.  Then the shared
2487           qualifier is removed from the type, and then added back later.  The
2488           intermediate type has a blocking factor set, but it has no shared
2489           qualifier.  Fixing this will require some thought.  It is tempting
2490           just to make indefinite shared arrays an error, rather than forcing
2491           the dimension to be '1'.
2493           This likely fixes a serious error in the previous update to
2494           upc_lang_layout_decl(), where it didn't have the logic to set
2495           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2496           the previous update would fail on many tests.
2498 2010-10-09  Gary Funck  <gary@intrepid.com>
2500         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2501           (decl) is null, which can happen if some layout error occurred
2502           upstream.
2504 2010-10-09  Gary Funck  <gary@intrepid.com>
2506         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2507           "variable-sized" when compiled in dynamic threads.
2509           This long-standing bug is easily fixed.  Just check
2510           for the situation that the non-constant sized type is shared and
2511           that it does not have a dimension that references a multiple of
2512           threads.  If this criteria is met, then issue a meaningful
2513           diagnostic.
2515 2010-10-01  Gary Funck  <gary@intrepid.com>
2517         * configure, configure.ac: Update manual page, and bug reporting
2518           URL.
2520           Update "man" page to reflect debugging switches.  Also, some general
2521           clean up.  Change the bug reporting URL to point to gccupc.org.
2523 2010-09-27  Gary Funck  <gary@intrepid.com>
2525         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2526           the UPC forall depth count variable is not found.
2528           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2529           The compiler will generate code that references this variable in
2530           order to implement nested upc_forall semantics.  If there is a
2531           compiler build or install problem, this variable may not be found.
2532           In this case, terminate with an internal_error().
2534 2010-09-26  Gary Funck  <gary@intrepid.com>
2536         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2537           mis-diagnosed as syntax error.
2539           Fix a failure exhibited by the Berkeley test case,
2540           bug873a.upc, which has the code:
2541                double d;
2542                upc_forall (;;;d) {...} The compiler did not properly handle
2543           the empty "condition" clause, and did not recover well when it was
2544           determined that the use of a double value, "d" above, was neither a
2545           pointer-to-shared nor an integer expression.  The update implements a
2546           fix for both issues.
2548           See also: gcc/c-parser.c gcc/upc/upc-act.c
2550 2010-09-23  Gary Funck  <gary@intrepid.com>
2552         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2553           incorporated into the referencing type.
2555           This was semi-fixed a few times before.  This update fixes a few
2556           more places where the layout qualifier wasn't being propagated
2557           through typedef's properly.  What made this a bit tricky is shown in
2558           the example cited in the bug report:
2560           typedef shared [5] int A_t; A_t A[5*THREADS];
2562           In the typedef, the blocksize is being applied to a shared *scalar*,
2563           and the code was applying the blocksize only to arrays.  This update
2564           handles shared scalars correctly.
2566 2010-09-22  Gary Funck  <gary@intrepid.com>
2568         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2569           upc_forall() semantics are not implemented
2571           The checkforall test in the Berkeley harness test suite indicated
2572           that GCC/UPC was not properly implementing nested upc_forall
2573           semantics.  Nested upc_forall statements (both statically or
2574           dynamically nested) must implement their affinity clause as if it
2575           were "continue"; thus all steps in the loop must execute without
2576           regard for affinity.  To implement these semantics a global depth
2577           counter, __upc_forall_depth, is maintained by the generated code
2578           that implements upc_forall.
2580           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2581           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2582           libupc/include/upc.h libupc/smp/upc_main.c
2584 2010-09-19  Gary Funck  <gary@intrepid.com>
2586         * c-decl.c: c-decl.c: zero out the layout specifier, after
2587           processing an array type.
2589           Fix the previous fix, that moved the setting of the type's layout
2590           qualifier to the outside of the array type processing loop.  What is
2591           missing from the fix is that the layout_qualifier variable needs to
2592           be cleared after setting the type's blocksize.
2594 2010-09-19  Gary Funck  <gary@intrepid.com>
2596         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2597           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2599           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2600           the actual maximum block size.  Therefore, the message was correct,
2601           but the underlying value that was being checked was wrong.  Change
2602           the values so that they agree with the actual implementation-defined
2603           limit.
2605 2010-09-11  Gary Funck  <gary@intrepid.com>
2607         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2608           multi-dimensional shared array with dynamic threads.
2610           This declaration caused an internal compiler error when compiled
2611           with dynamic threads:
2612               shared [*] int A[THREADS][16]; The bug was discovered when
2613           compiling the RTED_UPC test suite.
2615           The fix is to process layout qualifiers after the entire array type
2616           has been built.  Otherwise, we try to calculate the blocksize on a
2617           shared array type that has not had its "size depends upon the value
2618           of THREADS" flag set.
2620           Also, added a test case.
2622           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2624 2010-07-11  Gary Funck  <gary@intrepid.com>
2626         Fix a bug where a statement in c_build_qualified_type()
2627         in the trunk had been inadvertently deleted.
2628         This bug showed up in the IA64 port, because jmpbuf's
2629         on that architecture must be 16 byte aligned, and they were not.
2630         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2632 2010-07-08  Gary Funck  <gary@intrepid.com>
2634         Make changes so that other language compilers
2635         will build and bootstrap.
2636         * c-family/c-common.c (compiling_upc, flag_upc,
2637         flag_upc_instrument, flag_upc_instrument_functions,
2638         use_upc_dwarf2_extensions): Move to stub-upc.c and
2639         upc-lang.c.
2640         * c-family/c-common.h (use_upc_dwarf2_extensions,
2641         compiling_upc): Add extern definitions - needed
2642         to compile/build other language front ends.
2643         * c-family/c.opt: Fix the spelling of ObjC.
2644         It had been incorrectly spelled as Objc.
2645         * c-family/c.opt: Add UPC for the various switches
2646         that are valid for both C and ObjC.
2647         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2648         supported options switches when compiling assembly
2649         language.
2650         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2651         flag_upc_instrument, flag_upc_instrument_functions):
2652         Remove these definitions.  They have been moved
2653         to c-family/stub-upc.c.
2654         * upc/ChangeLog: Move relevant entries
2655         to ChangeLog.upc.
2656         * c-family/stub-upc.c (compiling_upc, flag_upc,
2657         flag_upc_instrument, flag_upc_instrument_functions,
2658         use_upc_dwarf2_extensions): Moved from c-common.c
2659         * upc/upc-lang.c (compiling_upc, flag_upc,
2660         flag_upc_instrument, flag_upc_instrument_functions,
2661         use_upc_dwarf2_extensions): Moved from c-common.c
2662         * objc/objc-act.c (objc_gimplify_expr): Add additional
2663         parameters to c_gimplify_expr() call, that are used
2664         by upc's tree rewrites.
2665         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2666         * gcc/cp/lex.c (init_reswords): If not compiling
2667         UPC, then mask off the UPC keywords.
2668         * cp/Make-lang.in (C_STUB_OBJS): Use this
2669         make macro to link with c-family/stub-objc.o
2670         and c-family/stub-upc.o.
2671         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2672         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2673         * objc/Make-lang.in: Link with c-family/stub-upc.o
2674         to avoid undefined references.
2675         c-parser.c: Fix line indentation.
2676         * libcpp/include/cpplib.h: Remove CL_UPC from
2677         the list of language kinds accepted by the
2678         C preprocessor.  This is not necessary because
2679         UPC is a derivative of C99, and does not need
2680         a different language kind.
2681         * c-fmaily/c-opts.c (c_common_handle_option):
2682         Call set_std_c99() when processing the
2683         "--lang upc" switch, instead of setting the
2684         language kind to CL_UPC.
2685         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2687 2010-07-03  Gary Funck  <gary@intrepid.com>
2689         Merge trunk version 161517 into gupc branch.
2690         * gcc/stub-upc.c: Move to gcc/c-family/.
2691         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2692         Add 'unused' attributes to avoid "set, but
2693         not referenced" warnings.
2694         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2695         Likewise.
2697 2010-03-01 Gary Funck  <gary@intrepid.com>
2699         Create gupc branch from trunk version 157149.