Merge trunk version 195707 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blob6858f12823eaceb0a8a8db04ae54401977c07463
1 2013-02-04 Gary Funck  <gary@intrepid.com>
3         Merge trunk version 195707 into gupc branch.
5 2013-01-28 Gary Funck  <gary@intrepid.com>
7         Merge trunk version 195502 into gupc branch.
9 2013-01-21 Gary Funck  <gary@intrepid.com>
11         Merge trunk version 195330 into gupc branch.
13 2013-01-14 Gary Funck  <gary@intrepid.com>
15         Merge trunk version 195164 into gupc branch.
17 2013-01-07 Gary Funck  <gary@intrepid.com>
19         Merge trunk version 194962 into gupc branch.
21 2012-12-24 Gary Funck  <gary@intrepid.com>
23         Merge trunk version 194709 into gupc branch.
25 2012-12-17 Gary Funck  <gary@intrepid.com>
27         Merge trunk version 194552 into gupc branch.
29 2012-12-10 Gary Funck  <gary@intrepid.com>
31         Merge trunk version 194351 into gupc branch.
33 2012-12-03 Gary Funck  <gary@intrepid.com>
35         Merge trunk version 194076 into gupc branch.
37 2012-11-30  Gary Funck  <gary@intrepid.com>
39         Released GUPC 4.8.0.2 based on version 193446.
40         Date of release: 2012-11-12.
41         * DEV-PHASE: Bump release identifier to 4.8.0-3.
42         * DATESTAMP: Bump date stamp.
44 2012-11-26 Gary Funck  <gary@intrepid.com>
46         Merge trunk version 193807 into gupc branch.
48 2012-11-20 Gary Funck  <gary@intrepid.com>
50         Merge trunk version 193672 into gupc branch.
52 2012-11-19 Gary Funck  <gary@intrepid.com>
54         Merge trunk version 193617 into gupc branch.
56 2012-11-15 Gary Funck  <gary@intrepid.com>
58         Merge trunk version 193426 into gupc branch.
60 2012-11-12  Gary Funck  <gary@intrepid.com>
62         Released GUPC 4.8.0.1 based on version 192948.
63         Date of release: 2012-10-29.
64         * DEV-PHASE: Bump release identifier to 4.8.0-2.
65         * DATESTAMP: Bump date stamp.
67 2012-11-05 Gary Funck  <gary@intrepid.com>
69         Merge trunk version 193152 into gupc branch.
71 2012-10-29 Gary Funck  <gary@intrepid.com>
73         Merge trunk version 192909 into gupc branch.
75 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
77         Remove unused --upc-pthreads-per-process compile switch. 
78         * c-family/c.opt: Remove --upc-pthreads-per-process switch
79         that compiler/runtime do not use.
80         * c-family/c-opts.c (c_common_handle_option): Remove support for
81         --upc-pthreads-per-process switch.
82         * c-family/c-common.c: Ditto.
83         * c-family/c-common.h: Ditto.
85 2012-10-27 Gary Funck  <gary@intrepid.com>
87         * defaults.h: fix typos and formatting in UPC-related entries.
89 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
91         Place shared initialization code into the .text
92         section instead of a separate .upc_init section.
93         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
94         (UPC_INIT_BEGIN_NAME): Delete.
95         (UPC_INIT_END_NAME): Delete.
96         * doc/tm.texi.in: Ditto.
97         * doc/tm.texi: Ditto.
99 2012-10-22 Gary Funck  <gary@intrepid.com>
101         Merge trunk version 192673 into gupc branch.
103 2012-10-15 Gary Funck  <gary@intrepid.com>
105         Merge trunk version 192449 into gupc branch.
107 2012-10-08 Gary Funck  <gary@intrepid.com>
109         Merge trunk version 192198 into gupc branch.
111 2012-10-01 Gary Funck  <gary@intrepid.com>
113         Merge trunk version 191931 into gupc branch.
115 2012-09-26  Gary Funck  <gary@intrepid.com>
117         Implement support for various UPC version 1.3 specification
118         additions and changes. Deprecate support for upc_local_alloc.
119         Add support for upc_tick (wall-clock timer) library.
120         Add support for collective de-allocation functions:
121         upc_all_free and upc_all_lock_free.
122         Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
123         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
125 2012-09-24 Gary Funck  <gary@intrepid.com>
127         Merge trunk version 191658 into gupc branch.
129 2012-09-17  Gary Funck  <gary@intrepid.com>
131         Merge trunk version 191376 into gupc branch.
133 2012-09-10  Gary Funck  <gary@intrepid.com>
135         Merge trunk version 191141 into gupc branch.
137 2012-08-27  Gary Funck  <gary@intrepid.com>
139         Merge trunk version 190707 into gupc branch.
140         * tree.h (struct tree_base): Adjust various
141         UPC tree and type flags to refer to the
142         newly introduced u.bits field.
144 2012-08-20  Gary Funck  <gary@intrepid.com>
146         Merge trunk version 190524 into gupc branch.
147         Incorporates a fix in genoutput.c (to properly use
148         CONST_CAST) that led to build failures with
149         older versions of g++.
151 2012-08-16  Gary Funck  <gary@intrepid.com>
153         Merge trunk version 190437 into gupc branch.
154         Incorporates a fix for a build failure on the PPC
155         due to passing incorrect switches to the assembler.
156         Also, first merged trunk revision that compiles GCC
157         with the C++ compiler in the first stage.
159 2012-08-13  Gary Funck  <gary@intrepid.com>
161         Merge trunk version 190336 into gupc branch.
163 2012-08-09  Gary Funck  <gary@intrepid.com>
165         * c-family/c-common.c (c_fully_fold_internal): Do not fold
166         offsetof-like expressions when they are applied to UPC
167         shared types.
169 2012-08-06  Gary Funck  <gary@intrepid.com>
171         Merge trunk version 190173 into gupc branch.
173 2012-08-01  Gary Funck  <gary@intrepid.com>
175         Merge trunk version 190063 into gupc branch.
176         Incorporates fix for build failure on IA64.
178 2012-07-30  Gary Funck  <gary@intrepid.com>
180         Merge trunk version 189954 into gupc branch.
182 2012-07-27  Gary Funck  <gary@intrepid.com>
184         Merge trunk version 189856 into gupc branch.
185         Incorporates fix for bootstrap with a sub-set of language
186         specific source directories present.
187         * optabs.c: Revert to trunk.  Rather than defining opcodes
188         as a way of defining get/put runtime library function names,
189         generate them directly in gcc/upc/upc-genericize.c.
190         * optabs.h: Ditto.
191         * genopinit.c: Ditto.
193 2012-07-23  Gary Funck  <gary@intrepid.com>
195         Merge trunk version 189777 into gupc branch.
197 2012-07-16  Gary Funck  <gary@intrepid.com>
199         Merge trunk version 189545 into gupc branch.
201 2012-07-12  Gary Funck  <gary@intrepid.com>
203         Merge trunk version 189366 into gupc branch.
205 2012-07-05  Gary Funck  <gary@intrepid.com>
207         Merge trunk version 189274 into gupc branch.
208         Incorporates graphite build infrastructure changes.
210 2012-07-04  Gary Funck  <gary@intrepid.com>
212         Merge trunk version 189080 into gupc branch.
213         * Makefile.in: Adjust for move of C front-end files.
214         * c/Make-lang.in: Ditto.
216 2012-07-03  Gary Funck  <gary@intrepid.com>
218         Merge trunk version 189078 into gupc branch.
220 2012-06-25  Gary Funck  <gary@intrepid.com>
222         Merge trunk version 188931 into gupc branch.
224 2012-06-18  Gary Funck  <gary@intrepid.com>
226         Merge trunk version 188721 into gupc branch.
228 2012-06-11  Gary Funck  <gary@intrepid.com>
230         Merge trunk version 188380 into gupc branch.
232 2012-06-04  Gary Funck  <gary@intrepid.com>
234         Merge trunk version 188168 into gupc branch.
236 2012-05-29  Gary Funck  <gary@intrepid.com>
238         Merge trunk version 187927 into gupc branch.
240 2012-05-18  Gary Funck  <gary@intrepid.com>
242         Merge trunk version 187666 into gupc branch.
243         Incorporates fix for ICE in tree vectorization pass
244         when processing strided loads.
246 2012-05-17  Gary Funck  <gary@intrepid.com>
248         Merge trunk version 187578 into gupc branch.
250 2012-05-09  Gary Funck  <gary@intrepid.com>
252         Merge trunk version 187347 into gupc branch.
253         Incorporates fix for segfault in tree vectorization pass.
255 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
257         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
258         Appropriate libraries and include files are added on the
259         command line to make it possible to compile with the driver
260         from the build tree.
262 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
264         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
265         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
266         a function returns a pointer-to-shared in memory instead
267         of in registers.
268         (rs6000_pass_by_reference): Ditto.
270 2012-04-28  Gary Funck  <gary@intrepid.com>
272         * c-decl.c (grokdeclarator): Set 'type' to error node
273         after detecting "shared auto variable" error to avoid
274         downstream complications.
275         * upc-act.c: Fix a couple of spelling errors in comments.
277 2012-04-26  Gary Funck  <gary@intrepid.com>
279         * c-family/c-pragma.c (handle_pragma_upc):
280         Fix typo in warning message.
282 2012-04-17  Gary Funck  <gary@intrepid.com>
284         Merge trunk version 186486 into gupc branch.
286 2012-04-17  Gary Funck  <gary@intrepid.com>
288         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
289         value of the pupc mode.  Fixes a compile-time warning.
290         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
291         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
292         Improve source formatting.
294 2012-04-09  Gary Funck  <gary@intrepid.com>
296         Merge trunk version 186243 into gupc branch.
297         Incorporates a powerpc 'ffi' fix.
299 2012-03-16  Gary Funck  <gary@intrepid.com>
301         Merge trunk version 185454 into gupc branch.
302         Incorporates a libgcc fix for builds on Darwin.
304 2012-03-13  Gary Funck  <gary@intrepid.com>
306         Merge trunk version 185278 into gupc branch.
307         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
308         call build_pointer_type() to apply UPC-specific qualifiers.
309         * top-level/configure.ac: factor the checking for posix hostst
310         out of the libgomp section so that it can also be used by libgupc.
311         * top-level/configure: Re-generate.
312         * DEV-PHASE: bump to 4.8.0-1.
314 2012-03-12  Gary Funck  <gary@intrepid.com>
316         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
317         the mode for a pointer for upc-pointer-to-shared types.
319 2012-03-04  Gary Funck  <gary@intrepid.com>
321         Merge trunk version 184900 into gupc branch.
323 2012-02-17  Gary Funck  <gary@intrepid.com>
325         Released GUPC 4.7.0.2 based on version 183992.
326         * DEV-PHASE: Bump release identifier to 4.7.0-3.
327         * DATESTAMP: Bump date stamp.
329 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
331         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
332         code generation (same as #pragma pupc off).
333         (set_pupc_mode): New. Set/restore profiling mode.
334         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
335         (set_pupc_mode): New. Prototype.
336         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
337         profiling code for shared variables initialization routines.
339 2012-01-31  Gary Funck  <gary@intrepid.com>
341         Merge trunk version 183751 into gupc branch.
342         Incorporates fix for bootstrap failure on openSUSE 12.1.
344 2012-01-10  Gary Funck  <gary@intrepid.com>
346         Merge trunk version 183072 into gupc branch.
347         Incorporates libcpp __BASE_FILE__ fix.
349 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
351         * top-level/Makefile.def (flags_to_pass): Added GUPC
352         defines. Fixes the make error when upc is not specified as one
353         of the languages to build.
354         * top-level/Makefile.in: Re-generate.
356 2011-11-22  Gary Funck  <gary@intrepid.com>
358         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
359         * dwarf2out.c (gen_compile_unit_die): Check for
360         the "GNU UPC" language string in lieu of "GCC UPC".
361         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
363 2011-11-18  Gary Funck  <gary@intrepid.com>
365         Merge trunk version 181552 into gupc branch.
366         Incorporates libgcc/libunwind fix for IA64.
368 2011-11-19  Gary Funck  <gary@intrepid.com>
370         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
371         Add check for UPC when defining the language type value
372         in a traceback entry.
374 2011-11-18  Gary Funck  <gary@intrepid.com>
376         Merge trunk version 181493 into gupc branch.
377         Incorporates final fix for PR target/49992.
379 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
381         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
382         change that converted relative include paths into absolute
383         ones, as it does not work with older version of make (3.80).
385 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
387         Apply patch for Darwin build - PR49992.
388         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
389         * gcc/configure.ac: Ditto.
390         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
391         * gcc/ada/gcc-interface/Makefile.in: Ditto.
392         * top-level/configure: Re-generate.
393         * gcc/configure: Re-genrate.
395 2011-10-26  Gary Funck  <gary@intrepid.com>
397         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
398         "libupc" to "libgupc".
399         * top-level/configure.ac: Implement support for cross-builds, and
400           adjust for rename of libupc to libgupc.
401         * top-level/Makefile.tpl: Ditto.
402         * top-level/Makefile.def: Ditto.
403         * top-level/configure: Re-generate.
404         * top-level/Makefile.in: Re-generate.
405         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
406         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
407         * doc/tm.texi: Re-generate.
408         * tree-pretty-print.c (dump_block_node): Delete unused variable.
409         * gcc.c: Adjust for rename of libupc to libgupc.
410         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
411         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
412         Change "xupc" to "xgupc".
413         * configure.ac: Change "GCC UPC" to "GNU UPC".
414         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
415         so that they are absolute paths.  This is needed because
416         the upc-crtstuff builds are in the libgupc library build
417         directories which are not at the same level as libgcc.
418         * config/darwin.h: Adjust for rename of libupc to libgupc.
420 2011-10-20  Gary Funck  <gary@intrepid.com>
422         Merge trunk version 180276 into gupc branch.
423         Incorporates fix for PR bootstrap/50709.
425 2011-10-20  Gary Funck  <gary@intrepid.com>
427         Merge trunk version 180246 into gupc branch.
429 2011-10-19  Gary Funck  <gary@intrepid.com>
431         Merge trunk version 180233 into gupc branch.
432         Incorporates fix for PR debug/49310 (var tracking).
434 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
436         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
437         only four (O0 static/dynamic, O3 static/dynamic).
438         Detect -fupc-threads-0 as an option for dynamic threads
439         compile environment.
441 2011-10-10  Gary Funck  <gary@intrepid.com>
443         * tree.c (check_qualified_type, check_aligned_type):
444         Call tree_int_cst_equal() to compare UPC blocking factors
445         if the corresponding tree pointers are not equal.
446         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
448 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
450         Add configuration checks for struct/packed builds so we can
451         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
452         * testsuite/lib/target-supports.exp
453         (check_effective_target_upc_struct_pts): New.
454         (check_effective_target_upc_packed_pts): New.
456 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
458         Add to FLAGS the flags needed to disable inlining of
459         UPC run-time access routines.
460         * testsuite/lib/target-supports.exp
461         (add_options_for_upc_library_calls): New.
463 2011-09-15  Gary Funck  <gary@intrepid.com>
465         Fix ICE involving shared bit field accesses.
466         * tree.c (build3_stat): Propagate TEEE_SHARED()
467         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
469 2011-09-13  Gary Funck  <gary@intrepid.com>
471         Merge trunk version 178795 into gupc branch.
472         Incorporates fix to PR bootstrap/50010 for x86-32.
474 2011-09-08  Gary Funck  <gary@intrepid.com>
476         Merge trunk version 178557 into gupc branch.
478 2011-09-07  Gary Funck  <gary@intrepid.com>
480         Ensure that UPC pointer-to-shared type alignment is
481         propagated to the final type.  Revert to long-standing
482         alignment policy: twice the size of a "C" pointer.
483         * tree.c (build_pointer_type): Propagate the alignment
484         of the UPC pointer-to-shared representation type
485         into the newly built pointer type.
487 2011-08-30  Gary Funck  <gary@intrepid.com>
489         * tree.h (check_qualified_type): Change 'const_tree'
490         argument types back to 'tree' to avoid complaints
491         of assignment drops qualifiers for invocations of the
492         newly implemented TYPE_BLOCK_FACTOR() macro, which
493         invokes hash functions with 'tree' pointer values that
494         are not const qualified.
495         * tree.c (check_qualified_type, check_aligned_type): Ditto.
496         * c-typeck.c (comptypes_internal): Ditto.
498 2011-08-29  Gary Funck  <gary@intrepid.com>
500         Fixes for regressions noted running "make check"
501         versus GCC trunk.
502         * fold-const.c (fold_unary_loc): Execute UPC-specific
503         checks for a cast-of-a-cast, only if one of the
504         operands is a UPC pointer-to-shared value.
505         * opts.c (print_specific_help):  Fix a comparison
506         in an assert that checks that there are enough
507         bits reserved for the number of languages defined
508         in the .opt files.
510 2011-08-29  Gary Funck  <gary@intrepid.com>
512         Implement a hash table to record UPC block factors.
513         * c-family/stub-upc.c (upc_block_factor_insert,
514         upc_block_factor_lookup): New dummy stub procedures.
515         * c-family/c-common.c (c_sizeof_or_alignof_type):
516         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
517         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
518         to copy (hashed) UPC blocking factor.
519         (set_type_quals): Likewise.
520         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
521         TYPE_HAS_THREADS_FACTOR().
522         (type_common.block_factor): Delete.
523         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
524         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
525         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
526         UPC blocking factors greater than one.
527         * dwarf2out.c (modified_type_die): Re-implement
528         logic that records UPC blocking factor in the generated
529         DWARF2 debugging information.
530         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
531         TYPE_HAS_THREADS_FACTOR().
532         * c-decl.c (finish_decl, grokdeclarator):
533         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
534         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
535         used by UPC, and print UPC-specific information.
537 2011-08-28  Gary Funck  <gary@intrepid.com>
539         Re-work the type machinery to fully support and to unify support
540         for the UPC layout qualifier (blocking factor).
541         * c-family/stub-upc.c (upc_set_block_factor): Delete.
542           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
543           and update prototype.
544         * c-family/c-common.c (complete_array_type): call newly
545           defined c_build_qualified_type_1() instead of
546           upc_set_block_factor().
547         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
548           upc_apply_layout_qualifier() and update prototype.
549           (upc_set_block_factor): Delete prototype.
550         * c-family/c-common.h (c_build_qualified_type): redefine
551           as a pre-processor macro that invokes c_build_qualified_type_1()
552           with a null UPC layout qualifier.
553           (c_build_qualified_type_1): New.  Add layout qualifier argument
554           to old c_build_qualified_type() prototype.
555         * tree.c (set_type_quals, check_qualified_type):
556           Add layout qualifier as argument.
557           (check_aligned_type): Add check for UPC block factor equality.
558           (get_qualified_type_1): Rename from get_qualified_type() and
559           add layout qualifier as argument.
560           (build_qualified_type_1): Rename from build_qualified_type() and
561           add layout qualifier as argument.
562         * tree.h (check_qualified_type): Add layout qualifier as argument
563           to the prototype.
564           (get_qualified_type): Re-define as a as a pre-processor macro
565           that invokes get_qualified_type_1() with a null
566           UPC layout qualifier.
567           (get_qualified_type_1): Rename from get_qualified_type() and
568           add layout qualifier as argument.
569         * cp/tree.c (c_build_qualified_type_1): Rename from
570           c_build_qualified_type() and add (unused) layout qualifier
571           argument.
572         * c-decl.c (finish_decl): re-format long error messages.
573           (grokdeclarator): Re-work the logic so that it calls
574           upc_grok_layout_qualifier() to handle the UPC layout
575           qualifier, if present.
576         * c-typeck.c (qualify_type, common_pointer_type,
577           build_component_ref): Re-work the logic so that it calls
578           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
579           if present.
580           (c_build_qualified_type_1): Rename from c_build_qualified_type()
581           and add layout qualifier argument.
582         * print_tree.c (print_node): Re-format a long line.
584 2011-08-26  Gary Funck  <gary@intrepid.com>
586         Merge trunk version 177949 into gupc branch.
587         * c-family/c-common.h (enum rid): Bump the number of type modifiers
588           in the comment.
589         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
590           to add new rliterals column value.
592 2011-08-26  Gary Funck  <gary@intrepid.com>
594         * convert.c (convert_to_integer): Fix the check for the
595           difference between two UPC pointers-to-shared values.
597 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
599         * configure.ac: Fix the name for --with-upc-pts-packed-bits
600           option. Support --with-upc-packed-bits as deprecated. Fix the code to
601           correctly check packed bits.
602         * configure: Re-generate.
604 2011-08-16  Gary Funck  <gary@intrepid.com>
606         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
607           the barrier id expression is not an integer expression.
609 2011-08-12  Gary Funck  <gary@intrepid.com>
611         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
612           (revert to trunk).
613         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
614           Set mode of UPC pointer-to-shared rep. to an
615           integral mode of size at least as large as the
616           size of the representation's struct type.
618 2011-08-12  Gary Funck  <gary@intrepid.com>
620         Rework/simplify the UPC genericize pass.
621         * c-family/stub-upc.c (upc_apply_layout_qualifier,
622           upc_build_pointer_type): New.
623           (upc_set_block_factor): Adjust to new calling sequence.
624           (upc_build_shared_var_addr): Delete.
625         * c-family/c-common.c (complete_array_type): Adjust call
626           to upc_set_block_factor().
627         * c-family/c-upc.h (upc_apply_layout_qualifier,
628           upc_build_pointer_type): New.
629           (upc_build_shared_var_addr): Delete.
630           (upc_set_block_factor): Adjust to new calling sequence.
631         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
632         * c-decl.c (grokdeclarator): Call newly defined
633           upc_apply_layout_qualifier() instead of upc_set_block_factor().
634         * c-decl.c (grokdeclarator): Split long UPC-related error
635           messages into two lines.
636         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
637           directly.  Revert that change to trunk. (upc_genericize() will
638           handle lowering the expressions that take the address of a
639           UPC variable).
640         * config/i386/i386.c (ix86_promote_function_mode): For UPC
641           pointers-to-shared, return the type mode of the UPC pointer-to-shared
642           representation type.
644 2011-08-10  Gary Funck  <gary@intrepid.com>
646         Implement additional fixes for recent merge with trunk.
647         * explow.c (promote_mode): Do not attempt to promote
648           the mode for UPC pointer-to-shared types.
649         * config/i386/i386.c (function_value_64): Ditto.
651 2011-08-07  Gary Funck  <gary@intrepid.com>
653         Merge trunk version 177548 into gupc branch.
654         * config/i386/i386.c (ix86_promote_function_mode):
655           Do not promote UPC pointers-to-shared to Pmode.
656         * c-family/c-ommon.c (pointer_int_sum):
657           Also check the pointer operand, rather than just
658           its type, when making the decision to derive
659           the equivalent unshared type.
660         * tree.c (build2_stat): If the type of the result
661           passed in as an argument is a UPC shared type,
662           derive the unshared equivalent when calculating
663           the result type of the node.
665 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
667         * config/darwin.c: Disable var_tracking option
668           on -O0 as it is supposed to run only when optimization
669           is applied. See GCC bug 49743.
671 2011-07-06  Gary Funck  <gary@intrepid.com>
673         Re-implement the pass that lowers trees generated by
674         the UPC front-end into GENERIC.  Previously this was
675         done within the gimplification framework, but this
676         required that gimplification be run before inlining
677         and various other passes, which did not fit in well
678         with the current design of the middle-end passes.
679         Now, the lowering is done by a newly defined language
680         specific genericize hook.  With this change, we are
681         are able to undo some extensions made to the gimplify
682         logic, and thus can revert several files to trunk.
684         * c-decl.c: Add a check for UPC deprecated names which
685           may appear as undefined function names.
686         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
687           LTI_upc_getaddr): Remove definitions of unused UPC
688           library function names.  These were defined back when
689           the libfunc interface was used to call these routines.
690         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
691           in UPC lowering (genericize) pass.
692         * langhooks.h (gimplify_expr): Revert to trunk's definition.
693           (instrument_func): Delete this hook.  Now handled in
694           upc_genericize().
695         * tree-pass.h: Revert to trunk.
696         * c-typeck.c (build_unary_op): Adjust reference to
697           upc_genericize() in a comment.
698         * gimplify.c (create_tmp_var_raw): Delete logic that
699           was converting UPC shared types into unshared types
700           to be used for temporaries.  Now handled in  upc_genericize().
701           Replace with an assertion check.
702           (prepare_gimple_addressable): Revert to trunk's definition.
703           No longer needed as an externally called function.
704           (flag_instrument_functions_exclude_p): Re-define as
705           an externally called function.
706           (gimplify_function_tree): Delete code that implemented
707           call to UPC's language specific function instrumentation hook.
708         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
709           (prepare_gimple_addressable): Delete extern definition;
710           revert to trunk's definition.
711         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
712           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
713         * c-family/c-gimplify.c: Revert to trunk.
714         * cp/cp-gimplify.c: Revert to trunk.
715         * cp/cp-tree.h: Revert to trunk.
716         * explow.c: Revert to trunk.
717         * langhooks.c: Revert to trunk.
718         * libfuncs.h: Revert to trunk.
719         * objc/objc-act.c: Revert to trunk.
721 2011-06-30  Gary Funck  <gary@intrepid.com>
723         * c-family/c.opt: Bring options definitions up-to-date
724         with respect to changes made in the trunk.
726 2011-06-29  Gary Funck  <gary@intrepid.com>
728         Merge trunk version 175584 into gupc branch.
730 2011-06-13  Gary Funck  <gary@intrepid.com>
732 libcpp/
733         * include/cpplib.h (enum c_lang):
734         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
735         This keeps all the "C" variants together.
736         * init.c (lang_defaults): Add an entry for UPC.
738 2011-06-09  Gary Funck  <gary@intrepid.com>
740         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
741         a 32-bit target, the size expression overflowed, the result was
742         error_mark_node, and an ICE was triggered on an attempt to evaluate
743         C_TYPE_VARIABLE_SIZE() on the error node.
744         (upc_blocksizeof_expr, upc_blocksizeof_type,
745         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
746         Make similar changes to avoid further processing of error_mark_node.
748 2011-06-07  Gary Funck  <gary@intrepid.com>
750         * sel-sched.c (move_op): Incorporate the following
751         patch to eliminate ICE at -O3 on IA64/Altix.
753 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
755         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
756         code_motion_path_driver returned 0 or 1.
757         (sel_region_finish): Clear h_d_i_d.
759 2011-06-02  Gary Funck  <gary@intrepid.com>
761         Merge trunk version 174558 into gupc branch.
763 2011-05-30  Gary Funck  <gary@intrepid.com>
765         * configure.ac: Make the default order of the virtual
766           address field in a UPC pointer-to-shared to be "first".
767           This reverts to the previous setting, and is a short term
768           measure to work around a bug found on the IA64,
769           where vaddr=last led to incorrect code generation.
770           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
771           in AC_DEFINE(), to agree with recent changes in files
772           that reference this define.
773           configure, config.in: Regenerate.
775 2011-05-26  Gary Funck  <gary@intrepid.com>
777         * configure.ac: Fix typo when referring to $upc_vaddr_order.
778           configure: Regenerate.
780         * ../fixincludes/fixincl.x: Revert to trunk.
781           This file is auto-generated, and should not be merged.
783 2011-05-18  Gary Funck  <gary@intrepid.com>
785         Merge trunk version 173845 into gupc branch.
787 2011-05-17  Gary Funck  <gary@intrepid.com>
789         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
790           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
792         * c-family/c-pragma.c: Remove conditional compilation
793           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
794           Test 'compiling_upc' when compiling to determine if
795           the "upc" and "pupc" pragmas should be registered.
797         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
798           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
799           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
800           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
801           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
802           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
803           Move these target-dependent definitions from config/upc-conf.h
804           to here.
806         * configure.ac: Improve the logic for UPC-related options.
807           Delete references to pre-processor definitions that have
808           been moved to "upc/upc-pts.h".
810         * configure, config.in: Regenerate.
812         * Makefile.in (UPC_PTS_REP): Remove definition and revert
813           to trunk.  This substitution variable was used to
814           configure the representation-specific versions of
815           the tree rewrites that operate on UPC pointer-to-shared
816           types and objects.
818         * c-parser.c (c_parser_upc_forall_statement): Remove
819           reference to UPC_FORALL_DEPTH_NAME, and call
820           newly defined upc_rts_forall_depth_var() instead.
822         * config/upc-config.h: Delete. Various definitions
823           moved to "upc/upc-rts-names.h", "defaults.h", and
824           "upc/upc-pts.h".
826         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
827           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
828           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
829           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
830           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
831           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
832           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
833           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
834           New.  Document UPC target macros.
835           doc/tm.texi: Regenerate.
837 2011-05-07  Gary Funck  <gary@intrepid.com>
839         * ../configure.ac: Disable build of libupc
840           on non POSIX hosted systems.  Use AS_HELP_STRING
841           to define messages.  Remove 'word-pair' as a
842           possible --with-upc-pts UPC pointer-to-shared
843           representation.
845         * ../configure: Regenerate.
847         * configure.ac: Use AS_HELP_STRING to define messages.
848           Remove 'word-pair' as a possible --with-upc-pts
849           UPC pointer-to-shared representation.
850           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
851           (UPC_MAX_BLOCK_SIZE): Correct the default value.
853         * configure: Regenerate.
855         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
856           definition.
858         * ChangeLog.upc: Fix some typos.
860 2011-05-07  Gary Funck  <gary@intrepid.com>
862         * ../maintainer-scripts/gcc_release: Add "upc"
863           as one of the released languages.
865 2011-05-06  Gary Funck  <gary@intrepid.com>
867         Eliminate compilation warnings, by fixing
868         #include's and updating function prototypes.
870         * c-family/c-cppbuiltin.c: Include c-upc.h.
872         * optabs.c (gen_libfunc): Change type of 'suffix'
873           parameter to conform with prototype.
875         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
876           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
877           hook used by UPC.
879         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
880           the prototype.
882         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
883           argument values to cp_gimplify_expr.
885         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
886           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
887           pre-processor definitions that are no longer
888           needed to build the 'upc' command (upc-cmd.c)
889           because the linker specs. defined in libupc
890           take care of linking in the needed libraries.
892         * c-parser.c (c_parser_upc_forall_statement):
893           initialize affinity_loc to avoid "maybe unused" warning.
894           (c_parser_upc_sync_statement): Remove un-needed
895           'ret' variable.  Cast return value from
896           'upc_build_sync_stmt' to 'void' to avoid
897           compile-time warning.
899         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
900           integer constant, not a string.  Range is restricted
901           to maximum positive 32-bit integer (2+ billion) to
902           fit in with the use of 'int' in the front-end's
903           switch handling logic.
905 2011-05-06  Gary Funck  <gary@intrepid.com>
907         Upgrade c-family source files to conform with modularity
908         improvements.  Mainly, remove #include of c-tree.h in files
909         under c-family, and define a new UPC-specific #include file,
910         c-upc.h, and use it.
912         * c-family/stub-upc.c: Remove #include of c-tree.h and
913           upc/upc-act.h.  Replace with #include of c-common.h
914           and c-upc.h.
915           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
916           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
917           upc_localsizeof_expr, upc_localsizeof_type,
918           upc_shared_type_p): Delete.
920         * c-family/c-opts.c: Add #include of c-upc.h
922         * c-family/c-common.c: Remove #include of c-tree.h and
923           add #include of c-upc.h.
925         * c-family/c-upc.h: New. Define API for UPC-specific functions
926           (mostly implemented in upc/upc-act.c).
928         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
929           Remove extern definitions.
931         * c-family/c-pragma.c: Remove #include of c-tree.h.
932           Add #include of c-upc.h.
934         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
935           c-tree.h.
936           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
937           upc/upc-act.c, and define as a macro.
938           (expand_affinity_test): Remove unused external definition.
939           (build_upc_unshared_type): Add external definition.
940           (upc_shared_type_p): Remove external definition.
942         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
944         * dojump.c: Remove #include of c-tree.h.
946         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
947           and move to tree.h.
948           (count_upc_threads_refs, is_multiple_of_upc_threads,
949           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
950           upc_build_shared_var_addr, upc_build_sync_stmt,
951           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
952           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
953           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
954           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
955           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
956           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
957           set_upc_consistency_mode, get_upc_consistency_mode,
958           push_upc_consistency_mode, pop_upc_consistency_mode,
959           get_upc_pupc_mode):
960           Move external definitions to c-family/c-upc.h.
961           (upc_blocksizeof_type, upc_localsizeof_type,
962           upc_elemsizeof_type): Remove external definitions;
963           these functions were moved to c-parser.c.
965         * c-decl.c: Add #include of c-upc.h.
967         * c-typeck.c: Add #include of c-upc.h.
969         * c-convert.c: Add #include of c-upc.h.
971         * ChangeLog.upc: Fix typo.
973         * Makefile.in: Add references to c-family/c-upc.h, everywhere
974           there is a reference to c-family/c-objc.h.
975           Remove extraneous reference to upc-act.h.
977         * c-parser.c: Add #include of c-upc.h.
978           (upc_blocksizeof_expr, upc_blocksizeof_type,
979           upc_elemsizeof_expr, upc_elemsizeof_type,
980           upc_localsizeof_expr, upc_localsizeof_type):
981           Move from upc/upc-act.c.
983         * tree.c (build_upc_unshared_type): New.
984           Move upc_get_unshared_type from upc/upc-act.c and rename
985           to build_upc_unshared_type.
986           c-family/c-common.c (pointer_int_sum): refer to renamed
987           build_upc_unshared_type function.
988           c-convert.c (convert): Ditto.
989           convert.c (convert_to_pointer): Ditto.
990           c-typeck.c (build_unary_op, build_modify_expr,
991           really_start_incremental_init): Ditto.
992           gimplify.c (create_tmp_var_raw): Ditto.
993           tree.c (build1_stat): Ditto.
994           tree.h (upc_get_unshared_type): Rename to
995           build_upc_unshared_type.
997 2011-05-06  Gary Funck  <gary@intrepid.com>
999         Merge trunk version 173471 into gupc branch.
1001 2011-05-05  Gary Funck  <gary@intrepid.com>
1003         Make changes that bring the GUPC branch more closely in sync.
1004         with the GCC trunk.  Revert any fixes that are not UPC-specific.
1005         Remove gratuitous re-formatting.
1007         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1008           This file should have been removed in a previous merge
1009           with the trunk.
1010         * ../configure.ac: Remove Cray Catamount/CNL support.
1011         * ../configure: Regenerate.
1012         * ../config.sub: Remove Cray Catamount/CNL support.
1013         * config.gcc: Remove Cray Catamount/CNL support.
1014         * ../maintainer-scripts/gcc_release: Revert to trunk.
1015         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1016           was missed in a previous merge with the trunk.
1017         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1018           procedure.
1019         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1020           in addition to ARRAY_TYPE.
1021         * c-typeck.c: Remove an extra newline character.
1022         * varasm.c: Revert a fix that improved an error message
1023           when TLS common data is unimplemented.
1024         * varasm.c: Revert a gcc_assert that had been added which
1025           checked for a null DECL_SIZE_UNIT field.
1026         * emultls.c: Revert to trunk. Remove possible fix.
1027         * Makefile.in: Revert extra blank line that is present
1028           in the trunk version.
1029         * Makefile.in: Revert a fix that handled long shell
1030           argument lists for plugin headers.
1031         * config/ia64/ia64.opt: Revert an option setting
1032           that increased the default TLS address range.
1033         * config/ia64/crtbegin.asm: Revert to trunk.
1034           Removes an extra newline character.
1035         * ChangeLog.upc: Spell check.
1037 2011-05-03  Gary Funck  <gary@intrepid.com>
1039         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1040           (c_apply_type_quals_to_decl): Ditto.
1041         * c-family/c-common.h: Ditto.
1042         * dojump.c: Ditto.
1043         * c-decl.c (merge_decls): Ditto.
1044         * c-typeck.c (qualify_type, default_conversion,
1045           build_component_ref, build_unary_op,
1046           c_build_qualified_type): Ditto.
1047         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1049 2011-04-29  Gary Funck  <gary@intrepid.com>
1051         * c-decl.c (finish_decl): Improve error diagnostics.
1052           (grokdeclarator): Ditto.
1054         * c-typeck.c (build_c_cast): Improve error diagnostics.
1055           (convert_for_assignment): Ditto.
1056           (build_binary_op): Ditto.
1058         * c-parser.c (c_parser_upc_forall_statement):
1059           Improve error diagnostics.
1061         * convert.c (convert_to_integer):  Improve error diagnostics.
1063 2011-04-24  Gary Funck  <gary@intrepid.com>
1065         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1066           occurred if there is an error in the barrier id
1067           expression.  Map error_mark_node into NULL.
1069 2011-04-22  Gary Funck  <gary@intrepid.com>
1071         Merge trunk version 172873 into gupc branch.
1073 2011-04-19  Gary Funck  <gary@intrepid.com>
1075         Merge trunk version 172359 into gupc branch.
1077 2011-04-14  Gary Funck  <gary@intrepid.com>
1079         * c-family/c.opt: Add UPC as a valid language for various
1080           switches where it is valid for "C", that were not updated
1081           in previous merges with trunk.
1083 2011-04-13  Gary Funck  <gary@intrepid.com>
1085         * c-family/c.opt (fupc-pre-include): New option definition.
1086         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1087           -fno-upc-pre-include is asserted.
1089 2011-04-07  Gary Funck  <gary@intrepid.com>
1091         Merge trunk version 172158 into gupc branch.
1092         to bring in the following fix.
1094 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1096         PR bootstrap/48403
1097         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1098         if old and new states differ.
1100 2011-04-06  Gary Funck  <gary@intrepid.com>
1102         Merge trunk version 171966 into gupc branch.
1104 2011-04-01  Gary Funck  <gary@intrepid.com>
1106         * tree.h (tree_base): Move UPC flag bits into bit fields
1107           located just before spare bits.  Decrement spare bits.
1108           Rename 'shared_flag' -> 'upc_shared_flag',
1109           'relaxed_flag' -> 'upc_relaxed_flag',
1110           'strict_flag' -> 'upc_strict_flag, and adjust macros
1111           that reference them accordingly.
1113 2011-04-01  Gary Funck  <gary@intrepid.com>
1115         * c-decl.c (grokdeclarator): Fix formatting of
1116           code that sets UPC block size on scalars.
1118 2011-04-01  Gary Funck  <gary@intrepid.com>
1120         * c-decl.c (grokdeclarator): Revert use of white space
1121           to match the trunk (to rationalize diffs).
1122         * c-typeck.c (convert_for_assignment): Ditto.
1123         * tree-ssa.c (useless_type_conversion_p): Ditto.
1125 2011-03-23  Gary Funck  <gary@intrepid.com>
1127         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1128           the GCC 4.6 release branch.
1130 2011-03-21  Gary Funck  <gary@intrepid.com>
1132         Merge trunk version 171202 into gupc branch.
1134 2011-03-20  Gary Funck  <gary@intrepid.com>
1136         * varasm.c: Call error() directly with a format specifier,
1137           rather than using sprintf() to format the message.
1138           This should make it easier to internationalize UPC's error messages.
1140 2011-03-20  Gary Funck  <gary@intrepid.com>
1142         * configure.ac: Fix the check for gnu ld when enabling
1143           UPC link script support.
1144           configure: Regenerate (also picks up changes from previous
1145           merge with trunk).
1147 2011-03-20  Gary Funck  <gary@intrepid.com>
1149         Move UPC start files, end files, and linker specs.
1150         into libupc.  This reduces the impact on common GCC
1151         configuration files, and ensures that these UPC-specific
1152         components are only built when the UPC language dialect is selected.
1155 gcc/
1156         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1157           linker specs. Fix typo in -fupc-debug message.
1159         * config/upc-conf.h, config/darwin.h: Move defines for
1160           UPC-related section begins/ends into libupc/config/default/
1161           upc-crt-config.h.
1163         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1164           UPC-related linker compiler specifications,
1165           accessed via %:include().
1167         * configure.ac, configure: Remove logic related to building
1168           upc-crtbegin/end. Remove config. tests for numa and cpu
1169           affinity (previously used by the 'upc' driver); these
1170           settings are now propagated by target-specific compiler
1171           specs. built by libupc.  Regenerate autoconf.
1173         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1174           linker compiler specifications, accessed via %:include().
1175           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1176           'link_upc_spec'.
1178         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1180         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1181           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1182           config/ia64/linux.h, config/mips/t-iris,
1183           config/mips/iris6.h: Revert to trunk version 167307.
1185 libgcc/
1186         * configure, configure.ac, config.host, Makefile.in:
1187           Revert to trunk version 167307.
1189 2011-02-23  Gary Funck  <gary@intrepid.com>
1191         * c-decl.c (undeclared_variable): fix typo. Inadvertently
1192         removed negation on following 'if'.
1194 2011-02-22  Gary Funck  <gary@intrepid.com>
1196         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1197         to check for the usage of certain deprecated UPC keywords.
1198         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1199         * c-tree.h (undeclared_variable): Define prototype.
1201 2011-02-12  Gary Funck  <gary@intrepid.com>
1203         * c-typeck.c: (build_c_cast, convert_for_assignment)
1204           Diagnose an attempt to convert from an integer to
1205           a pointer-to-shared as an error.  Also, fix various
1206           error messages so that they use the preferred term
1207           pointer-to-shared instead of "shared pointer".
1209 2011-02-07  Gary Funck  <gary@intrepid.com>
1211         * c-typeck.c: (convert_for_assignment)
1212           Fix typo. in error message.
1214 2011-01-23  Gary Funck  <gary@intrepid.com>
1216         * c-typeck.c: (c_build_qualified_type)
1217           derive UPC block size by calling upc_get_block_size(),
1218           to ensure that the element type of an array of an array
1219           is derived correctly.
1221 2010-12-29  Gary Funck  <gary@intrepid.com>
1223         Merge trunk version 168314 into gupc branch.
1225 2010-12-15  Gary Funck  <gary@intrepid.com>
1227         Merge trunk version 167307 into gupc branch.
1229 2010-10-19  Gary Funck  <gary@intrepid.com>
1231         * c-typeck.c: Fix typo in previous fix
1232           which led to a mis-compare for equal block sizes.
1234 2010-10-18  Gary Funck  <gary@intrepid.com>
1236         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1237           diagnosed as an error
1239           The conversion from any type (shared or not) to
1240           a shared type is likely either meaningless or an error.  This update
1241           makes any conversion to a shared type, an error.
1243 2010-10-18  Gary Funck  <gary@intrepid.com>
1245         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1246           generates spurious warning
1248           Add a #define procedure that does the same thing as
1249           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1250           this procedure to diagnose passing an integer value to a
1251           pointer-to-shared as an error.
1253 2010-10-18  Gary Funck  <gary@intrepid.com>
1255         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1256           matching routine declaration.
1258           When checking for type compatibility, shared qualified types must
1259           have the same block factor.  This check was missing from
1260           comptypes_internal().  This update adds the check for blocking
1261           factor equality.
1263 2010-10-17  Gary Funck  <gary@intrepid.com>
1265         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1266           found (-O1 -g)
1268           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1270 2010-10-17  Gary Funck  <gary@intrepid.com>
1272         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1273           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1274           produces ice with -O3 and -m32.
1276           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1278 2010-10-17  Gary Funck  <gary@intrepid.com>
1280         * c-common.c: Diagnose the application of the various "*sizeof"
1281           operations on generic pointer-to-shared as a compilation error.
1283 2010-10-17  Gary Funck  <gary@intrepid.com>
1285         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1286           message regarding a function parameter being declared with a shared
1287           qualifier.
1289           The parameter's 'name' value is not defined at this point, and
1290           cannot be used in the error message.  This update removes the
1291           reference to 'name', and eliminates the segfault.
1293 2010-10-16  Gary Funck  <gary@intrepid.com>
1295         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1297           The gcc/Makefile.in rules for install-plugin had to be re-written to
1298           break up a long list of header files that exceeded the command line
1299           limitation imposed by Irix.
1301           Access functions for TFmode types had to be implemented.
1302           Apparently, this is the mode used for the SGI/MIPS port to represent
1303           "long float".
1305 2010-10-14  Gary Funck  <gary@intrepid.com>
1307         * c-decl.c: Fix bug: Multiple equal blocking factors specified
1308           via typedef chain should not be diagnosed as an error.
1310           If the block size that is given by the typedef is equal to the block
1311           size given explicitly in the variable declaration, then do not
1312           complain.  The easiest way to make this check was to create a
1313           temporary type that is a clone of the element type and then set its
1314           block size using the given layout qualifier.  Then compare the block
1315           size of the temporary (the declaration) to the block size specified
1316           in the typedef.  This complexity is needed, because the '[*]' block
1317           size needs to be calculated, and the '[]' needs to be mapped into a
1318           zero block size.
1320 2010-10-10  Gary Funck  <gary@intrepid.com>
1322         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1323           specified
1325           The compiler properly detected the presence of two or more layout
1326           qualifiers as an error, but then hit an assertion check, because the
1327           code that followed the error expected to see a qualifier and not a
1328           layout specifier.  The fix is simple: just return immediately after
1329           detecting the error.
1331 2010-10-10  Gary Funck  <gary@intrepid.com>
1333         * c-decl.c: Improve error diagnostics for various cases of UPC
1334           shared array type declarations.
1336           Add the check for this error: "In the dynamic translation
1337           environment, THREADS may not appear in declarations of shared arrays
1338           with indefinite block size".  Also, fix up a few of the other
1339           related error diagnostics.
1341 2010-10-09  Gary Funck  <gary@intrepid.com>
1343         * c-common.c: Fix bug: segfault on incomplete array definition.
1345           This turned out to be a bit complicated.   The logic in
1346           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1347           the THREADS identifier in the case where the blocking factor has
1348           been set to indefinite ([]).  This can happen when indefinite array
1349           declarations are processed for shared arrays.  At that time, the
1350           file scope has been closed and THREADS is no longer in scope.  Some
1351           more work is needed on upc_lang_layout_decl().  It has some
1352           duplication, and notably duplicates the two branches of the if
1353           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1354           caller of this routine (layout_decl()).
1356           The method of forcing a layout qualifier of [] in the indefinite
1357           declaration handler is odd a well.  The code that just does the
1358           setting of the block factor, needs to moved into its own routine
1359           that doesn't depend upon a declspec for '[]' to be passed in, just
1360           in order to set the blocking factor to some value (in this case, 0).
1361           Also, the logic for how that shared type is constructed is strange.
1362           First the type with 0 blocking factor is set.  Then the shared
1363           qualifier is removed from the type, and then added back later.  The
1364           intermediate type has a blocking factor set, but it has no shared
1365           qualifier.  Fixing this will require some thought.  It is tempting
1366           just to make indefinite shared arrays an error, rather than forcing
1367           the dimension to be '1'.
1369           This likely fixes a serious error in the previous update to
1370           upc_lang_layout_decl(), where it didn't have the logic to set
1371           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
1372           the previous update would fail on many tests.
1374 2010-10-09  Gary Funck  <gary@intrepid.com>
1376         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1377           (decl) is null, which can happen if some layout error occurred
1378           upstream.
1380 2010-10-09  Gary Funck  <gary@intrepid.com>
1382         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1383           "variable-sized" when compiled in dynamic threads.
1385           This long-standing bug is easily fixed.  Just check
1386           for the situation that the non-constant sized type is shared and
1387           that it does not have a dimension that references a multiple of
1388           threads.  If this criteria is met, then issue a meaningful
1389           diagnostic.
1391 2010-10-01  Gary Funck  <gary@intrepid.com>
1393         * configure, configure.ac: Update manual page, and bug reporting
1394           URL.
1396           Update "man" page to reflect debugging switches.  Also, some general
1397           clean up.  Change the bug reporting URL to point to gccupc.org.
1399 2010-09-27  Gary Funck  <gary@intrepid.com>
1401         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1402           the UPC forall depth count variable is not found.
1404           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1405           The compiler will generate code that references this variable in
1406           order to implement nested upc_forall semantics.  If there is a
1407           compiler build or install problem, this variable may not be found.
1408           In this case, terminate with an internal_error().
1410 2010-09-26  Gary Funck  <gary@intrepid.com>
1412         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1413           mis-diagnosed as syntax error.
1415           Fix a failure exhibited by the Berkeley test case,
1416           bug873a.upc, which has the code:
1417                double d;
1418                upc_forall (;;;d) {...} The compiler did not properly handle
1419           the empty "condition" clause, and did not recover well when it was
1420           determined that the use of a double value, "d" above, was neither a
1421           pointer-to-shared nor an integer expression.  The update implements a
1422           fix for both issues.
1424           See also: gcc/c-parser.c gcc/upc/upc-act.c
1426 2010-09-23  Gary Funck  <gary@intrepid.com>
1428         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1429           incorporated into the referencing type.
1431           This was semi-fixed a few times before.  This update fixes a few
1432           more places where the layout qualifier wasn't being propagated
1433           through typedef's properly.  What made this a bit tricky is shown in
1434           the example cited in the bug report:
1436           typedef shared [5] int A_t; A_t A[5*THREADS];
1438           In the typedef, the blocksize is being applied to a shared *scalar*,
1439           and the code was applying the blocksize only to arrays.  This update
1440           handles shared scalars correctly.
1442 2010-09-22  Gary Funck  <gary@intrepid.com>
1444         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1445           upc_forall() semantics are not implemented
1447           The checkforall test in the Berkeley harness test suite indicated
1448           that GCC/UPC was not properly implementing nested upc_forall
1449           semantics.  Nested upc_forall statements (both statically or
1450           dynamically nested) must implement their affinity clause as if it
1451           were "continue"; thus all steps in the loop must execute without
1452           regard for affinity.  To implement these semantics a global depth
1453           counter, __upc_forall_depth, is maintained by the generated code
1454           that implements upc_forall.
1456           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1457           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1458           libupc/include/upc.h libupc/smp/upc_main.c
1460 2010-09-19  Gary Funck  <gary@intrepid.com>
1462         * c-decl.c: c-decl.c: zero out the layout specifier, after
1463           processing an array type.
1465           Fix the previous fix, that moved the setting of the type's layout
1466           qualifier to the outside of the array type processing loop.  What is
1467           missing from the fix is that the layout_qualifier variable needs to
1468           be cleared after setting the type's blocksize.
1470 2010-09-19  Gary Funck  <gary@intrepid.com>
1472         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1473           given blocksize is greater than UPC_MAX_BLOCKSIZE.
1475           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1476           the actual maximum block size.  Therefore, the message was correct,
1477           but the underlying value that was being checked was wrong.  Change
1478           the values so that they agree with the actual implementation-defined
1479           limit.
1481 2010-09-11  Gary Funck  <gary@intrepid.com>
1483         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1484           multi-dimensional shared array with dynamic threads.
1486           This declaration caused an internal compiler error when compiled
1487           with dynamic threads:
1488               shared [*] int A[THREADS][16]; The bug was discovered when
1489           compiling the RTED_UPC test suite.
1491           The fix is to process layout qualifiers after the entire array type
1492           has been built.  Otherwise, we try to calculate the blocksize on a
1493           shared array type that has not had its "size depends upon the value
1494           of THREADS" flag set.
1496           Also, added a test case.
1498           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1500 2010-07-11  Gary Funck  <gary@intrepid.com>
1502         Fix a bug where a statement in c_build_qualified_type()
1503         in the trunk had been inadvertently deleted.
1504         This bug showed up in the IA64 port, because jmpbuf's
1505         on that architecture must be 16 byte aligned, and they were not.
1506         c-typeck.c (c_build_qualified_type): Revive the deleted line.
1508 2010-07-08  Gary Funck  <gary@intrepid.com>
1510         Make changes so that other language compilers
1511         will build and bootstrap.
1512         * c-family/c-common.c (compiling_upc, flag_upc,
1513         flag_upc_instrument, flag_upc_instrument_functions,
1514         use_upc_dwarf2_extensions): Move to stub-upc.c and
1515         upc-lang.c.
1516         * c-family/c-common.h (use_upc_dwarf2_extensions,
1517         compiling_upc): Add extern definitions - needed
1518         to compile/build other language front ends.
1519         * c-family/c.opt: Fix the spelling of ObjC.
1520         It had been incorrectly spelled as Objc.
1521         * c-family/c.opt: Add UPC for the various switches
1522         that are valid for both C and ObjC.
1523         * c-fmaily/c-opts.c: Add CL_UPC to the list of
1524         supported options switches when compiling assembly
1525         language.
1526         * lto/lto-lang.c (use_upc_dwarf2_extensions,
1527         flag_upc_instrument, flag_upc_instrument_functions):
1528         Remove these definitions.  They have been moved
1529         to c-family/stub-upc.c.
1530         * upc/ChangeLog: Move relevant entries
1531         to ChangeLog.upc.
1532         * c-family/stub-upc.c (compiling_upc, flag_upc,
1533         flag_upc_instrument, flag_upc_instrument_functions,
1534         use_upc_dwarf2_extensions): Moved from c-common.c
1535         * upc/upc-lang.c (compiling_upc, flag_upc,
1536         flag_upc_instrument, flag_upc_instrument_functions,
1537         use_upc_dwarf2_extensions): Moved from c-common.c
1538         * objc/objc-act.c (objc_gimplify_expr): Add additional
1539         parameters to c_gimplify_expr() call, that are used
1540         by upc's tree rewrites.
1541         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1542         * gcc/cp/lex.c (init_reswords): If not compiling
1543         UPC, then mask off the UPC keywords.
1544         * cp/Make-lang.in (C_STUB_OBJS): Use this
1545         make macro to link with c-family/stub-objc.o
1546         and c-family/stub-upc.o.
1547         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1548         * java/Make-lang.in (C_STUB_OBJS): Likewise.
1549         * objc/Make-lang.in: Link with c-family/stub-upc.o
1550         to avoid undefined references.
1551         c-parser.c: Fix line indentation.
1552         * libcpp/include/cpplib.h: Remove CL_UPC from
1553         the list of language kinds accepted by the
1554         C preprocessor.  This is not necessary because
1555         UPC is a derivative of C99, and does not need
1556         a different language kind.
1557         * c-fmaily/c-opts.c (c_common_handle_option):
1558         Call set_std_c99() when processing the
1559         "--lang upc" switch, instead of setting the
1560         language kind to CL_UPC.
1561         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1563 2010-07-03  Gary Funck  <gary@intrepid.com>
1565         Merge trunk version 161517 into gupc branch.
1566         * gcc/stub-upc.c: Move to gcc/c-family/.
1567         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1568         Add 'unused' attributes to avoid "set, but
1569         not referenced" warnings.
1570         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1571         Likewise.
1573 2010-03-01 Gary Funck  <gary@intrepid.com>
1575         Create gupc branch from trunk version 157149.
1576 2011-10-04  Gary Funck  <gary@intrepid.com>
1578         Merge trunk version 179421 into gupc branch.
1580         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1581         argument to the call to check_qualified_type().
1583 2011-09-22  Gary Funck  <gary@intrepid.com>
1585         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1586         information.
1587         (dump_upc_type_quals): New.
1589 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1591         Add to FLAGS the flags needed to disable inlining of
1592         UPC run-time access routines.
1593         * testsuite/lib/target-supports.exp
1594         (add_options_for_upc_library_calls): New.
1596 2011-09-15  Gary Funck  <gary@intrepid.com>
1598         Fix ICE involving shared bit field accesses.
1599         * tree.c (build3_stat): Propagate TEEE_SHARED()
1600         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1602 2011-09-13  Gary Funck  <gary@intrepid.com>
1604         Merge trunk version 178795 into gupc branch.
1605         Incorporates fix to PR bootstrap/50010 for x86-32.
1607 2011-09-08  Gary Funck  <gary@intrepid.com>
1609         Merge trunk version 178557 into gupc branch.
1611 2011-09-07  Gary Funck  <gary@intrepid.com>
1613         Ensure that UPC pointer-to-shared type alignment is
1614         propagated to the final type.  Revert to long-standing
1615         alignment policy: twice the size of a "C" pointer.
1616         * tree.c (build_pointer_type): Propagate the alignment
1617         of the UPC pointer-to-shared representation type
1618         into the newly built pointer type.
1620 2011-08-30  Gary Funck  <gary@intrepid.com>
1622         * tree.h (check_qualified_type): Change 'const_tree'
1623         argument types back to 'tree' to avoid complaints
1624         of assignment drops qualifiers for invocations of the
1625         newly implemented TYPE_BLOCK_FACTOR() macro, which
1626         invokes hash functions with 'tree' pointer values that
1627         are not const qualified.
1628         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1629         * c-typeck.c (comptypes_internal): Ditto.
1631 2011-08-29  Gary Funck  <gary@intrepid.com>
1633         Fixes for regressions noted running "make check"
1634         versus GCC trunk.
1635         * fold-const.c (fold_unary_loc): Execute UPC-specific
1636         checks for a cast-of-a-cast, only if one of the
1637         operands is a UPC pointer-to-shared value.
1638         * opts.c (print_specific_help):  Fix a comparison
1639         in an assert that checks that there are enough
1640         bits reserved for the number of languages defined
1641         in the .opt files.
1643 2011-08-29  Gary Funck  <gary@intrepid.com>
1645         Implement a hash table to record UPC block factors.
1646         * c-family/stub-upc.c (upc_block_factor_insert,
1647         upc_block_factor_lookup): New dummy stub procedures.
1648         * c-family/c-common.c (c_sizeof_or_alignof_type):
1649         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1650         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1651         to copy (hashed) UPC blocking factor.
1652         (set_type_quals): Likewise.
1653         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1654         TYPE_HAS_THREADS_FACTOR().
1655         (type_common.block_factor): Delete.
1656         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1657         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1658         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1659         UPC blocking factors greater than one.
1660         * dwarf2out.c (modified_type_die): Re-implement
1661         logic that records UPC blocking factor in the generated
1662         DWARF2 debugging information.
1663         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1664         TYPE_HAS_THREADS_FACTOR().
1665         * c-decl.c (finish_decl, grokdeclarator):
1666         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1667         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1668         used by UPC, and print UPC-specific information.
1670 2011-08-28  Gary Funck  <gary@intrepid.com>
1672         Re-work the type machinery to fully support and to unify support
1673         for the UPC layout qualifier (blocking factor).
1674         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1675           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1676           and update prototype.
1677         * c-family/c-common.c (complete_array_type): call newly
1678           defined c_build_qualified_type_1() instead of
1679           upc_set_block_factor().
1680         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1681           upc_apply_layout_qualifier() and update prototype.
1682           (upc_set_block_factor): Delete prototype.
1683         * c-family/c-common.h (c_build_qualified_type): redefine
1684           as a pre-processor macro that invokes c_build_qualified_type_1()
1685           with a null UPC layout qualifier.
1686           (c_build_qualified_type_1): New.  Add layout qualifier argument
1687           to old c_build_qualified_type() prototype.
1688         * tree.c (set_type_quals, check_qualified_type):
1689           Add layout qualifier as argument.
1690           (check_aligned_type): Add check for UPC block factor equality.
1691           (get_qualified_type_1): Rename from get_qualified_type() and
1692           add layout qualifier as argument.
1693           (build_qualified_type_1): Rename from build_qualified_type() and
1694           add layout qualifier as argument.
1695         * tree.h (check_qualified_type): Add layout qualifier as argument
1696           to the prototype.
1697           (get_qualified_type): Re-define as a as a pre-processor macro
1698           that invokes get_qualified_type_1() with a null
1699           UPC layout qualifier.
1700           (get_qualified_type_1): Rename from get_qualified_type() and
1701           add layout qualifier as argument.
1702         * cp/tree.c (c_build_qualified_type_1): Rename from
1703           c_build_qualified_type() and add (unused) layout qualifier
1704           argument.
1705         * c-decl.c (finish_decl): re-format long error messages.
1706           (grokdeclarator): Re-work the logic so that it calls
1707           upc_grok_layout_qualifier() to handle the UPC layout
1708           qualifier, if present.
1709         * c-typeck.c (qualify_type, common_pointer_type,
1710           build_component_ref): Re-work the logic so that it calls
1711           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1712           if present.
1713           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1714           and add layout qualifier argument.
1715         * print_tree.c (print_node): Re-format a long line.
1717 2011-08-26  Gary Funck  <gary@intrepid.com>
1719         Merge trunk version 177949 into gupc branch.
1720         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1721           in the comment.
1722         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1723           to add new rliterals column value.
1725 2011-08-26  Gary Funck  <gary@intrepid.com>
1727         * convert.c (convert_to_integer): Fix the check for the
1728           difference between two UPC pointers-to-shared values.
1730 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1732         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1733           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1734           correctly check packed bits.
1735         * configure: Re-generate.
1737 2011-08-16  Gary Funck  <gary@intrepid.com>
1739         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1740           the barrier id expression is not an integer expression.
1742 2011-08-12  Gary Funck  <gary@intrepid.com>
1744         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1745           (revert to trunk).
1746         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1747           Set mode of UPC pointer-to-shared rep. to an
1748           integral mode of size at least as large as the
1749           size of the representation's struct type.
1751 2011-08-12  Gary Funck  <gary@intrepid.com>
1753         Rework/simplify the UPC genericize pass.
1754         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1755           upc_build_pointer_type): New.
1756           (upc_set_block_factor): Adjust to new calling sequence.
1757           (upc_build_shared_var_addr): Delete.
1758         * c-family/c-common.c (complete_array_type): Adjust call
1759           to upc_set_block_factor().
1760         * c-family/c-upc.h (upc_apply_layout_qualifier,
1761           upc_build_pointer_type): New.
1762           (upc_build_shared_var_addr): Delete.
1763           (upc_set_block_factor): Adjust to new calling sequence.
1764         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1765         * c-decl.c (grokdeclarator): Call newly defined
1766           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1767         * c-decl.c (grokdeclarator): Split long UPC-related error
1768           messages into two lines.
1769         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1770           directly.  Revert that change to trunk. (upc_genericize() will
1771           handle lowering the expressions that take the address of a
1772           UPC variable).
1773         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1774           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1775           representation type.
1777 2011-08-10  Gary Funck  <gary@intrepid.com>
1779         Implement additional fixes for recent merge with trunk.
1780         * explow.c (promote_mode): Do not attempt to promote
1781           the mode for UPC pointer-to-shared types.
1782         * config/i386/i386.c (function_value_64): Ditto.
1784 2011-08-07  Gary Funck  <gary@intrepid.com>
1786         Merge trunk version 177548 into gupc branch.
1787         * config/i386/i386.c (ix86_promote_function_mode):
1788           Do not promote UPC pointers-to-shared to Pmode.
1789         * c-family/c-ommon.c (pointer_int_sum):
1790           Also check the pointer operand, rather than just
1791           its type, when making the decision to derive
1792           the equivalent unshared type.
1793         * tree.c (build2_stat): If the type of the result
1794           passed in as an argument is a UPC shared type,
1795           derive the unshared equivalent when calculating
1796           the result type of the node.
1798 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1800         * config/darwin.c: Disable var_tracking option
1801           on -O0 as it is supposed to run only when optimization
1802           is applied. See GCC bug 49743.
1804 2011-07-06  Gary Funck  <gary@intrepid.com>
1806         Re-implement the pass that lowers trees generated by
1807         the UPC front-end into GENERIC.  Previously this was
1808         done within the gimplification framework, but this
1809         required that gimplification be run before inlining
1810         and various other passes, which did not fit in well
1811         with the current design of the middle-end passes.
1812         Now, the lowering is done by a newly defined language
1813         specific genericize hook.  With this change, we are
1814         are able to undo some extensions made to the gimplify
1815         logic, and thus can revert several files to trunk.
1817         * c-decl.c: Add a check for UPC deprecated names which
1818           may appear as undefined function names.
1819         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1820           LTI_upc_getaddr): Remove definitions of unused UPC
1821           library function names.  These were defined back when
1822           the libfunc interface was used to call these routines.
1823         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1824           in UPC lowering (genericize) pass.
1825         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1826           (instrument_func): Delete this hook.  Now handled in
1827           upc_genericize().
1828         * tree-pass.h: Revert to trunk.
1829         * c-typeck.c (build_unary_op): Adjust reference to
1830           upc_genericize() in a comment.
1831         * gimplify.c (create_tmp_var_raw): Delete logic that
1832           was converting UPC shared types into unshared types
1833           to be used for temporaries.  Now handled in  upc_genericize().
1834           Replace with an assertion check.
1835           (prepare_gimple_addressable): Revert to trunk's definition.
1836           No longer needed as an externally called function.
1837           (flag_instrument_functions_exclude_p): Re-define as
1838           an externally called function.
1839           (gimplify_function_tree): Delete code that implemented
1840           call to UPC's language specific function instrumentation hook.
1841         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1842           (prepare_gimple_addressable): Delete extern definition;
1843           revert to trunk's definition.
1844         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1845           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1846         * c-family/c-gimplify.c: Revert to trunk.
1847         * cp/cp-gimplify.c: Revert to trunk.
1848         * cp/cp-tree.h: Revert to trunk.
1849         * explow.c: Revert to trunk.
1850         * langhooks.c: Revert to trunk.
1851         * libfuncs.h: Revert to trunk.
1852         * objc/objc-act.c: Revert to trunk.
1854 2011-06-30  Gary Funck  <gary@intrepid.com>
1856         * c-family/c.opt: Bring options definitions up-to-date
1857         with respect to changes made in the trunk.
1859 2011-06-29  Gary Funck  <gary@intrepid.com>
1861         Merge trunk version 175584 into gupc branch.
1863 2011-06-13  Gary Funck  <gary@intrepid.com>
1865 libcpp/
1866         * include/cpplib.h (enum c_lang):
1867         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1868         This keeps all the "C" variants together.
1869         * init.c (lang_defaults): Add an entry for UPC.
1871 2011-06-09  Gary Funck  <gary@intrepid.com>
1873         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1874         a 32-bit target, the size expression overflowed, the result was
1875         error_mark_node, and an ICE was triggered on an attempt to evaluate
1876         C_TYPE_VARIABLE_SIZE() on the error node.
1877         (upc_blocksizeof_expr, upc_blocksizeof_type,
1878         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1879         Make similar changes to avoid further processing of error_mark_node.
1881 2011-06-07  Gary Funck  <gary@intrepid.com>
1883         * sel-sched.c (move_op): Incorporate the following
1884         patch to eliminate ICE at -O3 on IA64/Altix.
1886 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1888         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1889         code_motion_path_driver returned 0 or 1.
1890         (sel_region_finish): Clear h_d_i_d.
1892 2011-06-02  Gary Funck  <gary@intrepid.com>
1894         Merge trunk version 174558 into gupc branch.
1896 2011-05-30  Gary Funck  <gary@intrepid.com>
1898         * configure.ac: Make the default order of the virtual
1899           address field in a UPC pointer-to-shared to be "first".
1900           This reverts to the previous setting, and is a short term
1901           measure to work around a bug found on the IA64,
1902           where vaddr=last led to incorrect code generation.
1903           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1904           in AC_DEFINE(), to agree with recent changes in files
1905           that reference this define.
1906           configure, config.in: Regenerate.
1908 2011-05-26  Gary Funck  <gary@intrepid.com>
1910         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1911           configure: Regenerate.
1913         * ../fixincludes/fixincl.x: Revert to trunk.
1914           This file is auto-generated, and should not be merged.
1916 2011-05-18  Gary Funck  <gary@intrepid.com>
1918         Merge trunk version 173845 into gupc branch.
1920 2011-05-17  Gary Funck  <gary@intrepid.com>
1922         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1923           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1925         * c-family/c-pragma.c: Remove conditional compilation
1926           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1927           Test 'compiling_upc' when compiling to determine if
1928           the "upc" and "pupc" pragmas should be registered.
1930         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1931           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1932           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1933           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1934           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1935           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1936           Move these target-dependent definitions from config/upc-conf.h
1937           to here.
1939         * configure.ac: Improve the logic for UPC-related options.
1940           Delete references to pre-processor definitions that have
1941           been moved to "upc/upc-pts.h".
1943         * configure, config.in: Regenerate.
1945         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1946           to trunk.  This substitution variable was used to
1947           configure the representation-specific versions of
1948           the tree rewrites that operate on UPC pointer-to-shared
1949           types and objects.
1951         * c-parser.c (c_parser_upc_forall_statement): Remove
1952           reference to UPC_FORALL_DEPTH_NAME, and call
1953           newly defined upc_rts_forall_depth_var() instead.
1955         * config/upc-config.h: Delete. Various definitions
1956           moved to "upc/upc-rts-names.h", "defaults.h", and
1957           "upc/upc-pts.h".
1959         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1960           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1961           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1962           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1963           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1964           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1965           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1966           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1967           New.  Document UPC target macros.
1968           doc/tm.texi: Regenerate.
1970 2011-05-07  Gary Funck  <gary@intrepid.com>
1972         * ../configure.ac: Disable build of libupc
1973           on non POSIX hosted systems.  Use AS_HELP_STRING
1974           to define messages.  Remove 'word-pair' as a
1975           possible --with-upc-pts UPC pointer-to-shared
1976           representation.
1978         * ../configure: Regenerate.
1980         * configure.ac: Use AS_HELP_STRING to define messages.
1981           Remove 'word-pair' as a possible --with-upc-pts
1982           UPC pointer-to-shared representation.
1983           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1984           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1986         * configure: Regenerate.
1988         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1989           definition.
1991         * ChangeLog.upc: Fix some typos.
1993 2011-05-07  Gary Funck  <gary@intrepid.com>
1995         * ../maintainer-scripts/gcc_release: Add "upc"
1996           as one of the released languages.
1998 2011-05-06  Gary Funck  <gary@intrepid.com>
2000         Eliminate compilation warnings, by fixing
2001         #include's and updating function prototypes.
2003         * c-family/c-cppbuiltin.c: Include c-upc.h.
2005         * optabs.c (gen_libfunc): Change type of 'suffix'
2006           parameter to conform with prototype.
2008         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2009           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2010           hook used by UPC.
2012         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2013           the prototype.
2015         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2016           argument values to cp_gimplify_expr.
2018         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2019           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
2020           pre-processor definitions that are no longer
2021           needed to build the 'upc' command (upc-cmd.c)
2022           because the linker specs. defined in libupc
2023           take care of linking in the needed libraries.
2025         * c-parser.c (c_parser_upc_forall_statement):
2026           initialize affinity_loc to avoid "maybe unused" warning.
2027           (c_parser_upc_sync_statement): Remove un-needed
2028           'ret' variable.  Cast return value from
2029           'upc_build_sync_stmt' to 'void' to avoid
2030           compile-time warning.
2032         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2033           integer constant, not a string.  Range is restricted
2034           to maximum positive 32-bit integer (2+ billion) to
2035           fit in with the use of 'int' in the front-end's
2036           switch handling logic.
2038 2011-05-06  Gary Funck  <gary@intrepid.com>
2040         Upgrade c-family source files to conform with modularity
2041         improvements.  Mainly, remove #include of c-tree.h in files
2042         under c-family, and define a new UPC-specific #include file,
2043         c-upc.h, and use it.
2045         * c-family/stub-upc.c: Remove #include of c-tree.h and
2046           upc/upc-act.h.  Replace with #include of c-common.h
2047           and c-upc.h.
2048           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2049           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2050           upc_localsizeof_expr, upc_localsizeof_type,
2051           upc_shared_type_p): Delete.
2053         * c-family/c-opts.c: Add #include of c-upc.h
2055         * c-family/c-common.c: Remove #include of c-tree.h and
2056           add #include of c-upc.h.
2058         * c-family/c-upc.h: New. Define API for UPC-specific functions
2059           (mostly implemented in upc/upc-act.c).
2061         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2062           Remove extern definitions.
2064         * c-family/c-pragma.c: Remove #include of c-tree.h.
2065           Add #include of c-upc.h.
2067         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
2068           c-tree.h.
2069           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
2070           upc/upc-act.c, and define as a macro.
2071           (expand_affinity_test): Remove unused external definition.
2072           (build_upc_unshared_type): Add external definition.
2073           (upc_shared_type_p): Remove external definition.
2075         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2077         * dojump.c: Remove #include of c-tree.h.
2079         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2080           and move to tree.h.
2081           (count_upc_threads_refs, is_multiple_of_upc_threads,
2082           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2083           upc_build_shared_var_addr, upc_build_sync_stmt,
2084           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2085           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2086           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2087           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2088           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2089           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2090           set_upc_consistency_mode, get_upc_consistency_mode,
2091           push_upc_consistency_mode, pop_upc_consistency_mode,
2092           get_upc_pupc_mode):
2093           Move external definitions to c-family/c-upc.h.
2094           (upc_blocksizeof_type, upc_localsizeof_type,
2095           upc_elemsizeof_type): Remove external definitions;
2096           these functions were moved to c-parser.c.
2098         * c-decl.c: Add #include of c-upc.h.
2100         * c-typeck.c: Add #include of c-upc.h.
2102         * c-convert.c: Add #include of c-upc.h.
2104         * ChangeLog.upc: Fix typo.
2106         * Makefile.in: Add references to c-family/c-upc.h, everywhere
2107           there is a reference to c-family/c-objc.h.
2108           Remove extraneous reference to upc-act.h.
2110         * c-parser.c: Add #include of c-upc.h.
2111           (upc_blocksizeof_expr, upc_blocksizeof_type,
2112           upc_elemsizeof_expr, upc_elemsizeof_type,
2113           upc_localsizeof_expr, upc_localsizeof_type):
2114           Move from upc/upc-act.c.
2116         * tree.c (build_upc_unshared_type): New.
2117           Move upc_get_unshared_type from upc/upc-act.c and rename
2118           to build_upc_unshared_type.
2119           c-family/c-common.c (pointer_int_sum): refer to renamed
2120           build_upc_unshared_type function.
2121           c-convert.c (convert): Ditto.
2122           convert.c (convert_to_pointer): Ditto.
2123           c-typeck.c (build_unary_op, build_modify_expr,
2124           really_start_incremental_init): Ditto.
2125           gimplify.c (create_tmp_var_raw): Ditto.
2126           tree.c (build1_stat): Ditto.
2127           tree.h (upc_get_unshared_type): Rename to
2128           build_upc_unshared_type.
2130 2011-05-06  Gary Funck  <gary@intrepid.com>
2132         Merge trunk version 173471 into gupc branch.
2134 2011-05-05  Gary Funck  <gary@intrepid.com>
2136         Make changes that bring the GUPC branch more closely in sync.
2137         with the GCC trunk.  Revert any fixes that are not UPC-specific.
2138         Remove gratuitous re-formatting.
2140         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2141           This file should have been removed in a previous merge
2142           with the trunk.
2143         * ../configure.ac: Remove Cray Catamount/CNL support.
2144         * ../configure: Regenerate.
2145         * ../config.sub: Remove Cray Catamount/CNL support.
2146         * config.gcc: Remove Cray Catamount/CNL support.
2147         * ../maintainer-scripts/gcc_release: Revert to trunk.
2148         * c-family/c-common.h: Define parse_optimize_options.  Its definition
2149           was missed in a previous merge with the trunk.
2150         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2151           procedure.
2152         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2153           in addition to ARRAY_TYPE.
2154         * c-typeck.c: Remove an extra newline character.
2155         * varasm.c: Revert a fix that improved an error message
2156           when TLS common data is unimplemented.
2157         * varasm.c: Revert a gcc_assert that had been added which
2158           checked for a null DECL_SIZE_UNIT field.
2159         * emultls.c: Revert to trunk. Remove possible fix.
2160         * Makefile.in: Revert extra blank line that is present
2161           in the trunk version.
2162         * Makefile.in: Revert a fix that handled long shell
2163           argument lists for plugin headers.
2164         * config/ia64/ia64.opt: Revert an option setting
2165           that increased the default TLS address range.
2166         * config/ia64/crtbegin.asm: Revert to trunk.
2167           Removes an extra newline character.
2168         * ChangeLog.upc: Spell check.
2170 2011-05-03  Gary Funck  <gary@intrepid.com>
2172         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2173           (c_apply_type_quals_to_decl): Ditto.
2174         * c-family/c-common.h: Ditto.
2175         * dojump.c: Ditto.
2176         * c-decl.c (merge_decls): Ditto.
2177         * c-typeck.c (qualify_type, default_conversion,
2178           build_component_ref, build_unary_op,
2179           c_build_qualified_type): Ditto.
2180         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2182 2011-04-29  Gary Funck  <gary@intrepid.com>
2184         * c-decl.c (finish_decl): Improve error diagnostics.
2185           (grokdeclarator): Ditto.
2187         * c-typeck.c (build_c_cast): Improve error diagnostics.
2188           (convert_for_assignment): Ditto.
2189           (build_binary_op): Ditto.
2191         * c-parser.c (c_parser_upc_forall_statement):
2192           Improve error diagnostics.
2194         * convert.c (convert_to_integer):  Improve error diagnostics.
2196 2011-04-24  Gary Funck  <gary@intrepid.com>
2198         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2199           occurred if there is an error in the barrier id
2200           expression.  Map error_mark_node into NULL.
2202 2011-04-22  Gary Funck  <gary@intrepid.com>
2204         Merge trunk version 172873 into gupc branch.
2206 2011-04-19  Gary Funck  <gary@intrepid.com>
2208         Merge trunk version 172359 into gupc branch.
2210 2011-04-14  Gary Funck  <gary@intrepid.com>
2212         * c-family/c.opt: Add UPC as a valid language for various
2213           switches where it is valid for "C", that were not updated
2214           in previous merges with trunk.
2216 2011-04-13  Gary Funck  <gary@intrepid.com>
2218         * c-family/c.opt (fupc-pre-include): New option definition.
2219         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2220           -fno-upc-pre-include is asserted.
2222 2011-04-07  Gary Funck  <gary@intrepid.com>
2224         Merge trunk version 172158 into gupc branch.
2225         to bring in the following fix.
2227 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2229         PR bootstrap/48403
2230         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2231         if old and new states differ.
2233 2011-04-06  Gary Funck  <gary@intrepid.com>
2235         Merge trunk version 171966 into gupc branch.
2237 2011-04-01  Gary Funck  <gary@intrepid.com>
2239         * tree.h (tree_base): Move UPC flag bits into bit fields
2240           located just before spare bits.  Decrement spare bits.
2241           Rename 'shared_flag' -> 'upc_shared_flag',
2242           'relaxed_flag' -> 'upc_relaxed_flag',
2243           'strict_flag' -> 'upc_strict_flag, and adjust macros
2244           that reference them accordingly.
2246 2011-04-01  Gary Funck  <gary@intrepid.com>
2248         * c-decl.c (grokdeclarator): Fix formatting of
2249           code that sets UPC block size on scalars.
2251 2011-04-01  Gary Funck  <gary@intrepid.com>
2253         * c-decl.c (grokdeclarator): Revert use of white space
2254           to match the trunk (to rationalize diffs).
2255         * c-typeck.c (convert_for_assignment): Ditto.
2256         * tree-ssa.c (useless_type_conversion_p): Ditto.
2258 2011-03-23  Gary Funck  <gary@intrepid.com>
2260         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2261           the GCC 4.6 release branch.
2263 2011-03-21  Gary Funck  <gary@intrepid.com>
2265         Merge trunk version 171202 into gupc branch.
2267 2011-03-20  Gary Funck  <gary@intrepid.com>
2269         * varasm.c: Call error() directly with a format specifier,
2270           rather than using sprintf() to format the message.
2271           This should make it easier to internationalize UPC's error messages.
2273 2011-03-20  Gary Funck  <gary@intrepid.com>
2275         * configure.ac: Fix the check for gnu ld when enabling
2276           UPC link script support.
2277           configure: Regenerate (also picks up changes from previous
2278           merge with trunk).
2280 2011-03-20  Gary Funck  <gary@intrepid.com>
2282         Move UPC start files, end files, and linker specs.
2283         into libupc.  This reduces the impact on common GCC
2284         configuration files, and ensures that these UPC-specific
2285         components are only built when the UPC language dialect is selected.
2287 gcc/
2288         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2289           linker specs. Fix typo in -fupc-debug message.
2291         * config/upc-conf.h, config/darwin.h: Move defines for
2292           UPC-related section begins/ends into libupc/config/default/
2293           upc-crt-config.h.
2295         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2296           UPC-related linker compiler specifications,
2297           accessed via %:include().
2299         * configure.ac, configure: Remove logic related to building
2300           upc-crtbegin/end. Remove config. tests for numa and cpu
2301           affinity (previously used by the 'upc' driver); these
2302           settings are now propagated by target-specific compiler
2303           specs. built by libupc.  Regenerate autoconf.
2305         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2306           linker compiler specifications, accessed via %:include().
2307           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2308           'link_upc_spec'.
2310         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2312         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2313           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2314           config/ia64/linux.h, config/mips/t-iris,
2315           config/mips/iris6.h: Revert to trunk version 167307.
2317 libgcc/
2318         * configure, configure.ac, config.host, Makefile.in:
2319           Revert to trunk version 167307.
2321 2011-02-23  Gary Funck  <gary@intrepid.com>
2323         * c-decl.c (undeclared_variable): fix typo. Inadvertently
2324         removed negation on following 'if'.
2326 2011-02-22  Gary Funck  <gary@intrepid.com>
2328         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2329         to check for the usage of certain deprecated UPC keywords.
2330         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2331         * c-tree.h (undeclared_variable): Define prototype.
2333 2011-02-12  Gary Funck  <gary@intrepid.com>
2335         * c-typeck.c: (build_c_cast, convert_for_assignment)
2336           Diagnose an attempt to convert from an integer to
2337           a pointer-to-shared as an error.  Also, fix various
2338           error messages so that they use the preferred term
2339           pointer-to-shared instead of "shared pointer".
2341 2011-02-07  Gary Funck  <gary@intrepid.com>
2343         * c-typeck.c: (convert_for_assignment)
2344           Fix typo. in error message.
2346 2011-01-23  Gary Funck  <gary@intrepid.com>
2348         * c-typeck.c: (c_build_qualified_type)
2349           derive UPC block size by calling upc_get_block_size(),
2350           to ensure that the element type of an array of an array
2351           is derived correctly.
2353 2010-12-29  Gary Funck  <gary@intrepid.com>
2355         Merge trunk version 168314 into gupc branch.
2357 2010-12-15  Gary Funck  <gary@intrepid.com>
2359         Merge trunk version 167307 into gupc branch.
2361 2010-10-19  Gary Funck  <gary@intrepid.com>
2363         * c-typeck.c: Fix typo in previous fix
2364           which led to a mis-compare for equal block sizes.
2366 2010-10-18  Gary Funck  <gary@intrepid.com>
2368         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2369           diagnosed as an error
2371           The conversion from any type (shared or not) to
2372           a shared type is likely either meaningless or an error.  This update
2373           makes any conversion to a shared type, an error.
2375 2010-10-18  Gary Funck  <gary@intrepid.com>
2377         * c-typeck.c: Fix bug: passing int to shared pointer arg.
2378           generates spurious warning
2380           Add a #define procedure that does the same thing as
2381           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
2382           this procedure to diagnose passing an integer value to a
2383           pointer-to-shared as an error.
2385 2010-10-18  Gary Funck  <gary@intrepid.com>
2387         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2388           matching routine declaration.
2390           When checking for type compatibility, shared qualified types must
2391           have the same block factor.  This check was missing from
2392           comptypes_internal().  This update adds the check for blocking
2393           factor equality.
2395 2010-10-17  Gary Funck  <gary@intrepid.com>
2397         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2398           found (-O1 -g)
2400           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2402 2010-10-17  Gary Funck  <gary@intrepid.com>
2404         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2405           45869 - [4.5/4.6 Regression] type mismatch in shift expression
2406           produces ice with -O3 and -m32.
2408           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2410 2010-10-17  Gary Funck  <gary@intrepid.com>
2412         * c-common.c: Diagnose the application of the various "*sizeof"
2413           operations on generic pointer-to-shared as a compilation error.
2415 2010-10-17  Gary Funck  <gary@intrepid.com>
2417         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2418           message regarding a function parameter being declared with a shared
2419           qualifier.
2421           The parameter's 'name' value is not defined at this point, and
2422           cannot be used in the error message.  This update removes the
2423           reference to 'name', and eliminates the segfault.
2425 2010-10-16  Gary Funck  <gary@intrepid.com>
2427         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2429           The gcc/Makefile.in rules for install-plugin had to be re-written to
2430           break up a long list of header files that exceeded the command line
2431           limitation imposed by Irix.
2433           Access functions for TFmode types had to be implemented.
2434           Apparently, this is the mode used for the SGI/MIPS port to represent
2435           "long float".
2437 2010-10-14  Gary Funck  <gary@intrepid.com>
2439         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2440           via typedef chain should not be diagnosed as an error.
2442           If the block size that is given by the typedef is equal to the block
2443           size given explicitly in the variable declaration, then do not
2444           complain.  The easiest way to make this check was to create a
2445           temporary type that is a clone of the element type and then set its
2446           block size using the given layout qualifier.  Then compare the block
2447           size of the temporary (the declaration) to the block size specified
2448           in the typedef.  This complexity is needed, because the '[*]' block
2449           size needs to be calculated, and the '[]' needs to be mapped into a
2450           zero block size.
2452 2010-10-10  Gary Funck  <gary@intrepid.com>
2454         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2455           specified
2457           The compiler properly detected the presence of two or more layout
2458           qualifiers as an error, but then hit an assertion check, because the
2459           code that followed the error expected to see a qualifier and not a
2460           layout specifier.  The fix is simple: just return immediately after
2461           detecting the error.
2463 2010-10-10  Gary Funck  <gary@intrepid.com>
2465         * c-decl.c: Improve error diagnostics for various cases of UPC
2466           shared array type declarations.
2468           Add the check for this error: "In the dynamic translation
2469           environment, THREADS may not appear in declarations of shared arrays
2470           with indefinite block size".  Also, fix up a few of the other
2471           related error diagnostics.
2473 2010-10-09  Gary Funck  <gary@intrepid.com>
2475         * c-common.c: Fix bug: segfault on incomplete array definition.
2477           This turned out to be a bit complicated.   The logic in
2478           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2479           the THREADS identifier in the case where the blocking factor has
2480           been set to indefinite ([]).  This can happen when indefinite array
2481           declarations are processed for shared arrays.  At that time, the
2482           file scope has been closed and THREADS is no longer in scope.  Some
2483           more work is needed on upc_lang_layout_decl().  It has some
2484           duplication, and notably duplicates the two branches of the if
2485           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2486           caller of this routine (layout_decl()).
2488           The method of forcing a layout qualifier of [] in the indefinite
2489           declaration handler is odd a well.  The code that just does the
2490           setting of the block factor, needs to moved into its own routine
2491           that doesn't depend upon a declspec for '[]' to be passed in, just
2492           in order to set the blocking factor to some value (in this case, 0).
2493           Also, the logic for how that shared type is constructed is strange.
2494           First the type with 0 blocking factor is set.  Then the shared
2495           qualifier is removed from the type, and then added back later.  The
2496           intermediate type has a blocking factor set, but it has no shared
2497           qualifier.  Fixing this will require some thought.  It is tempting
2498           just to make indefinite shared arrays an error, rather than forcing
2499           the dimension to be '1'.
2501           This likely fixes a serious error in the previous update to
2502           upc_lang_layout_decl(), where it didn't have the logic to set
2503           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2504           the previous update would fail on many tests.
2506 2010-10-09  Gary Funck  <gary@intrepid.com>
2508         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2509           (decl) is null, which can happen if some layout error occurred
2510           upstream.
2512 2010-10-09  Gary Funck  <gary@intrepid.com>
2514         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2515           "variable-sized" when compiled in dynamic threads.
2517           This long-standing bug is easily fixed.  Just check
2518           for the situation that the non-constant sized type is shared and
2519           that it does not have a dimension that references a multiple of
2520           threads.  If this criteria is met, then issue a meaningful
2521           diagnostic.
2523 2010-10-01  Gary Funck  <gary@intrepid.com>
2525         * configure, configure.ac: Update manual page, and bug reporting
2526           URL.
2528           Update "man" page to reflect debugging switches.  Also, some general
2529           clean up.  Change the bug reporting URL to point to gccupc.org.
2531 2010-09-27  Gary Funck  <gary@intrepid.com>
2533         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2534           the UPC forall depth count variable is not found.
2536           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2537           The compiler will generate code that references this variable in
2538           order to implement nested upc_forall semantics.  If there is a
2539           compiler build or install problem, this variable may not be found.
2540           In this case, terminate with an internal_error().
2542 2010-09-26  Gary Funck  <gary@intrepid.com>
2544         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2545           mis-diagnosed as syntax error.
2547           Fix a failure exhibited by the Berkeley test case,
2548           bug873a.upc, which has the code:
2549                double d;
2550                upc_forall (;;;d) {...} The compiler did not properly handle
2551           the empty "condition" clause, and did not recover well when it was
2552           determined that the use of a double value, "d" above, was neither a
2553           pointer-to-shared nor an integer expression.  The update implements a
2554           fix for both issues.
2556           See also: gcc/c-parser.c gcc/upc/upc-act.c
2558 2010-09-23  Gary Funck  <gary@intrepid.com>
2560         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2561           incorporated into the referencing type.
2563           This was semi-fixed a few times before.  This update fixes a few
2564           more places where the layout qualifier wasn't being propagated
2565           through typedef's properly.  What made this a bit tricky is shown in
2566           the example cited in the bug report:
2568           typedef shared [5] int A_t; A_t A[5*THREADS];
2570           In the typedef, the blocksize is being applied to a shared *scalar*,
2571           and the code was applying the blocksize only to arrays.  This update
2572           handles shared scalars correctly.
2574 2010-09-22  Gary Funck  <gary@intrepid.com>
2576         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2577           upc_forall() semantics are not implemented
2579           The checkforall test in the Berkeley harness test suite indicated
2580           that GCC/UPC was not properly implementing nested upc_forall
2581           semantics.  Nested upc_forall statements (both statically or
2582           dynamically nested) must implement their affinity clause as if it
2583           were "continue"; thus all steps in the loop must execute without
2584           regard for affinity.  To implement these semantics a global depth
2585           counter, __upc_forall_depth, is maintained by the generated code
2586           that implements upc_forall.
2588           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2589           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2590           libupc/include/upc.h libupc/smp/upc_main.c
2592 2010-09-19  Gary Funck  <gary@intrepid.com>
2594         * c-decl.c: c-decl.c: zero out the layout specifier, after
2595           processing an array type.
2597           Fix the previous fix, that moved the setting of the type's layout
2598           qualifier to the outside of the array type processing loop.  What is
2599           missing from the fix is that the layout_qualifier variable needs to
2600           be cleared after setting the type's blocksize.
2602 2010-09-19  Gary Funck  <gary@intrepid.com>
2604         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2605           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2607           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2608           the actual maximum block size.  Therefore, the message was correct,
2609           but the underlying value that was being checked was wrong.  Change
2610           the values so that they agree with the actual implementation-defined
2611           limit.
2613 2010-09-11  Gary Funck  <gary@intrepid.com>
2615         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2616           multi-dimensional shared array with dynamic threads.
2618           This declaration caused an internal compiler error when compiled
2619           with dynamic threads:
2620               shared [*] int A[THREADS][16]; The bug was discovered when
2621           compiling the RTED_UPC test suite.
2623           The fix is to process layout qualifiers after the entire array type
2624           has been built.  Otherwise, we try to calculate the blocksize on a
2625           shared array type that has not had its "size depends upon the value
2626           of THREADS" flag set.
2628           Also, added a test case.
2630           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2632 2010-07-11  Gary Funck  <gary@intrepid.com>
2634         Fix a bug where a statement in c_build_qualified_type()
2635         in the trunk had been inadvertently deleted.
2636         This bug showed up in the IA64 port, because jmpbuf's
2637         on that architecture must be 16 byte aligned, and they were not.
2638         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2640 2010-07-08  Gary Funck  <gary@intrepid.com>
2642         Make changes so that other language compilers
2643         will build and bootstrap.
2644         * c-family/c-common.c (compiling_upc, flag_upc,
2645         flag_upc_instrument, flag_upc_instrument_functions,
2646         use_upc_dwarf2_extensions): Move to stub-upc.c and
2647         upc-lang.c.
2648         * c-family/c-common.h (use_upc_dwarf2_extensions,
2649         compiling_upc): Add extern definitions - needed
2650         to compile/build other language front ends.
2651         * c-family/c.opt: Fix the spelling of ObjC.
2652         It had been incorrectly spelled as Objc.
2653         * c-family/c.opt: Add UPC for the various switches
2654         that are valid for both C and ObjC.
2655         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2656         supported options switches when compiling assembly
2657         language.
2658         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2659         flag_upc_instrument, flag_upc_instrument_functions):
2660         Remove these definitions.  They have been moved
2661         to c-family/stub-upc.c.
2662         * upc/ChangeLog: Move relevant entries
2663         to ChangeLog.upc.
2664         * c-family/stub-upc.c (compiling_upc, flag_upc,
2665         flag_upc_instrument, flag_upc_instrument_functions,
2666         use_upc_dwarf2_extensions): Moved from c-common.c
2667         * upc/upc-lang.c (compiling_upc, flag_upc,
2668         flag_upc_instrument, flag_upc_instrument_functions,
2669         use_upc_dwarf2_extensions): Moved from c-common.c
2670         * objc/objc-act.c (objc_gimplify_expr): Add additional
2671         parameters to c_gimplify_expr() call, that are used
2672         by upc's tree rewrites.
2673         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2674         * gcc/cp/lex.c (init_reswords): If not compiling
2675         UPC, then mask off the UPC keywords.
2676         * cp/Make-lang.in (C_STUB_OBJS): Use this
2677         make macro to link with c-family/stub-objc.o
2678         and c-family/stub-upc.o.
2679         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2680         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2681         * objc/Make-lang.in: Link with c-family/stub-upc.o
2682         to avoid undefined references.
2683         c-parser.c: Fix line indentation.
2684         * libcpp/include/cpplib.h: Remove CL_UPC from
2685         the list of language kinds accepted by the
2686         C preprocessor.  This is not necessary because
2687         UPC is a derivative of C99, and does not need
2688         a different language kind.
2689         * c-fmaily/c-opts.c (c_common_handle_option):
2690         Call set_std_c99() when processing the
2691         "--lang upc" switch, instead of setting the
2692         language kind to CL_UPC.
2693         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2695 2010-07-03  Gary Funck  <gary@intrepid.com>
2697         Merge trunk version 161517 into gupc branch.
2698         * gcc/stub-upc.c: Move to gcc/c-family/.
2699         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2700         Add 'unused' attributes to avoid "set, but
2701         not referenced" warnings.
2702         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2703         Likewise.
2705 2010-03-01 Gary Funck  <gary@intrepid.com>
2707         Create gupc branch from trunk version 157149.