diff options
Diffstat (limited to 'libgupc/ChangeLog')
-rw-r--r-- | libgupc/ChangeLog | 1644 |
1 files changed, 1644 insertions, 0 deletions
diff --git a/libgupc/ChangeLog b/libgupc/ChangeLog new file mode 100644 index 00000000000..f853c927a1c --- /dev/null +++ b/libgupc/ChangeLog @@ -0,0 +1,1644 @@ +2015-11-28 Gary Funck <gary@intrepid.com> + + * smp/upc_main.c (__upc_process_switches): Accept -fupc-threads=N + and -fupc-heap=N switches as well as their deprecated forms. + (__upc_print_help_and_exit): Print -fupc-threads=N + and -fupc-heap=N forms in the usage summary. + * smp/gcc-upc-lib.in: Refer to -fupc-threads=N compilation switch. + * portals4/gcc-upc-lib.in: Ditto. + +2015-11-25 Gary Funck <gary@intrepid.com> + + * Makefile.am: Fix spelling. + * Makefile.in: Re-generate. + * collectives/upc_coll_init.upc: Ditto. + * collectives/upc_coll_prefix_reduce.in: Ditto. + * include/gasp_upc.h: Ditto. + * portals4/gupcr_barrier.c: Ditto. + * portals4/gupcr_pts.h: Ditto. + * smp/upc_gum.c: Ditto. + * smp/upc_main.c: Ditto. + * smp/upc_pts.h: Ditto. + +2015-11-22 Gary Funck <gary@intrepid.com> + + * ax_prog_doxygen.m4: Fix spelling. + * configure.ac: Ditto. + * portals4/doxygen.cfg.in: Ditto. + * portals4/gupcr_coll_sup.c: Ditto. + * portals4/gupcr_gmem.h: Ditto. + * portals4/gupcr_nb_sup.c: Ditto. + * smp/upc_affinity.c: Ditto. + * smp/upc_main.c: Ditto. + * configure: Re-generate. + +2015-11-04 Gary Funck <gary@intrepid.com> + + * smp/upc_sync.h (GUPCR_WRITE_FENCE, GUPCR_READ_FENCE): + Define for __aarch64__. + +2015-10-21 Gary Funck <gary@intrepid.com> + + * upc-crtbegin.spec.in, upc-crtend.spec.in: + Refer to -fupc, not -fupc-link, in comment. + +2015-10-17 Gary Funck <gary@intrepid.com> + + * smp/upc_sup.h (upc_shared_ptr_alias_t): Delete. + Remove this type, no longer needed because the runtime is + built with -fno-strict-aliasing. + +2015-10-13 Gary Funck <gary@intrepid.com> + + * testsuite/lib/libgupc.exp: Load multiline.exp before prune.exp, + using load_gcc_lib. + +2015-10-07 Gary Funck <gary@intrepid.com> + + * config/default/upc-crt-begin-end.h (GUPCR_SHARED_BEGIN_NAME, + GUPCR_SHARED_END_NAME, GUPCR_PGM_INFO_BEGIN_NAME, + GUPCR_PGM_INFO_END_NAME, GUPCR_INIT_ARRAY_BEGIN_NAME, + GUPCR_INIT_ARRAY_END_NAME): New. Move from gcc/defaults.h + and rename UPC_* to GUPCR_*. + * configure.ac: Determine UPC linker support by querying + GUPC builtin preprocessor symbol. + Remove --enable-upc-link-script option. + * upc-crtstuff.c: Include upc-crt-begin-end.h. + * configure: Re-generate. + +2015-10-04 Gary Funck <gary@intrepid.com> + + * configure.ac: Extract UPC-related section names from + pre-defined's passed by the UPC compiler. + * configure.tgt: Remove logic for finding and setting + the UPC crt make file fragment ('upc_crtstuff_mak'). + * Makefile.am: Re-do logic for generating UPC crtbegin/end files. + Removes dependency on libgcc and gcc build directories. + They are un-needed for UPC, because its "crt" files define + only section start/end symbols. + * upc-crtstuff.c: Removes dependency on libgcc and gcc source + and build directories. + * config/default/upc-crtstuff.mak: Remove. + * config/darwin/upc-crt-config.h: Parameterize by section + names passed by the UPC compiler as pre-defined's. + * config/default/upc-crt-config.h: Ditto. + * configure: Re-generate. + * config.h.in: Re-generate. + * Makefile.in: Re-generate. + +2015-09-26 Gary Funck <gary@intrepid.com> + + * config.h.in (GUPCR_SHARED_SECTION_NAME, + GUPCR_PGM_INFO_SECTION_NAME, GUPCR_INIT_ARRAY_SECTION_NAMEA): + Move from gcc/defaults.h and rename UPC_* to GUPCR_*. + +2015-09-17 Gary Funck <gary@intrepid.com> + + Update copyright notices. + +2015-09-09 Gary Funck <gary@intrepid.com> + + * smp/upc_barrier.upc (__upc_btree): Make this a UPC 'strict' + shared array in order to avoid potential race conditions + in the implementation of barrier. + +2015-08-25 Gary Funck <gary@intrepid.com> + + * configure.tgt: Add configure checking for supported targets. + +2015-08-15 Gary Funck <gary@intrepid.com> + + * testsuite/lib/libgupc.exp: Load target-utils.exp. + Move load of target-supports.exp earlier. + +2015-08-14 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Fix the previous update for netbsd checking. + * configure: Re-generate. + +2015-08-08 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Check for existence of execinfo library + on BSD systems as it is required for backtrace. + * configure: Re-generate. + * configure.tgt: Add execinfo library on the link line if + necessary. + * portals4/gupcr_node.c (gupcr_mem_private): File number must + be -1 on BSD systems for anonymous maps. + * smp/upc_sysdep.c (__upc_strsignal): Add support for SUN. Do + not declare sys_siglist on netBSD (already in signal.h). + (__upc_create_runtime_heap): File number must be -1 on BSD + systems for anonymous maps. + * smp/upc_backtrace.c: Fix compile warnings. + +2015-08-03 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Remove unnecessary check for + -rdynamic. + * configure: Re-generate. + * configure.tgt: Add option for exporting dynamic symbols + only if linker supports it. + +2015-07-25 Gary Funck <gary@intrepid.com> + + * libgupc.texi: Change menu ordering to agree with node ordering. + +2015-07-24 Gary Funck <gary@intrepid.com> + + * smp/upc_pts.h (GUPCR_ONE): Define as unsigned constant, + to avoid overflow warnings. + * portals4/gupcr_pts.h (GUPCR_ONE): Ditto. + +2015-07-03 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_nb.upc (upc_memset_nb, upc_memset_nbi): Complete + upc_memset() with upc fence. Otherwise it will not be completed by + the non-blocking sync functions. + +2015-05-18 Gary Funck <gary@intrepid.com> + + * configure.ac: Set minimum automake version to 1.11.6. + * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in: + Re-generate with automake 1.11.6. + +2015-04-30 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_nb_sup.c (gupc_nb_put/get): Fix bug. Increment + number of outstanding implicit transfers. + +2014-11-01 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_gmem.c (gupc_gmem_get): Advance remote offset + if more then one PtlGet() are executed. + +2014-08-15 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_mem.c (upc_memcpy): Make sure outstanding + strict puts are completed before transferring data from + the remote node as local thread can have an outstanding + memory put to the same location. + +2014-08-01 Gary Funck <gary@intrepid.com> + + * configure.ac (GUPCR_PORTALS_RUNTIME): New AC_DEFINE(). + * config.h.in: Re-generate. + * configure: Re-generate. + * libgupc.spec.in: Fix comment. + * testsuite/lib/libgupc-dg.exp + (libgupc_load): Simplify logic. + (upc_run_cmd): Rename from run_command. + (upc_portals): Use newly added GUPCR_PORTALS_RUNTIME config. variable. + (upc_runtime_yod): Make compile-only. + * testsuite/lib/libgupc.exp: Bring in line with gomp's libgomp.exp. + (libgupc_target_compile): Simplify logic. + * testsuite/libgupc.upc/upc.exp: + Bring in line with gomp's libgomp.c/c.exp. + * testsuite/libgupc.upc/intrepid/test07.upc + * testsuite/libgupc.upc/intrepid/test07_sep.upc + * testsuite/libgupc.upc/intrepid/test08.upc + * testsuite/libgupc.upc/intrepid/test08_sep.upc + Add dg-options to properly support separate compilation. + +2014-07-16 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_lock.upc (upc_lock): Add upc_fence to flush + caches after write and before read from shared space. Fixes + occasional lockup in the lock code. + +2014-07-02 Nenad Vukicevic <nenad@intrepid.com> + + * Makefile.am (UPC_LINK_SCRIPT): Change the UPC link script + build procedure. The previous way was always generating + an error as not source file was provided. This error string + ended up in the UPC link script on some of the systems. + * Makefile.in: Regenerate. + +2014-07-02 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gcc-upc-lib.in: Use stddef.h for size_t + instead of sys/types.h as it might break on some + systems. + +2014-05-27 Nenad Vukicevic <nenad@intrepid.com> + + * upc_main.c (__upc_run_threads): Set O_APPEND flag + on stdout/stderr to fix occasional garbled output when + output from multiple threads is saved to a file. + +2014-04-21 Nenad Vukicevic <nenad@intrepid.com> + + * configure.tgt: Fix check for the presence of -rdynamic + compiler switch. + +2014-04-09 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_atomic.upc (upc_atomic_relaxed): Fix PTS + CSWAP operation to return target value on failures too. + +2014-04-08 Gary Funck <gary@intrepid.com> + + Fix UPC atomic operations on types that have no builtin + compiler support. Build a version of the libatomic convenience + library that has no locking support, and then provide + locks in the UPC runtime library. These lock functions + serialize atomic operations on types with no builtin atomics. + * libatomic/Makefile.am: Add rule to build + libatomic_convenience_nolock library. + * libatomic/Makefile.in: Re-generate. + * Makefile.am: Use libatomic_convenience_nolock library. + Compile libat lock support. Add convenience library to + pthreads version of the UPC runtime library. + * Makefile.in: Re-generate. + * smp/upc_atomic.tpl: Simplify compare/swap support. + * smp/upc_atomic.upc: Re-generate. + * smp/upc_libat_lock.c: New. UPC-specific libat lock support. + * smp/upc_libat_lock.h: New. UPC-specific libat lock support. + +2014-03-18 Nenad Vukicevic <nenad@intrepid.com> + + As per UPC spec 1.3 query function is upc_atomic_isfast(). + * include/upc_atomic.h (upc_atomic_query): Rename to + upc_atomic_isfast(). + * portals4/gupcr_atomic.upc (upc_atomic_query): Rename to + upc_atomic_isfast(). + * smp/upc_atomic.tpl (upc_atomic_query): Rename to + upc_atomic_isfast(). + * smp/upc_atomic.upc: Regenerate. + +2014-01-17 Nenad Vukicevic <nenad@intrepid.com> + + * smp/upc_barrier.upc: Remove unnecessary include. + * smp/upc_pts.hi (GUPCR_PTS_SET_VADDR): Fix the cast. Some other + compilers might issues a warning. + * smp/upc_vm.c (__upc_vm_map_addr): Add a cast to avoid a possible + warning on void * arithmetic. + +2014-01-17 Nenad Vukicevic <nenad@intrepid.com> + + * smp/gcc-upc-lib.in: Add defines for __UPC_CASTABLE__, + __UPC_COLLECTIVE__, __UPC_TICK__, and __UPC_PUCP__ defines. + * portals4/gcc-upc-lib.in: Ditto. + +2014-01-10 Gary Funck <gary@intrepid.com> + + Update copyright notices. + +2014-01-09 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_alloc.upc (gupcr_pts_add_offset): Moved from + gupcr_utils.h. + (gupcr_pts_diff): Ditto. + * portals4/gupcr_utils.h (gupcr_pts_add_offset): Remove. + (gupcr_pts_diff): Ditto. + +2014-01-04 Gary Funck <gary@intrepid.com> + + * configure.ac: Remove check for cc1upc. + * configure: Re-generate. + * portals4/gcc-upc-lib.in: Protect upc_atomicdomain_t declaration + with #pragma upc upc_code. + * smp/gcc-upc-lib.in: Ditto. + +2013-11-03 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_atomic.upc (gupcr_set_optype_val): Add missing + break on case statement. + (gupcr_negate_atomic_type): Ditto. + +2013-10-23 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Rework checking of GDB availability for backtracing. + Usage of GDB backtracing is enabled only if GDB was found or the + path was specified by the user. Change was needed as Mac OS X + 10.9 does not have gdb installed. + Additional fix for printing correct result if "-rdynamic" option + is available. + * configure: Re-generate. + +2013-10-04 Nenad Vukicevic <nenad@intrepid.com> + + Add UPC backtrace to Portals4 runtime. + * Makefile.am: UPC_BACKTRACE_SUP is common define now. + (UPC_RUNTIME_SRC): Portals4, add UPC backtrace files. + * Makefile.in: Re-generate. + * configure.ac: Check for UPC backtrace options is common + to SMP and Portals4 runtimes. + * configure: Re-generate. + * portals4/gupcr_backtrace.c: New. Port from the SMP implementation. + * portals4/gupcr_backtrace.h: Ditto. + * portals4/gupcr_barrier.c (gupcr_barrier_id): Make it global. + * portals4/gupcr_barrier.h: Ditto. + * portals4/gupcr_env.c (gupcr_env_kind): Add ENV_UPC_BACKTRACE. + (gupcr_env_var_table): Add ENV_UPC_BACKTRACE. + (gupcr_env_init): Add support for ENV_UPC_BACKTRACE. + * portals4/gupcr_main.c (gupcr_init): Initialized UPC backtrace + if enabled. + * portals4/gupcr_utils.c (gupcr_backtrace): Add. + (gupcr_create_temp_file): Add. + (gupcr_set_backtrace):Add. + (gupcr_is_backtrace_enabled): Add. + * portals4/gupcr_utils.h: Add prototypes for the new utility + functions. + +2013-09-27 Gary Funck <gary@intrepid.com> + + Implement non-blocking transfer operations for SMP runtime. + * Makefile.am (UPC_RUNTIME_SRC): Add upc_nb.upc. + * Makefile.in: Re-generate. + * configure: Re-generate. + * smp/gcc-upc-lib.in: Add __UPC_NB__ definition. + * smp/gupcr_nb.upc: New. Non-blocking transfers library. + +2013-09-26 Nenad Vukicevic <nenad@intrepid.com> + + * Makefile.am (UPC_BACKTRACE_SUP): Remove upc_backtrace_sup.c. + * Makefile.in: Re-generate. + * configure.ac: Remove detection of libbfd. Add + HAVE_UPC_BACKTRACE_ADDR2LINE and GUPCR_BACKTRACE_ADDR2LINE + definitions. + * configure: Re-generate. + * config.h.in: Re-generate. + * configure.tgt (LIBS): Remove libbfd and libdl. + * smp/upc_backtrace.c (__upc_backtrace): Use addr2line to generate + source code references. + (__upc_abs_execname): Use pointer instead of large array declaration. + (__upc_backtrace_init): Allocate space for __upc_abs_execname. + * smp/upc_backtrace.h: Remove libbfd support function prototype. + * smp/upc_backtrace_sup.c: Delete. + +2013-09-10 Nenad Vukicevic <nenad@intrepid.com> + + Implement non-blocking transfer operations for Portals4 runtime. + * Makefile.am (UPC_RUNTIME_SRC): Add upc_nb.upc, upc_nb_sup.h, + upc_nb_sup.c for Portals4 source files. + * Makefile.in: Re-generate. + * portals4/gcc-upc-lib.in: Add __UPC_NB__ definition. + * portals4/gupcr_env.c (gupcr_facility_table): Add FC_NB facility. + * portals4/gupcr_main.c (gupcr_init): Add NB initialization. + (gupcr_fini): Add NB finalization. + * portals4/gupcr_nb.upc: New. Non-blocking transfers library. + * portals4/gupcr_nb_sup.c: New. Non-blocking transfers support. + * portals4/gupcr_nb_sup.h: New. Non-blocking transfers support. + * portals4/gupcr_portals.h: Add GUPCR_PTL_PTE_NB for non-blocking + transfers. + (gupcr_portals_call_with_status): PTL_EQ_EMPTY is not an error. + * portals4/gupcr_utils.h (gupcr_facility_t): Add enum value for FC_NB. + +2013-09-09 Nenad Vukicevic <nenad@intrepid.com> + + Added UPC non-blocking transfer header file. + * Makefile.am (UPC_HDRS): Add upc_nb.h + * Makefile.in: Re-generate. + * include/upc_nb.h: New. Required per 1.3 spec. + +2013-08-06 Gary Funck <gary@intrepid.com> + + Implement atomic operations library for SMP runtime. + * ../Makefile.def: Add dependencies for libatomic and libbacktrace. + * ../Makefile.in: Re-generate. + * Makefile.am: Add gen-inline-libgupc.pl gen-upc-ld-script.pl. + Add autogen rules to build smp/upc_atomic.upc. + * Makefile.in: Re-generate. + * include/upc_atomic.h: Add UPC_*_OP definitions. + * include/upc_ops.def: New. Describe UPC atomic operations. + * include/upc_types.def: New. Describe UPC atomic types. + * include/upc_types.h: Add UPC_*_OP definitions. + * smp/gcc-upc-lib.in: Define __UPC_ATOMIC__ and add typedef + for upc_atomicdomain_t. + * smp/upc_atomic.def: New. Autogen definition file for upc_atomic.upc. + * smp/upc_atomic.tpl: New. Autogen template file for upc_atomic.upc. + * smp/upc_atomic.upc: New. Generate from smp/upc_atomic.def. + * smp/upc_config.h: Add defines for LONG_LONG_BITS and SIZE_T_BITS. + * smp/upc_main.c: (__upc_fatal) Fix bug in handling of variadic args. + +2013-07-24 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_atomic_sup.c: Use correct type for EQ declaration. + * portals4/gupcr_coll_sup.c: Ditto. + * portals4/gupcr_shutdown.c: Ditto. + +2013-06-12 Nenad Vukicevic <nenad@intrepid.com> + + * testsuite/lib/libgupc-dg.exp: Check GUPC P4 runtime for SLURM + or YOD configuration and use appropriate commands to run tests. + +2013-06-07 Nenad Vukicevic <nenad@intrepid.com> + + * testsuite/libgupc.upc/upc.exp: Changed list of tests to exclude + separate compilation units (*_sep.upc). + +2013-06-07 Nenad Vukicevic <nenad@intrepid.com> + + * include/gasp_upc.h: Cleanup to conform to GCC codding style + (mainly fixing comments, but also some prototypes, defiens, ...). + include/gcc-upc.h: Ditto. + * include/pupc.h: Ditto. + * include/upc.h: Ditto. + * include/upc_collective.h: Ditto. + * include/upc_tick.h: Ditto. + * include/upc_types.h: Ditto. + * portals4/gcc-upc-lib.in: Ditto. + * portals4/gupcr_access.c: Ditto. + * portals4/gupcr_access.h: Ditto. + * portals4/gupcr_addr.c: Ditto. + * portals4/gupcr_alloc.upc: Ditto. + * portals4/gupcr_clock.c: Ditto. + * portals4/gupcr_coll_broadcast.upc: Ditto. + * portals4/gupcr_coll_reduce.in: Ditto. + * portals4/gupcr_coll_reduce.upc: Ditto. + * portals4/gupcr_config.h: Ditto. + * portals4/gupcr_defs.h: Ditto. + * portals4/gupcr_gmem.c: Ditto. + * portals4/gupcr_gmem.h: Ditto. + * portals4/gupcr_lock_sup.h: Ditto. + * portals4/gupcr_main.c: Ditto. + * portals4/gupcr_mem.c: Ditto. + * portals4/gupcr_pgm_info.c: Ditto. + * portals4/gupcr_portals.c: Ditto. + * portals4/gupcr_pts.h: Ditto. + * portals4/gupcr_runtime.c: Ditto. + * portals4/gupcr_shutdown.c: Ditto. + * portals4/gupcr_tick.c: Ditto. + * portals4/gupcr_utils.c: Ditto. + * portals4/gupcr_utils.h: Ditto. + +2013-06-07 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_atomic.upc: Cleanup calls to gupc_fatal_error. + Message starts with lowercase letter, no need for thread + identification as it will be included automatically, cleanup + message content. + * portals4/gupcr_atomic_sup.c: Ditto. + * portals4/gupcr_barrier.c: Ditto. + * portals4/gupcr_broadcast.c: Ditto. + * portals4/gupcr_coll_init.upc: Ditto. + * portals4/gupcr_coll_reduce.in: Ditto. + * portals4/gupcr_coll_reduce.upc: Ditto. + * portals4/gupcr_coll_sup.c: Ditto. + * portals4/gupcr_env.c: Ditto. + * portals4/gupcr_lock.upc: Ditto. + * portals4/gupcr_lock_sup.c: Ditto. + +2013-06-06 Nenad Vukicevic <nenad@intrepid.com> + + Update copyright years. + +2013-06-06 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_atomic.upc (upc_atomic_query): Compile error fix. + +2013-06-06 Gary Funck <gary@intrepid.com> + + * smp/upc_main.c (__upc_fatal): Extend interface to + support printf-like formatting of fatal error messages. + * smp/upc_sup.h (__upc_fatal): Adjust prototype. + (__upc_exit): Add nothrow attribute to prototype. + +2013-06-06 Gary Funck <gary@intrepid.com> + + * include/upc.h: Re-fix. Delete all of the (deprecated) declarations + of prototype for upc_local_alloc(). It has been + removed in the UPC 1.3 spec. + +2013-06-05 Nenad Vukicevic <nenad@intrepid.com> + + Add support for UPC atomics to Portals4 runtime. + * Makefile.am (UPC_RUNTIME_SRC): Add atomic files. + (UPC_HDRS): Add atomic files. + * Makefile.in: Re-generate. + * include/upc_atomic.h: New. UPC atomic interface. + * portals4/gcc-upc-lib.in (__UPC_ATOMIC__): Add. + Add definition of upc_atomicdomain_t. + * portals4/gupcr_atomic.upc: New. UPC atomic implementation. + * portals4/gupcr_atomic_sup.c: New. UPC atomic support functions. + * portals4/gupcr_atomic_sup.h: New. + * portals4/gupcr_env.c (gupcr_facility_table): Add atomic facility. + * portals4/gupcr_main.c (gupcr_init): Add atomic initialization. + (gupcr_fini): Add atomic finalization. + * portals4/gupcr_portals.c (gupcr_get_atomic_size): Add. + * portals4/gupcr_portals.h (gupcr_get_atomic_size): Add. + * portals4/gupcr_utils.c (gupcr_get_buf_as_hex): Add. + * portals4/gupcr_utils.h (gupcr_facility_t): Add atomic facility. + +2013-05-09 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_env.c: Add UPC_FIRSTTOUCH environment variable + as a no-op. Misc fixes in comments for ON/OFF -> YES/NO. + (gupcr_env_init): Handle UPC_FIRSTTOUCH as no-op. + +2013-05-09 Nenad Vukicevic <nenad@intrepid.com> + + Add support for remote put optimization with usage of volatile MD. + configure.ac: Add configuration option + (--with-upc-max-outstanding-puts) for maximum number of + outstanding remote put operations. + * config.h.in: Re-generate. + configure: Re-generate. + * portals4/gupcr_gmem.c: Add gupcr_gmem_high_mark_puts variable. + Add gupcr_gmem_low_mark_puts variable. + (gupcr_gmem_put): Use volatile MD if transfer size is + smaller then the volatile maximum size. Add checking for maximum + number of outstanding puts (flow control). + * portals4/gupcr_gmem.h (gupcr_gmem_xfer_info_t): Add md_volatile + field. + * portals4/gupcr_portals.c: Add gupcr_max_volatile_size variable. + (gupcr_portals_ni_init): Initialize max volatile size from NI + limits. + * portals4/gupcr_portals.h: Add GUPCR_PORTALS_MAX_VOLATILE_SIZE + define. Add gupcr_max_volatile_size extern definition. + +2013-04-18 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_gmem.c (gupcr_gmem_init): Add debug logging for + GMEM location/size. + * portals4/gupcr_lock_sup.c (gupcr_lock_init): Fix the debug print + format for GMEM size. + +2013-04-11 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Fix check for correct bounce buffer size value where + suffix multiplier (e.g. "k") was always expected. Small fix for + correct checking of the "multilib" setting. + * configure: Re-generate. + +2013-04-09 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_lock.upc (upc_unlock): Add missing upc_fence. + * smp/upc_lock.upc (upc_unlock): Ditto. + +2013-04-02 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_utils.c (gupcr_is_node_local_memory_enabled); Rename + from gupcr_is_node_local_memory. Fixing error from the previous + update. + +2013-04-01 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_env.c (gupcr_env_boolean): Rename from gupcr_env_switch. + Change options to NO/no/0 or YES/yes/1. + (gupcr_env_init): New names for node memory and forcetouch options + set routines. + * portals4/gupcr_node.c (gupcr_node_local_alloc): Ditto. + (gupcr_node_init): Ditto. + * portals4/gupcr_utils.c (gupcr_set_node_local_memory): Rename from + gupcr_set_node_local_mem_enabled. + (gupcr_set_forcetouch): Rename from gupcr_set_forcetouch_enabled. + * portals4/gupcr_utils.h: Ditto. + +2013-04-01 Nenad Vukicevic <nenad@intrepid.com> + + Add shared memory page by page touch on startup. + * configure.ac: Add --with-upc-memory-page-size switch. + * config.h.in: Re-generate. + * configure: Re-generate. + * portals4/gupcr_env.c: Add UPC_FORCETOUCH env variable. Set to + 1 (one) by default. + (gupcr_env_init): Decode UPC_FORCETOUCH env variable. + * portals4/gupcr_node.c (gupcr_mem_check): Touch each page + of the local shared memory to make sure that memory is NUMA local. + * portals4/gupcr_utils.c (gupcr_set_forcetouch_enabled): Add. + (gupcr_is_forcetouch_enabled): Add. + * portals4/gupcr_utils.h (gupcr_set_forcetouch_enabled): Add. + (gupcr_is_forcetouch_enabled): Add. + +2013-04-01 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_main.c (gupcr_init): Initialize runtime + interface first and set MYTHREAD right after, making sure that + MYTHREAD is valid while going through the Portals runtime + initialization. + Fix the error reporting on threads number mismatch. + +2013-03-30 Gary Funck <gary@intrepid.com> + + * include/upc.h: Delete (deprecated) declaration + of prototype for upc_local_alloc(). It has been + removed in the UPC 1.3 spec. + +2013-03-30 Gary Funck <gary@intrepid.com> + + Implement upc_castable library support (per UPC 1.3 spec.) + * Makefile.am: Add upc_castable.h as an exported header file. + Add smp/upc_castable.upc and portals4/gupcr_castable.upc + to list of runtime source files. + * Makefile.in: Re-generate. + * include/upc_castable.h: New. + * portals4/gupcr_castable.upc: New. + * smp/upc_castable.upc: New. + +2013-03-30 Gary Funck <gary@intrepid.com> + + * portals4/gupcr_coll_reduce.in: Change printf format in + error message to match the type of upc_op_t, which is + now 'unsigned long'. + * portals4/gupcr_coll_reduce.upc: Re-generate. + +2013-03-29 Gary Funck <gary@intrepid.com> + + Implement and use upc_types.h (per UPC 1.3 spec.) + * Makefile.am: Add upc_types.h as an exported header file. + * Makefile.in: Re-generate. + * collectives/upc_coll_err.upc: Fix check for out-of-range + collective operation op code. Use UPC_MAX_COLL_OP. + * include/upc_collective.h: #include upc_types.h + Define UPC_MAX_COLL_OP, the maximum collectives opcode value. + * include/upc_types.h: New. + +2013-03-27 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Add configuration option for selecting a job + launcher (slurm, yod). Default is slurm. + * configure: Regenerate. + * config.h.in: Regenerate. + * portals4/gupcr_runtime.c: Select the right pmi.h based on + the job launcher configuration. + +2013-02-20 Nenad Vukicevic <nenad@intrepid.com> + + * configure.tgt: Add "-lpthread" if linking with + portals4 runtime. Newer systems are linking with + the ld.gold which does no allow for linking to + required libraries through intermediate objects/libraries. + +2012-12-11 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: As libgupc is not built yet, make sure + that UPC compiler does not pre-include gcc-upc.h and + gcc-upc-lib.h while performing configuration checks. + * configure: Regenerate. + +2012-11-27 Gary Funck <gary@intrepid.com> + + * config/default/upc-crt-config.h: Remove check for + TARGET_ASM_NAMED_SECTION. + * smp/upc_config.h: Avoid multiple definition of __USE_GNU. + * smp/upc_lock.upc: Use local search (") quoting in #include. + * upc-crtstuff.c: Update copyright notice and fix minor typos. + +2012-11-19 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_mem.c (upc_memput): Add appropriate checks + for proper UPC data ordering. All requests in size above the + GUPCR_PORTALS_MAX_ORDERED_SIZE must be treated as strict. + (upc_memcopy): Ditto. + (upc_memset): Ditto. + +2012-11-08 Nenad Vukicevic <nenad@intrepid.com> + + * portals4/gupcr_portals.c (gupcr_get_datatype): Rename + to gupcr_get_atomic_datatype to name it correctly. Use + PTL_DOUBLE_COMPLEX atomic type as a container for 16 bytes + CSWAP operations. The MCS lock implementation requires CSWAP + on a pointer to shared which is 16 bytes in the struct + configuration. + * portals4/gupcr_portals.h: Rename gupcr_get_datatype. + * portals4/gupcr_lock_sup.c (gupcr_lock_swap): Ditto. + (gupcr_lock_cswap): Ditto. + +2012-11-08 Nenad Vukicevic <nenad@intrepid.com> + + Prevent data tearing on accessing a pointer to shared in + the shared address space. + * portals4/gupcr_lock_sup.c (gupcr_lock_get): New. + * portals4/gupcr_lock_sup.h: Add extern def for gupcr_lock_get. + * portals4/gupcr_lock.upc (upc_unlock): Access data that can + be changed by other threads via Portals interface. + +2012-11-08 Nenad Vukicevic <nenad@intrepid.com> + + Replace the usage of spin locks to regular UPC locks in + the heap allocation implementation. + * Makefile.am (UPC_RUNTIME_SRC): Remove spin lock source + files. Add gupcr_lock.h. + * Makefile.in; Regenerate. + * portals4/gupcr_lock.h: New. External definitions for heap + allocation locks. + * portals4/gupcr_lock.upc: Declare heap allocation locks. + (gupcr_lock_heap_sup_init): New. Initialize heap allocation locks. + * portals4/gupcr_alloc.upc: Remove spin lock declarations. + (gupcr_alloc_init): Remove spin lock initialization. + (gupcr_heap_init_info): Replace spin lock with UPC lock. + (gupcr_heap_region_alloc): Ditto. + (gupcr_heap_alloc): Ditto. + (gupcr_heap_free): Ditto. + * portals4/gupcr_lock_sup.h (gupcr_lock_heap_sup_init): Add external + definition. + * portals4/gupcr_lock_sup.c (gupcr_lock_init): Call the heap + allocation locks initialization. + * portals4/gupcr_slock.h: Delete. + * portals4/gupcr_slock.upc: Delete. + +2012-11-08 Nenad Vukicevic <nenad@intrepid.com> + + * testsuite/lib/libgupc.exp: Set the "-B" option at the right + place so we support command that runs the tests on multiple + targets. The previous version failed on building RPMs that + tested "unix,unix/-fstack-protector" targets. + +2012-10-26 Nenad Vukicevic <nenad@intrepid.com> + + Place shared initialization code into the .text + section instead of a separate .upc_init section. + * config/default/upc-crt-config.h (UPC_INIT_SECTION_BEGIN): + Delete. + (UPC_INIT_SECTION_END): Delete. + * config/darwin/upc-crt-config.h: Ditto. + * upc-crtstuff.c: Remove declarations for .upc_init + section start/end. + +2012-10-24 Nenad Vukicevic <nenad@intrepid.com> + + * smp/upc_main.c (__upc_monitor_threads): Allow for MPIR + debug connection while waiting for threads. STAT requires + job launcher to periodically call MPIR_Breakpoint(). If + killpg() fails call exit() instead of abort to avoid recursion + in handling signals. + +2012-10-24 Nenad Vukicevic <nenad@intrepid.com> + + * Makefile.am: Add more files for cleanup. + * Makefile.in: Regenerate. + * smp/upc_tick.c: Add proper casting for calculating + nanoseconds from sec/micro-sec if gettimeofday() call was used. + +2012-10-23 Nenad Vukicevic <nenad@intrepid.com> + Gary Funck <gary@intrepid.com> + + Implement Portals4-based UPC runtime. + * configure.ac: Add a check for --with-upc-runtime=portals4. + Disable multilib when building libgupc for the portals4 based + UPC runtime. Portals4 does not currently support + 32-bit targets. Implement additional UPC runtime configuration + switches, currently supported by the portals4 based UPC + runtime. Check if the user has requested that 'doxygen' + design documentation generation is enabled. + * configure.tgt: Add portals4 library linker switches if + the portals4 based runtime has been enabled via a configure option. + * Makefile.am: Add make rules to build the portals4 based runtime + when enabled via a configuration option. + * aclocal.m4: Re-generate. + * config.h.in: Re-generate. + * configure: Re-generate. + * Makefile.in: Re-generate. + * testsuite/Makefile.in: Re-generate. + * ax_prog_doxygen.m4: New. Doxygen support. + * dox-filter-config-h: New. Doxygen support. + * doxygen-include.am: New. Doxygen support. + * doxygen.sty.in: New. Doxygen support. + * header.tex.in: New. Doxygen support. + * portals4/doxygen.cfg.in: New. Doxygen support. + * collectives/gen-upc-coll-reduce.pl: Add additional pattern + substitutions when expanding collectives customized for use + with portals. + * collectives/upc_coll_prefix_reduce.in: Ditto. + * collectives/upc_coll_reduce.in: Ditto. + * portals4/gcc-upc-lib.in: New. + * portals4/gupcr_access.c: New. + * portals4/gupcr_access.h: New. + * portals4/gupcr_addr.c: New. + * portals4/gupcr_alloc.h: New. + * portals4/gupcr_alloc.upc: New. + * portals4/gupcr_barrier.c: New. + * portals4/gupcr_barrier.h: New. + * portals4/gupcr_broadcast.c: New. + * portals4/gupcr_broadcast.h: New. + * portals4/gupcr_clock.c: New. + * portals4/gupcr_coll_broadcast.upc: New. Collectives support + that uses portals4 collective operations. + * portals4/gupcr_coll_init.upc: New. Ditto. + * portals4/gupcr_coll_reduce.in: New. Ditto. + * portals4/gupcr_coll_reduce.upc: New. Ditto. + * portals4/gupcr_coll_sup.c: New. Ditto. + * portals4/gupcr_coll_sup.h: New. Ditto. + * portals4/upc_coll.h: New. Ditto. + * portals4/gupcr_config.h: New. + * portals4/gupcr_defs.h: New. + * portals4/gupcr_env.c: New. + * portals4/gupcr_gmem.c: New. + * portals4/gupcr_gmem.h: New. + * portals4/gupcr_lib.h: New. + * portals4/gupcr_lock_sup.c: New. + * portals4/gupcr_lock_sup.h: New. + * portals4/gupcr_lock.upc: New. + * portals4/gupcr_main.c: New. + * portals4/gupcr_mem.c: New. + * portals4/gupcr_node.c: New. + * portals4/gupcr_node.h: New. + * portals4/gupcr_node_mem_mmap.c: New. + * portals4/gupcr_node_mem_posix.c: New. + * portals4/gupcr_pgm_info.c: New. + * portals4/gupcr_portals.c: New. + * portals4/gupcr_portals.h: New. + * portals4/gupcr_pts.h: New. + * portals4/gupcr_runtime.c: New. + * portals4/gupcr_runtime.h: New. + * portals4/gupcr_shutdown.c: New. + * portals4/gupcr_shutdown.h: New. + * portals4/gupcr_slock.h: New. + * portals4/gupcr_slock.upc: New. + * portals4/gupcr_sup.h: New. + * portals4/gupcr_sync.h: New. + * portals4/gupcr_tick.c: New. + * portals4/gupcr_utils.c: New. + * portals4/gupcr_utils.h: New. + * testsuite/lib/libgupc-dg.exp: Build 'yod' command line + when running tests with the portals4 based UPC runtime. + * testsuite/lib/libgupc.exp: Add 'yod' switches + when running tests with the portals4 based UPC runtime. + +2012-10-16 Nenad Vukicevic <nenad@intrepid.com> + + Add MCS lock implementation - fix for some 32 bit targets. + * Makefile.am (UPC_RUNTIME_SRC): Add upc_lock_sup.c file. + * Makefile.in: Regenerate. + * smp/upc_lock_sup.c: New. Provide 8 byte CSWAP for targets + that don't have it (PowerPC). + +2012-10-15 Nenad Vukicevic <nenad@intrepid.com> + + Add MCS lock implementation. + * configure.ac: Add max number of locks held by a thread. + * configure: Regenerate. + * Makefile.am (UPC_RUNTIME_SRC): Add lock related new files. + Removed upc_lock.c. + * Makefile.in: Regenerate. + * config.h.in: Regenerate. + * smp/upc_defs.h: Remove definition of upc_lock_t (new + implementation has more fields that are lock implementation + specific). Remove alloc lock from the upc_info_p as UPC lock + is used to protect alloc routines. + * smp/upc_lock.c: Delete. + * smp/upc_lock.h: Add prototype for lock init routine. + * smp/upc_lock_sup.h: MCS lock support routines for + signaling, swap, and compare/swap. + * smp/upc_main.c (__upc_per_thread_init): Call lock init. + (GUPCR_START): Remove init of alloc lock. + * smp/upc_lock.upc: New. New MCS lock implementation. + +2012-10-03 Gary Funck <gary@intrepid.com> + + * gen-inline-libgupc.pl: Add logic to check for //begin + directives with no matching end. + +2012-10-02 nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Check for backtrace additional libraries only + if backtrace is enabled. + * configure: Regenerate. + * smp/upc_backtrace.c (__upc_backtrace): Change default trace + file to 'backtrace.THREAD-ID'. + (__upc_backtrace_init): Install backtrace signal handler only + if backtrace is enabled for faults. + (__upc_fault_handler): Do not announce signals, just restore + signals, print backtrace, and return. This causes a signal to + be taken again, but this time monitor thread is informed. + (__upc_fatal_backtrace): No need to check env variable as signal + handler is conditionally installed. + +2012-09-26 Gary Funck <gary@intrepid.com> + + * collectives/upc_coll_sort.upc: Remove reference to + deprecated upc_local_alloc function. + * configure.ac: Revert - do not restore saved LIBS value + when checking for librt. + * configure: Re-generate. + * include/upc.h (upc_all_free, upc_all_freeg, upc_all_lock_free, + upc_all_lock_freeg): New. Define collective de-allocation functions. + (upc_local_allocg, upc_local_alloc): Add "deprecated" attribute. + * include/upc_tick.h: New. Define wall/clock timer library functions. + * Makefile.am (include/upc_tick.h, smp/upc_tick.c): New. + * Makefile.in: Re-generate. + * smp/upc_allocg.upc (upc_all_freeg): New. + * smp/upc_alloc.upc (upc_local_alloc): Delete. + (upc_all_free): New. + * smp/upc_config.h: Include time-related system header files. + * smp/upc_libg.c (upc_all_lock_freeg): New. + * smp/upc_lib.h (upc_local_alloc): Delete prototype. + (upc_all_free, upc_all_lock_free): New prototype. + (upc_tick_t): New typedef. + (upc_ticks_now, upc_ticks_to_ns): New prototype. + * smp/upc_lock.c (upc_all_lock_free): New. + * smp/upc_tick.c: New. + +2012-09-20 Nenad Vukicevic <nenad@intrepid.com> + + * smp/upc_main.c (__upc_monitor_threads): Install + SIGTERM handler for the monitor thread. Use process + group (instead of PID) for killpg(). Announce child + KILL signal if upc global exit is not underway. + (__upc_sigterm_handler): New. Terminate the program on + SIGTERM to the monitor thread. + +2012-09-04 Nenad Vukicevic <nenad@intrepid.com> + + Move MPIR related variables/functions into a separate file. + * Makefile.am (UPC_RUNTIME_SRC): Add upc_debug.c + * Makefile.in: Regenerate. + * smp/upc_main.c: Move MPIR specific variables into upc_debug.c. + (MPIR_Breakpoint): Delete. Move into upc_debug.c. + (MPIR_i_am_starter): Delete. Move into upc_debug.c. + (MPIR_ignore_queues): Delete. Move into upc_debug.c. + (MPIR_force_to_main): Delete. Move into upc_debug.c. + * smp/upc_debug.c: New. All MPIR related variables and procedures + are in this file now. + +2012-09-04 Nenad Vukicevic <nenad@intrepid.com> + + Add backtrace logging into files. + * upc_backtrace.h (GUPCR_BACKTRACE_FILE_ENV): New. File prefix + for backtrace log file. + * upc_backtrace.c (__upc_backtrace): Save backtrace logs into the + file if environment variable UPC_BACKTRACEFILE is defined. Do not + show traces above upc_main. + (__upc_backtrace_thread_map): Rename to __upc_backtrace_monitor. + (__upc_backtrace_monitor): If logging into files is specified, monitor + thread sends backtrace signal to all UPC threads. + +2012-08-30 Nenad Vukicevic <nenad@intrepid.com> + + * upc_defs.h (upc_info_struct): Added host name and + flag for MPIR partial attach support. + * upc_main.c: Add MPIR_partial_attach_ok support. + (__upc_init): Set start flag for all threads based on + the debugging mode. Initialize hostname in the info + structure. + (__upc_run_this_thread): Wait on start flag if necessary. + (__upc_run_threads): Release threads after MPIR_Breakpoint(). + Set host_name and executable_name in the info structure. + (__upc_print_help_and_exit): Removed help for unused flag + -fupc-pthreads-per-process-N. + +2012-08-29 Nenad Vukicevic <nenad@intrepid.com> + + * upc_backtrace.h (__upc_backtrace_restore_handlers): New. + Prototype. + * upc_backtrace.c (__upc_backtrace_restore_handlers): New. + Restore default signal handlers. + (__upc_backtrace_init): Install handlers for additional signals: + SIGABRT, SIGILL, SIGFPE, and SIGBUS. + (__upc_fault_handlers): Add handling of additional signals. + * upc_main.c (__upc_fatal): Restore default handlers before calling + backtrace and abort. + +2012-08-28 Nenad Vukicevic <nenad@intrepid.com> + + * include/gcc-upc.h (upc_fence): Delete. Replaced with the + library specific definition in gcc-upc-lib.h + (__BERKELEY_UPC_RUNTIME__): Delete. Remove conditional compile + for upc_fence and upc_poll if compiled with the Berkeley + runtime as they are already provided in gcc-upc-lib.h. + * smp/gcc-upc-lib.in (upc_fence): Add. + * smp/upc_access.h (__upc_fence): Add prototype. + * smp/upc_access.c (__upc_fence): Add SMP upc_fence implementation. + +2012-08-22 Nenad Vukicevic <nenad@intrepid.com> + + * upc_defs.h: Additional clean-up related to the new barrier + implementation. + (upc_barrier_id_t): Delete. + (upc_barrier_info_t): Delete. + (upc_barrier_info_p): Delete. + (upc_info_t): Remove barrier from the upc info structure. + (__upc_barrier_id): New. + * upc_barrier.upc (__upc_barrier_id): Make it global. + * upc_backtrace.c (__upc_backtrace): Print barrier ID from the + new implementation. + +2012-08-15 Nenad Vukicevic <nenad@intrepid.com> + + Add tree based barrier implementation for SMP-based UPC run-time. + * configure.ac: Add configuration for the barrier tree fanout. + Add checking for __sync_fetch_and_add built-in function. + * configure: Re-generate. + * config.h.in: Re-generate. + * Makefile.am (AM_UPCFLAGS): Added -fno-strict-aliasing + to prevent alias warning when converting from pointer-to-shared + into its internal representation. + (UPC_RUNTIME_SRC): Remove upc_barrier.c. + (UPC_RUNTIME_SRC): Add upc_barrier.upc. + * Makefile.in: Re-generate. + * smp/gcc-upc-lib.in: Add inclusion of atomic/spin_until code when + compiling inside the target library. Replace lib_atomic_cas name + to lib_atomic to cover more then CAS atomic. + * smp/upc_barrier.c: Delete. + * smp/upc_barrier.upc: Add. A new tree based barrier implementation. + * smp/upc_config.h (INT_MIN): Make it available for inlined code + under int_min_max. + * smp/upc_main.c (__upc_per_thread_init): Add call to initialize + barrier implementation. + * smp/upc_sync.h (__upc_atomic_cas): Move from upc_sysdep.h. + (__upc_sync_fetch_and_add): New. + (__upc_spin_until): Move from upc_sysdep.h. + (__upc_num_cpus): Move from upc_sysdep.h. + * smp/upc_sysdep.h (__upc_atomic_cas): Delete. + (__upc_spin_until): Delete. + (__upc_num_cpus): Delete. + * smp/upc_sup.h (__upc_barrier_init): Add external definition. + (__upc_map_to_local): New. Map shared pointer into local address. + +2012-07-31 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Added help description for --with-bfd, + --with-bfd-include, and --with-bfd-lib. + * configure: Re-generate. + +2012-07-31 Gary Funck <gary@intrepid.com> + + * configure.ac: Remove extra white space at end-of-line. + * Makefile.am: Ditto. + * Makefile.in: Re-generate. + +2012-07-31 Gary Funck <gary@intrepid.com> + + * configure.ac: Improve diagnostics for options + that control UPC stack backtrace support. + * configure: Re-generate. + +2012-07-31 Gary Funck <gary@intrepid.com> + + * configure.ac: Shorten long lines. Improve the + consistency of first letter capitalization and + remove periods from all except AC_DEFINE's. + * acinclude.m4: Ditto. + * configure: Re-generate. + * config.h.in: Re-generate. + +2012-07-14 Gary Funck <gary@intrepid.com> + + * acinclude.m4 (LIBGUPC_CHECK_SYNC_BUILTINS): Remove + set-but-not-used variable in the check for builtin sync. ops. + * configure: Re-generate. + +2012-07-03 Gary Funck <gary@intrepid.com> + + * libgupc.texi: Include gpl_v3.texi instead of gpl.texi. + +2012-06-09 Nenad Vukicevic <nenad@intrepid.com> + + * Makefile.am: Removed indented spaces on if/endif. + +2012-06-08 Nenad Vukicevic <nenad@intrepid.com> + + Add backtrace support for UPC SMP run-time. + * configure.ac: Added UPC backtrace configuration + options (--enable-upc-backtrace, --enable-upc-backtrace-gdb, + --with-upc-backtrace-gdb, --enable-upc-backtrace-signal, + --with_upc-backtrace-signal). Fix the check for 'gettime' to + save/restore libraries on the check line. + * configure: Regenerate. + * config.h.in: Regenerate. + * Makefile.am (AM_CPPFLAGS): Add include path for bfd.h. + (UPC_RUNTIME_SRC): Add new source files for backtrace. + (UPC_BACKTRACE_SUP): New. + * Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + * configure.tgt (LIBS): Added options for linking with libbfd, + libdl. Added -export-dynamic if -rdynamic option is supported. + * smp/upc_backtrace.h: New. Backtrace API. + * smp/upc_backtrace.c: New. Backtrace support functions. + * smp/upc_backtrace_sup.c: New. Source file/line search support + functions. + * smp/upc_main.c (__upc_fatal): Added call to backtrace. + (__upc_monitor_threads): Added code to continue monitoring threads + if the wait() was interrupted by a signal (e.g. backtrace request + signal). + * smp/upc_sysdep.h (__upc_create_temp_file): Add prototype. + * smp/upc_sysdep.c (__upc_create_temp_file): Made public. + +2012-05-19 Gary Funck <gary@intrepid.com> + + * smp/upc_main.c (__upc_per_thread_init): + Change the declaration of GUPCR_INIT_ARRAY_START + and GUPCR_INIT_ARRAY_END so that the optimizer does + not conclude that the per-thread initialization procedure table + has only a single element. + +2012-05-04 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Check for gupc driver only. + Use gupc driver instead of xgupc. Add -fno-upc-pre-include + on the command line to prevent inclusion of gcc-upc.h + * configure: Regenerate. + * Makefile.am (AM_CPPFLAGS): Add -isystem option to + allow compiler to find upc.h. + * Makefile.in: Regenerate. + * include/upc.h (upc_global_lock_alloc): Fix prototype. + (upc_all_lock_alloc): Fix prototype. + * include/upc_collective.h (upc_coll_init): Fix prototype. + * testsuite/lib/libgupc.exp: Added appropriate options to + compile the tests with gupc from the build tree. + +2012-05-02 Nenad Vukicevic <nenad@intrepid.com> + + Add memory fence to the low level lock support routines + that are called for multiple places in the run-time. + * smp/upc_sysdep.c (__upc_acquire_lock): Add a memory fence + once lock is acquired. + (__upc_try_acquire_lock): Add a memory fence is lock is + acquired. + (__upc_release_lock): Add a memory fence before releasing + the lock. + * smp/upc_lock.c (upc_lock): Remove memory fence. + (upc_lock_attempt): Ditto. + (upc_unlock): Ditto. + +2012-04-30 Nenad Vukicevic <nenad@intrepid.com> + + * testsuite/libgupc.upc/upc.exp: Use '-fupc-threads' + option instead of '-n' as the new GUPC driver does not + support it. + +2012-04-16 Nenad Vukicevic <nenad@intrepid.com> + + * smp/upc_lock.c (upc_lock): Adding a fence as per the + language specification. This also forces the processor to + discard all speculative memory fetches. + (upc_lock_attempt): Ditto. + (upc_ulock): Ditto. + +2012-04-13 Nenad Vukicevic <nenad@intrepid.com> + + * smp/upc_sync.h (GUPCR_WRITE_FENCE): Change write fence + for PPC processors to use light weight sync instruction. + * smp/upc_sysdep.c (__upc_atomic_get_bit): Introduce a read barrier + to force processor to discard all speculative memory fetches. + +2012-03-26 Nenad Vukicevic <nenad@intrepid.com> + + * testsuite/lib/libgupc.exp: Added fortran-modules.exp + for explicit load from the gcc testsuite directory. It is + a required file for gcc-dg.exp. + +2012-02-02 Nenad Vukicevic <nenad@intrepid.com> + + * Makefile.am: Prevent install from adding suffix to the + link script (gupc.ld). + (toolexeclib_SCRIPTS) remove upc link script. + (nodist_toolexeclib_HEADERS) add upc link script. + * Makefile: Regenerate. + * configure: Regenerate. + +2012-01-24 Nenad Vukicevic <nenad@intrepid.com> + + * smp/upc_pgm_info.c (__upc_validate_pgm_info): Fix the error + where the very first entry on the compiled thread info list is + not checked. + +2012-01-09 Gary Funck <gary@intrepid.com> + + * smp/upc_pgm_info.c (__upc_validate_pgm_info): Ignore intervening + null bytes in the UPC program information section, to ensure that + all configuration information strings are processed. Allow + static THREADS compilations to be mixed with dynamic THREADS + compilations as long as the static THREADS values all match. + +2011-12-19 Nenad Vukicevic <nenad@intrepid.com> + + Improve handling of shared pointer vaddr field. Make sure + that upc_addrfield() always returns an offset of the shared variable + from the beginning of the shared section. + * smp/upc_pts.h (GUPCR_PTS_VADDR): Macro definition returns the + offset of the shared variable in the shared section. + (GUPCR_PTS_SET_VADDR): Macro definition accepts the offset of the + shared variable in the shared section and sets the value of the + vaddr: offset for packed pts rep, address for struct pts rep. + * smp/upc_main.c (__upc_init): Adjust the argument for setting of + pointer-to-shared vaddr field. + * smp/upc_alloc.upc: Adjust the argument for building a + pointer-to-shared to the offset of the shared variable in the + shared section. + +2011-12-17 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Remove erroneous check for enable_shared. Build + libgupc only as a static library as shared data sections from + all the UPC compilations must be combined into a single + contiguous section. + * configure.tgt: Always include the necessary libraries required by + libgupc on the command line. This is necessary as we don't build + libgupc as a dynamic link library. + * configure: Re-generate. + +2011-11-19 Gary Funck <gary@intrepid.com> + + * smp/upc_sync.h (GUPCR_WRITE_FENCE, GUPCR_READ_FENCE): + For powerpc, also check __PPC__ pre-processor definition, + as 'PPC' is apparently not defined on 64-bit PPC targets. + * smp/upc_sysdep.c (__upc_atomic_cas): Implement as external + procedure only if builtin compare-and-swap is unavailable. + * smp/upc_sysdep.h (__upc_atomic_cas): Ditto. + +2011-11-09 Nenad Vukicevic <nenad@intrepid.com> + + * config/default/upc-crtstuff.mak (ALL_CRT_CFLAGS): Remove + $(INCLUDES) as it might contain relative include paths that + are not correct for current build directory. + (GCC_SRCDIR_INC): Rename from GCC_SRCDIR_CONF_INC. Added necessary + include paths to build in the current libgupc build directory. + +2011-10-27 Nenad Vukicevic <nenad@intrepid.com> + + * smp/upc_sup.h (__upc_sptr_to_addr): Fixed the warning where + 'void *' type was used in arithmetic. + * smp/upc_mem.h (__upc_memget): Ditto. + * (__upc_memput): Ditto. + +2011-10-27 Nenad Vukicevic <nenad@intrepid.com> + + * upc-crtstuff.c: Remove unnecessary includes that caused + multiple defined warnings. + +2011-10-26 Gary Funck <gary@intrepid.com> + + Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and + "libupc" to "libgupc". + * top-level/libgupc: rename from libupc. + * configure.ac: Change "GCC UPC" references to "GNU UPC". + Change "libupc" references to "libgupc". Change "xupc" references + to "xgupc". Change "upc-cmd" references to "gupc". + Change "gen-gccupc-ld-script.pl" references to "gen-upc-ld-script.pl". + Change "libupc.spec" references to "libgupc.spec". + * configure: Re-generate. + * Makefile.am: Change "libupc" references to "libgupc". + * Makefile.in: Re-generate. + * config.h.in: Adjust for rename of libupc to libgupc. + * configure.tgt: Ditto. + * acinclude.m4: Ditto. + * gen-inline-libgupc.pl: Re-name from gen-gccupc-inline-lib.pl + Change "GCC/UPC" to "GUPC". + * gen-upc-ld-script.pl: Re-name from gen-gccupc-ld-script.pl. + * libgupc.texi: Re-name from libupc.texi. + * libgupc.spec.in: Re-name from libupc.spec.in. + * smp/upc_pgm_info.c (__upc_validate_pgm_info): Change "GCC/UPC" + references to "GUPC". + * smp/upc_main.c (__upc_run_threads): Ditto. + * smp/upc_gasp.c: Ditto. + * smp/upc_sysdep.h: Ditto. + * testsuite/lib/libgupc-dg.exp: Re-name form libupc-dg.exp. + * testsuite/lib/libgupc.exp: Re-name from libupc.a. + * testsuite/libgupc.upc: Re-name from libupc.upc. + +2011-10-18 Nenad Vukicevic <nenad@intrepid.com> + + Fix support for large file support on 32-bit machines. + + * smp/upc_config.h: Move inclusion of 'config.h' to the top + of the include list. This allows all system include files + to see definition of _FILE_OFFSET_BITS=64 that enables large + file support. + +2011-10-02 Gary Funck <gary@intrepid.com> + + Move the collectives library sources into their own directory + and add support for additional runtime implementation models. + * collectives/gen-upc-coll-reduce.pl: Moved from 'smp' directory. + * collectives/upc_coll_broadcast.upc: Ditto. + * collectives/upc_coll_err.upc: Ditto. + * collectives/upc_coll_exchange.upc: Ditto. + * collectives/upc_coll_gather_all.upc: Ditto. + * collectives/upc_coll_gather.upc: Ditto. + * collectives/upc_coll.h: Ditto. + * collectives/upc_coll_init.upc: Ditto. + * collectives/upc_coll_permute.upc: Ditto. + * collectives/upc_coll_prefix_reduce.in: Ditto. + * collectives/upc_coll_prefix_reduce.upc: Ditto. + * collectives/upc_coll_readme.txt: Ditto. + * collectives/upc_coll_reduce.in: Ditto. + * collectives/upc_coll_reduce.upc: Ditto. + * collectives/upc_coll_scatter.upc: Ditto. + * collectives/upc_coll_sort.upc: Ditto. + * smp/gcc-upc-lib.in: Moved from 'include' directory. + * gen-gccupc-inline-lib.pl: Moved from 'smp' directory. + * gen-gccupc-ld-script.pl: Ditto. + * configure.ac: Implement support for additional runtime + models. (Currently, only 'smp' is supported.) + Build the collectives library from sources in the + collectives directory. + * Makefile.am: Likewise. + * configure: Re-generate. + * config.h.in: Re-generate. + * Makefile.in: Re-generate. + +2011-09-30 Gary Funck <gary@intrepid.com> + + Generalize collectives library to support indefinite block sizes. + * smp/upc_coll_prefix_reduce.in: If 'blk_size' is zero, then set it + to 'nelems'. + * smp/upc_coll_reduce.in: Ditto. + * smp/upc_coll_prefix_reduce.upc: Re-generate. + * smp/upc_coll_reduce.upc: Re-generate. + +2011-09-19 Gary Funck <gary@intrepid.com> + + * libupc/smp/upc_access.c (__getstf2, __getsxf2): + Define temporary as "long double" rather than "double" to avoid + loss of precision. + * testsuite/libupc.upc/intrepid/test29.upc: Improve the test of + "long double" by adding checks that required accuracy + exceeds the accuracy of "double". + +2011-09-02 Gary Funck <gary@intrepid.com> + + Align UPC pointers-to-shared, only if the target enforces + strict alignment. + * configure.ac: Derive GUPCR_PTS_ALIGN from __UPC_PTS_ALIGN__, + if present. Define GUPCR_PTS_ALIGN as a config.h variable. + * smp/upc_pts.h (GUPCR_PTS_ALIGN): Use only if defined. + * config.h.in: Re-generate. + * configure: Re-generate. + +2011-08-23 Nenad Vukicevic <nenad@intrepid.com> + + * configure.ac: Enable detection of large file support on + 32-bit machines. + * configure: Re-generate. + * config.h.in: Added define for large file support on 32-bit + machines. + * smp/upc_config.h: Limit number of VM pages to the number + of configured VADDR bits. + * smp/upc_sup.h: Prototype change. + * smp/upc_vm.c (__upc_vm_alloc): Return an error if no + more virtual pages can be allocated. + (__upc_vm_alloc): Abort if initial number of VM pages cannot + be allocated. + (__upc_vm_get_cur_page_alloc): Check for error before NUMA + memory region mapping. + * smp/upc_alloc.upc (__upc_global_heap_alloc): Return NULL pointer + if VM pages cannot be allocated. + (__upc_local_alloc): Return NULL pointer if memory is not available. + +2011-08-16 Gary Funck <gary@intrepid.com> + + * smp/upc_barrier.c (__upc_notify, __upc_wait): + Improve error messages. + +2011-08-10 Gary Funck <gary@intrepid.com> + + Define UPCFLAGS so that it is available in the Makefile, + and assign CFLAGS as its default value. + + * configure.ac (UPCFLAGS): Default to CFLAGS if not set. + (UPCFLAGS): Make it an AC_SUBST() so that it can + be referenced in the Makefile. + * Makefile.am (AM_UPCFLAGS): Make sure that it is update + the same as AM_CFLAGS. + * configure, Makefile.in: Re-generate. + +2011-06-06 Nenad Vukicevic <nenad@intrepid.com> + + * smp/upc_config.h: Change default scheduling policy. + Allow the kernel to schedule UPC threads on its own. + +2011-05-17 Gary Funck <gary@intrepid.com> + + * configure.ac (GUPCR_PTS_VADDR_FIELD, + Delete unused definitions. + configure: Regenerate. + + * smp/upc_pts.h (GUPCR_PTS_THREAD_FIELD, + GUPCR_PTS_PHASE_FIELD): Delete unused definitions + and references. + + * config.h.in (GUPCR_PTS_THREAD_FIELD, + GUPCR_PTS_PHASE_FIELD): Delete unused definitions + and references. + + * upc-crtstuff.c: Delete include of "upc-conf.h". + +2011-05-03 Gary Funck <gary@intrepid.com> + + * smp/upc_alloc.upc (__upc_global_heap_alloc, + upc_free): Remove extraneous FIXME/TODO comments. + +2011-05-01 Gary Funck <gary@intrepid.com> + + * configure.ac (upc_crtstuff_mak): New AC_SUBST variable. + * configure.tgt (upc_crtstuff_mak): Find upc-crtstuff.mak + on $config_path. + * Makefile.am (upc_crtstuff_mak): Set make variable to value + of configured AC_SUBST value. This eliminates an automake + error caused by a nested 'if' statement. + * configure, Makefile.in, testsuite/Makefile.in: Regenerate. + +2011-04-13 Gary Funck <gary@intrepid.com> + + * testsuite/lib/libupc.exp (ALWAYS_CFLAGS): + Remove -lupc from required default switches. + The appropriate library is selected by the + libupc.spec file. + +2011-03-22 Gary Funck <gary@intrepid.com> + + * configure.tgt: Move linker switches into libupc.spec. + +2011-03-20 Gary Funck <gary@intrepid.com> + + Place error message strings directly into the calls to + __upc_fatal(), rather than listing them separately + as #define's. The intent of this change is to make + it easier to internationalize the message text + using standard tools. + + * include/gcc-upc-lib.in: Remove include of lib_config_msgs + named code segment. + + * smp/upc_config.h: Remove #define's used to provide named + references to error messages. + + * smp/upc_lock.c, smp/upc_numa.c, smp/upc_access.c, + smp/upc_vm.c, smp/upc_main.c, smp/upc_alloc.upc, + smp/upc_sysdep.c, smp/upc_affinity.c, smp/upc_addr.c, + smp/upc_mem.h, smp/upc_barrier.c: Replace named references + with actual error message text strings. + +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 built. + + * upc-crtstuff.c: New file. Moved from gcc/upc/upc-crtstuff.c. + + * config/darwin/upc-crt-config.h: New file. Move defines for + UPC-related section begins/ends from gcc/config/darwin.h to here. + + * config/default/upc-crt-config.h: New file. Move defines for + UPC-related section begins/ends from gcc/config/upc-conf.h to here. + + * config/default/upc-crtstuff.mak: New file. Default makefile fragment for + building the upc-crtbegin and upc-crtend object files. + This logic was moved from libgcc/Makefile.in to here. + + * config.h.in: Regenerate with autoheader. Rename HAVE_GUM_DEBUG + to GUPCR_HAVE_GUM_DEBUG. Add define for HAVE_UPC_LINK_SCRIPT. + + * configure.ac, configure: Include new configure.tgt script + towards the end of the logic that configures the smp runtime. + Define substitutions for 'config_path', 'XCFLAGS', + 'XLDFLAGS', 'link_upc_spec', 'upc_crtbegin_spec', + 'upc_crtend_spec', 'upc_crtstuff_objs'. Add LIBUPC_CRTSTUFF + automake conditional. Fix copyright date in AM_TOP() comment. + Define upc-crtbegin.spec libupc.spec upc-crtend.spec as + autoconf generated config. files. Regenerate 'configure'. + + * configure.tgt: New. Target-specific configuration logic. + Defines 'config_path', 'upc_crtstuff', 'upc_crtbegin_spec', + 'upc_crtend_spec', 'upc_crtstuff_objs' variables; these are used + to control the build of the UPC-related begin/end files + and associated target-specific compiler specification files. + + * libupc.spec.in, upc-crtbegin.spec.in, upc-crtend.spec.in: New. + Define target-specific compiler specifications for linking + and for inclusion of UPC-related start/end object files + when a UPC program is linked. These files are used + to create resulting .spec files that are included via + GCC's link spec. when a UPC program is linked. + + * Makefile.am: Add rules to build and install upc-crtbegin.spec, + libupc.spec, and upc-crtend.spec from there .in files. + Add rules to build the UPC-specific start/end files if the + automake conditional LIBUPC_CRTSTUFF is enabled. + Fix references to make variables $(UPC_COLL_PREFIX_REDUCE_UPC) + and $(UPC_COLL_REDUCE_UPC) in MAINTAINER_MODE block. + + * Makefile.in, testsuite/Makefile.in: Regenerate with automake. + + * smp/Make-defs, smp/Make-deps, smp/Make-rules: Remove. + These Makefile fragments have not been used since libupc + was re-worked to use automake (when the gupc branch + was first checked in). + + * smp/upc_config.h: Move the definitions of GUPCR_INIT_ARRAY_START + and GUPCR_INIT_ARRAY_END from smp/upc_main.c to here. + + * smp/upc_main.c: Rename HAVE_GUM_DEBUG to GUPCR_HAVE_GUM_DEBUG. + Move the definitions of GUPCR_INIT_ARRAY_START and + GUPCR_INIT_ARRAY_END to smp/upc_config.h. + +2011-02-22 Gary Funck <gary@intrepid.com> + + * include/gcc-upc.h (barrier, barrier_notify, barrier_wait, + forall, fence): Remove #define's that renamed these deprecated + UPC keywords into their equivalents in the current UPC + language specification. + +2011-02-08 Gary Funck <gary@intrepid.com> + + * acinclude.m4, configure.ac, include/gasp.h, + include/gasp_upc.h, include/gcc-upc.h, include/gcc-upc-lib.in, + include/pupc.h, include/upc_collective.h, include/upc.h, + include/upc_relaxed.h, include/upc_strict.h, libupc.texi, + smp/upc_access.c, smp/upc_accessg.c, smp/upc_access.h, + smp/upc_addr.c, smp/upc_affinity.c, smp/upc_affinity.h, + smp/upc_affinity_stub.c, smp/upc_allocg.upc, + smp/upc_alloc.upc, smp/upc_barrier.c, smp/upc_config.h, + smp/upc_debug.h, smp/upc_defs.h, smp/upc_gasp.c, smp/upc_gum.c, + smp/upc_libg.c, smp/upc_lib.h, smp/upc_lock.c, smp/upc_main.c, + smp/upc_mem.c, smp/upc_mem.h, smp/upc_numa.c, smp/upc_numa.h, + smp/upc_numa_stub.c, smp/upc_pgm_info.c, smp/upc_pts.h, + smp/upc_pupc.c, smp/upc_pupc.h, smp/upc_sup.h, smp/upc_sync.h, + smp/upc_sysdep.c, smp/upc_sysdep.h, smp/upc_vm.c: + Update copyright notices. + +2010-10-18 Gary Funck <gary@intrepid.com> + + * smp/upc_alloc.upc: upc_alloc.upc: remove pointer arithmetic on + (shared void *) types. + + Now that GCC/UPC prohibits arithmetic on "(shared void *)" types, + re-work the logic in upc_alloc.upc to avoid operating directly on + "(shared void *)" type. + +2010-10-16 Gary Funck <gary@intrepid.com> + + * smp/upc_main.c: Fix comment format. + +2010-10-16 Gary Funck <gary@intrepid.com> + + * smp/: upc_access.c, upc_access.h, upc_accessg.c: Implement fixes + for SGI/IRIX/MIPS port. + + The gcc/Makefile.in rules for install-plugin had to be re-written to + break up a long list of header files that exceeded the command line + limitation imposed by Irix. + + Access functions for TFmode types had to be implemented. + Apparently, this is the mode used for the SGI/MIPS port to represent + "long float". + + See also: gcc/Makefile.in libupc/smp/upc_access.c + libupc/smp/upc_access.h libupc/smp/upc_accessg.c + +2010-10-16 Nenad Vukicevic <nenad@intrepid.com> + + * include/gcc-upc.h, smp/upc_main.c: Fix rand() implementation for + pthreads run-time. + + For the pthreads implementation we keep a per-thread random seed + number. This way, calls to rand() function will return the same + value on each thread. + + rand() and srand() functions are redefined as __upc_random and + __upc_srandom. + +2010-10-10 Gary Funck <gary@intrepid.com> + + * include/upc_collective.h, smp/gen-upc-coll-reduce.pl, + smp/upc_coll_prefix_reduce.upc, smp/upc_coll_reduce.upc: + Implement collectives on "long double" objects. + + See also: libupc/include/upc_collective.h + libupc/smp/gen-upc-coll-reduce.pl + libupc/smp/upc_coll_prefix_reduce.upc libupc/smp/upc_coll_reduce.upc + +2010-10-09 Gary Funck <gary@intrepid.com> + + * smp/: upc_access.c, upc_access.h, upc_accessg.c: Implement shared + access to "long float" data type. + + See also: libupc/smp/upc_access.c libupc/smp/upc_access.h + libupc/smp/upc_accessg.c + +2010-09-24 Gary Funck <gary@intrepid.com> + + * smp/upc_main.c: Fix bug: Failure to initialize per-thread + static variables that refer to shared addresses. + + The shared data initialization routine created by the compiler needs + to be called on each thread, because in some cases it will + initialize per thread data. At the moment, the compiler does not + generate code that will differentiate between initialization code + that should only occur on thread 0, so some additional work may get + done. In the future, that aspect of initialization will be + corrected. + +2010-09-22 Gary Funck <gary@intrepid.com> + + * include/gcc-upc-lib.in, include/upc.h, smp/upc_main.c: + 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> + + * Makefile.in, config.h.in, configure, configure.ac, include/upc.h, + smp/Make-defs, smp/upc_accessg.c, smp/upc_allocg.upc, + smp/upc_defs.h, smp/upc_libg.c, smp/upc_main.c, smp/upc_sup.h: + Implement -fupc-debug switch. + +2010-02-28 Gary Funck <gary@intrepid.com> + + Initial implementation and checkin. + |