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