2013-10-01 Gary Funck  <gary@intrepid.com>

	Implement pointer-to-shared -> integer conversions.
	Required per UPC 1.3 Specification.
	upc-genericize.c (upc_genericize_pts_to_int_cvt): New.
	(upc_genericize_expr): Call upc_genericize_pts_to_int_cvt().

2013-06-19 Gary Funck  <gary@intrepid.com>

	Merge trunk version 200149 into gupc branch.
	upc-act.c (upc_create_static_var): New.
	(upc_build_init_func): Call upc_create_static_var() to
	create a static variable, __upc_init_func_addr, which
	is initialized to the address of the UPC
	shared data initialization function.  This change is
	needed to avoid writing to the output assembly language
	file too early.
	(upc_build_sync_stmt): Delete unused variable, sync_expr_type.

2013-05-14 Gary Funck  <gary@intrepid.com>

	upc-pts-packed.c (upc_pts_packed_build_cvt):
	When checking whether the phase of a PTS should be reset,
	if the source type is an array type, then bypass
        the check for equal type sizes.
	upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.

2013-04-02 Gary Funck  <gary@intrepid.com>

	Revert revision 178346 (2011-08-30)
	which changed the prototype of check_qualified_type and related
	functions so that their parameters were just 'tree' and not
	'const_tree'.  This seemed necessary at the time because of a
	change to TYPE_BLOCK_FACTOR(), which in turn called function
	that hashed the type node pointer.  The hash functions did
	not accept "const void *" pointers.  Implement a work around
	that removes this restriction.
	* upc-act.c (upc_block_factor_lookup): Accept const_tree
	input argument and convert this to 'tree' for use with hash function.

2013-03-30  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_cpp_builtins): Pre-define __UPC_CASTABLE__.

2012-12-11  Nenad Vukicevic  <nenad@intrepid.com>

	* upc-act.c (upc_finish): Call c_common_finish() to
	finalize the C language related items.

2012-10-28  Nenad Vukicevic  <nenad@intrepid.com>

	Remove unused --upc-pthreads-per-process compile switch. 
	* upc-act.c (upc_handle_option): Ditto.
	(upc_cpp_builtins): Ditto.
	* upc-lang.c (upc_init_options): Ditto.

2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>

	Place shared initialization code into the .text
	section instead of a separate .upc_init section.
	* upc-act.c (upc_build_init_func): Remove settings
	of the section for shared initialization code.

2012-09-26  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_cpp_builtins): Pre-define __UPC_TICK__.

2012-08-29  Nenad Vukicevic  <nenad@intrepid.com>

	* gupc.texi: Add description for -fupc-pre-include.

2012-08-16  Gary Funck  <gary@intrepid.com>

	* upc-pts-struct.c (upc_pts_struct_is_null_p):
	Adjust VEC_index() calls to use C++ syntax.
	This is required as part of the move to compile
	GCC with the C++ compiler.

2012-08-07  Gary Funck  <gary@intrepid.com>

	* upc-genericize.c: Delete un-used include of optabs.h.
	Fixes a parallel make failure due to un-noticed dependency.

2012-07-27  Gary Funck  <gary@intrepid.com>

	* upc-genericize.c (upc_expand_get, upc_expand_put):
	Rather than referring to UPC-specific opcodes to find
	the name of the get/put library function name, generate
	the name directly.
	(get_lc_mode_name): New.

2012-07-25  Gary Funck  <gary@intrepid.com>

	* upc-pts-struct.c (upc_pts_struct_build_cond_expr):
	Fix regression: field-by-field comparison of UPC
	pointer-to-shared (vaddr, thread) only works
	(with the current logic) for the == and != operators.

2012-07-24  Gary Funck  <gary@intrepid.com>

	* upc-pts-packed.c (upc_pts_packed_build_cond_expr):
	Fix warning about use of const_tree.

2012-07-24  Gary Funck  <gary@intrepid.com>

	Per UPC spec. 6.4.2p6, ignore the value of the
	phase of a pointer-to-shared, when comparing for
	equal or not equal.
	* upc-pts-packed.c (upc_pts_packed_build_cond_expr):
	Use bit-wise comparison only if the UPC pointer-to-shared
	target type has a block size <= 1 and the representation
	has vaddr first or the comparison is for equality/inequality.
	* upc-pts-struct.c (upc_pts_struct_build_cond_expr):
	Use (vaddr, thread) comparison only if the UPC pointer-to-shared
	has a block size <= 1 or the comparison is for equality/inequality.
	
2012-07-04  Gary Funck  <gary@intrepid.com>

	* config-lang.in: Adjust for move of C front-end files.
	* upc-act.c: Look for c-tree.h and c-objc-common.h in c/.
	* upc-gasp.c: Ditto.
	* upc-genericize.c: Ditto.
	* upc-lang.c: Ditto.
	* upc-pts-struct.c: Ditto.

2012-05-19  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_lang_layout_decl): Ignore declarations of
	an array of shared type declarations if the size of the
	array is zero.  This avoids a segfault when processing
	the UPC blocking factor.

2012-05-08  Nenad Vukicevic  <nenad@intrepid.com>

	* gupcspec.c (lang_specific_driver): Improve handling of
	"-x" switches: (a) add "-x upc" switch for C source files if
	no -x switch was seen before OR "-x none" was seen, (b) add
	"-x none" for files other then C files if "-x upc" was
	previously added. Cleanup warnings on unused variables
	and integer conversion. Print verbose info regardless of the
	command line being the same.

2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>

	* gupc.texi: Simplify the description of the optimization
	options.

2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>

	* Make-lang.in: Remove build of xgupc.
	* gupcspec.c (get_libgupc_path): Delete.
	(lang_specific_driver): Remove support for building xgupc.
	Removed code tried to add -B, -L, -isystem to the command
	line if xgupc driver is invoked from the development tree.

2012-05-04  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_num_threads): When THREADS is specified
	statically, convert the value to a signed size type,
	so that (for example) the thread affinity test in a
	upc_forall() statement will work as expected for negative
	integer index values.

2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>

	* Make-lang.in: Add year 2012 to the copyright.

2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>

	* gupc.c: Delete. The old GUPC driver.
	* gupcspec.c: Add. The new GUPC driver tailored
	after fortran/gfortranspec.c driver. Options "-n", "-inst",
	and "-inst-functions' are not supported by the new driver.
	Support for building gupc and xgupc remains the same.
	* Make-lang.in (xgupc): Changes to compile gupcspec.c
	instead of gupc.c
	(gupc): Ditto.
	* gupc.texi: Remove '-n', '-inst', and '-inst-functions'
	options.

2012-04-17  Nenad Vukicevic  <nenad@intrepid.com>

	* gupc.texi: Fix the warning for usage of 'insertcopying'
	before 'copying'. Minor changes to to copyright years and
	manual info.

2012-04-16  Gary Funck  <gary@intrepid.com>

	* upc-genericize.c: Adjust copyright.
	(upc_genericize_fndecl): Adjust call graph
	union member reference to use the newly introduced
	'symbol' field in order to refer to 'decl'.

2012-02-07  Nenad Vukicevic  <nenad@intrepid.com>

	* gupc.texi: Added entries for the directory.

2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>

	* gupc-manpage.html: Removed. HTML files are generated from
	the texi source.

2012-02-05  Nenad Vukicevic  <nenad@intrepid.com>

	* gupc.texi (-x upc): Add files ending with '.c' to the list
	of files compiled as UPC source.

2012-02-04  Nenad Vukicevic  <nenad@intrepid.com>

	* Make-lang.in (doc/gupc.info): Fix dependencies for creating
	gupc.info document.

2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>

	* upc-act.c (upc_write_init_func): Disable emitting of the
	profiling code for shared variables initialization routines.

2012-02-03  Nenad Vukicevic  <nenad@intrepid.com>

	* Make-lang.in: Various changes related to generating
	man/info pages from texi source file.
	(upc.install-common): Fix for removing the upc command
	link before install if suffix was applied.
	(upc.install-pdf): New.
	(upc.install-html): Change for the build from texi.
	(upc.install-man): Change for the build from texi.
	* gupc.1: Removed.
	* gupc.texi: New. Created texi source for man/info
	generation.

2012-01-30  Nenad Vukicevic  <nenad@intrepid.com>

	* Make-lang.in: Fix the --program-suffix configuration
	option.  GUPC executables are now installed with appropriate
	suffixes and GUPC driver execs 'gcc' with the right suffix.

2012-01-24  Nenad Vukicevic  <nenad@intrepid.com>

	* upc-lang.c (upc_init_options): Disable section anchors
	for UPC language.

2012-01-14  Gary Funck  <gary@intrepid.com>

	* upc-genericize.c (upc_genericize_expr): Update input_location
	while traversing the program tree.
	(upc_expand_get, upc_expand_put): For profiling,  derive
	the source code location from the incoming 'loc' parameter.

2012-01-09  Gary Funck  <gary@intrepid.com>

	* upc-genericize.c (upc_expand_put): Use is_gimple_reg instead of
	is_gimple_non_addressable.

2012-01-06  Nenad Vukicevic <nenad@intrepid.com>

	* Make-lang.in: Add appropriate linker flags when linking
	gupc drivers.

2012-01-06  Nenad Vukicevic <nenad@intrepid.com>

	* Make-lang.in: Add appropriate linker flags when linking
	gupc drivers.

2011-12-31  Gary Funck  <gary@intrepid.com>

	Fix gupc driver to avoid segfault when processing
	invalid use of a switch that expects an argument.
	* gupc.c (get_libgupc_path): Add check for non-NULL value of
	libgupc_archive before attempting to access libgupc_archive[0].
	(main): Do not issue error if lib_dir is NULL.  Instead, only
	process lib_dir if it is non-NULL.

2011-12-31  Gary Funck  <gary@intrepid.com>

	Improve -fupc-debug support.
	* upc-genericize.c (upc_expand_get, upc_expand_put,
	upc_genericize_sync_stmt): Add check for flag_upc_debug.
	* upc-pts-struct.c (upc_pts_struct_build_cvt): Ditto.
	* upc-pts-packed.c (upc_pts_packed_build_cvt): Ditto.
	* upc-act.c (upc_cpp_builtins): Disable inlining of the
	runtime if flag_upc_debug is asserted.

2011-11-22  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_cpp_builtins): Generate new pre-defined
	macro: __GUPC__.

2011-11-19  Gary Funck  <gary@intrepid.com>

	* config-lang.in: Remove checks for supported targets.
	This is now done at a higher level.

2011-10-26  Gary Funck  <gary@intrepid.com>

	Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
	"libupc" to "libgupc".
	* gupc.c: Rename from upc-cmd.c and adjust for rename
	of libupc to libgupc.
	* upc-lang.c (LANG_HOOKS_NAME): Change "GCC UPC" to "GNU UPC".
	* config-lang.in: Adjust for rename of libupc to libgupc.
	* gupc.1: Rename from upc.1.  Change "GCC UPC" references to "GNU UPC".
	Adjust for rename of libupc to libgupc.  Improve formatting.
	* gupc-manpage.html: Rename from upc-manpage.html.  Re-generate.
	* Make-lang.in: Change "upc" to "gupc".  Change "xupc" to "xgupc".
	Adjust for rename of libupc to libgupc.  Install target symlink from
	"upc" to "gupc".  Install target/version-specific hard links to "gupc".

2011-10-17  Gary Funck  <gary@intrepid.com>

	Fix a regression caused by the previous commit.
	* upc-genericize.c (upc_genericize_walk):
	Renamed from: upc_genericize_stmt.
	(upc_shared_addr): for COMPONENT_REF and INDIRECT_REF
	re-walk the tree after simplification, by calling
	upc_genericize_walk().
	(upc_genericize_array_ref): expand the newly constructed
	indirect reference by calling upc_genericize_indirect_ref().

2011-10-10  Gary Funck  <gary@intrepid.com>

	* upc-genericize.c (upc_simplify_shared_ref): When simplifying
	the base address always convert to (shared [] char *).
	This ensures that &a[i].field1 ends up with the required
	zero block size, for example.

2011-09-22  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_get_block_factor): test TYPE_HAS_BLOCK_FACTOR()
	before calling TYPE_BLOCK_FACTOR().  This fits better with
	recent encoding of block factor values with a hash table.

2011-09-15  Gary Funck  <gary@intrepid.com>

	Fix ICE involving shared bit field accesses.
	* upc-genericize.c (upc_simplify_shared_ref): Improve
	"shared bit fields not yet implemented" error message
	by adding file/line number location.

2011-09-13  Gary Funck  <gary@intrepid.com>

	* upc-tree.def (UPC_FORALL_STMT): Fix spelling error in comments.
	* upc-lang.c (upc_init_options): Ditto.
	* upc-genericize.c (lookup_unshared_var, upc_shared_addr_rep,
	upc_genericize_expr, upc_genericize_compound_expr): Ditto.
	* upc-act.c (upc_parse_init, upc_build_pointer_type,
	upc_block_factor_insert, upc_pts_is_valid_p): Ditto.

2011-09-07  Gary Funck  <gary@intrepid.com>

	Ensure that UPC pointer-to-shared type alignment is
	propagated to the final type.  Revert to long-standing
	alignment policy: twice the size of a "C" pointer.
	* upc-pts-struct.c (upc_pts_struct_init_type): Ensure that
	shared pointers have twice the alignment of a pointer.
	* upc-act.c (upc_cpp_builtins): Unconditionally emit
	the definition of __UPC_PTS_ALIGN__.

2011-09-02  Gary Funck  <gary@intrepid.com>

	Align UPC pointers-to-shared, only if the target enforces
	strict alignment.
	* upc-pts-struct.c (upc_pts_struct_init_type): Align a
	UPC pointer-to-shared type, only if the target requires
	strict alignment.
	* upc-act.c (upc_cpp_builtins): Output pre-defined macro,
	__UPC_PTS_ALIGN__, only if the target requires strict alignment.

2011-08-29  Gary Funck  <gary@intrepid.com>

	Implement a hash table to record UPC block factors.
	* upc-act.c (upc_block_factor_for_type): New garbage-collected
	hash table.
	(upc_lang_init, upc_finish): Move to end of source file.
	(upc_lang_init): create  upc_block_factor_for_type hash table.
	(upc_block_factor_lookup, upc_block_factor_insert): New.
	(upc_grok_layout_qualifier, upc_lang_layout_decl, upc_pts_int_sum):
	Rename UPC_TYPE_HAS_THREADS_FACTOR() to TYPE_HAS_THREADS_FACTOR().
	(upc_grok_layout_qualifier): convert blocking factor to sizetype
	before checking for equality to element type's blocking factor.

2011-08-28  Gary Funck  <gary@intrepid.com>

	Re-work the type machinery to fully support and to unify support
	for the UPC layout qualifier (blocking factor).
	* upc-genericize.c (upc_simplify_shared_ref): Call
	c_build_qualified_type_1() instead of upc_set_block_factor()
	to assert a zero blocking factor.
	* upc-pts-struct.c (upc_pts_struct_init_type): Call
	c_build_qualified_type_1() to build predefined shared
	qualified types, instead of build_variant_type_copy().
	* upc-pts-packed.c (upc_pts_packed_init_type): Call
	c_build_qualified_type_1() to build predefined shared
	qualified types, instead of build_variant_type_copy().
	* upc-act.c (upc_set_block_factor): Delete.
	(upc_grok_layout_qualifier): Rename from upc_apply_layout_qualifier().
	Rework logic so that it returns a blocking factor rather than
	a qualified type.  Add 'loc' argument and call error_at().
	Add an ELEM_BLOCK_FACTOR argument and Implement logic that merges
	the block size of the element type into the result type, and checks
	for errors due to an attempt to merge differing blocking factors.

2011-08-16  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_decl_init): Do not attempt to expand
	  an error mark node.  Fixes ICE after error diagnostic.
	* upc-cmd.c (main): detect missing option argument for
	  options that require an argument, and print error diagnostic.
	  (get_print_cmd): Re-direct error output to /dev/null to
	  avoid issuing duplicate error messages.

2011-08-12  Gary Funck  <gary@intrepid.com>

	Rework/simplify the UPC genericize pass.
	* upc-pts.h (upc_pts_ops_t): Remove 'add_offset' field.
	* upc-act.h: Cosmetic change.
	* config-lang.in (gtypes): Add upc-genericize.[ch] to the list.
	* upc-genericize.c (upc_expand_get): Add WANT_STABLE_VALUE parameter.
	  (upc_build_shared_var_addr, upc_shared_addr_rep): New.
	  (uid_tree_map, unshared_vars, uid_tree_map_hash, uid_tree_map_eq,
	  create_unshared_var, lookup_unshared_var, map_unshared_var,
	  unshared_var_addr, unshared_var_name,
	  upc_free_unshared_var_table): Move from upc-act.c.
	  (upc_expand_get, upc_expand_put): Change their source and/or
	  destination parameters so that they are no longer addresses
	  of the objects, but rather references to the objects themselves.
	  (upc_simplify_shared_ref): Rewrite (simplify/generalize).
	  (upc_shared_addr_rep): New.
	  (upc_shared_addr):  Adjust call to upc_build_shared_var_addr(),
	  and re-factor the logic.
	  (upc_genericize_sync_stmt): Re-format comment.
	  (upc_genericize_shared_var_ref): Adjust call to upc_expand_get().
	  (upc_genericize_addr_expr): Re-factor the logic.
	  (upc_genericize_indirect_ref, upc_genericize_field_ref):
	  Adjust call to upc_expand_get() and re-factor the logic.
	  (upc_genericize_modify_expr): Adjust call to upc_expand_put()
	  and re-factor the logic.
	  (upc_genericize_expr): Improve/fix comments.
	  (upc_genericize_finish, upc_genericize_init): New.
	* upc-pts-struct.c (upc_pts_struct_build_add_offset): Delete.
	  (upc_char_pts_type_node): Create new global type node.
	  (upc_pts_struct_is_null_p): Generalize variable names to
	  reflect the fact that the vaddr field can be either first/last.
	  (upc_pts_struct_build_sum): Make corrections to comments.
	  (upc_pts_struct_build_add_offset): Delete.
	* upc-genericize.h (upc_genericize_finish, upc_genericize_init):
	  New prototypes.
	* upc-pts-packed.c (upc_pts_packed_build_add_offset): Delete.
	  (upc_char_pts_type_node): Create new global type node.
	* Make-lang.in: Add dependencies to gtype-upc.h
	  and gt-upc-upc-genericize.h.
	* upc-act.c: Adjust includes to reflect moving the functions
	  that handle the UPC unshared "shadow variables" into
	  upc-genericize.c.  Improve/fix various comments.
	* upc-act.c (upc_parse_init): Call upc_genericize_init().
	  (upc_build_pointer_type): New.
	  (upc_set_block_factor): Re-purpose.  Move the front-end
	  related error checks into upc_apply_layout_qualifier().
	  (upc_apply_layout_qualifier): New.
	  (upc_write_global_declarations): Call upc_genericize_finish().

2011-07-11  Gary Funck  <gary@intrepid.com>

	* upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
	qualification was incorrectly derived from the source operand.
	(upc_genericize_fndecl): New.
	(upc_gnericize): Call upc_genericize_fndecl() to avoid calling
	c_genericize() more than once in the event of nested procedures.
	(upc_genericize_real_imag_ref): Rename,
	was: upc_genericize_real_image_ref.
	(upc_expand_put): call internal_error() with meaningful message
	in lieu of abort().
	(upc_genericize_real_imag_ref): call internal_error() with
	meaningful message in lieu of gcc_unreachable().

2011-07-06  Gary Funck  <gary@intrepid.com>

	Improve/simplify the logic in upc_genericize.
	* upc-genericize.c (upc_create_tmp_var): Delete the
	  PREFIX argument.  Aways use "UPC" as the prefix.
	  (upc_genericize_compound_expr): Add a WANT_VALUE argument.
	  (upc_genericize_cond_expr): New.
	  (upc_genericize_decl_expr): New.
	  (upc_genericize_stmt): New.
	  (upc_copy_value_to_tmp_var, upc_expand_get): Adjust call
	  to upc_create_tmp_var().
	  (upc_genericize_expr): Change the handling
	  of the want_value flag passed in the DATA argument.
	  Always assert this flag after processing EXPR_P.
	  (upc_genericize_compound_expr): Adjust call
	  to upc_genericize_compound_expr() and call
	  upc_genericize_cond_expr() and upc_genericize_decl_expr().

2011-07-06  Gary Funck  <gary@intrepid.com>

	Re-implement the pass that lowers trees generated by
	the UPC front-end into GENERIC.  Previously this was
	done within the gimplification framework, but this
	required that gimplification be run before inlining
	and various other passes, which did not fit in well
	with the current design of the middle-end passes.
	Now, the lowering is done by a newly defined language
	specific genericize hook.  With this change, we are
	are able to undo some extensions made to the gimplify
	logic, and thus can revert several files to trunk.

	* upc-genericize.c: Rename upc-gimplify.c to upc-genericize.c.
	* upc-genericize.h: Rename upc-gimplify.h to upc-genericize.h.
	* Make-lang.in: Adjust to refer to upc-genericize.[cho].
	* upc-lnag.c: refer to upc-genericize.h.
	  (LANG_HOOKS_GENERICIZE): define as upc_genericize.
	  (LANG_HOOKS_GIMPLIFY_EXPR): Delete.
	  (LANG_HOOKS_INSTRUMENT_FUNC): Delete.
	* upc-act.c: Minor code format fix.

2011-06-29  Gary Funck  <gary@intrepid.com>

	Merge trunk version 175584 into gupc branch.
	* upc-act.c (upc_handle_option): Change reference to
	have_named_sections so that it refers to the
	targetm_common structure.

2011-06-28  Gary Funck  <gary@intrepid.com>

	* upc-act.h (upc_write_init_func, upc_free_unshared_var_table):
	Remove extern definitions. Now declared as 'static'.

	* upc-gimplify.c, upc-lang.c,
	upc-pts-struct.c, upc-gasp.c, upc-pts-packed.c,
	upc-cmd.c, upc-act.c: Improve/add comments, fix
	typos and spelling errors.

2011-06-10  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_set_block_factor): Handle the case where
	the UPC blocking factor expression overflowed.

2011-06-02  Gary Funck  <gary@intrepid.com>

	Merge trunk version 174558 into gupc branch.

	* upc-lang.c (upc_check_decl_init): Use recently defined
	'append_to_statement_list_force' function to add UPC
	initialization statements to the UPC initialization
	statement list ('upc_init_stmt_list').
	(upc_build_init_func): Use recently defined
	'append_to_statement_list_force' function to add
	statements listed in 'upc_init_stmt_list' onto the
	function body constructed to implement initialization
	of UPC declarations that require active initialization
	at program start up.  The previous methods of manipulating
	statement lists no longer worked, due to changes in the
	the statement list structure.

2011-05-23  Gary Funck  <gary@intrepid.com>

	* upc-pts-struct.c: Revert to code that aligned the
	  internal pointer-to-shared representation to
	  twice the alignment of a pointer.  This fixes
	  an ICE that occurred when building the compiler
	  on an IA64 target.

2011-05-17  Gary Funck  <gary@intrepid.com>

	* upc-pts.h (upc_pts_build_value, upc_pts_build_add_offset,
	  upc_pts_build_cond_expr, upc_pts_build_constant,
	  upc_pts_build_cvt, upc_pts_build_diff, upc_pts_build_sum,
	  upc_pts_build_threadof, upc_pts_init_type): Remove extern
	  definitions.
	  (upc_pts_ops_t): New. Define handler table that will
	  implement either the 'packed' or the 'struct' representation
	  of a UPC pointer-to-shared value.
	  (upc_pts_packed_ops, upc_pts_struct_ops): New. Define extern that
	  refers to the packed and the struct UPC pointer-to-shared
	  representation implementation.
	  (upc_pts): New. Define handler table that is set up at initialization
	  to refer to the handlers for the UPC pointer-to-shared
	  representation (packed/struct) that has been configured.
	  Add conditional compilation test for HAVE_UPC_PTS_PACKED_REP
	  and configure the UPC pointer-to-shared definitions that
	  are specific to the configured UPC pointer-to-shared
	  representation.

	* upc-act.h (upc_pts_is_valid_p): Rename extern definition from
	  is_valid_pts_p to upc_pts_is_valid_p.

	* lang-specs.h: Reformat the UPC compilation specs.
	  to improve readability.

	* upc-rts-names.h: New. Define the names of UPC runtime
	  library functions that implement UPC language statement
	  semantics.  These definitions were moved from config/upc-conf.h

	* upc-gimplify.c: Add include of "upc-rts-names.h".
	  Refer to newly defined pointer manipulation routines
	  by indirecting through the newly defined "pts" handler table.
	  Re-format, re-indent.

	* upc-lang.c: Add include of "upc-pts.h".  Fix a comment.

	* config-lang.in: Remove logic that inserted "config/upc-conf.h"
	  into the target include and file path.

	* upc-pts-struct.c: Add include of "upc-rts-names.h".
	  (upc_pts_struct_ops): Define the pointer manipulation
	  handler table that implements operations on UPC
	  pointers-to-shared, represented as a struct.
	  Re-format and re-indent.

	* upc-gasp.c: Add include of "upc-rts-names.h".
	  Re-format and re-indent.

	* upc-pts-packed.c: Add include of "upc-rts-names.h".
	  (upc_pts_packed_ops): Define the pointer manipulation
	  handler table that implements operations on UPC
	  pointers-to-shared, represented as a packed integer.
	  Re-format and re-indent.

	* Make-lang.in: Compile both "upc-pts-packed.c" and
	  "upc-pts-struct.c".  One/other will be selected at
	  compilation time to implement operations on UPC
	  on the UPC pointer-to-shared that has been configured.
	  Add dependencies on "upc-rts-names.h".

	* upc-cmd.c: Re-format and re-indent.

	* upc-act.c: Add include of "upc-rts-names.h".
	  (upc_pts): New. Add definition of the handler
	  table that implements representation specific
	  operations on trees that refer to UPC pointer-to-shared
	  objects and types.  Re-format and re-indent.

2011-05-06  Gary Funck  <gary@intrepid.com>

	Eliminate compilation warnings, by fixing
	#include's and updating function prototypes.

	* upc-gimplify.c: Include bitmap.h.
	  (upc_gimplify_real_image_ref): Mark various parameters
	  as unused.  This is a stub procedure for now.

	* upc-lang.c: Include c-family/c-upc.h.
	  upc-gasp.c: Ditto.

	* upc-cmd.c (no_start_files): Delete unused variable.
	  The -nostartfiles switch is now handled by the linker spec.

	* ChangeLog: Spell check.

2011-05-06  Gary Funck  <gary@intrepid.com>

	Upgrade c-family source files to conform with modularity
	improvements.  Mainly, remove #include of c-tree.h in files
	under c-family, and define a new UPC-specific #include file,
	c-upc.h, and use it.

	* upc-act.h (upc_write_global_declarations,
	  upc_check_decl, upc_build_sync_stmt, upc_affinity_test,
	  upc_num_threads, upc_diagnose_deprecated_stmt):
	  Move external definitions to c-family/c-upc.h
	  (upc_blocksizeof_expr, upc_blocksizeof_type,
	  upc_elemsizeof_expr, upc_elemsizeof_type,
	  upc_localsizeof_expr, upc_localsizeof_type):
	  Remove external definitions; these functions
	  were moved from upc-act.c to c-parser.c.

	* upc-gimplify.c: Add #include of c-family/c-upc.h.
	  upc-pts-packed.c: Ditto.
	  upc-pts-struct.c: Ditto.

	* config-lang.in: Update gtfiles to refer to c-upc.h
	  and other files.

	* upc-act.c: Add #include of c-family/c-upc.h.
	  (upc_blocksize, upc_elemsizeof, upc_localsizeof):
	  Make external so that it can be called from c-parser.c.
	  (upc_blocksizeof_expr, upc_blocksizeof_type,
	  upc_elemsizeof_expr, upc_elemsizeof_type,
	  upc_localsizeof_expr, upc_localsizeof_type):
	  Move from upc/upc-act.c to c-parser.c.
	  (upc_set_block_factor): Fix typo in error message.
	  (upc_shared_type_p, upc_pts_cvt_op_p): Delete.
	  Move to tree.h and define as a macro.
	  (upc_get_unshared_type): Delete. renamed to
	  build_upc_unshared_type and moved to tree.c.

	* upc-gimplify.c (upc_gimplify_lval, upc_gimplify_expr):
	  refer to renamed build_upc_unshared_type function.
	  upc-act.c (create_unshared_var): Ditto.

2011-05-03  Gary Funck  <gary@intrepid.com>

	* upc-lang.c: Remove extraneous FIXME/TODO comments.
	* upc-pts-packed.c (upc_pts_build_cvt): Ditto.
	* upc-act.c (upc_set_block_factor): Ditto.

2011-04-29  Gary Funck  <gary@intrepid.com>

	* upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
	  (upc_expand_put): Ditto.
	  (upc_shared_addr): Ditto.
	  (upc_gimplify_sync_stmt): Ditto.
	  (upc_gimplify_field_ref): Ditto.

	* upc-pts-struct.c (upc_pts_build_diff): Improve error diagnostics.
	  (upc_pts_build_cvt): Ditto.

	* upc-act.c (upc_handle_option): Improve error diagnostics.
	  (upc_lang_init): Ditto.
	  (upc_sizeof_type_check): Ditto.
	  (upc_set_block_factor): Ditto.
	  (upc_decl_init): Ditto.
	  (upc_affinity_test): Ditto.
	  (upc_num_threads): Ditto.
	  (upc_diagnose_deprecated_stmt): Ditto.
	  (upc_build_shared_var_addr): Ditto.
	  (upc_pts_int_sum): Ditto.
	  (upc_pts_diff): Ditto.


2011-04-28  Gary Funck  <gary@intrepid.com>

	* upc-act.c (create_unshared_var): call upc_get_unshared_type()
	  instead of using TYPE_MAIN_VARIANT() to create an equivalent type
	  that is not a UPC shared type.  This is sometimes necessary
	  when the given shared type is derived from a typedef.

2011-04-24  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_handle_option): Fix incorrect error
	  diagnostic messages when both -fupc-debug and
	  -fupc-inline-lib are asserted.

2011-04-24  Gary Funck  <gary@intrepid.com>

	* upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "--param"
	  to the list of switches that accept arguments.
	  (main): Check for switches that have a following
	  argument inside the loop that copies arguments and
	  adds '-x upc' or '-x none' as necessary.
	  (main): Misc. clean ups and simplifications.

2011-04-22  Gary Funck  <gary@intrepid.com>

	Merge trunk version 172873 into gupc branch.
	* upc-act.c (upc_build_init_func): assert DECL_PRESERVE_P()
	  on init_func() to prevent it from being removed from
	  the call graph.

2011-04-19  Gary Funck  <gary@intrepid.com>

	Merge trunk version 172359 into gupc branch.
	* upc-lang.c (upc_init_ts): New.
	  (LANG_HOOKS_INIT_TS): use upc_init_ts.

2011-04-19  Gary Funck  <gary@intrepid.com>

	Eliminate warnings when compiling upc-cmd.c.

	* upc-cmd.c (file_exists): Remove.
	  (arg_copy): Remove const qualifier.

2011-04-13  Gary Funck  <gary@intrepid.com>

	* upc-cmd.c (GCC_WORD_SWITCH_TAKES_ARG): Add "dumpbase"
	  to the list, and alphabetize.

2011-04-13  Gary Funck  <gary@intrepid.com>

	* upc-gimplify.c (upc_gimplify_real_image_ref): New.
	  Currently, a not-yet-implemented stub.
	  (upc_gimplify_lval): call upc_gimplify_real_image_ref to
	  rewrite UPC shared REALPART_EXPR and IMAGPART_EXPR lvalues.
	  This will avoid an ICE when compiling regular "C"
	  code that refers to those operators.

2011-04-13  Gary Funck  <gary@intrepid.com>

	* upc-cmd.c: Do not add "-isystem <libupc_path>" if
	  -fno-upc-pre-include is asserted.

2011-03-22  Gary Funck  <gary@intrepid.com>

	* upc-cmd.c: Move linker switches into libupc/libupc.spec.
	  (UPC_LINKER_SCRIPT, LIBNUMA, LIBUPC, LIBUPC_PT) Remove.
	  (find_ld_script) Remove.

2011-03-20  Gary Funck  <gary@intrepid.com>

	* upc-act.c: Call error() directly with a format specifier,
	  rather than using sprintf() to format the message.
	  This should make it easier to internationalize UPC's error messages.

2011-03-20  Gary Funck  <gary@intrepid.com>

	Move UPC start files, end files, and linker specs.
	into libupc.  This reduces the impact on common GCC
	configuration files, and ensures that these UPC-specific
	components are only built when the UPC language dialect is selected.

	* config-lang.in: Remove setting of 'upc_extra_parts', which
	  was used to specify which upc-crtbegin and upc-crtend files
	  need to built.  Remove extraneous (commented out)
	  settings of 'cfiles'.  The listed configuration files
	  have been reverted to trunk, and weren't referenced
	  via cfiles in any event.

	* upc/upc-cmd.c: Remove test for HAVE_UPC_LINK_SCRIPT.
	  Simply test for the presence of the UPC link script
	  in the current directory or the libupc directory.
	  Add -B<path-to-libupc> to the switches passed to 'gcc';
	  this is needed in order to find the upc-crtbegin
	  and upc-crtend object files now built in libupc.
	  Remove test for and inclusion of UPC_LINKER_SWITCHES.
	  if extra switches are needed for a particular target
	  (like SGI/Irix), they will be defined by the custom
	  linker spec. built in libupc.  Remove test for
	  HAVE_UPC_NUMA_SUPPORT; if '-lnuma' is needed, it
	  will be added to the custom linker specs. built
	  in libupc.

	* upc-crtstuff.c: Move to libupc.

2011-02-22  Gary Funck  <gary@intrepid.com>

	* upc-act.c (upc_diagnose_deprecated_stmt): New.
	  upc-act.h (upc_diagnose_deprecated_stmt): Define.
	  Check usage of deprecated keywords and issue
	  error message.

2011-02-08  Gary Funck  <gary@intrepid.com>

	* upc-pts-struct.c: Fix bug: (pts + int) fails when int is negative
	  for struct-pts representation

	  Analysis indicated that for something like (+ ptr -80) this was
	  being represented as (+ ptr (- 80)) and further, when the
	  calculations were propagated into the individual operations on the
	  components of the 'struct' pointer, it would end up with something
	  like (+ ptr.vaddr (- 80)), and the type of (- 80) would end up as
	  "long unsigned int" because of the addition to the pointer.  This
	  caused the calculations involving the signed 'int' operand to be
	  performed incorrectly.  This fix insures that the 'int' operand is
	  signed.

2011-02-08  Gary Funck  <gary@intrepid.com>

	* upc/config-lang.in, upc/lang-specs.h, upc/Makefile.in,
	  upc/Make-lang.in, upc/upc.1, upc/upc-act.c, upc/upc-act.h,
	  upc/upc-cmd.c, upc/upc-crtstuff.c, upc/upc-gasp.c,
	  upc/upc-gasp.h, upc/upc-gimplify.c, upc/upc-gimplify.h,
	  upc/upc-lang.c, upc/upc-pts.h, upc/upc-pts-packed.c,
	  upc/upc-pts-struct.c, upc/upc-tree.def, upc/upc-tree.h:
	Update copyright notices.

2011-01-09  Gary Funck  <gary@intrepid.com>

	Fix behavior of upc_localsizeof() when called in a dynamic
	threads compilation environment.  This bug, and the expected
	behavior is documented in this bug report:
	https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2960.
	* upc_act.c (upc_localsizeof): Re-implement.

2010-12-15  Gary Funck  <gary@intrepid.com>

	Merge trunk version 167307 into gupc branch.
	* upc_act.h: (upc_handle_option) add location and struct
	cl_option_handlers * parameters.
	(upc_finish_file) Remove.
	(upc_write_global_declarations) New, replaces upc_finish_file.
	* lang-spec.h: Disable multi-file compilation for .upc files.
	This fixes an issue where file-scoped static variables were
	diagnosed as multiply-defined.  Both "C" and "ObjC" also disable
	multi-file compilation.
	* upc-gimplify.c: (upc_expand_put) Check for INDIRECT_REF_P()
	explicitly when deciding whether a UPC shared object is addressable.
	is_gimple_addressable() used to do this, but now checks for MEM_REF
	which does not apply to UPC shared objects.
	(upc_gimplify_lval, upc_gimplify_expr) Delete references to
	ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF.
	These are no longer defined.
	(upc_genericize) Add call to bitmap_obstack_initialize()
	and bitmap_obstack_release() around call to gimplify_function_tree().
	* upc-lang.c: Add #include of "opts.h" and "options.h".
	(flag_upc_debug, flag_upc_inline_lib, flag_upc_instrument,
	flag_upc_instrument_functions) Remove.  Use definitions
	generated by the options file.
	(upc_init_options) Use cl_decoded_option struct.
	(LANG_HOOKS_WRITE_GLOBALS) Define as upc_write_global_declarations.
	(finish_file) Delete.
	(upc_init_options) Call control_warning_option() to specify
	-Werror=pointer-arith as the default.  Remove call to
	enable_warning_as_error().
	* upc-pts-struct.c: (upc_pts_init_type) Move test that
	UPC_PTS_THREAD_SIZE is a multiple of a byte into an "if" statement
	rather than an #ifdef; this macro now depends upon a
	target size macro which must be evaluated at runtime.
	* Make-lang.in: (cc1-dummy) Remove make target.
	(cc1upc-checksum.c) Generate directly from object files.
	* upc-cmd.c: (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG) Delete
	references to these deprecated macro definitions.
	(GCC_WORD_SWITCH_TAKES_ARG, GCC_WORD_SWITCH_TAKES_ARG) New.
	(all_exec_args) Delete variable.
	(exec_args) Re-define as (const char *).
	(exec_arg_list) New.  Make copy of exec_args to pass to 'exec'.
	* upc-act.c: (upc_handle_option) Update argument list to accept
	(cl_option_handlers *) argument.
	(upc_finish_file) Rename to upc_write_global_declarations.
	(upc_write_global_declarations) New.

2010-10-17  Gary Funck  <gary@intrepid.com>

	* upc-act.c: Issue a compilation error on attempts to perform
	  arithmetic on generic pointer-to-shared values.

	  (The rest of this update is a small code clean up.)

2010-10-17  Gary Funck  <gary@intrepid.com>

	* upc-lang.c: For UPC only, issue errors for arithmetic and related
	  operations on void types.

	  This update simulates the effect of -Werror=pointer-arith, thus
	  causing arithmetic on void types, sizeof(void) and so on to be
	  considered compilation errors.  This meets the expectations of some
	  harness tests and the RTED/CTED test suites.  GCC is more
	  permissive, but since this is for UPC only, we can fairly safely
	  define this new policy.

2010-10-16  Gary Funck  <gary@intrepid.com>

	* upc-act.c: Fix bug: Static initialization of shared
	  arrays is unsupported -- issue an error message.

	  Currently, static initialization of a shared array is not
	  implemented correctly.

	  We do not plan to fix this for a while, therefore the compiler will
	  issue an error message indicating that this is an unsupported
	  operation.

2010-10-13  Gary Funck  <gary@intrepid.com>

	* upc-act.c: Fix bug: negative layout qualifiers not diagnosed
	  as an error.

	  The CTED_UPC test c_A_1_3_b.upc, specified a negative blocksize, but
	  it was not diagnosed as an error.  With this fix, negative block
	  sizes will generate a translation error.

2010-10-10  Gary Funck  <gary@intrepid.com>

	* upc-act.c: Fix bug: ICE: Attempt to take the difference of
	  shared and non-shared pointers

	  The compiler detected the error, and then tried to return
	  error_mark_node.  This apparently is not acceptable, as there is an
	  explicit assertion check to prevent this from happening in
	  build_binary_op.  Return the more user-friendly size_one_node
	  instead.

2010-10-09  Gary Funck  <gary@intrepid.com>

	* upc-act.c: Fix bug: segfault on incomplete array definition.

	  This turned out to be a bit complicated.   The logic in
	  upc_lang_layout_decl had to be re-arranged to avoid trying to lookup
	  the THREADS identifier in the case where the blocking factor has
	  been set to indefinite ([]).  This can happen when indefinite array
	  declarations are processed for shared arrays.  At that time, the
	  file scope has been closed and THREADS is no longer in scope.  Some
	  more work is needed on upc_lang_layout_decl().  It has some
	  duplication, and notably duplicates the two branches of the if
	  having to do with TYPE_SIZE and TYPE_SIZE_UNIT, that appear in the
	  caller of this routine (layout_decl()).

	  The method of forcing a layout qualifier of [] in the indefinite
	  declaration handler is odd a well.  The code that just does the
	  setting of the block factor, needs to moved into its own routine
	  that doesn't depend upon a declspec for '[]' to be passed in, just
	  in order to set the blocking factor to some value (in this case, 0).
	  Also, the logic for how that shared type is constructed is strange.
	  First the type with 0 blocking factor is set.  Then the shared
	  qualifier is removed from the type, and then added back later.  The
	  intermediate type has a blocking factor set, but it has no shared
	  qualifier.  Fixing this will require some thought.  It is tempting
	  just to make indefinite shared arrays an error, rather than forcing
	  the dimension to be '1'.

	  This likely fixes a serious error in the previous update to
	  upc_lang_layout_decl(), where it didn't have the logic to set
	  TYPE_SIZE_UNIT() in the main part of the 'if' statement.  This means
	  the previous update would fail on many tests.

	  See also: gcc/c-common.c gcc/upc/upc-act.c

2010-10-01  Gary Funck  <gary@intrepid.com>

	* upc-manpage.html, upc.1: Update manual page, and bug reporting
	  URL.

	  Update "man" page to reflect debugging switches.  Also, some general
	  clean up.  Change the bug reporting URL to point to gccupc.org.

	  See also: gcc/configure gcc/configure.ac gcc/upc/upc-manpage.html
	  gcc/upc/upc.1

2010-10-01  Gary Funck  <gary@intrepid.com>

	* upc-act.c: Do not zap all qualifier bits when constructing a
	  non-shared result node.

	  This fix was suggested by Paul H. in the following Berkeley Bugzilla
	  report: https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2061 The
	  use of "!" rather than "~" zapped all the type qualifier bits rather
	  than just those that are related to the "shared" qualifier.  This
	  fix clears only the relevant bits.

2010-09-26  Gary Funck  <gary@intrepid.com>

	* upc-act.c: Fix bug: upc_forall with empty clauses
	  mis-diagnosed as syntax error.

	  A failure was exhibited by the Berkeley test case,
	  bug873a.upc, which has the code:
	       double d;
	       upc_forall (;;;d) {...} The compiler did not properly handle
	  the empty "condition" clause, and did not recover well when it was
	  determined that the use of a double value, "d" above, was neither a
	  pointer-to-shared nor an integer expression.  The update implements a
	  fix for both issues.

	  See also: gcc/c-parser.c gcc/upc/upc-act.c

2010-09-25  Gary Funck  <gary@intrepid.com>

	* upc-pts-struct.c: Fix an ICE on 32-bit/struct target: failed
	  gimple check when calculating affinity for upc_forall.

	  Intrepid test, test10.upc, failed to compile due a mis-match between
	  the COMPONENT_REF node and the internal 'thread' field.  Changed the
	  code to make the types agree, and added a conversion to sizetype if
	  necessary.

2010-09-23  Gary Funck  <gary@intrepid.com>

	* upc-act.c: Fix bug: ICE: '[*]' layout factor applied to array
	  with static threads and size not a multiple of threads.

	  Add an extra check for an attempt to apply a '[*]' layout qualifier
	  to a shared array that does not specify a size that is a multiple of
	  THREADS, when compiled in a static THREADS compilation environment.

2010-09-22  Gary Funck  <gary@intrepid.com>

	* upc-act.c, upc-act.h: Fix bug: Nested upc_forall() semantics
	  are not implemented

	  The checkforall test in the Berkeley harness test suite indicated
	  that GCC/UPC was not properly implementing nested upc_forall
	  semantics.  Nested upc_forall statements (both statically or
	  dynamically nested) must implement their affinity clause as if it
	  were "continue"; thus all steps in the loop must execute without
	  regard for affinity.  To implement these semantics a global depth
	  counter, __upc_forall_depth, is maintained by the generated code
	  that implements upc_forall.

	  See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
	  gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
	  libupc/include/upc.h libupc/smp/upc_main.c

2010-09-18  Gary Funck  <gary@intrepid.com>

	* upc-act.c, upc-pts-packed.c, upc-pts-struct.c: Implement
	  -fupc-debug switch.

2010-07-03  Gary Funck  <gary@intrepid.com>

	Merge trunk version 161517 into gupc branch.
	* config-lang.in: Update references to files
	  moved into c-family/.
	* Make-lang.in: Likewise.
	* upc-act.c: Likewise.
	* upc-gasp.c: Likewise.
	* upc-gimplify.c: Likewise.
	* upc-lang.c: Likewise.
	* upc-pts-packed.c: Likewise.
	* upc-pts-struct.c: Likewise.
	* upc-act.c: (upc_handle_option) add parameters to
	  effect pass through call to c_common_handle_option.
	* upc-act.h: (upc_handle_option) Likewise.
	* upc-act.c: (map_unshared_var) used typed ggc allocation.
	* upc-act.c: (upc_build_init_func) add call to
	  to mark_decl_referenced(), to ensure that UPC shared
	  variable initializer function is not removed from
	  the call tree graph.

2010-02-28  Gary Funck  <gary@intrepid.com>

	Initial implementation and checkin.

