Merge trunk version 195164 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blobfffcb1ac70fbafbbc6fec0162f56ebae5ef7aab3
1 2013-01-14 Gary Funck  <gary@intrepid.com>
3         Merge trunk version 195164 into gupc branch.
5 2013-01-07 Gary Funck  <gary@intrepid.com>
7         Merge trunk version 194962 into gupc branch.
9 2012-12-24 Gary Funck  <gary@intrepid.com>
11         Merge trunk version 194709 into gupc branch.
13 2012-12-17 Gary Funck  <gary@intrepid.com>
15         Merge trunk version 194552 into gupc branch.
17 2012-12-10 Gary Funck  <gary@intrepid.com>
19         Merge trunk version 194351 into gupc branch.
21 2012-12-03 Gary Funck  <gary@intrepid.com>
23         Merge trunk version 194076 into gupc branch.
25 2012-11-30  Gary Funck  <gary@intrepid.com>
27         Released GUPC 4.8.0.2 based on version 193446.
28         Date of release: 2012-11-12.
29         * DEV-PHASE: Bump release identifier to 4.8.0-3.
30         * DATESTAMP: Bump date stamp.
32 2012-11-26 Gary Funck  <gary@intrepid.com>
34         Merge trunk version 193807 into gupc branch.
36 2012-11-20 Gary Funck  <gary@intrepid.com>
38         Merge trunk version 193672 into gupc branch.
40 2012-11-19 Gary Funck  <gary@intrepid.com>
42         Merge trunk version 193617 into gupc branch.
44 2012-11-15 Gary Funck  <gary@intrepid.com>
46         Merge trunk version 193426 into gupc branch.
48 2012-11-12  Gary Funck  <gary@intrepid.com>
50         Released GUPC 4.8.0.1 based on version 192948.
51         Date of release: 2012-10-29.
52         * DEV-PHASE: Bump release identifier to 4.8.0-2.
53         * DATESTAMP: Bump date stamp.
55 2012-11-05 Gary Funck  <gary@intrepid.com>
57         Merge trunk version 193152 into gupc branch.
59 2012-10-29 Gary Funck  <gary@intrepid.com>
61         Merge trunk version 192909 into gupc branch.
63 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
65         Remove unused --upc-pthreads-per-process compile switch. 
66         * c-family/c.opt: Remove --upc-pthreads-per-process switch
67         that compiler/runtime do not use.
68         * c-family/c-opts.c (c_common_handle_option): Remove support for
69         --upc-pthreads-per-process switch.
70         * c-family/c-common.c: Ditto.
71         * c-family/c-common.h: Ditto.
73 2012-10-27 Gary Funck  <gary@intrepid.com>
75         * defaults.h: fix typos and formatting in UPC-related entries.
77 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
79         Place shared initialization code into the .text
80         section instead of a separate .upc_init section.
81         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
82         (UPC_INIT_BEGIN_NAME): Delete.
83         (UPC_INIT_END_NAME): Delete.
84         * doc/tm.texi.in: Ditto.
85         * doc/tm.texi: Ditto.
87 2012-10-22 Gary Funck  <gary@intrepid.com>
89         Merge trunk version 192673 into gupc branch.
91 2012-10-15 Gary Funck  <gary@intrepid.com>
93         Merge trunk version 192449 into gupc branch.
95 2012-10-08 Gary Funck  <gary@intrepid.com>
97         Merge trunk version 192198 into gupc branch.
99 2012-10-01 Gary Funck  <gary@intrepid.com>
101         Merge trunk version 191931 into gupc branch.
103 2012-09-26  Gary Funck  <gary@intrepid.com>
105         Implement support for various UPC version 1.3 specification
106         additions and changes. Deprecate support for upc_local_alloc.
107         Add support for upc_tick (wall-clock timer) library.
108         Add support for collective de-allocation functions:
109         upc_all_free and upc_all_lock_free.
110         Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
111         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
113 2012-09-24 Gary Funck  <gary@intrepid.com>
115         Merge trunk version 191658 into gupc branch.
117 2012-09-17  Gary Funck  <gary@intrepid.com>
119         Merge trunk version 191376 into gupc branch.
121 2012-09-10  Gary Funck  <gary@intrepid.com>
123         Merge trunk version 191141 into gupc branch.
125 2012-08-27  Gary Funck  <gary@intrepid.com>
127         Merge trunk version 190707 into gupc branch.
128         * tree.h (struct tree_base): Adjust various
129         UPC tree and type flags to refer to the
130         newly introduced u.bits field.
132 2012-08-20  Gary Funck  <gary@intrepid.com>
134         Merge trunk version 190524 into gupc branch.
135         Incorporates a fix in genoutput.c (to properly use
136         CONST_CAST) that led to build failures with
137         older versions of g++.
139 2012-08-16  Gary Funck  <gary@intrepid.com>
141         Merge trunk version 190437 into gupc branch.
142         Incorporates a fix for a build failure on the PPC
143         due to passing incorrect switches to the assembler.
144         Also, first merged trunk revision that compiles GCC
145         with the C++ compiler in the first stage.
147 2012-08-13  Gary Funck  <gary@intrepid.com>
149         Merge trunk version 190336 into gupc branch.
151 2012-08-09  Gary Funck  <gary@intrepid.com>
153         * c-family/c-common.c (c_fully_fold_internal): Do not fold
154         offsetof-like expressions when they are applied to UPC
155         shared types.
157 2012-08-06  Gary Funck  <gary@intrepid.com>
159         Merge trunk version 190173 into gupc branch.
161 2012-08-01  Gary Funck  <gary@intrepid.com>
163         Merge trunk version 190063 into gupc branch.
164         Incorporates fix for build failure on IA64.
166 2012-07-30  Gary Funck  <gary@intrepid.com>
168         Merge trunk version 189954 into gupc branch.
170 2012-07-27  Gary Funck  <gary@intrepid.com>
172         Merge trunk version 189856 into gupc branch.
173         Incorporates fix for bootstrap with a sub-set of language
174         specific source directories present.
175         * optabs.c: Revert to trunk.  Rather than defining opcodes
176         as a way of defining get/put runtime library function names,
177         generate them directly in gcc/upc/upc-genericize.c.
178         * optabs.h: Ditto.
179         * genopinit.c: Ditto.
181 2012-07-23  Gary Funck  <gary@intrepid.com>
183         Merge trunk version 189777 into gupc branch.
185 2012-07-16  Gary Funck  <gary@intrepid.com>
187         Merge trunk version 189545 into gupc branch.
189 2012-07-12  Gary Funck  <gary@intrepid.com>
191         Merge trunk version 189366 into gupc branch.
193 2012-07-05  Gary Funck  <gary@intrepid.com>
195         Merge trunk version 189274 into gupc branch.
196         Incorporates graphite build infrastructure changes.
198 2012-07-04  Gary Funck  <gary@intrepid.com>
200         Merge trunk version 189080 into gupc branch.
201         * Makefile.in: Adjust for move of C front-end files.
202         * c/Make-lang.in: Ditto.
204 2012-07-03  Gary Funck  <gary@intrepid.com>
206         Merge trunk version 189078 into gupc branch.
208 2012-06-25  Gary Funck  <gary@intrepid.com>
210         Merge trunk version 188931 into gupc branch.
212 2012-06-18  Gary Funck  <gary@intrepid.com>
214         Merge trunk version 188721 into gupc branch.
216 2012-06-11  Gary Funck  <gary@intrepid.com>
218         Merge trunk version 188380 into gupc branch.
220 2012-06-04  Gary Funck  <gary@intrepid.com>
222         Merge trunk version 188168 into gupc branch.
224 2012-05-29  Gary Funck  <gary@intrepid.com>
226         Merge trunk version 187927 into gupc branch.
228 2012-05-18  Gary Funck  <gary@intrepid.com>
230         Merge trunk version 187666 into gupc branch.
231         Incorporates fix for ICE in tree vectorization pass
232         when processing strided loads.
234 2012-05-17  Gary Funck  <gary@intrepid.com>
236         Merge trunk version 187578 into gupc branch.
238 2012-05-09  Gary Funck  <gary@intrepid.com>
240         Merge trunk version 187347 into gupc branch.
241         Incorporates fix for segfault in tree vectorization pass.
243 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
245         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
246         Appropriate libraries and include files are added on the
247         command line to make it possible to compile with the driver
248         from the build tree.
250 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
252         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
253         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
254         a function returns a pointer-to-shared in memory instead
255         of in registers.
256         (rs6000_pass_by_reference): Ditto.
258 2012-04-28  Gary Funck  <gary@intrepid.com>
260         * c-decl.c (grokdeclarator): Set 'type' to error node
261         after detecting "shared auto variable" error to avoid
262         downstream complications.
263         * upc-act.c: Fix a couple of spelling errors in comments.
265 2012-04-26  Gary Funck  <gary@intrepid.com>
267         * c-family/c-pragma.c (handle_pragma_upc):
268         Fix typo in warning message.
270 2012-04-17  Gary Funck  <gary@intrepid.com>
272         Merge trunk version 186486 into gupc branch.
274 2012-04-17  Gary Funck  <gary@intrepid.com>
276         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
277         value of the pupc mode.  Fixes a compile-time warning.
278         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
279         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
280         Improve source formatting.
282 2012-04-09  Gary Funck  <gary@intrepid.com>
284         Merge trunk version 186243 into gupc branch.
285         Incorporates a powerpc 'ffi' fix.
287 2012-03-16  Gary Funck  <gary@intrepid.com>
289         Merge trunk version 185454 into gupc branch.
290         Incorporates a libgcc fix for builds on Darwin.
292 2012-03-13  Gary Funck  <gary@intrepid.com>
294         Merge trunk version 185278 into gupc branch.
295         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
296         call build_pointer_type() to apply UPC-specific qualifiers.
297         * top-level/configure.ac: factor the checking for posix hostst
298         out of the libgomp section so that it can also be used by libgupc.
299         * top-level/configure: Re-generate.
300         * DEV-PHASE: bump to 4.8.0-1.
302 2012-03-12  Gary Funck  <gary@intrepid.com>
304         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
305         the mode for a pointer for upc-pointer-to-shared types.
307 2012-03-04  Gary Funck  <gary@intrepid.com>
309         Merge trunk version 184900 into gupc branch.
311 2012-02-17  Gary Funck  <gary@intrepid.com>
313         Released GUPC 4.7.0.2 based on version 183992.
314         * DEV-PHASE: Bump release identifier to 4.7.0-3.
315         * DATESTAMP: Bump date stamp.
317 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
319         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
320         code generation (same as #pragma pupc off).
321         (set_pupc_mode): New. Set/restore profiling mode.
322         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
323         (set_pupc_mode): New. Prototype.
324         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
325         profiling code for shared variables initialization routines.
327 2012-01-31  Gary Funck  <gary@intrepid.com>
329         Merge trunk version 183751 into gupc branch.
330         Incorporates fix for bootstrap failure on openSUSE 12.1.
332 2012-01-10  Gary Funck  <gary@intrepid.com>
334         Merge trunk version 183072 into gupc branch.
335         Incorporates libcpp __BASE_FILE__ fix.
337 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
339         * top-level/Makefile.def (flags_to_pass): Added GUPC
340         defines. Fixes the make error when upc is not specified as one
341         of the languages to build.
342         * top-level/Makefile.in: Re-generate.
344 2011-11-22  Gary Funck  <gary@intrepid.com>
346         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
347         * dwarf2out.c (gen_compile_unit_die): Check for
348         the "GNU UPC" language string in lieu of "GCC UPC".
349         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
351 2011-11-18  Gary Funck  <gary@intrepid.com>
353         Merge trunk version 181552 into gupc branch.
354         Incorporates libgcc/libunwind fix for IA64.
356 2011-11-19  Gary Funck  <gary@intrepid.com>
358         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
359         Add check for UPC when defining the language type value
360         in a traceback entry.
362 2011-11-18  Gary Funck  <gary@intrepid.com>
364         Merge trunk version 181493 into gupc branch.
365         Incorporates final fix for PR target/49992.
367 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
369         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
370         change that converted relative include paths into absolute
371         ones, as it does not work with older version of make (3.80).
373 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
375         Apply patch for Darwin build - PR49992.
376         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
377         * gcc/configure.ac: Ditto.
378         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
379         * gcc/ada/gcc-interface/Makefile.in: Ditto.
380         * top-level/configure: Re-generate.
381         * gcc/configure: Re-genrate.
383 2011-10-26  Gary Funck  <gary@intrepid.com>
385         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
386         "libupc" to "libgupc".
387         * top-level/configure.ac: Implement support for cross-builds, and
388           adjust for rename of libupc to libgupc.
389         * top-level/Makefile.tpl: Ditto.
390         * top-level/Makefile.def: Ditto.
391         * top-level/configure: Re-generate.
392         * top-level/Makefile.in: Re-generate.
393         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
394         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
395         * doc/tm.texi: Re-generate.
396         * tree-pretty-print.c (dump_block_node): Delete unused variable.
397         * gcc.c: Adjust for rename of libupc to libgupc.
398         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
399         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
400         Change "xupc" to "xgupc".
401         * configure.ac: Change "GCC UPC" to "GNU UPC".
402         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
403         so that they are absolute paths.  This is needed because
404         the upc-crtstuff builds are in the libgupc library build
405         directories which are not at the same level as libgcc.
406         * config/darwin.h: Adjust for rename of libupc to libgupc.
408 2011-10-20  Gary Funck  <gary@intrepid.com>
410         Merge trunk version 180276 into gupc branch.
411         Incorporates fix for PR bootstrap/50709.
413 2011-10-20  Gary Funck  <gary@intrepid.com>
415         Merge trunk version 180246 into gupc branch.
417 2011-10-19  Gary Funck  <gary@intrepid.com>
419         Merge trunk version 180233 into gupc branch.
420         Incorporates fix for PR debug/49310 (var tracking).
422 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
424         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
425         only four (O0 static/dynamic, O3 static/dynamic).
426         Detect -fupc-threads-0 as an option for dynamic threads
427         compile environment.
429 2011-10-10  Gary Funck  <gary@intrepid.com>
431         * tree.c (check_qualified_type, check_aligned_type):
432         Call tree_int_cst_equal() to compare UPC blocking factors
433         if the corresponding tree pointers are not equal.
434         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
436 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
438         Add configuration checks for struct/packed builds so we can
439         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
440         * testsuite/lib/target-supports.exp
441         (check_effective_target_upc_struct_pts): New.
442         (check_effective_target_upc_packed_pts): New.
444 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
446         Add to FLAGS the flags needed to disable inlining of
447         UPC run-time access routines.
448         * testsuite/lib/target-supports.exp
449         (add_options_for_upc_library_calls): New.
451 2011-09-15  Gary Funck  <gary@intrepid.com>
453         Fix ICE involving shared bit field accesses.
454         * tree.c (build3_stat): Propagate TEEE_SHARED()
455         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
457 2011-09-13  Gary Funck  <gary@intrepid.com>
459         Merge trunk version 178795 into gupc branch.
460         Incorporates fix to PR bootstrap/50010 for x86-32.
462 2011-09-08  Gary Funck  <gary@intrepid.com>
464         Merge trunk version 178557 into gupc branch.
466 2011-09-07  Gary Funck  <gary@intrepid.com>
468         Ensure that UPC pointer-to-shared type alignment is
469         propagated to the final type.  Revert to long-standing
470         alignment policy: twice the size of a "C" pointer.
471         * tree.c (build_pointer_type): Propagate the alignment
472         of the UPC pointer-to-shared representation type
473         into the newly built pointer type.
475 2011-08-30  Gary Funck  <gary@intrepid.com>
477         * tree.h (check_qualified_type): Change 'const_tree'
478         argument types back to 'tree' to avoid complaints
479         of assignment drops qualifiers for invocations of the
480         newly implemented TYPE_BLOCK_FACTOR() macro, which
481         invokes hash functions with 'tree' pointer values that
482         are not const qualified.
483         * tree.c (check_qualified_type, check_aligned_type): Ditto.
484         * c-typeck.c (comptypes_internal): Ditto.
486 2011-08-29  Gary Funck  <gary@intrepid.com>
488         Fixes for regressions noted running "make check"
489         versus GCC trunk.
490         * fold-const.c (fold_unary_loc): Execute UPC-specific
491         checks for a cast-of-a-cast, only if one of the
492         operands is a UPC pointer-to-shared value.
493         * opts.c (print_specific_help):  Fix a comparison
494         in an assert that checks that there are enough
495         bits reserved for the number of languages defined
496         in the .opt files.
498 2011-08-29  Gary Funck  <gary@intrepid.com>
500         Implement a hash table to record UPC block factors.
501         * c-family/stub-upc.c (upc_block_factor_insert,
502         upc_block_factor_lookup): New dummy stub procedures.
503         * c-family/c-common.c (c_sizeof_or_alignof_type):
504         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
505         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
506         to copy (hashed) UPC blocking factor.
507         (set_type_quals): Likewise.
508         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
509         TYPE_HAS_THREADS_FACTOR().
510         (type_common.block_factor): Delete.
511         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
512         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
513         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
514         UPC blocking factors greater than one.
515         * dwarf2out.c (modified_type_die): Re-implement
516         logic that records UPC blocking factor in the generated
517         DWARF2 debugging information.
518         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
519         TYPE_HAS_THREADS_FACTOR().
520         * c-decl.c (finish_decl, grokdeclarator):
521         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
522         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
523         used by UPC, and print UPC-specific information.
525 2011-08-28  Gary Funck  <gary@intrepid.com>
527         Re-work the type machinery to fully support and to unify support
528         for the UPC layout qualifier (blocking factor).
529         * c-family/stub-upc.c (upc_set_block_factor): Delete.
530           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
531           and update prototype.
532         * c-family/c-common.c (complete_array_type): call newly
533           defined c_build_qualified_type_1() instead of
534           upc_set_block_factor().
535         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
536           upc_apply_layout_qualifier() and update prototype.
537           (upc_set_block_factor): Delete prototype.
538         * c-family/c-common.h (c_build_qualified_type): redefine
539           as a pre-processor macro that invokes c_build_qualified_type_1()
540           with a null UPC layout qualifier.
541           (c_build_qualified_type_1): New.  Add layout qualifier argument
542           to old c_build_qualified_type() prototype.
543         * tree.c (set_type_quals, check_qualified_type):
544           Add layout qualifier as argument.
545           (check_aligned_type): Add check for UPC block factor equality.
546           (get_qualified_type_1): Rename from get_qualified_type() and
547           add layout qualifier as argument.
548           (build_qualified_type_1): Rename from build_qualified_type() and
549           add layout qualifier as argument.
550         * tree.h (check_qualified_type): Add layout qualifier as argument
551           to the prototype.
552           (get_qualified_type): Re-define as a as a pre-processor macro
553           that invokes get_qualified_type_1() with a null
554           UPC layout qualifier.
555           (get_qualified_type_1): Rename from get_qualified_type() and
556           add layout qualifier as argument.
557         * cp/tree.c (c_build_qualified_type_1): Rename from
558           c_build_qualified_type() and add (unused) layout qualifier
559           argument.
560         * c-decl.c (finish_decl): re-format long error messages.
561           (grokdeclarator): Re-work the logic so that it calls
562           upc_grok_layout_qualifier() to handle the UPC layout
563           qualifier, if present.
564         * c-typeck.c (qualify_type, common_pointer_type,
565           build_component_ref): Re-work the logic so that it calls
566           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
567           if present.
568           (c_build_qualified_type_1): Rename from c_build_qualified_type()
569           and add layout qualifier argument.
570         * print_tree.c (print_node): Re-format a long line.
572 2011-08-26  Gary Funck  <gary@intrepid.com>
574         Merge trunk version 177949 into gupc branch.
575         * c-family/c-common.h (enum rid): Bump the number of type modifiers
576           in the comment.
577         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
578           to add new rliterals column value.
580 2011-08-26  Gary Funck  <gary@intrepid.com>
582         * convert.c (convert_to_integer): Fix the check for the
583           difference between two UPC pointers-to-shared values.
585 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
587         * configure.ac: Fix the name for --with-upc-pts-packed-bits
588           option. Support --with-upc-packed-bits as deprecated. Fix the code to
589           correctly check packed bits.
590         * configure: Re-generate.
592 2011-08-16  Gary Funck  <gary@intrepid.com>
594         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
595           the barrier id expression is not an integer expression.
597 2011-08-12  Gary Funck  <gary@intrepid.com>
599         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
600           (revert to trunk).
601         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
602           Set mode of UPC pointer-to-shared rep. to an
603           integral mode of size at least as large as the
604           size of the representation's struct type.
606 2011-08-12  Gary Funck  <gary@intrepid.com>
608         Rework/simplify the UPC genericize pass.
609         * c-family/stub-upc.c (upc_apply_layout_qualifier,
610           upc_build_pointer_type): New.
611           (upc_set_block_factor): Adjust to new calling sequence.
612           (upc_build_shared_var_addr): Delete.
613         * c-family/c-common.c (complete_array_type): Adjust call
614           to upc_set_block_factor().
615         * c-family/c-upc.h (upc_apply_layout_qualifier,
616           upc_build_pointer_type): New.
617           (upc_build_shared_var_addr): Delete.
618           (upc_set_block_factor): Adjust to new calling sequence.
619         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
620         * c-decl.c (grokdeclarator): Call newly defined
621           upc_apply_layout_qualifier() instead of upc_set_block_factor().
622         * c-decl.c (grokdeclarator): Split long UPC-related error
623           messages into two lines.
624         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
625           directly.  Revert that change to trunk. (upc_genericize() will
626           handle lowering the expressions that take the address of a
627           UPC variable).
628         * config/i386/i386.c (ix86_promote_function_mode): For UPC
629           pointers-to-shared, return the type mode of the UPC pointer-to-shared
630           representation type.
632 2011-08-10  Gary Funck  <gary@intrepid.com>
634         Implement additional fixes for recent merge with trunk.
635         * explow.c (promote_mode): Do not attempt to promote
636           the mode for UPC pointer-to-shared types.
637         * config/i386/i386.c (function_value_64): Ditto.
639 2011-08-07  Gary Funck  <gary@intrepid.com>
641         Merge trunk version 177548 into gupc branch.
642         * config/i386/i386.c (ix86_promote_function_mode):
643           Do not promote UPC pointers-to-shared to Pmode.
644         * c-family/c-ommon.c (pointer_int_sum):
645           Also check the pointer operand, rather than just
646           its type, when making the decision to derive
647           the equivalent unshared type.
648         * tree.c (build2_stat): If the type of the result
649           passed in as an argument is a UPC shared type,
650           derive the unshared equivalent when calculating
651           the result type of the node.
653 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
655         * config/darwin.c: Disable var_tracking option
656           on -O0 as it is supposed to run only when optimization
657           is applied. See GCC bug 49743.
659 2011-07-06  Gary Funck  <gary@intrepid.com>
661         Re-implement the pass that lowers trees generated by
662         the UPC front-end into GENERIC.  Previously this was
663         done within the gimplification framework, but this
664         required that gimplification be run before inlining
665         and various other passes, which did not fit in well
666         with the current design of the middle-end passes.
667         Now, the lowering is done by a newly defined language
668         specific genericize hook.  With this change, we are
669         are able to undo some extensions made to the gimplify
670         logic, and thus can revert several files to trunk.
672         * c-decl.c: Add a check for UPC deprecated names which
673           may appear as undefined function names.
674         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
675           LTI_upc_getaddr): Remove definitions of unused UPC
676           library function names.  These were defined back when
677           the libfunc interface was used to call these routines.
678         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
679           in UPC lowering (genericize) pass.
680         * langhooks.h (gimplify_expr): Revert to trunk's definition.
681           (instrument_func): Delete this hook.  Now handled in
682           upc_genericize().
683         * tree-pass.h: Revert to trunk.
684         * c-typeck.c (build_unary_op): Adjust reference to
685           upc_genericize() in a comment.
686         * gimplify.c (create_tmp_var_raw): Delete logic that
687           was converting UPC shared types into unshared types
688           to be used for temporaries.  Now handled in  upc_genericize().
689           Replace with an assertion check.
690           (prepare_gimple_addressable): Revert to trunk's definition.
691           No longer needed as an externally called function.
692           (flag_instrument_functions_exclude_p): Re-define as
693           an externally called function.
694           (gimplify_function_tree): Delete code that implemented
695           call to UPC's language specific function instrumentation hook.
696         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
697           (prepare_gimple_addressable): Delete extern definition;
698           revert to trunk's definition.
699         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
700           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
701         * c-family/c-gimplify.c: Revert to trunk.
702         * cp/cp-gimplify.c: Revert to trunk.
703         * cp/cp-tree.h: Revert to trunk.
704         * explow.c: Revert to trunk.
705         * langhooks.c: Revert to trunk.
706         * libfuncs.h: Revert to trunk.
707         * objc/objc-act.c: Revert to trunk.
709 2011-06-30  Gary Funck  <gary@intrepid.com>
711         * c-family/c.opt: Bring options definitions up-to-date
712         with respect to changes made in the trunk.
714 2011-06-29  Gary Funck  <gary@intrepid.com>
716         Merge trunk version 175584 into gupc branch.
718 2011-06-13  Gary Funck  <gary@intrepid.com>
720 libcpp/
721         * include/cpplib.h (enum c_lang):
722         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
723         This keeps all the "C" variants together.
724         * init.c (lang_defaults): Add an entry for UPC.
726 2011-06-09  Gary Funck  <gary@intrepid.com>
728         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
729         a 32-bit target, the size expression overflowed, the result was
730         error_mark_node, and an ICE was triggered on an attempt to evaluate
731         C_TYPE_VARIABLE_SIZE() on the error node.
732         (upc_blocksizeof_expr, upc_blocksizeof_type,
733         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
734         Make similar changes to avoid further processing of error_mark_node.
736 2011-06-07  Gary Funck  <gary@intrepid.com>
738         * sel-sched.c (move_op): Incorporate the following
739         patch to eliminate ICE at -O3 on IA64/Altix.
741 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
743         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
744         code_motion_path_driver returned 0 or 1.
745         (sel_region_finish): Clear h_d_i_d.
747 2011-06-02  Gary Funck  <gary@intrepid.com>
749         Merge trunk version 174558 into gupc branch.
751 2011-05-30  Gary Funck  <gary@intrepid.com>
753         * configure.ac: Make the default order of the virtual
754           address field in a UPC pointer-to-shared to be "first".
755           This reverts to the previous setting, and is a short term
756           measure to work around a bug found on the IA64,
757           where vaddr=last led to incorrect code generation.
758           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
759           in AC_DEFINE(), to agree with recent changes in files
760           that reference this define.
761           configure, config.in: Regenerate.
763 2011-05-26  Gary Funck  <gary@intrepid.com>
765         * configure.ac: Fix typo when referring to $upc_vaddr_order.
766           configure: Regenerate.
768         * ../fixincludes/fixincl.x: Revert to trunk.
769           This file is auto-generated, and should not be merged.
771 2011-05-18  Gary Funck  <gary@intrepid.com>
773         Merge trunk version 173845 into gupc branch.
775 2011-05-17  Gary Funck  <gary@intrepid.com>
777         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
778           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
780         * c-family/c-pragma.c: Remove conditional compilation
781           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
782           Test 'compiling_upc' when compiling to determine if
783           the "upc" and "pupc" pragmas should be registered.
785         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
786           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
787           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
788           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
789           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
790           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
791           Move these target-dependent definitions from config/upc-conf.h
792           to here.
794         * configure.ac: Improve the logic for UPC-related options.
795           Delete references to pre-processor definitions that have
796           been moved to "upc/upc-pts.h".
798         * configure, config.in: Regenerate.
800         * Makefile.in (UPC_PTS_REP): Remove definition and revert
801           to trunk.  This substitution variable was used to
802           configure the representation-specific versions of
803           the tree rewrites that operate on UPC pointer-to-shared
804           types and objects.
806         * c-parser.c (c_parser_upc_forall_statement): Remove
807           reference to UPC_FORALL_DEPTH_NAME, and call
808           newly defined upc_rts_forall_depth_var() instead.
810         * config/upc-config.h: Delete. Various definitions
811           moved to "upc/upc-rts-names.h", "defaults.h", and
812           "upc/upc-pts.h".
814         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
815           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
816           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
817           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
818           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
819           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
820           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
821           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
822           New.  Document UPC target macros.
823           doc/tm.texi: Regenerate.
825 2011-05-07  Gary Funck  <gary@intrepid.com>
827         * ../configure.ac: Disable build of libupc
828           on non POSIX hosted systems.  Use AS_HELP_STRING
829           to define messages.  Remove 'word-pair' as a
830           possible --with-upc-pts UPC pointer-to-shared
831           representation.
833         * ../configure: Regenerate.
835         * configure.ac: Use AS_HELP_STRING to define messages.
836           Remove 'word-pair' as a possible --with-upc-pts
837           UPC pointer-to-shared representation.
838           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
839           (UPC_MAX_BLOCK_SIZE): Correct the default value.
841         * configure: Regenerate.
843         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
844           definition.
846         * ChangeLog.upc: Fix some typos.
848 2011-05-07  Gary Funck  <gary@intrepid.com>
850         * ../maintainer-scripts/gcc_release: Add "upc"
851           as one of the released languages.
853 2011-05-06  Gary Funck  <gary@intrepid.com>
855         Eliminate compilation warnings, by fixing
856         #include's and updating function prototypes.
858         * c-family/c-cppbuiltin.c: Include c-upc.h.
860         * optabs.c (gen_libfunc): Change type of 'suffix'
861           parameter to conform with prototype.
863         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
864           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
865           hook used by UPC.
867         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
868           the prototype.
870         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
871           argument values to cp_gimplify_expr.
873         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
874           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
875           pre-processor definitions that are no longer
876           needed to build the 'upc' command (upc-cmd.c)
877           because the linker specs. defined in libupc
878           take care of linking in the needed libraries.
880         * c-parser.c (c_parser_upc_forall_statement):
881           initialize affinity_loc to avoid "maybe unused" warning.
882           (c_parser_upc_sync_statement): Remove un-needed
883           'ret' variable.  Cast return value from
884           'upc_build_sync_stmt' to 'void' to avoid
885           compile-time warning.
887         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
888           integer constant, not a string.  Range is restricted
889           to maximum positive 32-bit integer (2+ billion) to
890           fit in with the use of 'int' in the front-end's
891           switch handling logic.
893 2011-05-06  Gary Funck  <gary@intrepid.com>
895         Upgrade c-family source files to conform with modularity
896         improvements.  Mainly, remove #include of c-tree.h in files
897         under c-family, and define a new UPC-specific #include file,
898         c-upc.h, and use it.
900         * c-family/stub-upc.c: Remove #include of c-tree.h and
901           upc/upc-act.h.  Replace with #include of c-common.h
902           and c-upc.h.
903           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
904           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
905           upc_localsizeof_expr, upc_localsizeof_type,
906           upc_shared_type_p): Delete.
908         * c-family/c-opts.c: Add #include of c-upc.h
910         * c-family/c-common.c: Remove #include of c-tree.h and
911           add #include of c-upc.h.
913         * c-family/c-upc.h: New. Define API for UPC-specific functions
914           (mostly implemented in upc/upc-act.c).
916         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
917           Remove extern definitions.
919         * c-family/c-pragma.c: Remove #include of c-tree.h.
920           Add #include of c-upc.h.
922         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
923           c-tree.h.
924           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
925           upc/upc-act.c, and define as a macro.
926           (expand_affinity_test): Remove unused external definition.
927           (build_upc_unshared_type): Add external definition.
928           (upc_shared_type_p): Remove external definition.
930         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
932         * dojump.c: Remove #include of c-tree.h.
934         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
935           and move to tree.h.
936           (count_upc_threads_refs, is_multiple_of_upc_threads,
937           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
938           upc_build_shared_var_addr, upc_build_sync_stmt,
939           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
940           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
941           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
942           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
943           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
944           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
945           set_upc_consistency_mode, get_upc_consistency_mode,
946           push_upc_consistency_mode, pop_upc_consistency_mode,
947           get_upc_pupc_mode):
948           Move external definitions to c-family/c-upc.h.
949           (upc_blocksizeof_type, upc_localsizeof_type,
950           upc_elemsizeof_type): Remove external definitions;
951           these functions were moved to c-parser.c.
953         * c-decl.c: Add #include of c-upc.h.
955         * c-typeck.c: Add #include of c-upc.h.
957         * c-convert.c: Add #include of c-upc.h.
959         * ChangeLog.upc: Fix typo.
961         * Makefile.in: Add references to c-family/c-upc.h, everywhere
962           there is a reference to c-family/c-objc.h.
963           Remove extraneous reference to upc-act.h.
965         * c-parser.c: Add #include of c-upc.h.
966           (upc_blocksizeof_expr, upc_blocksizeof_type,
967           upc_elemsizeof_expr, upc_elemsizeof_type,
968           upc_localsizeof_expr, upc_localsizeof_type):
969           Move from upc/upc-act.c.
971         * tree.c (build_upc_unshared_type): New.
972           Move upc_get_unshared_type from upc/upc-act.c and rename
973           to build_upc_unshared_type.
974           c-family/c-common.c (pointer_int_sum): refer to renamed
975           build_upc_unshared_type function.
976           c-convert.c (convert): Ditto.
977           convert.c (convert_to_pointer): Ditto.
978           c-typeck.c (build_unary_op, build_modify_expr,
979           really_start_incremental_init): Ditto.
980           gimplify.c (create_tmp_var_raw): Ditto.
981           tree.c (build1_stat): Ditto.
982           tree.h (upc_get_unshared_type): Rename to
983           build_upc_unshared_type.
985 2011-05-06  Gary Funck  <gary@intrepid.com>
987         Merge trunk version 173471 into gupc branch.
989 2011-05-05  Gary Funck  <gary@intrepid.com>
991         Make changes that bring the GUPC branch more closely in sync.
992         with the GCC trunk.  Revert any fixes that are not UPC-specific.
993         Remove gratuitous re-formatting.
995         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
996           This file should have been removed in a previous merge
997           with the trunk.
998         * ../configure.ac: Remove Cray Catamount/CNL support.
999         * ../configure: Regenerate.
1000         * ../config.sub: Remove Cray Catamount/CNL support.
1001         * config.gcc: Remove Cray Catamount/CNL support.
1002         * ../maintainer-scripts/gcc_release: Revert to trunk.
1003         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1004           was missed in a previous merge with the trunk.
1005         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1006           procedure.
1007         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1008           in addition to ARRAY_TYPE.
1009         * c-typeck.c: Remove an extra newline character.
1010         * varasm.c: Revert a fix that improved an error message
1011           when TLS common data is unimplemented.
1012         * varasm.c: Revert a gcc_assert that had been added which
1013           checked for a null DECL_SIZE_UNIT field.
1014         * emultls.c: Revert to trunk. Remove possible fix.
1015         * Makefile.in: Revert extra blank line that is present
1016           in the trunk version.
1017         * Makefile.in: Revert a fix that handled long shell
1018           argument lists for plugin headers.
1019         * config/ia64/ia64.opt: Revert an option setting
1020           that increased the default TLS address range.
1021         * config/ia64/crtbegin.asm: Revert to trunk.
1022           Removes an extra newline character.
1023         * ChangeLog.upc: Spell check.
1025 2011-05-03  Gary Funck  <gary@intrepid.com>
1027         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1028           (c_apply_type_quals_to_decl): Ditto.
1029         * c-family/c-common.h: Ditto.
1030         * dojump.c: Ditto.
1031         * c-decl.c (merge_decls): Ditto.
1032         * c-typeck.c (qualify_type, default_conversion,
1033           build_component_ref, build_unary_op,
1034           c_build_qualified_type): Ditto.
1035         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1037 2011-04-29  Gary Funck  <gary@intrepid.com>
1039         * c-decl.c (finish_decl): Improve error diagnostics.
1040           (grokdeclarator): Ditto.
1042         * c-typeck.c (build_c_cast): Improve error diagnostics.
1043           (convert_for_assignment): Ditto.
1044           (build_binary_op): Ditto.
1046         * c-parser.c (c_parser_upc_forall_statement):
1047           Improve error diagnostics.
1049         * convert.c (convert_to_integer):  Improve error diagnostics.
1051 2011-04-24  Gary Funck  <gary@intrepid.com>
1053         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1054           occurred if there is an error in the barrier id
1055           expression.  Map error_mark_node into NULL.
1057 2011-04-22  Gary Funck  <gary@intrepid.com>
1059         Merge trunk version 172873 into gupc branch.
1061 2011-04-19  Gary Funck  <gary@intrepid.com>
1063         Merge trunk version 172359 into gupc branch.
1065 2011-04-14  Gary Funck  <gary@intrepid.com>
1067         * c-family/c.opt: Add UPC as a valid language for various
1068           switches where it is valid for "C", that were not updated
1069           in previous merges with trunk.
1071 2011-04-13  Gary Funck  <gary@intrepid.com>
1073         * c-family/c.opt (fupc-pre-include): New option definition.
1074         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1075           -fno-upc-pre-include is asserted.
1077 2011-04-07  Gary Funck  <gary@intrepid.com>
1079         Merge trunk version 172158 into gupc branch.
1080         to bring in the following fix.
1082 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1084         PR bootstrap/48403
1085         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1086         if old and new states differ.
1088 2011-04-06  Gary Funck  <gary@intrepid.com>
1090         Merge trunk version 171966 into gupc branch.
1092 2011-04-01  Gary Funck  <gary@intrepid.com>
1094         * tree.h (tree_base): Move UPC flag bits into bit fields
1095           located just before spare bits.  Decrement spare bits.
1096           Rename 'shared_flag' -> 'upc_shared_flag',
1097           'relaxed_flag' -> 'upc_relaxed_flag',
1098           'strict_flag' -> 'upc_strict_flag, and adjust macros
1099           that reference them accordingly.
1101 2011-04-01  Gary Funck  <gary@intrepid.com>
1103         * c-decl.c (grokdeclarator): Fix formatting of
1104           code that sets UPC block size on scalars.
1106 2011-04-01  Gary Funck  <gary@intrepid.com>
1108         * c-decl.c (grokdeclarator): Revert use of white space
1109           to match the trunk (to rationalize diffs).
1110         * c-typeck.c (convert_for_assignment): Ditto.
1111         * tree-ssa.c (useless_type_conversion_p): Ditto.
1113 2011-03-23  Gary Funck  <gary@intrepid.com>
1115         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1116           the GCC 4.6 release branch.
1118 2011-03-21  Gary Funck  <gary@intrepid.com>
1120         Merge trunk version 171202 into gupc branch.
1122 2011-03-20  Gary Funck  <gary@intrepid.com>
1124         * varasm.c: Call error() directly with a format specifier,
1125           rather than using sprintf() to format the message.
1126           This should make it easier to internationalize UPC's error messages.
1128 2011-03-20  Gary Funck  <gary@intrepid.com>
1130         * configure.ac: Fix the check for gnu ld when enabling
1131           UPC link script support.
1132           configure: Regenerate (also picks up changes from previous
1133           merge with trunk).
1135 2011-03-20  Gary Funck  <gary@intrepid.com>
1137         Move UPC start files, end files, and linker specs.
1138         into libupc.  This reduces the impact on common GCC
1139         configuration files, and ensures that these UPC-specific
1140         components are only built when the UPC language dialect is selected.
1143 gcc/
1144         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1145           linker specs. Fix typo in -fupc-debug message.
1147         * config/upc-conf.h, config/darwin.h: Move defines for
1148           UPC-related section begins/ends into libupc/config/default/
1149           upc-crt-config.h.
1151         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1152           UPC-related linker compiler specifications,
1153           accessed via %:include().
1155         * configure.ac, configure: Remove logic related to building
1156           upc-crtbegin/end. Remove config. tests for numa and cpu
1157           affinity (previously used by the 'upc' driver); these
1158           settings are now propagated by target-specific compiler
1159           specs. built by libupc.  Regenerate autoconf.
1161         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1162           linker compiler specifications, accessed via %:include().
1163           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1164           'link_upc_spec'.
1166         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1168         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1169           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1170           config/ia64/linux.h, config/mips/t-iris,
1171           config/mips/iris6.h: Revert to trunk version 167307.
1173 libgcc/
1174         * configure, configure.ac, config.host, Makefile.in:
1175           Revert to trunk version 167307.
1177 2011-02-23  Gary Funck  <gary@intrepid.com>
1179         * c-decl.c (undeclared_variable): fix typo. Inadvertently
1180         removed negation on following 'if'.
1182 2011-02-22  Gary Funck  <gary@intrepid.com>
1184         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1185         to check for the usage of certain deprecated UPC keywords.
1186         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1187         * c-tree.h (undeclared_variable): Define prototype.
1189 2011-02-12  Gary Funck  <gary@intrepid.com>
1191         * c-typeck.c: (build_c_cast, convert_for_assignment)
1192           Diagnose an attempt to convert from an integer to
1193           a pointer-to-shared as an error.  Also, fix various
1194           error messages so that they use the preferred term
1195           pointer-to-shared instead of "shared pointer".
1197 2011-02-07  Gary Funck  <gary@intrepid.com>
1199         * c-typeck.c: (convert_for_assignment)
1200           Fix typo. in error message.
1202 2011-01-23  Gary Funck  <gary@intrepid.com>
1204         * c-typeck.c: (c_build_qualified_type)
1205           derive UPC block size by calling upc_get_block_size(),
1206           to ensure that the element type of an array of an array
1207           is derived correctly.
1209 2010-12-29  Gary Funck  <gary@intrepid.com>
1211         Merge trunk version 168314 into gupc branch.
1213 2010-12-15  Gary Funck  <gary@intrepid.com>
1215         Merge trunk version 167307 into gupc branch.
1217 2010-10-19  Gary Funck  <gary@intrepid.com>
1219         * c-typeck.c: Fix typo in previous fix
1220           which led to a mis-compare for equal block sizes.
1222 2010-10-18  Gary Funck  <gary@intrepid.com>
1224         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1225           diagnosed as an error
1227           The conversion from any type (shared or not) to
1228           a shared type is likely either meaningless or an error.  This update
1229           makes any conversion to a shared type, an error.
1231 2010-10-18  Gary Funck  <gary@intrepid.com>
1233         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1234           generates spurious warning
1236           Add a #define procedure that does the same thing as
1237           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1238           this procedure to diagnose passing an integer value to a
1239           pointer-to-shared as an error.
1241 2010-10-18  Gary Funck  <gary@intrepid.com>
1243         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1244           matching routine declaration.
1246           When checking for type compatibility, shared qualified types must
1247           have the same block factor.  This check was missing from
1248           comptypes_internal().  This update adds the check for blocking
1249           factor equality.
1251 2010-10-17  Gary Funck  <gary@intrepid.com>
1253         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1254           found (-O1 -g)
1256           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1258 2010-10-17  Gary Funck  <gary@intrepid.com>
1260         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1261           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1262           produces ice with -O3 and -m32.
1264           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1266 2010-10-17  Gary Funck  <gary@intrepid.com>
1268         * c-common.c: Diagnose the application of the various "*sizeof"
1269           operations on generic pointer-to-shared as a compilation error.
1271 2010-10-17  Gary Funck  <gary@intrepid.com>
1273         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1274           message regarding a function parameter being declared with a shared
1275           qualifier.
1277           The parameter's 'name' value is not defined at this point, and
1278           cannot be used in the error message.  This update removes the
1279           reference to 'name', and eliminates the segfault.
1281 2010-10-16  Gary Funck  <gary@intrepid.com>
1283         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1285           The gcc/Makefile.in rules for install-plugin had to be re-written to
1286           break up a long list of header files that exceeded the command line
1287           limitation imposed by Irix.
1289           Access functions for TFmode types had to be implemented.
1290           Apparently, this is the mode used for the SGI/MIPS port to represent
1291           "long float".
1293 2010-10-14  Gary Funck  <gary@intrepid.com>
1295         * c-decl.c: Fix bug: Multiple equal blocking factors specified
1296           via typedef chain should not be diagnosed as an error.
1298           If the block size that is given by the typedef is equal to the block
1299           size given explicitly in the variable declaration, then do not
1300           complain.  The easiest way to make this check was to create a
1301           temporary type that is a clone of the element type and then set its
1302           block size using the given layout qualifier.  Then compare the block
1303           size of the temporary (the declaration) to the block size specified
1304           in the typedef.  This complexity is needed, because the '[*]' block
1305           size needs to be calculated, and the '[]' needs to be mapped into a
1306           zero block size.
1308 2010-10-10  Gary Funck  <gary@intrepid.com>
1310         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1311           specified
1313           The compiler properly detected the presence of two or more layout
1314           qualifiers as an error, but then hit an assertion check, because the
1315           code that followed the error expected to see a qualifier and not a
1316           layout specifier.  The fix is simple: just return immediately after
1317           detecting the error.
1319 2010-10-10  Gary Funck  <gary@intrepid.com>
1321         * c-decl.c: Improve error diagnostics for various cases of UPC
1322           shared array type declarations.
1324           Add the check for this error: "In the dynamic translation
1325           environment, THREADS may not appear in declarations of shared arrays
1326           with indefinite block size".  Also, fix up a few of the other
1327           related error diagnostics.
1329 2010-10-09  Gary Funck  <gary@intrepid.com>
1331         * c-common.c: Fix bug: segfault on incomplete array definition.
1333           This turned out to be a bit complicated.   The logic in
1334           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1335           the THREADS identifier in the case where the blocking factor has
1336           been set to indefinite ([]).  This can happen when indefinite array
1337           declarations are processed for shared arrays.  At that time, the
1338           file scope has been closed and THREADS is no longer in scope.  Some
1339           more work is needed on upc_lang_layout_decl().  It has some
1340           duplication, and notably duplicates the two branches of the if
1341           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1342           caller of this routine (layout_decl()).
1344           The method of forcing a layout qualifier of [] in the indefinite
1345           declaration handler is odd a well.  The code that just does the
1346           setting of the block factor, needs to moved into its own routine
1347           that doesn't depend upon a declspec for '[]' to be passed in, just
1348           in order to set the blocking factor to some value (in this case, 0).
1349           Also, the logic for how that shared type is constructed is strange.
1350           First the type with 0 blocking factor is set.  Then the shared
1351           qualifier is removed from the type, and then added back later.  The
1352           intermediate type has a blocking factor set, but it has no shared
1353           qualifier.  Fixing this will require some thought.  It is tempting
1354           just to make indefinite shared arrays an error, rather than forcing
1355           the dimension to be '1'.
1357           This likely fixes a serious error in the previous update to
1358           upc_lang_layout_decl(), where it didn't have the logic to set
1359           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
1360           the previous update would fail on many tests.
1362 2010-10-09  Gary Funck  <gary@intrepid.com>
1364         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1365           (decl) is null, which can happen if some layout error occurred
1366           upstream.
1368 2010-10-09  Gary Funck  <gary@intrepid.com>
1370         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1371           "variable-sized" when compiled in dynamic threads.
1373           This long-standing bug is easily fixed.  Just check
1374           for the situation that the non-constant sized type is shared and
1375           that it does not have a dimension that references a multiple of
1376           threads.  If this criteria is met, then issue a meaningful
1377           diagnostic.
1379 2010-10-01  Gary Funck  <gary@intrepid.com>
1381         * configure, configure.ac: Update manual page, and bug reporting
1382           URL.
1384           Update "man" page to reflect debugging switches.  Also, some general
1385           clean up.  Change the bug reporting URL to point to gccupc.org.
1387 2010-09-27  Gary Funck  <gary@intrepid.com>
1389         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1390           the UPC forall depth count variable is not found.
1392           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1393           The compiler will generate code that references this variable in
1394           order to implement nested upc_forall semantics.  If there is a
1395           compiler build or install problem, this variable may not be found.
1396           In this case, terminate with an internal_error().
1398 2010-09-26  Gary Funck  <gary@intrepid.com>
1400         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1401           mis-diagnosed as syntax error.
1403           Fix a failure exhibited by the Berkeley test case,
1404           bug873a.upc, which has the code:
1405                double d;
1406                upc_forall (;;;d) {...} The compiler did not properly handle
1407           the empty "condition" clause, and did not recover well when it was
1408           determined that the use of a double value, "d" above, was neither a
1409           pointer-to-shared nor an integer expression.  The update implements a
1410           fix for both issues.
1412           See also: gcc/c-parser.c gcc/upc/upc-act.c
1414 2010-09-23  Gary Funck  <gary@intrepid.com>
1416         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1417           incorporated into the referencing type.
1419           This was semi-fixed a few times before.  This update fixes a few
1420           more places where the layout qualifier wasn't being propagated
1421           through typedef's properly.  What made this a bit tricky is shown in
1422           the example cited in the bug report:
1424           typedef shared [5] int A_t; A_t A[5*THREADS];
1426           In the typedef, the blocksize is being applied to a shared *scalar*,
1427           and the code was applying the blocksize only to arrays.  This update
1428           handles shared scalars correctly.
1430 2010-09-22  Gary Funck  <gary@intrepid.com>
1432         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1433           upc_forall() semantics are not implemented
1435           The checkforall test in the Berkeley harness test suite indicated
1436           that GCC/UPC was not properly implementing nested upc_forall
1437           semantics.  Nested upc_forall statements (both statically or
1438           dynamically nested) must implement their affinity clause as if it
1439           were "continue"; thus all steps in the loop must execute without
1440           regard for affinity.  To implement these semantics a global depth
1441           counter, __upc_forall_depth, is maintained by the generated code
1442           that implements upc_forall.
1444           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1445           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1446           libupc/include/upc.h libupc/smp/upc_main.c
1448 2010-09-19  Gary Funck  <gary@intrepid.com>
1450         * c-decl.c: c-decl.c: zero out the layout specifier, after
1451           processing an array type.
1453           Fix the previous fix, that moved the setting of the type's layout
1454           qualifier to the outside of the array type processing loop.  What is
1455           missing from the fix is that the layout_qualifier variable needs to
1456           be cleared after setting the type's blocksize.
1458 2010-09-19  Gary Funck  <gary@intrepid.com>
1460         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1461           given blocksize is greater than UPC_MAX_BLOCKSIZE.
1463           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1464           the actual maximum block size.  Therefore, the message was correct,
1465           but the underlying value that was being checked was wrong.  Change
1466           the values so that they agree with the actual implementation-defined
1467           limit.
1469 2010-09-11  Gary Funck  <gary@intrepid.com>
1471         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1472           multi-dimensional shared array with dynamic threads.
1474           This declaration caused an internal compiler error when compiled
1475           with dynamic threads:
1476               shared [*] int A[THREADS][16]; The bug was discovered when
1477           compiling the RTED_UPC test suite.
1479           The fix is to process layout qualifiers after the entire array type
1480           has been built.  Otherwise, we try to calculate the blocksize on a
1481           shared array type that has not had its "size depends upon the value
1482           of THREADS" flag set.
1484           Also, added a test case.
1486           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1488 2010-07-11  Gary Funck  <gary@intrepid.com>
1490         Fix a bug where a statement in c_build_qualified_type()
1491         in the trunk had been inadvertently deleted.
1492         This bug showed up in the IA64 port, because jmpbuf's
1493         on that architecture must be 16 byte aligned, and they were not.
1494         c-typeck.c (c_build_qualified_type): Revive the deleted line.
1496 2010-07-08  Gary Funck  <gary@intrepid.com>
1498         Make changes so that other language compilers
1499         will build and bootstrap.
1500         * c-family/c-common.c (compiling_upc, flag_upc,
1501         flag_upc_instrument, flag_upc_instrument_functions,
1502         use_upc_dwarf2_extensions): Move to stub-upc.c and
1503         upc-lang.c.
1504         * c-family/c-common.h (use_upc_dwarf2_extensions,
1505         compiling_upc): Add extern definitions - needed
1506         to compile/build other language front ends.
1507         * c-family/c.opt: Fix the spelling of ObjC.
1508         It had been incorrectly spelled as Objc.
1509         * c-family/c.opt: Add UPC for the various switches
1510         that are valid for both C and ObjC.
1511         * c-fmaily/c-opts.c: Add CL_UPC to the list of
1512         supported options switches when compiling assembly
1513         language.
1514         * lto/lto-lang.c (use_upc_dwarf2_extensions,
1515         flag_upc_instrument, flag_upc_instrument_functions):
1516         Remove these definitions.  They have been moved
1517         to c-family/stub-upc.c.
1518         * upc/ChangeLog: Move relevant entries
1519         to ChangeLog.upc.
1520         * c-family/stub-upc.c (compiling_upc, flag_upc,
1521         flag_upc_instrument, flag_upc_instrument_functions,
1522         use_upc_dwarf2_extensions): Moved from c-common.c
1523         * upc/upc-lang.c (compiling_upc, flag_upc,
1524         flag_upc_instrument, flag_upc_instrument_functions,
1525         use_upc_dwarf2_extensions): Moved from c-common.c
1526         * objc/objc-act.c (objc_gimplify_expr): Add additional
1527         parameters to c_gimplify_expr() call, that are used
1528         by upc's tree rewrites.
1529         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1530         * gcc/cp/lex.c (init_reswords): If not compiling
1531         UPC, then mask off the UPC keywords.
1532         * cp/Make-lang.in (C_STUB_OBJS): Use this
1533         make macro to link with c-family/stub-objc.o
1534         and c-family/stub-upc.o.
1535         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1536         * java/Make-lang.in (C_STUB_OBJS): Likewise.
1537         * objc/Make-lang.in: Link with c-family/stub-upc.o
1538         to avoid undefined references.
1539         c-parser.c: Fix line indentation.
1540         * libcpp/include/cpplib.h: Remove CL_UPC from
1541         the list of language kinds accepted by the
1542         C preprocessor.  This is not necessary because
1543         UPC is a derivative of C99, and does not need
1544         a different language kind.
1545         * c-fmaily/c-opts.c (c_common_handle_option):
1546         Call set_std_c99() when processing the
1547         "--lang upc" switch, instead of setting the
1548         language kind to CL_UPC.
1549         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1551 2010-07-03  Gary Funck  <gary@intrepid.com>
1553         Merge trunk version 161517 into gupc branch.
1554         * gcc/stub-upc.c: Move to gcc/c-family/.
1555         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1556         Add 'unused' attributes to avoid "set, but
1557         not referenced" warnings.
1558         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1559         Likewise.
1561 2010-03-01 Gary Funck  <gary@intrepid.com>
1563         Create gupc branch from trunk version 157149.
1564 2011-10-04  Gary Funck  <gary@intrepid.com>
1566         Merge trunk version 179421 into gupc branch.
1568         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1569         argument to the call to check_qualified_type().
1571 2011-09-22  Gary Funck  <gary@intrepid.com>
1573         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1574         information.
1575         (dump_upc_type_quals): New.
1577 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1579         Add to FLAGS the flags needed to disable inlining of
1580         UPC run-time access routines.
1581         * testsuite/lib/target-supports.exp
1582         (add_options_for_upc_library_calls): New.
1584 2011-09-15  Gary Funck  <gary@intrepid.com>
1586         Fix ICE involving shared bit field accesses.
1587         * tree.c (build3_stat): Propagate TEEE_SHARED()
1588         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1590 2011-09-13  Gary Funck  <gary@intrepid.com>
1592         Merge trunk version 178795 into gupc branch.
1593         Incorporates fix to PR bootstrap/50010 for x86-32.
1595 2011-09-08  Gary Funck  <gary@intrepid.com>
1597         Merge trunk version 178557 into gupc branch.
1599 2011-09-07  Gary Funck  <gary@intrepid.com>
1601         Ensure that UPC pointer-to-shared type alignment is
1602         propagated to the final type.  Revert to long-standing
1603         alignment policy: twice the size of a "C" pointer.
1604         * tree.c (build_pointer_type): Propagate the alignment
1605         of the UPC pointer-to-shared representation type
1606         into the newly built pointer type.
1608 2011-08-30  Gary Funck  <gary@intrepid.com>
1610         * tree.h (check_qualified_type): Change 'const_tree'
1611         argument types back to 'tree' to avoid complaints
1612         of assignment drops qualifiers for invocations of the
1613         newly implemented TYPE_BLOCK_FACTOR() macro, which
1614         invokes hash functions with 'tree' pointer values that
1615         are not const qualified.
1616         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1617         * c-typeck.c (comptypes_internal): Ditto.
1619 2011-08-29  Gary Funck  <gary@intrepid.com>
1621         Fixes for regressions noted running "make check"
1622         versus GCC trunk.
1623         * fold-const.c (fold_unary_loc): Execute UPC-specific
1624         checks for a cast-of-a-cast, only if one of the
1625         operands is a UPC pointer-to-shared value.
1626         * opts.c (print_specific_help):  Fix a comparison
1627         in an assert that checks that there are enough
1628         bits reserved for the number of languages defined
1629         in the .opt files.
1631 2011-08-29  Gary Funck  <gary@intrepid.com>
1633         Implement a hash table to record UPC block factors.
1634         * c-family/stub-upc.c (upc_block_factor_insert,
1635         upc_block_factor_lookup): New dummy stub procedures.
1636         * c-family/c-common.c (c_sizeof_or_alignof_type):
1637         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1638         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1639         to copy (hashed) UPC blocking factor.
1640         (set_type_quals): Likewise.
1641         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1642         TYPE_HAS_THREADS_FACTOR().
1643         (type_common.block_factor): Delete.
1644         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1645         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1646         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1647         UPC blocking factors greater than one.
1648         * dwarf2out.c (modified_type_die): Re-implement
1649         logic that records UPC blocking factor in the generated
1650         DWARF2 debugging information.
1651         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1652         TYPE_HAS_THREADS_FACTOR().
1653         * c-decl.c (finish_decl, grokdeclarator):
1654         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1655         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1656         used by UPC, and print UPC-specific information.
1658 2011-08-28  Gary Funck  <gary@intrepid.com>
1660         Re-work the type machinery to fully support and to unify support
1661         for the UPC layout qualifier (blocking factor).
1662         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1663           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1664           and update prototype.
1665         * c-family/c-common.c (complete_array_type): call newly
1666           defined c_build_qualified_type_1() instead of
1667           upc_set_block_factor().
1668         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1669           upc_apply_layout_qualifier() and update prototype.
1670           (upc_set_block_factor): Delete prototype.
1671         * c-family/c-common.h (c_build_qualified_type): redefine
1672           as a pre-processor macro that invokes c_build_qualified_type_1()
1673           with a null UPC layout qualifier.
1674           (c_build_qualified_type_1): New.  Add layout qualifier argument
1675           to old c_build_qualified_type() prototype.
1676         * tree.c (set_type_quals, check_qualified_type):
1677           Add layout qualifier as argument.
1678           (check_aligned_type): Add check for UPC block factor equality.
1679           (get_qualified_type_1): Rename from get_qualified_type() and
1680           add layout qualifier as argument.
1681           (build_qualified_type_1): Rename from build_qualified_type() and
1682           add layout qualifier as argument.
1683         * tree.h (check_qualified_type): Add layout qualifier as argument
1684           to the prototype.
1685           (get_qualified_type): Re-define as a as a pre-processor macro
1686           that invokes get_qualified_type_1() with a null
1687           UPC layout qualifier.
1688           (get_qualified_type_1): Rename from get_qualified_type() and
1689           add layout qualifier as argument.
1690         * cp/tree.c (c_build_qualified_type_1): Rename from
1691           c_build_qualified_type() and add (unused) layout qualifier
1692           argument.
1693         * c-decl.c (finish_decl): re-format long error messages.
1694           (grokdeclarator): Re-work the logic so that it calls
1695           upc_grok_layout_qualifier() to handle the UPC layout
1696           qualifier, if present.
1697         * c-typeck.c (qualify_type, common_pointer_type,
1698           build_component_ref): Re-work the logic so that it calls
1699           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1700           if present.
1701           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1702           and add layout qualifier argument.
1703         * print_tree.c (print_node): Re-format a long line.
1705 2011-08-26  Gary Funck  <gary@intrepid.com>
1707         Merge trunk version 177949 into gupc branch.
1708         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1709           in the comment.
1710         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1711           to add new rliterals column value.
1713 2011-08-26  Gary Funck  <gary@intrepid.com>
1715         * convert.c (convert_to_integer): Fix the check for the
1716           difference between two UPC pointers-to-shared values.
1718 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1720         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1721           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1722           correctly check packed bits.
1723         * configure: Re-generate.
1725 2011-08-16  Gary Funck  <gary@intrepid.com>
1727         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1728           the barrier id expression is not an integer expression.
1730 2011-08-12  Gary Funck  <gary@intrepid.com>
1732         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1733           (revert to trunk).
1734         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1735           Set mode of UPC pointer-to-shared rep. to an
1736           integral mode of size at least as large as the
1737           size of the representation's struct type.
1739 2011-08-12  Gary Funck  <gary@intrepid.com>
1741         Rework/simplify the UPC genericize pass.
1742         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1743           upc_build_pointer_type): New.
1744           (upc_set_block_factor): Adjust to new calling sequence.
1745           (upc_build_shared_var_addr): Delete.
1746         * c-family/c-common.c (complete_array_type): Adjust call
1747           to upc_set_block_factor().
1748         * c-family/c-upc.h (upc_apply_layout_qualifier,
1749           upc_build_pointer_type): New.
1750           (upc_build_shared_var_addr): Delete.
1751           (upc_set_block_factor): Adjust to new calling sequence.
1752         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1753         * c-decl.c (grokdeclarator): Call newly defined
1754           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1755         * c-decl.c (grokdeclarator): Split long UPC-related error
1756           messages into two lines.
1757         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1758           directly.  Revert that change to trunk. (upc_genericize() will
1759           handle lowering the expressions that take the address of a
1760           UPC variable).
1761         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1762           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1763           representation type.
1765 2011-08-10  Gary Funck  <gary@intrepid.com>
1767         Implement additional fixes for recent merge with trunk.
1768         * explow.c (promote_mode): Do not attempt to promote
1769           the mode for UPC pointer-to-shared types.
1770         * config/i386/i386.c (function_value_64): Ditto.
1772 2011-08-07  Gary Funck  <gary@intrepid.com>
1774         Merge trunk version 177548 into gupc branch.
1775         * config/i386/i386.c (ix86_promote_function_mode):
1776           Do not promote UPC pointers-to-shared to Pmode.
1777         * c-family/c-ommon.c (pointer_int_sum):
1778           Also check the pointer operand, rather than just
1779           its type, when making the decision to derive
1780           the equivalent unshared type.
1781         * tree.c (build2_stat): If the type of the result
1782           passed in as an argument is a UPC shared type,
1783           derive the unshared equivalent when calculating
1784           the result type of the node.
1786 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1788         * config/darwin.c: Disable var_tracking option
1789           on -O0 as it is supposed to run only when optimization
1790           is applied. See GCC bug 49743.
1792 2011-07-06  Gary Funck  <gary@intrepid.com>
1794         Re-implement the pass that lowers trees generated by
1795         the UPC front-end into GENERIC.  Previously this was
1796         done within the gimplification framework, but this
1797         required that gimplification be run before inlining
1798         and various other passes, which did not fit in well
1799         with the current design of the middle-end passes.
1800         Now, the lowering is done by a newly defined language
1801         specific genericize hook.  With this change, we are
1802         are able to undo some extensions made to the gimplify
1803         logic, and thus can revert several files to trunk.
1805         * c-decl.c: Add a check for UPC deprecated names which
1806           may appear as undefined function names.
1807         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1808           LTI_upc_getaddr): Remove definitions of unused UPC
1809           library function names.  These were defined back when
1810           the libfunc interface was used to call these routines.
1811         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1812           in UPC lowering (genericize) pass.
1813         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1814           (instrument_func): Delete this hook.  Now handled in
1815           upc_genericize().
1816         * tree-pass.h: Revert to trunk.
1817         * c-typeck.c (build_unary_op): Adjust reference to
1818           upc_genericize() in a comment.
1819         * gimplify.c (create_tmp_var_raw): Delete logic that
1820           was converting UPC shared types into unshared types
1821           to be used for temporaries.  Now handled in  upc_genericize().
1822           Replace with an assertion check.
1823           (prepare_gimple_addressable): Revert to trunk's definition.
1824           No longer needed as an externally called function.
1825           (flag_instrument_functions_exclude_p): Re-define as
1826           an externally called function.
1827           (gimplify_function_tree): Delete code that implemented
1828           call to UPC's language specific function instrumentation hook.
1829         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1830           (prepare_gimple_addressable): Delete extern definition;
1831           revert to trunk's definition.
1832         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1833           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1834         * c-family/c-gimplify.c: Revert to trunk.
1835         * cp/cp-gimplify.c: Revert to trunk.
1836         * cp/cp-tree.h: Revert to trunk.
1837         * explow.c: Revert to trunk.
1838         * langhooks.c: Revert to trunk.
1839         * libfuncs.h: Revert to trunk.
1840         * objc/objc-act.c: Revert to trunk.
1842 2011-06-30  Gary Funck  <gary@intrepid.com>
1844         * c-family/c.opt: Bring options definitions up-to-date
1845         with respect to changes made in the trunk.
1847 2011-06-29  Gary Funck  <gary@intrepid.com>
1849         Merge trunk version 175584 into gupc branch.
1851 2011-06-13  Gary Funck  <gary@intrepid.com>
1853 libcpp/
1854         * include/cpplib.h (enum c_lang):
1855         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1856         This keeps all the "C" variants together.
1857         * init.c (lang_defaults): Add an entry for UPC.
1859 2011-06-09  Gary Funck  <gary@intrepid.com>
1861         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1862         a 32-bit target, the size expression overflowed, the result was
1863         error_mark_node, and an ICE was triggered on an attempt to evaluate
1864         C_TYPE_VARIABLE_SIZE() on the error node.
1865         (upc_blocksizeof_expr, upc_blocksizeof_type,
1866         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1867         Make similar changes to avoid further processing of error_mark_node.
1869 2011-06-07  Gary Funck  <gary@intrepid.com>
1871         * sel-sched.c (move_op): Incorporate the following
1872         patch to eliminate ICE at -O3 on IA64/Altix.
1874 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1876         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1877         code_motion_path_driver returned 0 or 1.
1878         (sel_region_finish): Clear h_d_i_d.
1880 2011-06-02  Gary Funck  <gary@intrepid.com>
1882         Merge trunk version 174558 into gupc branch.
1884 2011-05-30  Gary Funck  <gary@intrepid.com>
1886         * configure.ac: Make the default order of the virtual
1887           address field in a UPC pointer-to-shared to be "first".
1888           This reverts to the previous setting, and is a short term
1889           measure to work around a bug found on the IA64,
1890           where vaddr=last led to incorrect code generation.
1891           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1892           in AC_DEFINE(), to agree with recent changes in files
1893           that reference this define.
1894           configure, config.in: Regenerate.
1896 2011-05-26  Gary Funck  <gary@intrepid.com>
1898         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1899           configure: Regenerate.
1901         * ../fixincludes/fixincl.x: Revert to trunk.
1902           This file is auto-generated, and should not be merged.
1904 2011-05-18  Gary Funck  <gary@intrepid.com>
1906         Merge trunk version 173845 into gupc branch.
1908 2011-05-17  Gary Funck  <gary@intrepid.com>
1910         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1911           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1913         * c-family/c-pragma.c: Remove conditional compilation
1914           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1915           Test 'compiling_upc' when compiling to determine if
1916           the "upc" and "pupc" pragmas should be registered.
1918         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1919           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1920           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1921           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1922           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1923           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1924           Move these target-dependent definitions from config/upc-conf.h
1925           to here.
1927         * configure.ac: Improve the logic for UPC-related options.
1928           Delete references to pre-processor definitions that have
1929           been moved to "upc/upc-pts.h".
1931         * configure, config.in: Regenerate.
1933         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1934           to trunk.  This substitution variable was used to
1935           configure the representation-specific versions of
1936           the tree rewrites that operate on UPC pointer-to-shared
1937           types and objects.
1939         * c-parser.c (c_parser_upc_forall_statement): Remove
1940           reference to UPC_FORALL_DEPTH_NAME, and call
1941           newly defined upc_rts_forall_depth_var() instead.
1943         * config/upc-config.h: Delete. Various definitions
1944           moved to "upc/upc-rts-names.h", "defaults.h", and
1945           "upc/upc-pts.h".
1947         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1948           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1949           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1950           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1951           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1952           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1953           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1954           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1955           New.  Document UPC target macros.
1956           doc/tm.texi: Regenerate.
1958 2011-05-07  Gary Funck  <gary@intrepid.com>
1960         * ../configure.ac: Disable build of libupc
1961           on non POSIX hosted systems.  Use AS_HELP_STRING
1962           to define messages.  Remove 'word-pair' as a
1963           possible --with-upc-pts UPC pointer-to-shared
1964           representation.
1966         * ../configure: Regenerate.
1968         * configure.ac: Use AS_HELP_STRING to define messages.
1969           Remove 'word-pair' as a possible --with-upc-pts
1970           UPC pointer-to-shared representation.
1971           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1972           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1974         * configure: Regenerate.
1976         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1977           definition.
1979         * ChangeLog.upc: Fix some typos.
1981 2011-05-07  Gary Funck  <gary@intrepid.com>
1983         * ../maintainer-scripts/gcc_release: Add "upc"
1984           as one of the released languages.
1986 2011-05-06  Gary Funck  <gary@intrepid.com>
1988         Eliminate compilation warnings, by fixing
1989         #include's and updating function prototypes.
1991         * c-family/c-cppbuiltin.c: Include c-upc.h.
1993         * optabs.c (gen_libfunc): Change type of 'suffix'
1994           parameter to conform with prototype.
1996         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
1997           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
1998           hook used by UPC.
2000         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2001           the prototype.
2003         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2004           argument values to cp_gimplify_expr.
2006         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2007           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
2008           pre-processor definitions that are no longer
2009           needed to build the 'upc' command (upc-cmd.c)
2010           because the linker specs. defined in libupc
2011           take care of linking in the needed libraries.
2013         * c-parser.c (c_parser_upc_forall_statement):
2014           initialize affinity_loc to avoid "maybe unused" warning.
2015           (c_parser_upc_sync_statement): Remove un-needed
2016           'ret' variable.  Cast return value from
2017           'upc_build_sync_stmt' to 'void' to avoid
2018           compile-time warning.
2020         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2021           integer constant, not a string.  Range is restricted
2022           to maximum positive 32-bit integer (2+ billion) to
2023           fit in with the use of 'int' in the front-end's
2024           switch handling logic.
2026 2011-05-06  Gary Funck  <gary@intrepid.com>
2028         Upgrade c-family source files to conform with modularity
2029         improvements.  Mainly, remove #include of c-tree.h in files
2030         under c-family, and define a new UPC-specific #include file,
2031         c-upc.h, and use it.
2033         * c-family/stub-upc.c: Remove #include of c-tree.h and
2034           upc/upc-act.h.  Replace with #include of c-common.h
2035           and c-upc.h.
2036           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2037           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2038           upc_localsizeof_expr, upc_localsizeof_type,
2039           upc_shared_type_p): Delete.
2041         * c-family/c-opts.c: Add #include of c-upc.h
2043         * c-family/c-common.c: Remove #include of c-tree.h and
2044           add #include of c-upc.h.
2046         * c-family/c-upc.h: New. Define API for UPC-specific functions
2047           (mostly implemented in upc/upc-act.c).
2049         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2050           Remove extern definitions.
2052         * c-family/c-pragma.c: Remove #include of c-tree.h.
2053           Add #include of c-upc.h.
2055         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
2056           c-tree.h.
2057           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
2058           upc/upc-act.c, and define as a macro.
2059           (expand_affinity_test): Remove unused external definition.
2060           (build_upc_unshared_type): Add external definition.
2061           (upc_shared_type_p): Remove external definition.
2063         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2065         * dojump.c: Remove #include of c-tree.h.
2067         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2068           and move to tree.h.
2069           (count_upc_threads_refs, is_multiple_of_upc_threads,
2070           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2071           upc_build_shared_var_addr, upc_build_sync_stmt,
2072           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2073           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2074           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2075           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2076           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2077           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2078           set_upc_consistency_mode, get_upc_consistency_mode,
2079           push_upc_consistency_mode, pop_upc_consistency_mode,
2080           get_upc_pupc_mode):
2081           Move external definitions to c-family/c-upc.h.
2082           (upc_blocksizeof_type, upc_localsizeof_type,
2083           upc_elemsizeof_type): Remove external definitions;
2084           these functions were moved to c-parser.c.
2086         * c-decl.c: Add #include of c-upc.h.
2088         * c-typeck.c: Add #include of c-upc.h.
2090         * c-convert.c: Add #include of c-upc.h.
2092         * ChangeLog.upc: Fix typo.
2094         * Makefile.in: Add references to c-family/c-upc.h, everywhere
2095           there is a reference to c-family/c-objc.h.
2096           Remove extraneous reference to upc-act.h.
2098         * c-parser.c: Add #include of c-upc.h.
2099           (upc_blocksizeof_expr, upc_blocksizeof_type,
2100           upc_elemsizeof_expr, upc_elemsizeof_type,
2101           upc_localsizeof_expr, upc_localsizeof_type):
2102           Move from upc/upc-act.c.
2104         * tree.c (build_upc_unshared_type): New.
2105           Move upc_get_unshared_type from upc/upc-act.c and rename
2106           to build_upc_unshared_type.
2107           c-family/c-common.c (pointer_int_sum): refer to renamed
2108           build_upc_unshared_type function.
2109           c-convert.c (convert): Ditto.
2110           convert.c (convert_to_pointer): Ditto.
2111           c-typeck.c (build_unary_op, build_modify_expr,
2112           really_start_incremental_init): Ditto.
2113           gimplify.c (create_tmp_var_raw): Ditto.
2114           tree.c (build1_stat): Ditto.
2115           tree.h (upc_get_unshared_type): Rename to
2116           build_upc_unshared_type.
2118 2011-05-06  Gary Funck  <gary@intrepid.com>
2120         Merge trunk version 173471 into gupc branch.
2122 2011-05-05  Gary Funck  <gary@intrepid.com>
2124         Make changes that bring the GUPC branch more closely in sync.
2125         with the GCC trunk.  Revert any fixes that are not UPC-specific.
2126         Remove gratuitous re-formatting.
2128         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2129           This file should have been removed in a previous merge
2130           with the trunk.
2131         * ../configure.ac: Remove Cray Catamount/CNL support.
2132         * ../configure: Regenerate.
2133         * ../config.sub: Remove Cray Catamount/CNL support.
2134         * config.gcc: Remove Cray Catamount/CNL support.
2135         * ../maintainer-scripts/gcc_release: Revert to trunk.
2136         * c-family/c-common.h: Define parse_optimize_options.  Its definition
2137           was missed in a previous merge with the trunk.
2138         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2139           procedure.
2140         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2141           in addition to ARRAY_TYPE.
2142         * c-typeck.c: Remove an extra newline character.
2143         * varasm.c: Revert a fix that improved an error message
2144           when TLS common data is unimplemented.
2145         * varasm.c: Revert a gcc_assert that had been added which
2146           checked for a null DECL_SIZE_UNIT field.
2147         * emultls.c: Revert to trunk. Remove possible fix.
2148         * Makefile.in: Revert extra blank line that is present
2149           in the trunk version.
2150         * Makefile.in: Revert a fix that handled long shell
2151           argument lists for plugin headers.
2152         * config/ia64/ia64.opt: Revert an option setting
2153           that increased the default TLS address range.
2154         * config/ia64/crtbegin.asm: Revert to trunk.
2155           Removes an extra newline character.
2156         * ChangeLog.upc: Spell check.
2158 2011-05-03  Gary Funck  <gary@intrepid.com>
2160         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2161           (c_apply_type_quals_to_decl): Ditto.
2162         * c-family/c-common.h: Ditto.
2163         * dojump.c: Ditto.
2164         * c-decl.c (merge_decls): Ditto.
2165         * c-typeck.c (qualify_type, default_conversion,
2166           build_component_ref, build_unary_op,
2167           c_build_qualified_type): Ditto.
2168         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2170 2011-04-29  Gary Funck  <gary@intrepid.com>
2172         * c-decl.c (finish_decl): Improve error diagnostics.
2173           (grokdeclarator): Ditto.
2175         * c-typeck.c (build_c_cast): Improve error diagnostics.
2176           (convert_for_assignment): Ditto.
2177           (build_binary_op): Ditto.
2179         * c-parser.c (c_parser_upc_forall_statement):
2180           Improve error diagnostics.
2182         * convert.c (convert_to_integer):  Improve error diagnostics.
2184 2011-04-24  Gary Funck  <gary@intrepid.com>
2186         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2187           occurred if there is an error in the barrier id
2188           expression.  Map error_mark_node into NULL.
2190 2011-04-22  Gary Funck  <gary@intrepid.com>
2192         Merge trunk version 172873 into gupc branch.
2194 2011-04-19  Gary Funck  <gary@intrepid.com>
2196         Merge trunk version 172359 into gupc branch.
2198 2011-04-14  Gary Funck  <gary@intrepid.com>
2200         * c-family/c.opt: Add UPC as a valid language for various
2201           switches where it is valid for "C", that were not updated
2202           in previous merges with trunk.
2204 2011-04-13  Gary Funck  <gary@intrepid.com>
2206         * c-family/c.opt (fupc-pre-include): New option definition.
2207         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2208           -fno-upc-pre-include is asserted.
2210 2011-04-07  Gary Funck  <gary@intrepid.com>
2212         Merge trunk version 172158 into gupc branch.
2213         to bring in the following fix.
2215 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2217         PR bootstrap/48403
2218         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2219         if old and new states differ.
2221 2011-04-06  Gary Funck  <gary@intrepid.com>
2223         Merge trunk version 171966 into gupc branch.
2225 2011-04-01  Gary Funck  <gary@intrepid.com>
2227         * tree.h (tree_base): Move UPC flag bits into bit fields
2228           located just before spare bits.  Decrement spare bits.
2229           Rename 'shared_flag' -> 'upc_shared_flag',
2230           'relaxed_flag' -> 'upc_relaxed_flag',
2231           'strict_flag' -> 'upc_strict_flag, and adjust macros
2232           that reference them accordingly.
2234 2011-04-01  Gary Funck  <gary@intrepid.com>
2236         * c-decl.c (grokdeclarator): Fix formatting of
2237           code that sets UPC block size on scalars.
2239 2011-04-01  Gary Funck  <gary@intrepid.com>
2241         * c-decl.c (grokdeclarator): Revert use of white space
2242           to match the trunk (to rationalize diffs).
2243         * c-typeck.c (convert_for_assignment): Ditto.
2244         * tree-ssa.c (useless_type_conversion_p): Ditto.
2246 2011-03-23  Gary Funck  <gary@intrepid.com>
2248         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2249           the GCC 4.6 release branch.
2251 2011-03-21  Gary Funck  <gary@intrepid.com>
2253         Merge trunk version 171202 into gupc branch.
2255 2011-03-20  Gary Funck  <gary@intrepid.com>
2257         * varasm.c: Call error() directly with a format specifier,
2258           rather than using sprintf() to format the message.
2259           This should make it easier to internationalize UPC's error messages.
2261 2011-03-20  Gary Funck  <gary@intrepid.com>
2263         * configure.ac: Fix the check for gnu ld when enabling
2264           UPC link script support.
2265           configure: Regenerate (also picks up changes from previous
2266           merge with trunk).
2268 2011-03-20  Gary Funck  <gary@intrepid.com>
2270         Move UPC start files, end files, and linker specs.
2271         into libupc.  This reduces the impact on common GCC
2272         configuration files, and ensures that these UPC-specific
2273         components are only built when the UPC language dialect is selected.
2275 gcc/
2276         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2277           linker specs. Fix typo in -fupc-debug message.
2279         * config/upc-conf.h, config/darwin.h: Move defines for
2280           UPC-related section begins/ends into libupc/config/default/
2281           upc-crt-config.h.
2283         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2284           UPC-related linker compiler specifications,
2285           accessed via %:include().
2287         * configure.ac, configure: Remove logic related to building
2288           upc-crtbegin/end. Remove config. tests for numa and cpu
2289           affinity (previously used by the 'upc' driver); these
2290           settings are now propagated by target-specific compiler
2291           specs. built by libupc.  Regenerate autoconf.
2293         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2294           linker compiler specifications, accessed via %:include().
2295           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2296           'link_upc_spec'.
2298         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2300         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2301           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2302           config/ia64/linux.h, config/mips/t-iris,
2303           config/mips/iris6.h: Revert to trunk version 167307.
2305 libgcc/
2306         * configure, configure.ac, config.host, Makefile.in:
2307           Revert to trunk version 167307.
2309 2011-02-23  Gary Funck  <gary@intrepid.com>
2311         * c-decl.c (undeclared_variable): fix typo. Inadvertently
2312         removed negation on following 'if'.
2314 2011-02-22  Gary Funck  <gary@intrepid.com>
2316         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2317         to check for the usage of certain deprecated UPC keywords.
2318         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2319         * c-tree.h (undeclared_variable): Define prototype.
2321 2011-02-12  Gary Funck  <gary@intrepid.com>
2323         * c-typeck.c: (build_c_cast, convert_for_assignment)
2324           Diagnose an attempt to convert from an integer to
2325           a pointer-to-shared as an error.  Also, fix various
2326           error messages so that they use the preferred term
2327           pointer-to-shared instead of "shared pointer".
2329 2011-02-07  Gary Funck  <gary@intrepid.com>
2331         * c-typeck.c: (convert_for_assignment)
2332           Fix typo. in error message.
2334 2011-01-23  Gary Funck  <gary@intrepid.com>
2336         * c-typeck.c: (c_build_qualified_type)
2337           derive UPC block size by calling upc_get_block_size(),
2338           to ensure that the element type of an array of an array
2339           is derived correctly.
2341 2010-12-29  Gary Funck  <gary@intrepid.com>
2343         Merge trunk version 168314 into gupc branch.
2345 2010-12-15  Gary Funck  <gary@intrepid.com>
2347         Merge trunk version 167307 into gupc branch.
2349 2010-10-19  Gary Funck  <gary@intrepid.com>
2351         * c-typeck.c: Fix typo in previous fix
2352           which led to a mis-compare for equal block sizes.
2354 2010-10-18  Gary Funck  <gary@intrepid.com>
2356         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2357           diagnosed as an error
2359           The conversion from any type (shared or not) to
2360           a shared type is likely either meaningless or an error.  This update
2361           makes any conversion to a shared type, an error.
2363 2010-10-18  Gary Funck  <gary@intrepid.com>
2365         * c-typeck.c: Fix bug: passing int to shared pointer arg.
2366           generates spurious warning
2368           Add a #define procedure that does the same thing as
2369           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
2370           this procedure to diagnose passing an integer value to a
2371           pointer-to-shared as an error.
2373 2010-10-18  Gary Funck  <gary@intrepid.com>
2375         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2376           matching routine declaration.
2378           When checking for type compatibility, shared qualified types must
2379           have the same block factor.  This check was missing from
2380           comptypes_internal().  This update adds the check for blocking
2381           factor equality.
2383 2010-10-17  Gary Funck  <gary@intrepid.com>
2385         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2386           found (-O1 -g)
2388           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2390 2010-10-17  Gary Funck  <gary@intrepid.com>
2392         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2393           45869 - [4.5/4.6 Regression] type mismatch in shift expression
2394           produces ice with -O3 and -m32.
2396           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2398 2010-10-17  Gary Funck  <gary@intrepid.com>
2400         * c-common.c: Diagnose the application of the various "*sizeof"
2401           operations on generic pointer-to-shared as a compilation error.
2403 2010-10-17  Gary Funck  <gary@intrepid.com>
2405         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2406           message regarding a function parameter being declared with a shared
2407           qualifier.
2409           The parameter's 'name' value is not defined at this point, and
2410           cannot be used in the error message.  This update removes the
2411           reference to 'name', and eliminates the segfault.
2413 2010-10-16  Gary Funck  <gary@intrepid.com>
2415         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2417           The gcc/Makefile.in rules for install-plugin had to be re-written to
2418           break up a long list of header files that exceeded the command line
2419           limitation imposed by Irix.
2421           Access functions for TFmode types had to be implemented.
2422           Apparently, this is the mode used for the SGI/MIPS port to represent
2423           "long float".
2425 2010-10-14  Gary Funck  <gary@intrepid.com>
2427         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2428           via typedef chain should not be diagnosed as an error.
2430           If the block size that is given by the typedef is equal to the block
2431           size given explicitly in the variable declaration, then do not
2432           complain.  The easiest way to make this check was to create a
2433           temporary type that is a clone of the element type and then set its
2434           block size using the given layout qualifier.  Then compare the block
2435           size of the temporary (the declaration) to the block size specified
2436           in the typedef.  This complexity is needed, because the '[*]' block
2437           size needs to be calculated, and the '[]' needs to be mapped into a
2438           zero block size.
2440 2010-10-10  Gary Funck  <gary@intrepid.com>
2442         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2443           specified
2445           The compiler properly detected the presence of two or more layout
2446           qualifiers as an error, but then hit an assertion check, because the
2447           code that followed the error expected to see a qualifier and not a
2448           layout specifier.  The fix is simple: just return immediately after
2449           detecting the error.
2451 2010-10-10  Gary Funck  <gary@intrepid.com>
2453         * c-decl.c: Improve error diagnostics for various cases of UPC
2454           shared array type declarations.
2456           Add the check for this error: "In the dynamic translation
2457           environment, THREADS may not appear in declarations of shared arrays
2458           with indefinite block size".  Also, fix up a few of the other
2459           related error diagnostics.
2461 2010-10-09  Gary Funck  <gary@intrepid.com>
2463         * c-common.c: Fix bug: segfault on incomplete array definition.
2465           This turned out to be a bit complicated.   The logic in
2466           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2467           the THREADS identifier in the case where the blocking factor has
2468           been set to indefinite ([]).  This can happen when indefinite array
2469           declarations are processed for shared arrays.  At that time, the
2470           file scope has been closed and THREADS is no longer in scope.  Some
2471           more work is needed on upc_lang_layout_decl().  It has some
2472           duplication, and notably duplicates the two branches of the if
2473           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2474           caller of this routine (layout_decl()).
2476           The method of forcing a layout qualifier of [] in the indefinite
2477           declaration handler is odd a well.  The code that just does the
2478           setting of the block factor, needs to moved into its own routine
2479           that doesn't depend upon a declspec for '[]' to be passed in, just
2480           in order to set the blocking factor to some value (in this case, 0).
2481           Also, the logic for how that shared type is constructed is strange.
2482           First the type with 0 blocking factor is set.  Then the shared
2483           qualifier is removed from the type, and then added back later.  The
2484           intermediate type has a blocking factor set, but it has no shared
2485           qualifier.  Fixing this will require some thought.  It is tempting
2486           just to make indefinite shared arrays an error, rather than forcing
2487           the dimension to be '1'.
2489           This likely fixes a serious error in the previous update to
2490           upc_lang_layout_decl(), where it didn't have the logic to set
2491           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2492           the previous update would fail on many tests.
2494 2010-10-09  Gary Funck  <gary@intrepid.com>
2496         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2497           (decl) is null, which can happen if some layout error occurred
2498           upstream.
2500 2010-10-09  Gary Funck  <gary@intrepid.com>
2502         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2503           "variable-sized" when compiled in dynamic threads.
2505           This long-standing bug is easily fixed.  Just check
2506           for the situation that the non-constant sized type is shared and
2507           that it does not have a dimension that references a multiple of
2508           threads.  If this criteria is met, then issue a meaningful
2509           diagnostic.
2511 2010-10-01  Gary Funck  <gary@intrepid.com>
2513         * configure, configure.ac: Update manual page, and bug reporting
2514           URL.
2516           Update "man" page to reflect debugging switches.  Also, some general
2517           clean up.  Change the bug reporting URL to point to gccupc.org.
2519 2010-09-27  Gary Funck  <gary@intrepid.com>
2521         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2522           the UPC forall depth count variable is not found.
2524           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2525           The compiler will generate code that references this variable in
2526           order to implement nested upc_forall semantics.  If there is a
2527           compiler build or install problem, this variable may not be found.
2528           In this case, terminate with an internal_error().
2530 2010-09-26  Gary Funck  <gary@intrepid.com>
2532         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2533           mis-diagnosed as syntax error.
2535           Fix a failure exhibited by the Berkeley test case,
2536           bug873a.upc, which has the code:
2537                double d;
2538                upc_forall (;;;d) {...} The compiler did not properly handle
2539           the empty "condition" clause, and did not recover well when it was
2540           determined that the use of a double value, "d" above, was neither a
2541           pointer-to-shared nor an integer expression.  The update implements a
2542           fix for both issues.
2544           See also: gcc/c-parser.c gcc/upc/upc-act.c
2546 2010-09-23  Gary Funck  <gary@intrepid.com>
2548         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2549           incorporated into the referencing type.
2551           This was semi-fixed a few times before.  This update fixes a few
2552           more places where the layout qualifier wasn't being propagated
2553           through typedef's properly.  What made this a bit tricky is shown in
2554           the example cited in the bug report:
2556           typedef shared [5] int A_t; A_t A[5*THREADS];
2558           In the typedef, the blocksize is being applied to a shared *scalar*,
2559           and the code was applying the blocksize only to arrays.  This update
2560           handles shared scalars correctly.
2562 2010-09-22  Gary Funck  <gary@intrepid.com>
2564         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2565           upc_forall() semantics are not implemented
2567           The checkforall test in the Berkeley harness test suite indicated
2568           that GCC/UPC was not properly implementing nested upc_forall
2569           semantics.  Nested upc_forall statements (both statically or
2570           dynamically nested) must implement their affinity clause as if it
2571           were "continue"; thus all steps in the loop must execute without
2572           regard for affinity.  To implement these semantics a global depth
2573           counter, __upc_forall_depth, is maintained by the generated code
2574           that implements upc_forall.
2576           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2577           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2578           libupc/include/upc.h libupc/smp/upc_main.c
2580 2010-09-19  Gary Funck  <gary@intrepid.com>
2582         * c-decl.c: c-decl.c: zero out the layout specifier, after
2583           processing an array type.
2585           Fix the previous fix, that moved the setting of the type's layout
2586           qualifier to the outside of the array type processing loop.  What is
2587           missing from the fix is that the layout_qualifier variable needs to
2588           be cleared after setting the type's blocksize.
2590 2010-09-19  Gary Funck  <gary@intrepid.com>
2592         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2593           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2595           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2596           the actual maximum block size.  Therefore, the message was correct,
2597           but the underlying value that was being checked was wrong.  Change
2598           the values so that they agree with the actual implementation-defined
2599           limit.
2601 2010-09-11  Gary Funck  <gary@intrepid.com>
2603         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2604           multi-dimensional shared array with dynamic threads.
2606           This declaration caused an internal compiler error when compiled
2607           with dynamic threads:
2608               shared [*] int A[THREADS][16]; The bug was discovered when
2609           compiling the RTED_UPC test suite.
2611           The fix is to process layout qualifiers after the entire array type
2612           has been built.  Otherwise, we try to calculate the blocksize on a
2613           shared array type that has not had its "size depends upon the value
2614           of THREADS" flag set.
2616           Also, added a test case.
2618           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2620 2010-07-11  Gary Funck  <gary@intrepid.com>
2622         Fix a bug where a statement in c_build_qualified_type()
2623         in the trunk had been inadvertently deleted.
2624         This bug showed up in the IA64 port, because jmpbuf's
2625         on that architecture must be 16 byte aligned, and they were not.
2626         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2628 2010-07-08  Gary Funck  <gary@intrepid.com>
2630         Make changes so that other language compilers
2631         will build and bootstrap.
2632         * c-family/c-common.c (compiling_upc, flag_upc,
2633         flag_upc_instrument, flag_upc_instrument_functions,
2634         use_upc_dwarf2_extensions): Move to stub-upc.c and
2635         upc-lang.c.
2636         * c-family/c-common.h (use_upc_dwarf2_extensions,
2637         compiling_upc): Add extern definitions - needed
2638         to compile/build other language front ends.
2639         * c-family/c.opt: Fix the spelling of ObjC.
2640         It had been incorrectly spelled as Objc.
2641         * c-family/c.opt: Add UPC for the various switches
2642         that are valid for both C and ObjC.
2643         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2644         supported options switches when compiling assembly
2645         language.
2646         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2647         flag_upc_instrument, flag_upc_instrument_functions):
2648         Remove these definitions.  They have been moved
2649         to c-family/stub-upc.c.
2650         * upc/ChangeLog: Move relevant entries
2651         to ChangeLog.upc.
2652         * c-family/stub-upc.c (compiling_upc, flag_upc,
2653         flag_upc_instrument, flag_upc_instrument_functions,
2654         use_upc_dwarf2_extensions): Moved from c-common.c
2655         * upc/upc-lang.c (compiling_upc, flag_upc,
2656         flag_upc_instrument, flag_upc_instrument_functions,
2657         use_upc_dwarf2_extensions): Moved from c-common.c
2658         * objc/objc-act.c (objc_gimplify_expr): Add additional
2659         parameters to c_gimplify_expr() call, that are used
2660         by upc's tree rewrites.
2661         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2662         * gcc/cp/lex.c (init_reswords): If not compiling
2663         UPC, then mask off the UPC keywords.
2664         * cp/Make-lang.in (C_STUB_OBJS): Use this
2665         make macro to link with c-family/stub-objc.o
2666         and c-family/stub-upc.o.
2667         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2668         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2669         * objc/Make-lang.in: Link with c-family/stub-upc.o
2670         to avoid undefined references.
2671         c-parser.c: Fix line indentation.
2672         * libcpp/include/cpplib.h: Remove CL_UPC from
2673         the list of language kinds accepted by the
2674         C preprocessor.  This is not necessary because
2675         UPC is a derivative of C99, and does not need
2676         a different language kind.
2677         * c-fmaily/c-opts.c (c_common_handle_option):
2678         Call set_std_c99() when processing the
2679         "--lang upc" switch, instead of setting the
2680         language kind to CL_UPC.
2681         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2683 2010-07-03  Gary Funck  <gary@intrepid.com>
2685         Merge trunk version 161517 into gupc branch.
2686         * gcc/stub-upc.c: Move to gcc/c-family/.
2687         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2688         Add 'unused' attributes to avoid "set, but
2689         not referenced" warnings.
2690         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2691         Likewise.
2693 2010-03-01 Gary Funck  <gary@intrepid.com>
2695         Create gupc branch from trunk version 157149.