Merge trunk version 195937 into gupc branch.
[official-gcc.git] / gcc / ChangeLog.upc
blob49cb8a82c309146c050962df1595847a2a0635f6
1 2013-02-11 Gary Funck  <gary@intrepid.com>
3         Merge trunk version 195937 into gupc branch.
5 2013-02-04 Gary Funck  <gary@intrepid.com>
7         Merge trunk version 195707 into gupc branch.
9 2013-01-28 Gary Funck  <gary@intrepid.com>
11         Merge trunk version 195502 into gupc branch.
13 2013-01-21 Gary Funck  <gary@intrepid.com>
15         Merge trunk version 195330 into gupc branch.
17 2013-01-14 Gary Funck  <gary@intrepid.com>
19         Merge trunk version 195164 into gupc branch.
21 2013-01-07 Gary Funck  <gary@intrepid.com>
23         Merge trunk version 194962 into gupc branch.
25 2012-12-24 Gary Funck  <gary@intrepid.com>
27         Merge trunk version 194709 into gupc branch.
29 2012-12-17 Gary Funck  <gary@intrepid.com>
31         Merge trunk version 194552 into gupc branch.
33 2012-12-10 Gary Funck  <gary@intrepid.com>
35         Merge trunk version 194351 into gupc branch.
37 2012-12-03 Gary Funck  <gary@intrepid.com>
39         Merge trunk version 194076 into gupc branch.
41 2012-11-30  Gary Funck  <gary@intrepid.com>
43         Released GUPC 4.8.0.2 based on version 193446.
44         Date of release: 2012-11-12.
45         * DEV-PHASE: Bump release identifier to 4.8.0-3.
46         * DATESTAMP: Bump date stamp.
48 2012-11-26 Gary Funck  <gary@intrepid.com>
50         Merge trunk version 193807 into gupc branch.
52 2012-11-20 Gary Funck  <gary@intrepid.com>
54         Merge trunk version 193672 into gupc branch.
56 2012-11-19 Gary Funck  <gary@intrepid.com>
58         Merge trunk version 193617 into gupc branch.
60 2012-11-15 Gary Funck  <gary@intrepid.com>
62         Merge trunk version 193426 into gupc branch.
64 2012-11-12  Gary Funck  <gary@intrepid.com>
66         Released GUPC 4.8.0.1 based on version 192948.
67         Date of release: 2012-10-29.
68         * DEV-PHASE: Bump release identifier to 4.8.0-2.
69         * DATESTAMP: Bump date stamp.
71 2012-11-05 Gary Funck  <gary@intrepid.com>
73         Merge trunk version 193152 into gupc branch.
75 2012-10-29 Gary Funck  <gary@intrepid.com>
77         Merge trunk version 192909 into gupc branch.
79 2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>
81         Remove unused --upc-pthreads-per-process compile switch. 
82         * c-family/c.opt: Remove --upc-pthreads-per-process switch
83         that compiler/runtime do not use.
84         * c-family/c-opts.c (c_common_handle_option): Remove support for
85         --upc-pthreads-per-process switch.
86         * c-family/c-common.c: Ditto.
87         * c-family/c-common.h: Ditto.
89 2012-10-27 Gary Funck  <gary@intrepid.com>
91         * defaults.h: fix typos and formatting in UPC-related entries.
93 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
95         Place shared initialization code into the .text
96         section instead of a separate .upc_init section.
97         * defaults.h (UPC_INIT_SECTION_NAME): Delete.
98         (UPC_INIT_BEGIN_NAME): Delete.
99         (UPC_INIT_END_NAME): Delete.
100         * doc/tm.texi.in: Ditto.
101         * doc/tm.texi: Ditto.
103 2012-10-22 Gary Funck  <gary@intrepid.com>
105         Merge trunk version 192673 into gupc branch.
107 2012-10-15 Gary Funck  <gary@intrepid.com>
109         Merge trunk version 192449 into gupc branch.
111 2012-10-08 Gary Funck  <gary@intrepid.com>
113         Merge trunk version 192198 into gupc branch.
115 2012-10-01 Gary Funck  <gary@intrepid.com>
117         Merge trunk version 191931 into gupc branch.
119 2012-09-26  Gary Funck  <gary@intrepid.com>
121         Implement support for various UPC version 1.3 specification
122         additions and changes. Deprecate support for upc_local_alloc.
123         Add support for upc_tick (wall-clock timer) library.
124         Add support for collective de-allocation functions:
125         upc_all_free and upc_all_lock_free.
126         Consult gcc/upc/ChangeLog, libgupc/ChangeLog,
127         libgupc/testsuite/libgupc.upc/intrepid/ChangeLog for details.
129 2012-09-24 Gary Funck  <gary@intrepid.com>
131         Merge trunk version 191658 into gupc branch.
133 2012-09-17  Gary Funck  <gary@intrepid.com>
135         Merge trunk version 191376 into gupc branch.
137 2012-09-10  Gary Funck  <gary@intrepid.com>
139         Merge trunk version 191141 into gupc branch.
141 2012-08-27  Gary Funck  <gary@intrepid.com>
143         Merge trunk version 190707 into gupc branch.
144         * tree.h (struct tree_base): Adjust various
145         UPC tree and type flags to refer to the
146         newly introduced u.bits field.
148 2012-08-20  Gary Funck  <gary@intrepid.com>
150         Merge trunk version 190524 into gupc branch.
151         Incorporates a fix in genoutput.c (to properly use
152         CONST_CAST) that led to build failures with
153         older versions of g++.
155 2012-08-16  Gary Funck  <gary@intrepid.com>
157         Merge trunk version 190437 into gupc branch.
158         Incorporates a fix for a build failure on the PPC
159         due to passing incorrect switches to the assembler.
160         Also, first merged trunk revision that compiles GCC
161         with the C++ compiler in the first stage.
163 2012-08-13  Gary Funck  <gary@intrepid.com>
165         Merge trunk version 190336 into gupc branch.
167 2012-08-09  Gary Funck  <gary@intrepid.com>
169         * c-family/c-common.c (c_fully_fold_internal): Do not fold
170         offsetof-like expressions when they are applied to UPC
171         shared types.
173 2012-08-06  Gary Funck  <gary@intrepid.com>
175         Merge trunk version 190173 into gupc branch.
177 2012-08-01  Gary Funck  <gary@intrepid.com>
179         Merge trunk version 190063 into gupc branch.
180         Incorporates fix for build failure on IA64.
182 2012-07-30  Gary Funck  <gary@intrepid.com>
184         Merge trunk version 189954 into gupc branch.
186 2012-07-27  Gary Funck  <gary@intrepid.com>
188         Merge trunk version 189856 into gupc branch.
189         Incorporates fix for bootstrap with a sub-set of language
190         specific source directories present.
191         * optabs.c: Revert to trunk.  Rather than defining opcodes
192         as a way of defining get/put runtime library function names,
193         generate them directly in gcc/upc/upc-genericize.c.
194         * optabs.h: Ditto.
195         * genopinit.c: Ditto.
197 2012-07-23  Gary Funck  <gary@intrepid.com>
199         Merge trunk version 189777 into gupc branch.
201 2012-07-16  Gary Funck  <gary@intrepid.com>
203         Merge trunk version 189545 into gupc branch.
205 2012-07-12  Gary Funck  <gary@intrepid.com>
207         Merge trunk version 189366 into gupc branch.
209 2012-07-05  Gary Funck  <gary@intrepid.com>
211         Merge trunk version 189274 into gupc branch.
212         Incorporates graphite build infrastructure changes.
214 2012-07-04  Gary Funck  <gary@intrepid.com>
216         Merge trunk version 189080 into gupc branch.
217         * Makefile.in: Adjust for move of C front-end files.
218         * c/Make-lang.in: Ditto.
220 2012-07-03  Gary Funck  <gary@intrepid.com>
222         Merge trunk version 189078 into gupc branch.
224 2012-06-25  Gary Funck  <gary@intrepid.com>
226         Merge trunk version 188931 into gupc branch.
228 2012-06-18  Gary Funck  <gary@intrepid.com>
230         Merge trunk version 188721 into gupc branch.
232 2012-06-11  Gary Funck  <gary@intrepid.com>
234         Merge trunk version 188380 into gupc branch.
236 2012-06-04  Gary Funck  <gary@intrepid.com>
238         Merge trunk version 188168 into gupc branch.
240 2012-05-29  Gary Funck  <gary@intrepid.com>
242         Merge trunk version 187927 into gupc branch.
244 2012-05-18  Gary Funck  <gary@intrepid.com>
246         Merge trunk version 187666 into gupc branch.
247         Incorporates fix for ICE in tree vectorization pass
248         when processing strided loads.
250 2012-05-17  Gary Funck  <gary@intrepid.com>
252         Merge trunk version 187578 into gupc branch.
254 2012-05-09  Gary Funck  <gary@intrepid.com>
256         Merge trunk version 187347 into gupc branch.
257         Incorporates fix for segfault in tree vectorization pass.
259 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
261         * testsuite/lib/upc.exp: Use gupc instead of xgupc driver.
262         Appropriate libraries and include files are added on the
263         command line to make it possible to compile with the driver
264         from the build tree.
266 2012-04-29  Nenad Vukicevic  <nenad@intrepid.com>
268         * config/rs6000/rs6000.c (rs6000_return_in_memory): Conform to
269         PPC ABI. In the UPC 'struct' pointer-to-shared representation,
270         a function returns a pointer-to-shared in memory instead
271         of in registers.
272         (rs6000_pass_by_reference): Ditto.
274 2012-04-28  Gary Funck  <gary@intrepid.com>
276         * c-decl.c (grokdeclarator): Set 'type' to error node
277         after detecting "shared auto variable" error to avoid
278         downstream complications.
279         * upc-act.c: Fix a couple of spelling errors in comments.
281 2012-04-26  Gary Funck  <gary@intrepid.com>
283         * c-family/c-pragma.c (handle_pragma_upc):
284         Fix typo in warning message.
286 2012-04-17  Gary Funck  <gary@intrepid.com>
288         Merge trunk version 186486 into gupc branch.
290 2012-04-17  Gary Funck  <gary@intrepid.com>
292         * c-family/c-pragma.c (disable_pupc_mode): Return the previous
293         value of the pupc mode.  Fixes a compile-time warning.
294         * c-family/c-pragma.c (init_pragma_pupc, get_upc_pupc_mode,
295         disable_pupc_mode, set_pupc_mode, handle_pragma_pupc):
296         Improve source formatting.
298 2012-04-09  Gary Funck  <gary@intrepid.com>
300         Merge trunk version 186243 into gupc branch.
301         Incorporates a powerpc 'ffi' fix.
303 2012-03-16  Gary Funck  <gary@intrepid.com>
305         Merge trunk version 185454 into gupc branch.
306         Incorporates a libgcc fix for builds on Darwin.
308 2012-03-13  Gary Funck  <gary@intrepid.com>
310         Merge trunk version 185278 into gupc branch.
311         * c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
312         call build_pointer_type() to apply UPC-specific qualifiers.
313         * top-level/configure.ac: factor the checking for posix hostst
314         out of the libgomp section so that it can also be used by libgupc.
315         * top-level/configure: Re-generate.
316         * DEV-PHASE: bump to 4.8.0-1.
318 2012-03-12  Gary Funck  <gary@intrepid.com>
320         * config/rs6000/rs6000.c (rs6000_function_value): Do not over-ride
321         the mode for a pointer for upc-pointer-to-shared types.
323 2012-03-04  Gary Funck  <gary@intrepid.com>
325         Merge trunk version 184900 into gupc branch.
327 2012-02-17  Gary Funck  <gary@intrepid.com>
329         Released GUPC 4.7.0.2 based on version 183992.
330         * DEV-PHASE: Bump release identifier to 4.7.0-3.
331         * DATESTAMP: Bump date stamp.
333 2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>
335         * c-family/c-pragma.c (disable_pupc_mode): New. Disable profiling
336         code generation (same as #pragma pupc off).
337         (set_pupc_mode): New. Set/restore profiling mode.
338         * c-family/c-upc.h (disable_pupc_mode): New. Prototype.
339         (set_pupc_mode): New. Prototype.
340         * upc/upc-act.c (upc_write_init_func): Disable emitting of the
341         profiling code for shared variables initialization routines.
343 2012-01-31  Gary Funck  <gary@intrepid.com>
345         Merge trunk version 183751 into gupc branch.
346         Incorporates fix for bootstrap failure on openSUSE 12.1.
348 2012-01-10  Gary Funck  <gary@intrepid.com>
350         Merge trunk version 183072 into gupc branch.
351         Incorporates libcpp __BASE_FILE__ fix.
353 2011-12-20  Nenad Vukicevic <nenad@intrepid.com>
355         * top-level/Makefile.def (flags_to_pass): Added GUPC
356         defines. Fixes the make error when upc is not specified as one
357         of the languages to build.
358         * top-level/Makefile.in: Re-generate.
360 2011-11-22  Gary Funck  <gary@intrepid.com>
362         * DEV-PHASE: "GCC UPC" -> "GNU UPC", and bump minor rev.
363         * dwarf2out.c (gen_compile_unit_die): Check for
364         the "GNU UPC" language string in lieu of "GCC UPC".
365         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Ditto.
367 2011-11-18  Gary Funck  <gary@intrepid.com>
369         Merge trunk version 181552 into gupc branch.
370         Incorporates libgcc/libunwind fix for IA64.
372 2011-11-19  Gary Funck  <gary@intrepid.com>
374         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
375         Add check for UPC when defining the language type value
376         in a traceback entry.
378 2011-11-18  Gary Funck  <gary@intrepid.com>
380         Merge trunk version 181493 into gupc branch.
381         Incorporates final fix for PR target/49992.
383 2011-11-09  Nenad Vukicevic <nenad@intrepid.com>
385         * Makefile.in (CRTSTUFF_CFLAGS): Revert the previous
386         change that converted relative include paths into absolute
387         ones, as it does not work with older version of make (3.80).
389 2011-10-27  Nenad Vukicevic <nenad@intrepid.com>
391         Apply patch for Darwin build - PR49992.
392         * top-level/configure.ac: Don't run ranlib with '-c' option for Darwin.
393         * gcc/configure.ac: Ditto.
394         * gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
395         * gcc/ada/gcc-interface/Makefile.in: Ditto.
396         * top-level/configure: Re-generate.
397         * gcc/configure: Re-genrate.
399 2011-10-26  Gary Funck  <gary@intrepid.com>
401         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
402         "libupc" to "libgupc".
403         * top-level/configure.ac: Implement support for cross-builds, and
404           adjust for rename of libupc to libgupc.
405         * top-level/Makefile.tpl: Ditto.
406         * top-level/Makefile.def: Ditto.
407         * top-level/configure: Re-generate.
408         * top-level/Makefile.in: Re-generate.
409         * top-level/contrib/gcc_update: Adjust for rename of libupc to libgupc.
410         * doc/tm.texi.in: Adjust for rename of libupc to libgupc.
411         * doc/tm.texi: Re-generate.
412         * tree-pretty-print.c (dump_block_node): Delete unused variable.
413         * gcc.c: Adjust for rename of libupc to libgupc.
414         * testsuite/lib/upc.exp: Adjust for rename of libupc to libgupc.
415         Change "GCC_UNDER_TEST" to "GUPC_UNDER_TEST".
416         Change "xupc" to "xgupc".
417         * configure.ac: Change "GCC UPC" to "GNU UPC".
418         * Makefile.in (CRTSTUFF_CFLAGS): Adjust $(INCLUDES_FOR_TARGET)
419         so that they are absolute paths.  This is needed because
420         the upc-crtstuff builds are in the libgupc library build
421         directories which are not at the same level as libgcc.
422         * config/darwin.h: Adjust for rename of libupc to libgupc.
424 2011-10-20  Gary Funck  <gary@intrepid.com>
426         Merge trunk version 180276 into gupc branch.
427         Incorporates fix for PR bootstrap/50709.
429 2011-10-20  Gary Funck  <gary@intrepid.com>
431         Merge trunk version 180246 into gupc branch.
433 2011-10-19  Gary Funck  <gary@intrepid.com>
435         Merge trunk version 180233 into gupc branch.
436         Incorporates fix for PR debug/49310 (var tracking).
438 2011-10-11  Nenad Vukicevic <nenad@intrepid.com>
440         * testsuite/lib/upc-dg.exp: Limit number of torture runs to
441         only four (O0 static/dynamic, O3 static/dynamic).
442         Detect -fupc-threads-0 as an option for dynamic threads
443         compile environment.
445 2011-10-10  Gary Funck  <gary@intrepid.com>
447         * tree.c (check_qualified_type, check_aligned_type):
448         Call tree_int_cst_equal() to compare UPC blocking factors
449         if the corresponding tree pointers are not equal.
450         * c-typeck.c (comptypes_internal, c_build_qualified_type_1): Ditto.
452 2011-10-07  Nenad Vukicevic <nenad@intrepid.com>
454         Add configuration checks for struct/packed builds so we can
455         use upc_struct_pts/upc_packed_pts selectors in the testsuite.
456         * testsuite/lib/target-supports.exp
457         (check_effective_target_upc_struct_pts): New.
458         (check_effective_target_upc_packed_pts): New.
460 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
462         Add to FLAGS the flags needed to disable inlining of
463         UPC run-time access routines.
464         * testsuite/lib/target-supports.exp
465         (add_options_for_upc_library_calls): New.
467 2011-09-15  Gary Funck  <gary@intrepid.com>
469         Fix ICE involving shared bit field accesses.
470         * tree.c (build3_stat): Propagate TEEE_SHARED()
471         and TREE_STRICT() and TREE_RELAXED() flags, if applicable.
473 2011-09-13  Gary Funck  <gary@intrepid.com>
475         Merge trunk version 178795 into gupc branch.
476         Incorporates fix to PR bootstrap/50010 for x86-32.
478 2011-09-08  Gary Funck  <gary@intrepid.com>
480         Merge trunk version 178557 into gupc branch.
482 2011-09-07  Gary Funck  <gary@intrepid.com>
484         Ensure that UPC pointer-to-shared type alignment is
485         propagated to the final type.  Revert to long-standing
486         alignment policy: twice the size of a "C" pointer.
487         * tree.c (build_pointer_type): Propagate the alignment
488         of the UPC pointer-to-shared representation type
489         into the newly built pointer type.
491 2011-08-30  Gary Funck  <gary@intrepid.com>
493         * tree.h (check_qualified_type): Change 'const_tree'
494         argument types back to 'tree' to avoid complaints
495         of assignment drops qualifiers for invocations of the
496         newly implemented TYPE_BLOCK_FACTOR() macro, which
497         invokes hash functions with 'tree' pointer values that
498         are not const qualified.
499         * tree.c (check_qualified_type, check_aligned_type): Ditto.
500         * c-typeck.c (comptypes_internal): Ditto.
502 2011-08-29  Gary Funck  <gary@intrepid.com>
504         Fixes for regressions noted running "make check"
505         versus GCC trunk.
506         * fold-const.c (fold_unary_loc): Execute UPC-specific
507         checks for a cast-of-a-cast, only if one of the
508         operands is a UPC pointer-to-shared value.
509         * opts.c (print_specific_help):  Fix a comparison
510         in an assert that checks that there are enough
511         bits reserved for the number of languages defined
512         in the .opt files.
514 2011-08-29  Gary Funck  <gary@intrepid.com>
516         Implement a hash table to record UPC block factors.
517         * c-family/stub-upc.c (upc_block_factor_insert,
518         upc_block_factor_lookup): New dummy stub procedures.
519         * c-family/c-common.c (c_sizeof_or_alignof_type):
520         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
521         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
522         to copy (hashed) UPC blocking factor.
523         (set_type_quals): Likewise.
524         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
525         TYPE_HAS_THREADS_FACTOR().
526         (type_common.block_factor): Delete.
527         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
528         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
529         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
530         UPC blocking factors greater than one.
531         * dwarf2out.c (modified_type_die): Re-implement
532         logic that records UPC blocking factor in the generated
533         DWARF2 debugging information.
534         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
535         TYPE_HAS_THREADS_FACTOR().
536         * c-decl.c (finish_decl, grokdeclarator):
537         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
538         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
539         used by UPC, and print UPC-specific information.
541 2011-08-28  Gary Funck  <gary@intrepid.com>
543         Re-work the type machinery to fully support and to unify support
544         for the UPC layout qualifier (blocking factor).
545         * c-family/stub-upc.c (upc_set_block_factor): Delete.
546           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
547           and update prototype.
548         * c-family/c-common.c (complete_array_type): call newly
549           defined c_build_qualified_type_1() instead of
550           upc_set_block_factor().
551         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
552           upc_apply_layout_qualifier() and update prototype.
553           (upc_set_block_factor): Delete prototype.
554         * c-family/c-common.h (c_build_qualified_type): redefine
555           as a pre-processor macro that invokes c_build_qualified_type_1()
556           with a null UPC layout qualifier.
557           (c_build_qualified_type_1): New.  Add layout qualifier argument
558           to old c_build_qualified_type() prototype.
559         * tree.c (set_type_quals, check_qualified_type):
560           Add layout qualifier as argument.
561           (check_aligned_type): Add check for UPC block factor equality.
562           (get_qualified_type_1): Rename from get_qualified_type() and
563           add layout qualifier as argument.
564           (build_qualified_type_1): Rename from build_qualified_type() and
565           add layout qualifier as argument.
566         * tree.h (check_qualified_type): Add layout qualifier as argument
567           to the prototype.
568           (get_qualified_type): Re-define as a as a pre-processor macro
569           that invokes get_qualified_type_1() with a null
570           UPC layout qualifier.
571           (get_qualified_type_1): Rename from get_qualified_type() and
572           add layout qualifier as argument.
573         * cp/tree.c (c_build_qualified_type_1): Rename from
574           c_build_qualified_type() and add (unused) layout qualifier
575           argument.
576         * c-decl.c (finish_decl): re-format long error messages.
577           (grokdeclarator): Re-work the logic so that it calls
578           upc_grok_layout_qualifier() to handle the UPC layout
579           qualifier, if present.
580         * c-typeck.c (qualify_type, common_pointer_type,
581           build_component_ref): Re-work the logic so that it calls
582           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
583           if present.
584           (c_build_qualified_type_1): Rename from c_build_qualified_type()
585           and add layout qualifier argument.
586         * print_tree.c (print_node): Re-format a long line.
588 2011-08-26  Gary Funck  <gary@intrepid.com>
590         Merge trunk version 177949 into gupc branch.
591         * c-family/c-common.h (enum rid): Bump the number of type modifiers
592           in the comment.
593         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
594           to add new rliterals column value.
596 2011-08-26  Gary Funck  <gary@intrepid.com>
598         * convert.c (convert_to_integer): Fix the check for the
599           difference between two UPC pointers-to-shared values.
601 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
603         * configure.ac: Fix the name for --with-upc-pts-packed-bits
604           option. Support --with-upc-packed-bits as deprecated. Fix the code to
605           correctly check packed bits.
606         * configure: Re-generate.
608 2011-08-16  Gary Funck  <gary@intrepid.com>
610         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
611           the barrier id expression is not an integer expression.
613 2011-08-12  Gary Funck  <gary@intrepid.com>
615         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
616           (revert to trunk).
617         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
618           Set mode of UPC pointer-to-shared rep. to an
619           integral mode of size at least as large as the
620           size of the representation's struct type.
622 2011-08-12  Gary Funck  <gary@intrepid.com>
624         Rework/simplify the UPC genericize pass.
625         * c-family/stub-upc.c (upc_apply_layout_qualifier,
626           upc_build_pointer_type): New.
627           (upc_set_block_factor): Adjust to new calling sequence.
628           (upc_build_shared_var_addr): Delete.
629         * c-family/c-common.c (complete_array_type): Adjust call
630           to upc_set_block_factor().
631         * c-family/c-upc.h (upc_apply_layout_qualifier,
632           upc_build_pointer_type): New.
633           (upc_build_shared_var_addr): Delete.
634           (upc_set_block_factor): Adjust to new calling sequence.
635         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
636         * c-decl.c (grokdeclarator): Call newly defined
637           upc_apply_layout_qualifier() instead of upc_set_block_factor().
638         * c-decl.c (grokdeclarator): Split long UPC-related error
639           messages into two lines.
640         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
641           directly.  Revert that change to trunk. (upc_genericize() will
642           handle lowering the expressions that take the address of a
643           UPC variable).
644         * config/i386/i386.c (ix86_promote_function_mode): For UPC
645           pointers-to-shared, return the type mode of the UPC pointer-to-shared
646           representation type.
648 2011-08-10  Gary Funck  <gary@intrepid.com>
650         Implement additional fixes for recent merge with trunk.
651         * explow.c (promote_mode): Do not attempt to promote
652           the mode for UPC pointer-to-shared types.
653         * config/i386/i386.c (function_value_64): Ditto.
655 2011-08-07  Gary Funck  <gary@intrepid.com>
657         Merge trunk version 177548 into gupc branch.
658         * config/i386/i386.c (ix86_promote_function_mode):
659           Do not promote UPC pointers-to-shared to Pmode.
660         * c-family/c-ommon.c (pointer_int_sum):
661           Also check the pointer operand, rather than just
662           its type, when making the decision to derive
663           the equivalent unshared type.
664         * tree.c (build2_stat): If the type of the result
665           passed in as an argument is a UPC shared type,
666           derive the unshared equivalent when calculating
667           the result type of the node.
669 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
671         * config/darwin.c: Disable var_tracking option
672           on -O0 as it is supposed to run only when optimization
673           is applied. See GCC bug 49743.
675 2011-07-06  Gary Funck  <gary@intrepid.com>
677         Re-implement the pass that lowers trees generated by
678         the UPC front-end into GENERIC.  Previously this was
679         done within the gimplification framework, but this
680         required that gimplification be run before inlining
681         and various other passes, which did not fit in well
682         with the current design of the middle-end passes.
683         Now, the lowering is done by a newly defined language
684         specific genericize hook.  With this change, we are
685         are able to undo some extensions made to the gimplify
686         logic, and thus can revert several files to trunk.
688         * c-decl.c: Add a check for UPC deprecated names which
689           may appear as undefined function names.
690         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
691           LTI_upc_getaddr): Remove definitions of unused UPC
692           library function names.  These were defined back when
693           the libfunc interface was used to call these routines.
694         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
695           in UPC lowering (genericize) pass.
696         * langhooks.h (gimplify_expr): Revert to trunk's definition.
697           (instrument_func): Delete this hook.  Now handled in
698           upc_genericize().
699         * tree-pass.h: Revert to trunk.
700         * c-typeck.c (build_unary_op): Adjust reference to
701           upc_genericize() in a comment.
702         * gimplify.c (create_tmp_var_raw): Delete logic that
703           was converting UPC shared types into unshared types
704           to be used for temporaries.  Now handled in  upc_genericize().
705           Replace with an assertion check.
706           (prepare_gimple_addressable): Revert to trunk's definition.
707           No longer needed as an externally called function.
708           (flag_instrument_functions_exclude_p): Re-define as
709           an externally called function.
710           (gimplify_function_tree): Delete code that implemented
711           call to UPC's language specific function instrumentation hook.
712         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
713           (prepare_gimple_addressable): Delete extern definition;
714           revert to trunk's definition.
715         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
716           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
717         * c-family/c-gimplify.c: Revert to trunk.
718         * cp/cp-gimplify.c: Revert to trunk.
719         * cp/cp-tree.h: Revert to trunk.
720         * explow.c: Revert to trunk.
721         * langhooks.c: Revert to trunk.
722         * libfuncs.h: Revert to trunk.
723         * objc/objc-act.c: Revert to trunk.
725 2011-06-30  Gary Funck  <gary@intrepid.com>
727         * c-family/c.opt: Bring options definitions up-to-date
728         with respect to changes made in the trunk.
730 2011-06-29  Gary Funck  <gary@intrepid.com>
732         Merge trunk version 175584 into gupc branch.
734 2011-06-13  Gary Funck  <gary@intrepid.com>
736 libcpp/
737         * include/cpplib.h (enum c_lang):
738         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
739         This keeps all the "C" variants together.
740         * init.c (lang_defaults): Add an entry for UPC.
742 2011-06-09  Gary Funck  <gary@intrepid.com>
744         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
745         a 32-bit target, the size expression overflowed, the result was
746         error_mark_node, and an ICE was triggered on an attempt to evaluate
747         C_TYPE_VARIABLE_SIZE() on the error node.
748         (upc_blocksizeof_expr, upc_blocksizeof_type,
749         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
750         Make similar changes to avoid further processing of error_mark_node.
752 2011-06-07  Gary Funck  <gary@intrepid.com>
754         * sel-sched.c (move_op): Incorporate the following
755         patch to eliminate ICE at -O3 on IA64/Altix.
757 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
759         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
760         code_motion_path_driver returned 0 or 1.
761         (sel_region_finish): Clear h_d_i_d.
763 2011-06-02  Gary Funck  <gary@intrepid.com>
765         Merge trunk version 174558 into gupc branch.
767 2011-05-30  Gary Funck  <gary@intrepid.com>
769         * configure.ac: Make the default order of the virtual
770           address field in a UPC pointer-to-shared to be "first".
771           This reverts to the previous setting, and is a short term
772           measure to work around a bug found on the IA64,
773           where vaddr=last led to incorrect code generation.
774           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
775           in AC_DEFINE(), to agree with recent changes in files
776           that reference this define.
777           configure, config.in: Regenerate.
779 2011-05-26  Gary Funck  <gary@intrepid.com>
781         * configure.ac: Fix typo when referring to $upc_vaddr_order.
782           configure: Regenerate.
784         * ../fixincludes/fixincl.x: Revert to trunk.
785           This file is auto-generated, and should not be merged.
787 2011-05-18  Gary Funck  <gary@intrepid.com>
789         Merge trunk version 173845 into gupc branch.
791 2011-05-17  Gary Funck  <gary@intrepid.com>
793         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
794           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
796         * c-family/c-pragma.c: Remove conditional compilation
797           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
798           Test 'compiling_upc' when compiling to determine if
799           the "upc" and "pupc" pragmas should be registered.
801         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
802           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
803           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
804           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
805           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
806           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
807           Move these target-dependent definitions from config/upc-conf.h
808           to here.
810         * configure.ac: Improve the logic for UPC-related options.
811           Delete references to pre-processor definitions that have
812           been moved to "upc/upc-pts.h".
814         * configure, config.in: Regenerate.
816         * Makefile.in (UPC_PTS_REP): Remove definition and revert
817           to trunk.  This substitution variable was used to
818           configure the representation-specific versions of
819           the tree rewrites that operate on UPC pointer-to-shared
820           types and objects.
822         * c-parser.c (c_parser_upc_forall_statement): Remove
823           reference to UPC_FORALL_DEPTH_NAME, and call
824           newly defined upc_rts_forall_depth_var() instead.
826         * config/upc-config.h: Delete. Various definitions
827           moved to "upc/upc-rts-names.h", "defaults.h", and
828           "upc/upc-pts.h".
830         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
831           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
832           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
833           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
834           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
835           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
836           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
837           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
838           New.  Document UPC target macros.
839           doc/tm.texi: Regenerate.
841 2011-05-07  Gary Funck  <gary@intrepid.com>
843         * ../configure.ac: Disable build of libupc
844           on non POSIX hosted systems.  Use AS_HELP_STRING
845           to define messages.  Remove 'word-pair' as a
846           possible --with-upc-pts UPC pointer-to-shared
847           representation.
849         * ../configure: Regenerate.
851         * configure.ac: Use AS_HELP_STRING to define messages.
852           Remove 'word-pair' as a possible --with-upc-pts
853           UPC pointer-to-shared representation.
854           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
855           (UPC_MAX_BLOCK_SIZE): Correct the default value.
857         * configure: Regenerate.
859         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
860           definition.
862         * ChangeLog.upc: Fix some typos.
864 2011-05-07  Gary Funck  <gary@intrepid.com>
866         * ../maintainer-scripts/gcc_release: Add "upc"
867           as one of the released languages.
869 2011-05-06  Gary Funck  <gary@intrepid.com>
871         Eliminate compilation warnings, by fixing
872         #include's and updating function prototypes.
874         * c-family/c-cppbuiltin.c: Include c-upc.h.
876         * optabs.c (gen_libfunc): Change type of 'suffix'
877           parameter to conform with prototype.
879         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
880           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
881           hook used by UPC.
883         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
884           the prototype.
886         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
887           argument values to cp_gimplify_expr.
889         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
890           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
891           pre-processor definitions that are no longer
892           needed to build the 'upc' command (upc-cmd.c)
893           because the linker specs. defined in libupc
894           take care of linking in the needed libraries.
896         * c-parser.c (c_parser_upc_forall_statement):
897           initialize affinity_loc to avoid "maybe unused" warning.
898           (c_parser_upc_sync_statement): Remove un-needed
899           'ret' variable.  Cast return value from
900           'upc_build_sync_stmt' to 'void' to avoid
901           compile-time warning.
903         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
904           integer constant, not a string.  Range is restricted
905           to maximum positive 32-bit integer (2+ billion) to
906           fit in with the use of 'int' in the front-end's
907           switch handling logic.
909 2011-05-06  Gary Funck  <gary@intrepid.com>
911         Upgrade c-family source files to conform with modularity
912         improvements.  Mainly, remove #include of c-tree.h in files
913         under c-family, and define a new UPC-specific #include file,
914         c-upc.h, and use it.
916         * c-family/stub-upc.c: Remove #include of c-tree.h and
917           upc/upc-act.h.  Replace with #include of c-common.h
918           and c-upc.h.
919           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
920           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
921           upc_localsizeof_expr, upc_localsizeof_type,
922           upc_shared_type_p): Delete.
924         * c-family/c-opts.c: Add #include of c-upc.h
926         * c-family/c-common.c: Remove #include of c-tree.h and
927           add #include of c-upc.h.
929         * c-family/c-upc.h: New. Define API for UPC-specific functions
930           (mostly implemented in upc/upc-act.c).
932         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
933           Remove extern definitions.
935         * c-family/c-pragma.c: Remove #include of c-tree.h.
936           Add #include of c-upc.h.
938         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
939           c-tree.h.
940           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
941           upc/upc-act.c, and define as a macro.
942           (expand_affinity_test): Remove unused external definition.
943           (build_upc_unshared_type): Add external definition.
944           (upc_shared_type_p): Remove external definition.
946         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
948         * dojump.c: Remove #include of c-tree.h.
950         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
951           and move to tree.h.
952           (count_upc_threads_refs, is_multiple_of_upc_threads,
953           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
954           upc_build_shared_var_addr, upc_build_sync_stmt,
955           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
956           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
957           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
958           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
959           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
960           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
961           set_upc_consistency_mode, get_upc_consistency_mode,
962           push_upc_consistency_mode, pop_upc_consistency_mode,
963           get_upc_pupc_mode):
964           Move external definitions to c-family/c-upc.h.
965           (upc_blocksizeof_type, upc_localsizeof_type,
966           upc_elemsizeof_type): Remove external definitions;
967           these functions were moved to c-parser.c.
969         * c-decl.c: Add #include of c-upc.h.
971         * c-typeck.c: Add #include of c-upc.h.
973         * c-convert.c: Add #include of c-upc.h.
975         * ChangeLog.upc: Fix typo.
977         * Makefile.in: Add references to c-family/c-upc.h, everywhere
978           there is a reference to c-family/c-objc.h.
979           Remove extraneous reference to upc-act.h.
981         * c-parser.c: Add #include of c-upc.h.
982           (upc_blocksizeof_expr, upc_blocksizeof_type,
983           upc_elemsizeof_expr, upc_elemsizeof_type,
984           upc_localsizeof_expr, upc_localsizeof_type):
985           Move from upc/upc-act.c.
987         * tree.c (build_upc_unshared_type): New.
988           Move upc_get_unshared_type from upc/upc-act.c and rename
989           to build_upc_unshared_type.
990           c-family/c-common.c (pointer_int_sum): refer to renamed
991           build_upc_unshared_type function.
992           c-convert.c (convert): Ditto.
993           convert.c (convert_to_pointer): Ditto.
994           c-typeck.c (build_unary_op, build_modify_expr,
995           really_start_incremental_init): Ditto.
996           gimplify.c (create_tmp_var_raw): Ditto.
997           tree.c (build1_stat): Ditto.
998           tree.h (upc_get_unshared_type): Rename to
999           build_upc_unshared_type.
1001 2011-05-06  Gary Funck  <gary@intrepid.com>
1003         Merge trunk version 173471 into gupc branch.
1005 2011-05-05  Gary Funck  <gary@intrepid.com>
1007         Make changes that bring the GUPC branch more closely in sync.
1008         with the GCC trunk.  Revert any fixes that are not UPC-specific.
1009         Remove gratuitous re-formatting.
1011         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
1012           This file should have been removed in a previous merge
1013           with the trunk.
1014         * ../configure.ac: Remove Cray Catamount/CNL support.
1015         * ../configure: Regenerate.
1016         * ../config.sub: Remove Cray Catamount/CNL support.
1017         * config.gcc: Remove Cray Catamount/CNL support.
1018         * ../maintainer-scripts/gcc_release: Revert to trunk.
1019         * c-family/c-common.h: Define parse_optimize_options.  Its definition
1020           was missed in a previous merge with the trunk.
1021         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
1022           procedure.
1023         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
1024           in addition to ARRAY_TYPE.
1025         * c-typeck.c: Remove an extra newline character.
1026         * varasm.c: Revert a fix that improved an error message
1027           when TLS common data is unimplemented.
1028         * varasm.c: Revert a gcc_assert that had been added which
1029           checked for a null DECL_SIZE_UNIT field.
1030         * emultls.c: Revert to trunk. Remove possible fix.
1031         * Makefile.in: Revert extra blank line that is present
1032           in the trunk version.
1033         * Makefile.in: Revert a fix that handled long shell
1034           argument lists for plugin headers.
1035         * config/ia64/ia64.opt: Revert an option setting
1036           that increased the default TLS address range.
1037         * config/ia64/crtbegin.asm: Revert to trunk.
1038           Removes an extra newline character.
1039         * ChangeLog.upc: Spell check.
1041 2011-05-03  Gary Funck  <gary@intrepid.com>
1043         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
1044           (c_apply_type_quals_to_decl): Ditto.
1045         * c-family/c-common.h: Ditto.
1046         * dojump.c: Ditto.
1047         * c-decl.c (merge_decls): Ditto.
1048         * c-typeck.c (qualify_type, default_conversion,
1049           build_component_ref, build_unary_op,
1050           c_build_qualified_type): Ditto.
1051         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
1053 2011-04-29  Gary Funck  <gary@intrepid.com>
1055         * c-decl.c (finish_decl): Improve error diagnostics.
1056           (grokdeclarator): Ditto.
1058         * c-typeck.c (build_c_cast): Improve error diagnostics.
1059           (convert_for_assignment): Ditto.
1060           (build_binary_op): Ditto.
1062         * c-parser.c (c_parser_upc_forall_statement):
1063           Improve error diagnostics.
1065         * convert.c (convert_to_integer):  Improve error diagnostics.
1067 2011-04-24  Gary Funck  <gary@intrepid.com>
1069         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
1070           occurred if there is an error in the barrier id
1071           expression.  Map error_mark_node into NULL.
1073 2011-04-22  Gary Funck  <gary@intrepid.com>
1075         Merge trunk version 172873 into gupc branch.
1077 2011-04-19  Gary Funck  <gary@intrepid.com>
1079         Merge trunk version 172359 into gupc branch.
1081 2011-04-14  Gary Funck  <gary@intrepid.com>
1083         * c-family/c.opt: Add UPC as a valid language for various
1084           switches where it is valid for "C", that were not updated
1085           in previous merges with trunk.
1087 2011-04-13  Gary Funck  <gary@intrepid.com>
1089         * c-family/c.opt (fupc-pre-include): New option definition.
1090         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
1091           -fno-upc-pre-include is asserted.
1093 2011-04-07  Gary Funck  <gary@intrepid.com>
1095         Merge trunk version 172158 into gupc branch.
1096         to bring in the following fix.
1098 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1100         PR bootstrap/48403
1101         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1102         if old and new states differ.
1104 2011-04-06  Gary Funck  <gary@intrepid.com>
1106         Merge trunk version 171966 into gupc branch.
1108 2011-04-01  Gary Funck  <gary@intrepid.com>
1110         * tree.h (tree_base): Move UPC flag bits into bit fields
1111           located just before spare bits.  Decrement spare bits.
1112           Rename 'shared_flag' -> 'upc_shared_flag',
1113           'relaxed_flag' -> 'upc_relaxed_flag',
1114           'strict_flag' -> 'upc_strict_flag, and adjust macros
1115           that reference them accordingly.
1117 2011-04-01  Gary Funck  <gary@intrepid.com>
1119         * c-decl.c (grokdeclarator): Fix formatting of
1120           code that sets UPC block size on scalars.
1122 2011-04-01  Gary Funck  <gary@intrepid.com>
1124         * c-decl.c (grokdeclarator): Revert use of white space
1125           to match the trunk (to rationalize diffs).
1126         * c-typeck.c (convert_for_assignment): Ditto.
1127         * tree-ssa.c (useless_type_conversion_p): Ditto.
1129 2011-03-23  Gary Funck  <gary@intrepid.com>
1131         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
1132           the GCC 4.6 release branch.
1134 2011-03-21  Gary Funck  <gary@intrepid.com>
1136         Merge trunk version 171202 into gupc branch.
1138 2011-03-20  Gary Funck  <gary@intrepid.com>
1140         * varasm.c: Call error() directly with a format specifier,
1141           rather than using sprintf() to format the message.
1142           This should make it easier to internationalize UPC's error messages.
1144 2011-03-20  Gary Funck  <gary@intrepid.com>
1146         * configure.ac: Fix the check for gnu ld when enabling
1147           UPC link script support.
1148           configure: Regenerate (also picks up changes from previous
1149           merge with trunk).
1151 2011-03-20  Gary Funck  <gary@intrepid.com>
1153         Move UPC start files, end files, and linker specs.
1154         into libupc.  This reduces the impact on common GCC
1155         configuration files, and ensures that these UPC-specific
1156         components are only built when the UPC language dialect is selected.
1159 gcc/
1160         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
1161           linker specs. Fix typo in -fupc-debug message.
1163         * config/upc-conf.h, config/darwin.h: Move defines for
1164           UPC-related section begins/ends into libupc/config/default/
1165           upc-crt-config.h.
1167         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
1168           UPC-related linker compiler specifications,
1169           accessed via %:include().
1171         * configure.ac, configure: Remove logic related to building
1172           upc-crtbegin/end. Remove config. tests for numa and cpu
1173           affinity (previously used by the 'upc' driver); these
1174           settings are now propagated by target-specific compiler
1175           specs. built by libupc.  Regenerate autoconf.
1177         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
1178           linker compiler specifications, accessed via %:include().
1179           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
1180           'link_upc_spec'.
1182         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
1184         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
1185           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
1186           config/ia64/linux.h, config/mips/t-iris,
1187           config/mips/iris6.h: Revert to trunk version 167307.
1189 libgcc/
1190         * configure, configure.ac, config.host, Makefile.in:
1191           Revert to trunk version 167307.
1193 2011-02-23  Gary Funck  <gary@intrepid.com>
1195         * c-decl.c (undeclared_variable): fix typo. Inadvertently
1196         removed negation on following 'if'.
1198 2011-02-22  Gary Funck  <gary@intrepid.com>
1200         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
1201         to check for the usage of certain deprecated UPC keywords.
1202         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
1203         * c-tree.h (undeclared_variable): Define prototype.
1205 2011-02-12  Gary Funck  <gary@intrepid.com>
1207         * c-typeck.c: (build_c_cast, convert_for_assignment)
1208           Diagnose an attempt to convert from an integer to
1209           a pointer-to-shared as an error.  Also, fix various
1210           error messages so that they use the preferred term
1211           pointer-to-shared instead of "shared pointer".
1213 2011-02-07  Gary Funck  <gary@intrepid.com>
1215         * c-typeck.c: (convert_for_assignment)
1216           Fix typo. in error message.
1218 2011-01-23  Gary Funck  <gary@intrepid.com>
1220         * c-typeck.c: (c_build_qualified_type)
1221           derive UPC block size by calling upc_get_block_size(),
1222           to ensure that the element type of an array of an array
1223           is derived correctly.
1225 2010-12-29  Gary Funck  <gary@intrepid.com>
1227         Merge trunk version 168314 into gupc branch.
1229 2010-12-15  Gary Funck  <gary@intrepid.com>
1231         Merge trunk version 167307 into gupc branch.
1233 2010-10-19  Gary Funck  <gary@intrepid.com>
1235         * c-typeck.c: Fix typo in previous fix
1236           which led to a mis-compare for equal block sizes.
1238 2010-10-18  Gary Funck  <gary@intrepid.com>
1240         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
1241           diagnosed as an error
1243           The conversion from any type (shared or not) to
1244           a shared type is likely either meaningless or an error.  This update
1245           makes any conversion to a shared type, an error.
1247 2010-10-18  Gary Funck  <gary@intrepid.com>
1249         * c-typeck.c: Fix bug: passing int to shared pointer arg.
1250           generates spurious warning
1252           Add a #define procedure that does the same thing as
1253           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
1254           this procedure to diagnose passing an integer value to a
1255           pointer-to-shared as an error.
1257 2010-10-18  Gary Funck  <gary@intrepid.com>
1259         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
1260           matching routine declaration.
1262           When checking for type compatibility, shared qualified types must
1263           have the same block factor.  This check was missing from
1264           comptypes_internal().  This update adds the check for blocking
1265           factor equality.
1267 2010-10-17  Gary Funck  <gary@intrepid.com>
1269         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
1270           found (-O1 -g)
1272           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
1274 2010-10-17  Gary Funck  <gary@intrepid.com>
1276         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
1277           45869 - [4.5/4.6 Regression] type mismatch in shift expression
1278           produces ice with -O3 and -m32.
1280           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
1282 2010-10-17  Gary Funck  <gary@intrepid.com>
1284         * c-common.c: Diagnose the application of the various "*sizeof"
1285           operations on generic pointer-to-shared as a compilation error.
1287 2010-10-17  Gary Funck  <gary@intrepid.com>
1289         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
1290           message regarding a function parameter being declared with a shared
1291           qualifier.
1293           The parameter's 'name' value is not defined at this point, and
1294           cannot be used in the error message.  This update removes the
1295           reference to 'name', and eliminates the segfault.
1297 2010-10-16  Gary Funck  <gary@intrepid.com>
1299         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
1301           The gcc/Makefile.in rules for install-plugin had to be re-written to
1302           break up a long list of header files that exceeded the command line
1303           limitation imposed by Irix.
1305           Access functions for TFmode types had to be implemented.
1306           Apparently, this is the mode used for the SGI/MIPS port to represent
1307           "long float".
1309 2010-10-14  Gary Funck  <gary@intrepid.com>
1311         * c-decl.c: Fix bug: Multiple equal blocking factors specified
1312           via typedef chain should not be diagnosed as an error.
1314           If the block size that is given by the typedef is equal to the block
1315           size given explicitly in the variable declaration, then do not
1316           complain.  The easiest way to make this check was to create a
1317           temporary type that is a clone of the element type and then set its
1318           block size using the given layout qualifier.  Then compare the block
1319           size of the temporary (the declaration) to the block size specified
1320           in the typedef.  This complexity is needed, because the '[*]' block
1321           size needs to be calculated, and the '[]' needs to be mapped into a
1322           zero block size.
1324 2010-10-10  Gary Funck  <gary@intrepid.com>
1326         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
1327           specified
1329           The compiler properly detected the presence of two or more layout
1330           qualifiers as an error, but then hit an assertion check, because the
1331           code that followed the error expected to see a qualifier and not a
1332           layout specifier.  The fix is simple: just return immediately after
1333           detecting the error.
1335 2010-10-10  Gary Funck  <gary@intrepid.com>
1337         * c-decl.c: Improve error diagnostics for various cases of UPC
1338           shared array type declarations.
1340           Add the check for this error: "In the dynamic translation
1341           environment, THREADS may not appear in declarations of shared arrays
1342           with indefinite block size".  Also, fix up a few of the other
1343           related error diagnostics.
1345 2010-10-09  Gary Funck  <gary@intrepid.com>
1347         * c-common.c: Fix bug: segfault on incomplete array definition.
1349           This turned out to be a bit complicated.   The logic in
1350           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
1351           the THREADS identifier in the case where the blocking factor has
1352           been set to indefinite ([]).  This can happen when indefinite array
1353           declarations are processed for shared arrays.  At that time, the
1354           file scope has been closed and THREADS is no longer in scope.  Some
1355           more work is needed on upc_lang_layout_decl().  It has some
1356           duplication, and notably duplicates the two branches of the if
1357           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
1358           caller of this routine (layout_decl()).
1360           The method of forcing a layout qualifier of [] in the indefinite
1361           declaration handler is odd a well.  The code that just does the
1362           setting of the block factor, needs to moved into its own routine
1363           that doesn't depend upon a declspec for '[]' to be passed in, just
1364           in order to set the blocking factor to some value (in this case, 0).
1365           Also, the logic for how that shared type is constructed is strange.
1366           First the type with 0 blocking factor is set.  Then the shared
1367           qualifier is removed from the type, and then added back later.  The
1368           intermediate type has a blocking factor set, but it has no shared
1369           qualifier.  Fixing this will require some thought.  It is tempting
1370           just to make indefinite shared arrays an error, rather than forcing
1371           the dimension to be '1'.
1373           This likely fixes a serious error in the previous update to
1374           upc_lang_layout_decl(), where it didn't have the logic to set
1375           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
1376           the previous update would fail on many tests.
1378 2010-10-09  Gary Funck  <gary@intrepid.com>
1380         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
1381           (decl) is null, which can happen if some layout error occurred
1382           upstream.
1384 2010-10-09  Gary Funck  <gary@intrepid.com>
1386         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
1387           "variable-sized" when compiled in dynamic threads.
1389           This long-standing bug is easily fixed.  Just check
1390           for the situation that the non-constant sized type is shared and
1391           that it does not have a dimension that references a multiple of
1392           threads.  If this criteria is met, then issue a meaningful
1393           diagnostic.
1395 2010-10-01  Gary Funck  <gary@intrepid.com>
1397         * configure, configure.ac: Update manual page, and bug reporting
1398           URL.
1400           Update "man" page to reflect debugging switches.  Also, some general
1401           clean up.  Change the bug reporting URL to point to gccupc.org.
1403 2010-09-27  Gary Funck  <gary@intrepid.com>
1405         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
1406           the UPC forall depth count variable is not found.
1408           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
1409           The compiler will generate code that references this variable in
1410           order to implement nested upc_forall semantics.  If there is a
1411           compiler build or install problem, this variable may not be found.
1412           In this case, terminate with an internal_error().
1414 2010-09-26  Gary Funck  <gary@intrepid.com>
1416         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
1417           mis-diagnosed as syntax error.
1419           Fix a failure exhibited by the Berkeley test case,
1420           bug873a.upc, which has the code:
1421                double d;
1422                upc_forall (;;;d) {...} The compiler did not properly handle
1423           the empty "condition" clause, and did not recover well when it was
1424           determined that the use of a double value, "d" above, was neither a
1425           pointer-to-shared nor an integer expression.  The update implements a
1426           fix for both issues.
1428           See also: gcc/c-parser.c gcc/upc/upc-act.c
1430 2010-09-23  Gary Funck  <gary@intrepid.com>
1432         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
1433           incorporated into the referencing type.
1435           This was semi-fixed a few times before.  This update fixes a few
1436           more places where the layout qualifier wasn't being propagated
1437           through typedef's properly.  What made this a bit tricky is shown in
1438           the example cited in the bug report:
1440           typedef shared [5] int A_t; A_t A[5*THREADS];
1442           In the typedef, the blocksize is being applied to a shared *scalar*,
1443           and the code was applying the blocksize only to arrays.  This update
1444           handles shared scalars correctly.
1446 2010-09-22  Gary Funck  <gary@intrepid.com>
1448         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
1449           upc_forall() semantics are not implemented
1451           The checkforall test in the Berkeley harness test suite indicated
1452           that GCC/UPC was not properly implementing nested upc_forall
1453           semantics.  Nested upc_forall statements (both statically or
1454           dynamically nested) must implement their affinity clause as if it
1455           were "continue"; thus all steps in the loop must execute without
1456           regard for affinity.  To implement these semantics a global depth
1457           counter, __upc_forall_depth, is maintained by the generated code
1458           that implements upc_forall.
1460           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1461           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1462           libupc/include/upc.h libupc/smp/upc_main.c
1464 2010-09-19  Gary Funck  <gary@intrepid.com>
1466         * c-decl.c: c-decl.c: zero out the layout specifier, after
1467           processing an array type.
1469           Fix the previous fix, that moved the setting of the type's layout
1470           qualifier to the outside of the array type processing loop.  What is
1471           missing from the fix is that the layout_qualifier variable needs to
1472           be cleared after setting the type's blocksize.
1474 2010-09-19  Gary Funck  <gary@intrepid.com>
1476         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
1477           given blocksize is greater than UPC_MAX_BLOCKSIZE.
1479           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
1480           the actual maximum block size.  Therefore, the message was correct,
1481           but the underlying value that was being checked was wrong.  Change
1482           the values so that they agree with the actual implementation-defined
1483           limit.
1485 2010-09-11  Gary Funck  <gary@intrepid.com>
1487         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
1488           multi-dimensional shared array with dynamic threads.
1490           This declaration caused an internal compiler error when compiled
1491           with dynamic threads:
1492               shared [*] int A[THREADS][16]; The bug was discovered when
1493           compiling the RTED_UPC test suite.
1495           The fix is to process layout qualifiers after the entire array type
1496           has been built.  Otherwise, we try to calculate the blocksize on a
1497           shared array type that has not had its "size depends upon the value
1498           of THREADS" flag set.
1500           Also, added a test case.
1502           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
1504 2010-07-11  Gary Funck  <gary@intrepid.com>
1506         Fix a bug where a statement in c_build_qualified_type()
1507         in the trunk had been inadvertently deleted.
1508         This bug showed up in the IA64 port, because jmpbuf's
1509         on that architecture must be 16 byte aligned, and they were not.
1510         c-typeck.c (c_build_qualified_type): Revive the deleted line.
1512 2010-07-08  Gary Funck  <gary@intrepid.com>
1514         Make changes so that other language compilers
1515         will build and bootstrap.
1516         * c-family/c-common.c (compiling_upc, flag_upc,
1517         flag_upc_instrument, flag_upc_instrument_functions,
1518         use_upc_dwarf2_extensions): Move to stub-upc.c and
1519         upc-lang.c.
1520         * c-family/c-common.h (use_upc_dwarf2_extensions,
1521         compiling_upc): Add extern definitions - needed
1522         to compile/build other language front ends.
1523         * c-family/c.opt: Fix the spelling of ObjC.
1524         It had been incorrectly spelled as Objc.
1525         * c-family/c.opt: Add UPC for the various switches
1526         that are valid for both C and ObjC.
1527         * c-fmaily/c-opts.c: Add CL_UPC to the list of
1528         supported options switches when compiling assembly
1529         language.
1530         * lto/lto-lang.c (use_upc_dwarf2_extensions,
1531         flag_upc_instrument, flag_upc_instrument_functions):
1532         Remove these definitions.  They have been moved
1533         to c-family/stub-upc.c.
1534         * upc/ChangeLog: Move relevant entries
1535         to ChangeLog.upc.
1536         * c-family/stub-upc.c (compiling_upc, flag_upc,
1537         flag_upc_instrument, flag_upc_instrument_functions,
1538         use_upc_dwarf2_extensions): Moved from c-common.c
1539         * upc/upc-lang.c (compiling_upc, flag_upc,
1540         flag_upc_instrument, flag_upc_instrument_functions,
1541         use_upc_dwarf2_extensions): Moved from c-common.c
1542         * objc/objc-act.c (objc_gimplify_expr): Add additional
1543         parameters to c_gimplify_expr() call, that are used
1544         by upc's tree rewrites.
1545         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
1546         * gcc/cp/lex.c (init_reswords): If not compiling
1547         UPC, then mask off the UPC keywords.
1548         * cp/Make-lang.in (C_STUB_OBJS): Use this
1549         make macro to link with c-family/stub-objc.o
1550         and c-family/stub-upc.o.
1551         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
1552         * java/Make-lang.in (C_STUB_OBJS): Likewise.
1553         * objc/Make-lang.in: Link with c-family/stub-upc.o
1554         to avoid undefined references.
1555         c-parser.c: Fix line indentation.
1556         * libcpp/include/cpplib.h: Remove CL_UPC from
1557         the list of language kinds accepted by the
1558         C preprocessor.  This is not necessary because
1559         UPC is a derivative of C99, and does not need
1560         a different language kind.
1561         * c-fmaily/c-opts.c (c_common_handle_option):
1562         Call set_std_c99() when processing the
1563         "--lang upc" switch, instead of setting the
1564         language kind to CL_UPC.
1565         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
1567 2010-07-03  Gary Funck  <gary@intrepid.com>
1569         Merge trunk version 161517 into gupc branch.
1570         * gcc/stub-upc.c: Move to gcc/c-family/.
1571         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
1572         Add 'unused' attributes to avoid "set, but
1573         not referenced" warnings.
1574         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
1575         Likewise.
1577 2010-03-01 Gary Funck  <gary@intrepid.com>
1579         Create gupc branch from trunk version 157149.
1580 2011-10-04  Gary Funck  <gary@intrepid.com>
1582         Merge trunk version 179421 into gupc branch.
1584         * tree.c (build_opaque_vector_type): Add null UPC layout qualifier
1585         argument to the call to check_qualified_type().
1587 2011-09-22  Gary Funck  <gary@intrepid.com>
1589         * tree-pretty-print.c (dump_generic_node): Print UPC type qualifier
1590         information.
1591         (dump_upc_type_quals): New.
1593 2011-09-15  Nenad Vukicevic <nenad@intrepid.com>
1595         Add to FLAGS the flags needed to disable inlining of
1596         UPC run-time access routines.
1597         * testsuite/lib/target-supports.exp
1598         (add_options_for_upc_library_calls): New.
1600 2011-09-15  Gary Funck  <gary@intrepid.com>
1602         Fix ICE involving shared bit field accesses.
1603         * tree.c (build3_stat): Propagate TEEE_SHARED()
1604         TREE_STRICT() and TREE_RELAXED() flags, if applicable.
1606 2011-09-13  Gary Funck  <gary@intrepid.com>
1608         Merge trunk version 178795 into gupc branch.
1609         Incorporates fix to PR bootstrap/50010 for x86-32.
1611 2011-09-08  Gary Funck  <gary@intrepid.com>
1613         Merge trunk version 178557 into gupc branch.
1615 2011-09-07  Gary Funck  <gary@intrepid.com>
1617         Ensure that UPC pointer-to-shared type alignment is
1618         propagated to the final type.  Revert to long-standing
1619         alignment policy: twice the size of a "C" pointer.
1620         * tree.c (build_pointer_type): Propagate the alignment
1621         of the UPC pointer-to-shared representation type
1622         into the newly built pointer type.
1624 2011-08-30  Gary Funck  <gary@intrepid.com>
1626         * tree.h (check_qualified_type): Change 'const_tree'
1627         argument types back to 'tree' to avoid complaints
1628         of assignment drops qualifiers for invocations of the
1629         newly implemented TYPE_BLOCK_FACTOR() macro, which
1630         invokes hash functions with 'tree' pointer values that
1631         are not const qualified.
1632         * tree.c (check_qualified_type, check_aligned_type): Ditto.
1633         * c-typeck.c (comptypes_internal): Ditto.
1635 2011-08-29  Gary Funck  <gary@intrepid.com>
1637         Fixes for regressions noted running "make check"
1638         versus GCC trunk.
1639         * fold-const.c (fold_unary_loc): Execute UPC-specific
1640         checks for a cast-of-a-cast, only if one of the
1641         operands is a UPC pointer-to-shared value.
1642         * opts.c (print_specific_help):  Fix a comparison
1643         in an assert that checks that there are enough
1644         bits reserved for the number of languages defined
1645         in the .opt files.
1647 2011-08-29  Gary Funck  <gary@intrepid.com>
1649         Implement a hash table to record UPC block factors.
1650         * c-family/stub-upc.c (upc_block_factor_insert,
1651         upc_block_factor_lookup): New dummy stub procedures.
1652         * c-family/c-common.c (c_sizeof_or_alignof_type):
1653         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1654         * tree.c (copy_node_stat): call SET_TYPE_BLOCK_FACTOR()
1655         to copy (hashed) UPC blocking factor.
1656         (set_type_quals): Likewise.
1657         * tree.h: Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1658         TYPE_HAS_THREADS_FACTOR().
1659         (type_common.block_factor): Delete.
1660         (TYPE_HAS_BLOCK_FACTOR_0, TYPE_HAS_BLOCK_FACTOR_X,
1661         TYPE_HAS_BLOCK_FACTOR, SET_TYPE_BLOCK_FACTOR): New.
1662         (TYPE_BLOCK_FACTOR): Re-implement, using hash table for
1663         UPC blocking factors greater than one.
1664         * dwarf2out.c (modified_type_die): Re-implement
1665         logic that records UPC blocking factor in the generated
1666         DWARF2 debugging information.
1667         (add_subscript_info): Rename UPC_TYPE_HAS_THREADS_FACTOR() to
1668         TYPE_HAS_THREADS_FACTOR().
1669         * c-decl.c (finish_decl, grokdeclarator):
1670         Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
1671         * print-tree.c (print_node): Check for TYPE_LANG_FLAG_* flags
1672         used by UPC, and print UPC-specific information.
1674 2011-08-28  Gary Funck  <gary@intrepid.com>
1676         Re-work the type machinery to fully support and to unify support
1677         for the UPC layout qualifier (blocking factor).
1678         * c-family/stub-upc.c (upc_set_block_factor): Delete.
1679           (upc_grok_layout_qualifier): rename from upc_apply_layout_qualifier()
1680           and update prototype.
1681         * c-family/c-common.c (complete_array_type): call newly
1682           defined c_build_qualified_type_1() instead of
1683           upc_set_block_factor().
1684         * c-family/c-upc.h (pc_grok_layout_qualifier): rename from
1685           upc_apply_layout_qualifier() and update prototype.
1686           (upc_set_block_factor): Delete prototype.
1687         * c-family/c-common.h (c_build_qualified_type): redefine
1688           as a pre-processor macro that invokes c_build_qualified_type_1()
1689           with a null UPC layout qualifier.
1690           (c_build_qualified_type_1): New.  Add layout qualifier argument
1691           to old c_build_qualified_type() prototype.
1692         * tree.c (set_type_quals, check_qualified_type):
1693           Add layout qualifier as argument.
1694           (check_aligned_type): Add check for UPC block factor equality.
1695           (get_qualified_type_1): Rename from get_qualified_type() and
1696           add layout qualifier as argument.
1697           (build_qualified_type_1): Rename from build_qualified_type() and
1698           add layout qualifier as argument.
1699         * tree.h (check_qualified_type): Add layout qualifier as argument
1700           to the prototype.
1701           (get_qualified_type): Re-define as a as a pre-processor macro
1702           that invokes get_qualified_type_1() with a null
1703           UPC layout qualifier.
1704           (get_qualified_type_1): Rename from get_qualified_type() and
1705           add layout qualifier as argument.
1706         * cp/tree.c (c_build_qualified_type_1): Rename from
1707           c_build_qualified_type() and add (unused) layout qualifier
1708           argument.
1709         * c-decl.c (finish_decl): re-format long error messages.
1710           (grokdeclarator): Re-work the logic so that it calls
1711           upc_grok_layout_qualifier() to handle the UPC layout
1712           qualifier, if present.
1713         * c-typeck.c (qualify_type, common_pointer_type,
1714           build_component_ref): Re-work the logic so that it calls
1715           upc_grok_layout_qualifier() to handle the UPC layout qualifier,
1716           if present.
1717           (c_build_qualified_type_1): Rename from c_build_qualified_type()
1718           and add layout qualifier argument.
1719         * print_tree.c (print_node): Re-format a long line.
1721 2011-08-26  Gary Funck  <gary@intrepid.com>
1723         Merge trunk version 177949 into gupc branch.
1724         * c-family/c-common.h (enum rid): Bump the number of type modifiers
1725           in the comment.
1726         * ../libcpp/init.c (struct lang_flags): Adjust the entry for UPC
1727           to add new rliterals column value.
1729 2011-08-26  Gary Funck  <gary@intrepid.com>
1731         * convert.c (convert_to_integer): Fix the check for the
1732           difference between two UPC pointers-to-shared values.
1734 2011-08-23  Nenad Vukicevic <nenad@intrepid.com>
1736         * configure.ac: Fix the name for --with-upc-pts-packed-bits
1737           option. Support --with-upc-packed-bits as deprecated. Fix the code to
1738           correctly check packed bits.
1739         * configure: Re-generate.
1741 2011-08-16  Gary Funck  <gary@intrepid.com>
1743         * c-parser.c (c_parser_upc_sync_statement): issue error diagnostic if
1744           the barrier id expression is not an integer expression.
1746 2011-08-12  Gary Funck  <gary@intrepid.com>
1748         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): Delete
1749           (revert to trunk).
1750         * upc/upc-pts-struct.c (upc_pts_struct_init_type):
1751           Set mode of UPC pointer-to-shared rep. to an
1752           integral mode of size at least as large as the
1753           size of the representation's struct type.
1755 2011-08-12  Gary Funck  <gary@intrepid.com>
1757         Rework/simplify the UPC genericize pass.
1758         * c-family/stub-upc.c (upc_apply_layout_qualifier,
1759           upc_build_pointer_type): New.
1760           (upc_set_block_factor): Adjust to new calling sequence.
1761           (upc_build_shared_var_addr): Delete.
1762         * c-family/c-common.c (complete_array_type): Adjust call
1763           to upc_set_block_factor().
1764         * c-family/c-upc.h (upc_apply_layout_qualifier,
1765           upc_build_pointer_type): New.
1766           (upc_build_shared_var_addr): Delete.
1767           (upc_set_block_factor): Adjust to new calling sequence.
1768         * tree.h (TI_UPC_CHAR_PTS_TYPE, upc_char_pts_type_node): New.
1769         * c-decl.c (grokdeclarator): Call newly defined
1770           upc_apply_layout_qualifier() instead of upc_set_block_factor().
1771         * c-decl.c (grokdeclarator): Split long UPC-related error
1772           messages into two lines.
1773         * c-typeck.c (build_unary_op): Do not call upc_build_shared_var_addr()
1774           directly.  Revert that change to trunk. (upc_genericize() will
1775           handle lowering the expressions that take the address of a
1776           UPC variable).
1777         * config/i386/i386.c (ix86_promote_function_mode): For UPC
1778           pointers-to-shared, return the type mode of the UPC pointer-to-shared
1779           representation type.
1781 2011-08-10  Gary Funck  <gary@intrepid.com>
1783         Implement additional fixes for recent merge with trunk.
1784         * explow.c (promote_mode): Do not attempt to promote
1785           the mode for UPC pointer-to-shared types.
1786         * config/i386/i386.c (function_value_64): Ditto.
1788 2011-08-07  Gary Funck  <gary@intrepid.com>
1790         Merge trunk version 177548 into gupc branch.
1791         * config/i386/i386.c (ix86_promote_function_mode):
1792           Do not promote UPC pointers-to-shared to Pmode.
1793         * c-family/c-ommon.c (pointer_int_sum):
1794           Also check the pointer operand, rather than just
1795           its type, when making the decision to derive
1796           the equivalent unshared type.
1797         * tree.c (build2_stat): If the type of the result
1798           passed in as an argument is a UPC shared type,
1799           derive the unshared equivalent when calculating
1800           the result type of the node.
1802 2011-07-15  Nenad Vukicevic <nenad@intrepid.com>
1804         * config/darwin.c: Disable var_tracking option
1805           on -O0 as it is supposed to run only when optimization
1806           is applied. See GCC bug 49743.
1808 2011-07-06  Gary Funck  <gary@intrepid.com>
1810         Re-implement the pass that lowers trees generated by
1811         the UPC front-end into GENERIC.  Previously this was
1812         done within the gimplification framework, but this
1813         required that gimplification be run before inlining
1814         and various other passes, which did not fit in well
1815         with the current design of the middle-end passes.
1816         Now, the lowering is done by a newly defined language
1817         specific genericize hook.  With this change, we are
1818         are able to undo some extensions made to the gimplify
1819         logic, and thus can revert several files to trunk.
1821         * c-decl.c: Add a check for UPC deprecated names which
1822           may appear as undefined function names.
1823         * libfuncs.h (LTI_upc_barrier, LTI_upc_notify, LTI_upc_wait,
1824           LTI_upc_getaddr): Remove definitions of unused UPC
1825           library function names.  These were defined back when
1826           the libfunc interface was used to call these routines.
1827         * timevar.def (TV_TREE_UPC_GENERICIZE): New. Track time spent
1828           in UPC lowering (genericize) pass.
1829         * langhooks.h (gimplify_expr): Revert to trunk's definition.
1830           (instrument_func): Delete this hook.  Now handled in
1831           upc_genericize().
1832         * tree-pass.h: Revert to trunk.
1833         * c-typeck.c (build_unary_op): Adjust reference to
1834           upc_genericize() in a comment.
1835         * gimplify.c (create_tmp_var_raw): Delete logic that
1836           was converting UPC shared types into unshared types
1837           to be used for temporaries.  Now handled in  upc_genericize().
1838           Replace with an assertion check.
1839           (prepare_gimple_addressable): Revert to trunk's definition.
1840           No longer needed as an externally called function.
1841           (flag_instrument_functions_exclude_p): Re-define as
1842           an externally called function.
1843           (gimplify_function_tree): Delete code that implemented
1844           call to UPC's language specific function instrumentation hook.
1845         * gimple.h (flag_instrument_functions_exclude_p): Define as extern.
1846           (prepare_gimple_addressable): Delete extern definition;
1847           revert to trunk's definition.
1848         * lnaghooks-def.h (lhd_gimplify_expr): Revert to trunk's definition.
1849           (LANG_HOOKS_INSTRUMENT_FUNC): Remove, no longer needed for UPC.
1850         * c-family/c-gimplify.c: Revert to trunk.
1851         * cp/cp-gimplify.c: Revert to trunk.
1852         * cp/cp-tree.h: Revert to trunk.
1853         * explow.c: Revert to trunk.
1854         * langhooks.c: Revert to trunk.
1855         * libfuncs.h: Revert to trunk.
1856         * objc/objc-act.c: Revert to trunk.
1858 2011-06-30  Gary Funck  <gary@intrepid.com>
1860         * c-family/c.opt: Bring options definitions up-to-date
1861         with respect to changes made in the trunk.
1863 2011-06-29  Gary Funck  <gary@intrepid.com>
1865         Merge trunk version 175584 into gupc branch.
1867 2011-06-13  Gary Funck  <gary@intrepid.com>
1869 libcpp/
1870         * include/cpplib.h (enum c_lang):
1871         Move the entry for CLK_UPC so that it follows CLK_STDC1X.
1872         This keeps all the "C" variants together.
1873         * init.c (lang_defaults): Add an entry for UPC.
1875 2011-06-09  Gary Funck  <gary@intrepid.com>
1877         * c-parser.c (upc_localsizeof_type): Fix an ICE when compiling for
1878         a 32-bit target, the size expression overflowed, the result was
1879         error_mark_node, and an ICE was triggered on an attempt to evaluate
1880         C_TYPE_VARIABLE_SIZE() on the error node.
1881         (upc_blocksizeof_expr, upc_blocksizeof_type,
1882         upc_elemsizeof_expr, upc_elemsizeof_type, upc_localsizeof_expr):
1883         Make similar changes to avoid further processing of error_mark_node.
1885 2011-06-07  Gary Funck  <gary@intrepid.com>
1887         * sel-sched.c (move_op): Incorporate the following
1888         patch to eliminate ICE at -O3 on IA64/Altix.
1890 2011-06-07  Alexander Monakov  <amonakov@ispras.ru>
1892         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1893         code_motion_path_driver returned 0 or 1.
1894         (sel_region_finish): Clear h_d_i_d.
1896 2011-06-02  Gary Funck  <gary@intrepid.com>
1898         Merge trunk version 174558 into gupc branch.
1900 2011-05-30  Gary Funck  <gary@intrepid.com>
1902         * configure.ac: Make the default order of the virtual
1903           address field in a UPC pointer-to-shared to be "first".
1904           This reverts to the previous setting, and is a short term
1905           measure to work around a bug found on the IA64,
1906           where vaddr=last led to incorrect code generation.
1907           Rename UPC_PTS_VADDR_FIRST to HAVE_UPC_PTS_VADDR_FIRST
1908           in AC_DEFINE(), to agree with recent changes in files
1909           that reference this define.
1910           configure, config.in: Regenerate.
1912 2011-05-26  Gary Funck  <gary@intrepid.com>
1914         * configure.ac: Fix typo when referring to $upc_vaddr_order.
1915           configure: Regenerate.
1917         * ../fixincludes/fixincl.x: Revert to trunk.
1918           This file is auto-generated, and should not be merged.
1920 2011-05-18  Gary Funck  <gary@intrepid.com>
1922         Merge trunk version 173845 into gupc branch.
1924 2011-05-17  Gary Funck  <gary@intrepid.com>
1926         * c-family/stub-upc.c (upc_rts_forall_depth_var): New.
1927           c-family/c-upc.h (upc_rts_forall_depth_var): Define.
1929         * c-family/c-pragma.c: Remove conditional compilation
1930           with HANDLE_PRAGMA_UPC and HANDLE_PRAGMA_PUPC.
1931           Test 'compiling_upc' when compiling to determine if
1932           the "upc" and "pupc" pragmas should be registered.
1934         * defaults.h (UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1935           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1936           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1937           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1938           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1939           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME): New.
1940           Move these target-dependent definitions from config/upc-conf.h
1941           to here.
1943         * configure.ac: Improve the logic for UPC-related options.
1944           Delete references to pre-processor definitions that have
1945           been moved to "upc/upc-pts.h".
1947         * configure, config.in: Regenerate.
1949         * Makefile.in (UPC_PTS_REP): Remove definition and revert
1950           to trunk.  This substitution variable was used to
1951           configure the representation-specific versions of
1952           the tree rewrites that operate on UPC pointer-to-shared
1953           types and objects.
1955         * c-parser.c (c_parser_upc_forall_statement): Remove
1956           reference to UPC_FORALL_DEPTH_NAME, and call
1957           newly defined upc_rts_forall_depth_var() instead.
1959         * config/upc-config.h: Delete. Various definitions
1960           moved to "upc/upc-rts-names.h", "defaults.h", and
1961           "upc/upc-pts.h".
1963         * doc/tm.texi.in (HAVE_UPC_PTS_VADDR_FIRST,
1964           HAVE_UPC_PTS_PACKED_REP, HAVE_UPC_PTS_STRUCT_REP,
1965           UPC_SHARED_SECTION_NAME, UPC_SHARED_BEGIN_NAME,
1966           UPC_SHARED_END_NAME, UPC_PGM_INFO_SECTION_NAME,
1967           UPC_PGM_INFO_BEGIN_NAME, UPC_PGM_INFO_END_NAME,
1968           UPC_INIT_SECTION_NAME, UPC_INIT_BEGIN_NAME,
1969           UPC_INIT_END_NAME, UPC_INIT_ARRAY_SECTION_NAME,
1970           UPC_INIT_ARRAY_BEGIN_NAME, UPC_INIT_ARRAY_END_NAME):
1971           New.  Document UPC target macros.
1972           doc/tm.texi: Regenerate.
1974 2011-05-07  Gary Funck  <gary@intrepid.com>
1976         * ../configure.ac: Disable build of libupc
1977           on non POSIX hosted systems.  Use AS_HELP_STRING
1978           to define messages.  Remove 'word-pair' as a
1979           possible --with-upc-pts UPC pointer-to-shared
1980           representation.
1982         * ../configure: Regenerate.
1984         * configure.ac: Use AS_HELP_STRING to define messages.
1985           Remove 'word-pair' as a possible --with-upc-pts
1986           UPC pointer-to-shared representation.
1987           (UPC_MAX_THREADS): Limit the maximum value to 2^31-1.
1988           (UPC_MAX_BLOCK_SIZE): Correct the default value.
1990         * configure: Regenerate.
1992         * config.in: Regenerate. Delete UPC_PTS_WORD_PAIR_REP
1993           definition.
1995         * ChangeLog.upc: Fix some typos.
1997 2011-05-07  Gary Funck  <gary@intrepid.com>
1999         * ../maintainer-scripts/gcc_release: Add "upc"
2000           as one of the released languages.
2002 2011-05-06  Gary Funck  <gary@intrepid.com>
2004         Eliminate compilation warnings, by fixing
2005         #include's and updating function prototypes.
2007         * c-family/c-cppbuiltin.c: Include c-upc.h.
2009         * optabs.c (gen_libfunc): Change type of 'suffix'
2010           parameter to conform with prototype.
2012         * cp/cp-gimplify.c (cp_gimplify_expr): Add extra parameters
2013           ('gimple_test_f' and 'fallback') used by extended gimplify_expr
2014           hook used by UPC.
2016         * cp/cp-tree.h (cp_gimplify_expr): Add extra parameters to
2017           the prototype.
2019         * objc/objc-act.c (objc_gimplify_expr): Pass extra dummy
2020           argument values to cp_gimplify_expr.
2022         * config.in (HAVE_UPC_AFFINITY_SUPPORT,
2023           HAVE_UPC_NUMA_SUPPORT): Regenerate.  Remove
2024           pre-processor definitions that are no longer
2025           needed to build the 'upc' command (upc-cmd.c)
2026           because the linker specs. defined in libupc
2027           take care of linking in the needed libraries.
2029         * c-parser.c (c_parser_upc_forall_statement):
2030           initialize affinity_loc to avoid "maybe unused" warning.
2031           (c_parser_upc_sync_statement): Remove un-needed
2032           'ret' variable.  Cast return value from
2033           'upc_build_sync_stmt' to 'void' to avoid
2034           compile-time warning.
2036         * config/upc-conf.h (UPC_MAX_THREADS): Define as an
2037           integer constant, not a string.  Range is restricted
2038           to maximum positive 32-bit integer (2+ billion) to
2039           fit in with the use of 'int' in the front-end's
2040           switch handling logic.
2042 2011-05-06  Gary Funck  <gary@intrepid.com>
2044         Upgrade c-family source files to conform with modularity
2045         improvements.  Mainly, remove #include of c-tree.h in files
2046         under c-family, and define a new UPC-specific #include file,
2047         c-upc.h, and use it.
2049         * c-family/stub-upc.c: Remove #include of c-tree.h and
2050           upc/upc-act.h.  Replace with #include of c-common.h
2051           and c-upc.h.
2052           (upc_get_unshared_type, upc_pts_cvt_op_p, upc_blocksizeof_expr,
2053           upc_blocksizeof_type, upc_elemsizeof_expr, upc_elemsizeof_type,
2054           upc_localsizeof_expr, upc_localsizeof_type,
2055           upc_shared_type_p): Delete.
2057         * c-family/c-opts.c: Add #include of c-upc.h
2059         * c-family/c-common.c: Remove #include of c-tree.h and
2060           add #include of c-upc.h.
2062         * c-family/c-upc.h: New. Define API for UPC-specific functions
2063           (mostly implemented in upc/upc-act.c).
2065         * c-family/c-common.h (upc_cpp_builtins, upc_write_global_declarations):
2066           Remove extern definitions.
2068         * c-family/c-pragma.c: Remove #include of c-tree.h.
2069           Add #include of c-upc.h.
2071         * tree.h (UPC_TYPE_HAS_THREADS_FACTOR): New.  Move from
2072           c-tree.h.
2073           (upc_shared_type_p, upc_pts_cvt_op_p): New.  Move from
2074           upc/upc-act.c, and define as a macro.
2075           (expand_affinity_test): Remove unused external definition.
2076           (build_upc_unshared_type): Add external definition.
2077           (upc_shared_type_p): Remove external definition.
2079         * c-config-lang.in: Update gtfiles to refer to c-family/c-upc.h.
2081         * dojump.c: Remove #include of c-tree.h.
2083         * c-tree.h: Remove definition of UPC_TYPE_HAS_THREADS_FACTOR
2084           and move to tree.h.
2085           (count_upc_threads_refs, is_multiple_of_upc_threads,
2086           set_upc_threads_refs_to_one, c_expr, upc_affinity_test,
2087           upc_build_shared_var_addr, upc_build_sync_stmt,
2088           upc_check_decl_init, upc_check_decl, upc_decl_init, c_expr,
2089           upc_get_block_factor, upc_instrument_forall, upc_is_null_pts_p,
2090           c_expr, upc_num_threads, upc_diagnose_deprecated_stmt,
2091           upc_pts_cvt_op_p, upc_pts_diff, upc_pts_increment,
2092           upc_pts_int_sum, upc_set_block_factor, upc_set_decl_section,
2093           permit_pragma_upc, deny_pragma_upc, pragma_upc_permitted_p,
2094           set_upc_consistency_mode, get_upc_consistency_mode,
2095           push_upc_consistency_mode, pop_upc_consistency_mode,
2096           get_upc_pupc_mode):
2097           Move external definitions to c-family/c-upc.h.
2098           (upc_blocksizeof_type, upc_localsizeof_type,
2099           upc_elemsizeof_type): Remove external definitions;
2100           these functions were moved to c-parser.c.
2102         * c-decl.c: Add #include of c-upc.h.
2104         * c-typeck.c: Add #include of c-upc.h.
2106         * c-convert.c: Add #include of c-upc.h.
2108         * ChangeLog.upc: Fix typo.
2110         * Makefile.in: Add references to c-family/c-upc.h, everywhere
2111           there is a reference to c-family/c-objc.h.
2112           Remove extraneous reference to upc-act.h.
2114         * c-parser.c: Add #include of c-upc.h.
2115           (upc_blocksizeof_expr, upc_blocksizeof_type,
2116           upc_elemsizeof_expr, upc_elemsizeof_type,
2117           upc_localsizeof_expr, upc_localsizeof_type):
2118           Move from upc/upc-act.c.
2120         * tree.c (build_upc_unshared_type): New.
2121           Move upc_get_unshared_type from upc/upc-act.c and rename
2122           to build_upc_unshared_type.
2123           c-family/c-common.c (pointer_int_sum): refer to renamed
2124           build_upc_unshared_type function.
2125           c-convert.c (convert): Ditto.
2126           convert.c (convert_to_pointer): Ditto.
2127           c-typeck.c (build_unary_op, build_modify_expr,
2128           really_start_incremental_init): Ditto.
2129           gimplify.c (create_tmp_var_raw): Ditto.
2130           tree.c (build1_stat): Ditto.
2131           tree.h (upc_get_unshared_type): Rename to
2132           build_upc_unshared_type.
2134 2011-05-06  Gary Funck  <gary@intrepid.com>
2136         Merge trunk version 173471 into gupc branch.
2138 2011-05-05  Gary Funck  <gary@intrepid.com>
2140         Make changes that bring the GUPC branch more closely in sync.
2141         with the GCC trunk.  Revert any fixes that are not UPC-specific.
2142         Remove gratuitous re-formatting.
2144         * ../libstdc++-v3/config/os/bionic/ctype_noninline.h: Delete.
2145           This file should have been removed in a previous merge
2146           with the trunk.
2147         * ../configure.ac: Remove Cray Catamount/CNL support.
2148         * ../configure: Regenerate.
2149         * ../config.sub: Remove Cray Catamount/CNL support.
2150         * config.gcc: Remove Cray Catamount/CNL support.
2151         * ../maintainer-scripts/gcc_release: Revert to trunk.
2152         * c-family/c-common.h: Define parse_optimize_options.  Its definition
2153           was missed in a previous merge with the trunk.
2154         * dwarf2out.c: Revert a fix which removed the 'type_main_variant'
2155           procedure.
2156         * dwarf2out.c: Revert a fix that added a check for VECTOR_TYPE
2157           in addition to ARRAY_TYPE.
2158         * c-typeck.c: Remove an extra newline character.
2159         * varasm.c: Revert a fix that improved an error message
2160           when TLS common data is unimplemented.
2161         * varasm.c: Revert a gcc_assert that had been added which
2162           checked for a null DECL_SIZE_UNIT field.
2163         * emultls.c: Revert to trunk. Remove possible fix.
2164         * Makefile.in: Revert extra blank line that is present
2165           in the trunk version.
2166         * Makefile.in: Revert a fix that handled long shell
2167           argument lists for plugin headers.
2168         * config/ia64/ia64.opt: Revert an option setting
2169           that increased the default TLS address range.
2170         * config/ia64/crtbegin.asm: Revert to trunk.
2171           Removes an extra newline character.
2172         * ChangeLog.upc: Spell check.
2174 2011-05-03  Gary Funck  <gary@intrepid.com>
2176         * c-family/c-common.c: Remove extraneous FIXME/TODO comments.
2177           (c_apply_type_quals_to_decl): Ditto.
2178         * c-family/c-common.h: Ditto.
2179         * dojump.c: Ditto.
2180         * c-decl.c (merge_decls): Ditto.
2181         * c-typeck.c (qualify_type, default_conversion,
2182           build_component_ref, build_unary_op,
2183           c_build_qualified_type): Ditto.
2184         * gimplify.c (create_tmp_var_raw): Remove UPC-specific dead code.
2186 2011-04-29  Gary Funck  <gary@intrepid.com>
2188         * c-decl.c (finish_decl): Improve error diagnostics.
2189           (grokdeclarator): Ditto.
2191         * c-typeck.c (build_c_cast): Improve error diagnostics.
2192           (convert_for_assignment): Ditto.
2193           (build_binary_op): Ditto.
2195         * c-parser.c (c_parser_upc_forall_statement):
2196           Improve error diagnostics.
2198         * convert.c (convert_to_integer):  Improve error diagnostics.
2200 2011-04-24  Gary Funck  <gary@intrepid.com>
2202         * c-parser.c (c_parser_upc_sync_statement): Fix ICE that
2203           occurred if there is an error in the barrier id
2204           expression.  Map error_mark_node into NULL.
2206 2011-04-22  Gary Funck  <gary@intrepid.com>
2208         Merge trunk version 172873 into gupc branch.
2210 2011-04-19  Gary Funck  <gary@intrepid.com>
2212         Merge trunk version 172359 into gupc branch.
2214 2011-04-14  Gary Funck  <gary@intrepid.com>
2216         * c-family/c.opt: Add UPC as a valid language for various
2217           switches where it is valid for "C", that were not updated
2218           in previous merges with trunk.
2220 2011-04-13  Gary Funck  <gary@intrepid.com>
2222         * c-family/c.opt (fupc-pre-include): New option definition.
2223         * gcc.c (upc_options): Do not add "-include gcc-upc.h" if
2224           -fno-upc-pre-include is asserted.
2226 2011-04-07  Gary Funck  <gary@intrepid.com>
2228         Merge trunk version 172158 into gupc branch.
2229         to bring in the following fix.
2231 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2233         PR bootstrap/48403
2234         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2235         if old and new states differ.
2237 2011-04-06  Gary Funck  <gary@intrepid.com>
2239         Merge trunk version 171966 into gupc branch.
2241 2011-04-01  Gary Funck  <gary@intrepid.com>
2243         * tree.h (tree_base): Move UPC flag bits into bit fields
2244           located just before spare bits.  Decrement spare bits.
2245           Rename 'shared_flag' -> 'upc_shared_flag',
2246           'relaxed_flag' -> 'upc_relaxed_flag',
2247           'strict_flag' -> 'upc_strict_flag, and adjust macros
2248           that reference them accordingly.
2250 2011-04-01  Gary Funck  <gary@intrepid.com>
2252         * c-decl.c (grokdeclarator): Fix formatting of
2253           code that sets UPC block size on scalars.
2255 2011-04-01  Gary Funck  <gary@intrepid.com>
2257         * c-decl.c (grokdeclarator): Revert use of white space
2258           to match the trunk (to rationalize diffs).
2259         * c-typeck.c (convert_for_assignment): Ditto.
2260         * tree-ssa.c (useless_type_conversion_p): Ditto.
2262 2011-03-23  Gary Funck  <gary@intrepid.com>
2264         * DEV-PHASE: bump to 4.7.0-1 to reflect recent creation of
2265           the GCC 4.6 release branch.
2267 2011-03-21  Gary Funck  <gary@intrepid.com>
2269         Merge trunk version 171202 into gupc branch.
2271 2011-03-20  Gary Funck  <gary@intrepid.com>
2273         * varasm.c: Call error() directly with a format specifier,
2274           rather than using sprintf() to format the message.
2275           This should make it easier to internationalize UPC's error messages.
2277 2011-03-20  Gary Funck  <gary@intrepid.com>
2279         * configure.ac: Fix the check for gnu ld when enabling
2280           UPC link script support.
2281           configure: Regenerate (also picks up changes from previous
2282           merge with trunk).
2284 2011-03-20  Gary Funck  <gary@intrepid.com>
2286         Move UPC start files, end files, and linker specs.
2287         into libupc.  This reduces the impact on common GCC
2288         configuration files, and ensures that these UPC-specific
2289         components are only built when the UPC language dialect is selected.
2291 gcc/
2292         * c-family/c.opt: Add -fupc-link switch, used to select UPC-specific
2293           linker specs. Fix typo in -fupc-debug message.
2295         * config/upc-conf.h, config/darwin.h: Move defines for
2296           UPC-related section begins/ends into libupc/config/default/
2297           upc-crt-config.h.
2299         * config/darwin.h(LINK_COMMAND_SPEC_A): Add call outs to
2300           UPC-related linker compiler specifications,
2301           accessed via %:include().
2303         * configure.ac, configure: Remove logic related to building
2304           upc-crtbegin/end. Remove config. tests for numa and cpu
2305           affinity (previously used by the 'upc' driver); these
2306           settings are now propagated by target-specific compiler
2307           specs. built by libupc.  Regenerate autoconf.
2309         * gcc.c (LINK_COMMAND_SPEC): Add call outs to UPC-related
2310           linker compiler specifications, accessed via %:include().
2311           Define 'upc_crtbegin_spec', 'upc_crtend_spec', and
2312           'link_upc_spec'.
2314         * Makefile.in: Remove definition of UPC_CRTSTUFF_CFLAGS.
2316         * config/linux.h, config/i386/darwin.h, config/i386/linux64.h,
2317           config/i386/linux.h, config/i386/t-darwin, config/i386/t-darwin64,
2318           config/ia64/linux.h, config/mips/t-iris,
2319           config/mips/iris6.h: Revert to trunk version 167307.
2321 libgcc/
2322         * configure, configure.ac, config.host, Makefile.in:
2323           Revert to trunk version 167307.
2325 2011-02-23  Gary Funck  <gary@intrepid.com>
2327         * c-decl.c (undeclared_variable): fix typo. Inadvertently
2328         removed negation on following 'if'.
2330 2011-02-22  Gary Funck  <gary@intrepid.com>
2332         * c-decl.c (undeclared_variable): call upc_diagnose_deprecated_stmt
2333         to check for the usage of certain deprecated UPC keywords.
2334         * c-family/stub-upc.c (upc_diagnose_deprecated_stmt): New.
2335         * c-tree.h (undeclared_variable): Define prototype.
2337 2011-02-12  Gary Funck  <gary@intrepid.com>
2339         * c-typeck.c: (build_c_cast, convert_for_assignment)
2340           Diagnose an attempt to convert from an integer to
2341           a pointer-to-shared as an error.  Also, fix various
2342           error messages so that they use the preferred term
2343           pointer-to-shared instead of "shared pointer".
2345 2011-02-07  Gary Funck  <gary@intrepid.com>
2347         * c-typeck.c: (convert_for_assignment)
2348           Fix typo. in error message.
2350 2011-01-23  Gary Funck  <gary@intrepid.com>
2352         * c-typeck.c: (c_build_qualified_type)
2353           derive UPC block size by calling upc_get_block_size(),
2354           to ensure that the element type of an array of an array
2355           is derived correctly.
2357 2010-12-29  Gary Funck  <gary@intrepid.com>
2359         Merge trunk version 168314 into gupc branch.
2361 2010-12-15  Gary Funck  <gary@intrepid.com>
2363         Merge trunk version 167307 into gupc branch.
2365 2010-10-19  Gary Funck  <gary@intrepid.com>
2367         * c-typeck.c: Fix typo in previous fix
2368           which led to a mis-compare for equal block sizes.
2370 2010-10-18  Gary Funck  <gary@intrepid.com>
2372         * c-typeck.c: Fix bug: Cast of (shared <type> * shared) not
2373           diagnosed as an error
2375           The conversion from any type (shared or not) to
2376           a shared type is likely either meaningless or an error.  This update
2377           makes any conversion to a shared type, an error.
2379 2010-10-18  Gary Funck  <gary@intrepid.com>
2381         * c-typeck.c: Fix bug: passing int to shared pointer arg.
2382           generates spurious warning
2384           Add a #define procedure that does the same thing as
2385           WARN_FOR_ASSIGNMENT but issues an error diagnostic instead.  Use
2386           this procedure to diagnose passing an integer value to a
2387           pointer-to-shared as an error.
2389 2010-10-18  Gary Funck  <gary@intrepid.com>
2391         * c-typeck.c: Fix bug: shared [] in prototype silently ignored when
2392           matching routine declaration.
2394           When checking for type compatibility, shared qualified types must
2395           have the same block factor.  This check was missing from
2396           comptypes_internal().  This update adds the check for blocking
2397           factor equality.
2399 2010-10-17  Gary Funck  <gary@intrepid.com>
2401         * dwarf2out.c: Fix GCC Bug 45870 - note: non-delegitimized UNSPEC 5
2402           found (-O1 -g)
2404           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870#c6
2406 2010-10-17  Gary Funck  <gary@intrepid.com>
2408         * tree-cfg.c: Implement the fix for GCC Bugzilla Bug
2409           45869 - [4.5/4.6 Regression] type mismatch in shift expression
2410           produces ice with -O3 and -m32.
2412           See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
2414 2010-10-17  Gary Funck  <gary@intrepid.com>
2416         * c-common.c: Diagnose the application of the various "*sizeof"
2417           operations on generic pointer-to-shared as a compilation error.
2419 2010-10-17  Gary Funck  <gary@intrepid.com>
2421         * c-decl.c: Fix a segfault/ICE that occurred when printing an error
2422           message regarding a function parameter being declared with a shared
2423           qualifier.
2425           The parameter's 'name' value is not defined at this point, and
2426           cannot be used in the error message.  This update removes the
2427           reference to 'name', and eliminates the segfault.
2429 2010-10-16  Gary Funck  <gary@intrepid.com>
2431         * Makefile.in: Implement fixes for SGI/IRIX/MIPS port.
2433           The gcc/Makefile.in rules for install-plugin had to be re-written to
2434           break up a long list of header files that exceeded the command line
2435           limitation imposed by Irix.
2437           Access functions for TFmode types had to be implemented.
2438           Apparently, this is the mode used for the SGI/MIPS port to represent
2439           "long float".
2441 2010-10-14  Gary Funck  <gary@intrepid.com>
2443         * c-decl.c: Fix bug: Multiple equal blocking factors specified
2444           via typedef chain should not be diagnosed as an error.
2446           If the block size that is given by the typedef is equal to the block
2447           size given explicitly in the variable declaration, then do not
2448           complain.  The easiest way to make this check was to create a
2449           temporary type that is a clone of the element type and then set its
2450           block size using the given layout qualifier.  Then compare the block
2451           size of the temporary (the declaration) to the block size specified
2452           in the typedef.  This complexity is needed, because the '[*]' block
2453           size needs to be calculated, and the '[]' needs to be mapped into a
2454           zero block size.
2456 2010-10-10  Gary Funck  <gary@intrepid.com>
2458         * c-decl.c: Fix bug: ICE: two or more layout qualifiers
2459           specified
2461           The compiler properly detected the presence of two or more layout
2462           qualifiers as an error, but then hit an assertion check, because the
2463           code that followed the error expected to see a qualifier and not a
2464           layout specifier.  The fix is simple: just return immediately after
2465           detecting the error.
2467 2010-10-10  Gary Funck  <gary@intrepid.com>
2469         * c-decl.c: Improve error diagnostics for various cases of UPC
2470           shared array type declarations.
2472           Add the check for this error: "In the dynamic translation
2473           environment, THREADS may not appear in declarations of shared arrays
2474           with indefinite block size".  Also, fix up a few of the other
2475           related error diagnostics.
2477 2010-10-09  Gary Funck  <gary@intrepid.com>
2479         * c-common.c: Fix bug: segfault on incomplete array definition.
2481           This turned out to be a bit complicated.   The logic in
2482           upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
2483           the THREADS identifier in the case where the blocking factor has
2484           been set to indefinite ([]).  This can happen when indefinite array
2485           declarations are processed for shared arrays.  At that time, the
2486           file scope has been closed and THREADS is no longer in scope.  Some
2487           more work is needed on upc_lang_layout_decl().  It has some
2488           duplication, and notably duplicates the two branches of the if
2489           having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
2490           caller of this routine (layout_decl()).
2492           The method of forcing a layout qualifier of [] in the indefinite
2493           declaration handler is odd a well.  The code that just does the
2494           setting of the block factor, needs to moved into its own routine
2495           that doesn't depend upon a declspec for '[]' to be passed in, just
2496           in order to set the blocking factor to some value (in this case, 0).
2497           Also, the logic for how that shared type is constructed is strange.
2498           First the type with 0 blocking factor is set.  Then the shared
2499           qualifier is removed from the type, and then added back later.  The
2500           intermediate type has a blocking factor set, but it has no shared
2501           qualifier.  Fixing this will require some thought.  It is tempting
2502           just to make indefinite shared arrays an error, rather than forcing
2503           the dimension to be '1'.
2505           This likely fixes a serious error in the previous update to
2506           upc_lang_layout_decl(), where it didn't have the logic to set
2507           TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
2508           the previous update would fail on many tests.
2510 2010-10-09  Gary Funck  <gary@intrepid.com>
2512         * varasm.c: Add an assertion check for the case that DECL_SIZE_UNIT
2513           (decl) is null, which can happen if some layout error occurred
2514           upstream.
2516 2010-10-09  Gary Funck  <gary@intrepid.com>
2518         * c-decl.c: Fix bug: file scope shared arrays mis-diagnosed as
2519           "variable-sized" when compiled in dynamic threads.
2521           This long-standing bug is easily fixed.  Just check
2522           for the situation that the non-constant sized type is shared and
2523           that it does not have a dimension that references a multiple of
2524           threads.  If this criteria is met, then issue a meaningful
2525           diagnostic.
2527 2010-10-01  Gary Funck  <gary@intrepid.com>
2529         * configure, configure.ac: Update manual page, and bug reporting
2530           URL.
2532           Update "man" page to reflect debugging switches.  Also, some general
2533           clean up.  Change the bug reporting URL to point to gccupc.org.
2535 2010-09-27  Gary Funck  <gary@intrepid.com>
2537         * c-parser.c, config/upc-conf.h: Issue a descriptive message when
2538           the UPC forall depth count variable is not found.
2540           The __upc_forall_depth variable should be defined in gcc-upc-lib.h.
2541           The compiler will generate code that references this variable in
2542           order to implement nested upc_forall semantics.  If there is a
2543           compiler build or install problem, this variable may not be found.
2544           In this case, terminate with an internal_error().
2546 2010-09-26  Gary Funck  <gary@intrepid.com>
2548         * c-parser.c: Fix Bug 240: upc_forall with empty clauses
2549           mis-diagnosed as syntax error.
2551           Fix a failure exhibited by the Berkeley test case,
2552           bug873a.upc, which has the code:
2553                double d;
2554                upc_forall (;;;d) {...} The compiler did not properly handle
2555           the empty "condition" clause, and did not recover well when it was
2556           determined that the use of a double value, "d" above, was neither a
2557           pointer-to-shared nor an integer expression.  The update implements a
2558           fix for both issues.
2560           See also: gcc/c-parser.c gcc/upc/upc-act.c
2562 2010-09-23  Gary Funck  <gary@intrepid.com>
2564         * c-decl.c: Fix Bug 29: Layout qualifier within a typedef is not
2565           incorporated into the referencing type.
2567           This was semi-fixed a few times before.  This update fixes a few
2568           more places where the layout qualifier wasn't being propagated
2569           through typedef's properly.  What made this a bit tricky is shown in
2570           the example cited in the bug report:
2572           typedef shared [5] int A_t; A_t A[5*THREADS];
2574           In the typedef, the blocksize is being applied to a shared *scalar*,
2575           and the code was applying the blocksize only to arrays.  This update
2576           handles shared scalars correctly.
2578 2010-09-22  Gary Funck  <gary@intrepid.com>
2580         * c-parser.c, c-tree.h, stub-upc.c: Fix Bug 403: Nested
2581           upc_forall() semantics are not implemented
2583           The checkforall test in the Berkeley harness test suite indicated
2584           that GCC/UPC was not properly implementing nested upc_forall
2585           semantics.  Nested upc_forall statements (both statically or
2586           dynamically nested) must implement their affinity clause as if it
2587           were "continue"; thus all steps in the loop must execute without
2588           regard for affinity.  To implement these semantics a global depth
2589           counter, __upc_forall_depth, is maintained by the generated code
2590           that implements upc_forall.
2592           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
2593           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
2594           libupc/include/upc.h libupc/smp/upc_main.c
2596 2010-09-19  Gary Funck  <gary@intrepid.com>
2598         * c-decl.c: c-decl.c: zero out the layout specifier, after
2599           processing an array type.
2601           Fix the previous fix, that moved the setting of the type's layout
2602           qualifier to the outside of the array type processing loop.  What is
2603           missing from the fix is that the layout_qualifier variable needs to
2604           be cleared after setting the type's blocksize.
2606 2010-09-19  Gary Funck  <gary@intrepid.com>
2608         * config/upc-conf.h: Fix Bug 375: error message is off-by-one when
2609           given blocksize is greater than UPC_MAX_BLOCKSIZE.
2611           The value we were using for UPC_MAX_BLOCK_SIZE was one bigger than
2612           the actual maximum block size.  Therefore, the message was correct,
2613           but the underlying value that was being checked was wrong.  Change
2614           the values so that they agree with the actual implementation-defined
2615           limit.
2617 2010-09-11  Gary Funck  <gary@intrepid.com>
2619         * c-decl.c: Fix Bug 402: ICE: '[*]' layout factor on
2620           multi-dimensional shared array with dynamic threads.
2622           This declaration caused an internal compiler error when compiled
2623           with dynamic threads:
2624               shared [*] int A[THREADS][16]; The bug was discovered when
2625           compiling the RTED_UPC test suite.
2627           The fix is to process layout qualifiers after the entire array type
2628           has been built.  Otherwise, we try to calculate the blocksize on a
2629           shared array type that has not had its "size depends upon the value
2630           of THREADS" flag set.
2632           Also, added a test case.
2634           See also: libupc/testsuite/libupc.upc/intrepid/test18.upc
2636 2010-07-11  Gary Funck  <gary@intrepid.com>
2638         Fix a bug where a statement in c_build_qualified_type()
2639         in the trunk had been inadvertently deleted.
2640         This bug showed up in the IA64 port, because jmpbuf's
2641         on that architecture must be 16 byte aligned, and they were not.
2642         c-typeck.c (c_build_qualified_type): Revive the deleted line.
2644 2010-07-08  Gary Funck  <gary@intrepid.com>
2646         Make changes so that other language compilers
2647         will build and bootstrap.
2648         * c-family/c-common.c (compiling_upc, flag_upc,
2649         flag_upc_instrument, flag_upc_instrument_functions,
2650         use_upc_dwarf2_extensions): Move to stub-upc.c and
2651         upc-lang.c.
2652         * c-family/c-common.h (use_upc_dwarf2_extensions,
2653         compiling_upc): Add extern definitions - needed
2654         to compile/build other language front ends.
2655         * c-family/c.opt: Fix the spelling of ObjC.
2656         It had been incorrectly spelled as Objc.
2657         * c-family/c.opt: Add UPC for the various switches
2658         that are valid for both C and ObjC.
2659         * c-fmaily/c-opts.c: Add CL_UPC to the list of
2660         supported options switches when compiling assembly
2661         language.
2662         * lto/lto-lang.c (use_upc_dwarf2_extensions,
2663         flag_upc_instrument, flag_upc_instrument_functions):
2664         Remove these definitions.  They have been moved
2665         to c-family/stub-upc.c.
2666         * upc/ChangeLog: Move relevant entries
2667         to ChangeLog.upc.
2668         * c-family/stub-upc.c (compiling_upc, flag_upc,
2669         flag_upc_instrument, flag_upc_instrument_functions,
2670         use_upc_dwarf2_extensions): Moved from c-common.c
2671         * upc/upc-lang.c (compiling_upc, flag_upc,
2672         flag_upc_instrument, flag_upc_instrument_functions,
2673         use_upc_dwarf2_extensions): Moved from c-common.c
2674         * objc/objc-act.c (objc_gimplify_expr): Add additional
2675         parameters to c_gimplify_expr() call, that are used
2676         by upc's tree rewrites.
2677         * cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
2678         * gcc/cp/lex.c (init_reswords): If not compiling
2679         UPC, then mask off the UPC keywords.
2680         * cp/Make-lang.in (C_STUB_OBJS): Use this
2681         make macro to link with c-family/stub-objc.o
2682         and c-family/stub-upc.o.
2683         * fortran/Make-lang.in (C_STUB_OBJS): Likewise.
2684         * java/Make-lang.in (C_STUB_OBJS): Likewise.
2685         * objc/Make-lang.in: Link with c-family/stub-upc.o
2686         to avoid undefined references.
2687         c-parser.c: Fix line indentation.
2688         * libcpp/include/cpplib.h: Remove CL_UPC from
2689         the list of language kinds accepted by the
2690         C preprocessor.  This is not necessary because
2691         UPC is a derivative of C99, and does not need
2692         a different language kind.
2693         * c-fmaily/c-opts.c (c_common_handle_option):
2694         Call set_std_c99() when processing the
2695         "--lang upc" switch, instead of setting the
2696         language kind to CL_UPC.
2697         * libupc/testsuite/libupc.upc/intrepid/ChangeLog: New.
2699 2010-07-03  Gary Funck  <gary@intrepid.com>
2701         Merge trunk version 161517 into gupc branch.
2702         * gcc/stub-upc.c: Move to gcc/c-family/.
2703         * libupc/testsuite/libupc.upc/intrepid/test19.upc:
2704         Add 'unused' attributes to avoid "set, but
2705         not referenced" warnings.
2706         * libupc/testsuite/libupc.upc/intrepid/test18.upc:
2707         Likewise.
2709 2010-03-01 Gary Funck  <gary@intrepid.com>
2711         Create gupc branch from trunk version 157149.