Implement pointer-to-shared -> integer conversions.
[official-gcc.git] / libgupc / ChangeLog
blob667d2a24e97290ff9a033e4023ce71a3ec961328
1 2013-09-27  Gary Funck  <gary@intrepid.com>
3         Implement non-blocking transfer operations for SMP runtime.
4         * Makefile.am (UPC_RUNTIME_SRC): Add upc_nb.upc.
5         * Makefile.in: Re-generate.
6         * configure: Re-generate.
7         * smp/gcc-upc-lib.in: Add __UPC_NB__ definition.
8         * smp/gupcr_nb.upc: New. Non-blocking transfers library.
10 2013-09-26  Nenad Vukicevic  <nenad@intrepid.com>
12         * Makefile.am (UPC_BACKTRACE_SUP): Remove upc_backtrace_sup.c.
13         * Makefile.in: Re-generate.
14         * configure.ac: Remove detection of libbfd.  Add
15         HAVE_UPC_BACKTRACE_ADDR2LINE and GUPCR_BACKTRACE_ADDR2LINE
16         definitions.
17         * configure: Re-generate.
18         * config.h.in: Re-generate.
19         * configure.tgt (LIBS): Remove libbfd and libdl.
20         * smp/upc_backtrace.c (__upc_backtrace): Use addr2line to generate
21         source code references.
22         (__upc_abs_execname): Use pointer instead of large array declaration.
23         (__upc_backtrace_init): Allocate space for __upc_abs_execname.
24         * smp/upc_backtrace.h: Remove libbfd support function prototype.
25         * smp/upc_backtrace_sup.c: Delete.
27 >>>>>>> .r202955
28 2013-09-10  Nenad Vukicevic  <nenad@intrepid.com>
30         Implement non-blocking transfer operations for Portals4 runtime.
31         * Makefile.am (UPC_RUNTIME_SRC): Add upc_nb.upc, upc_nb_sup.h,
32         upc_nb_sup.c for Portals4 source files.
33         * Makefile.in: Re-generate.
34         * portals4/gcc-upc-lib.in: Add __UPC_NB__ definition.
35         * portals4/gupcr_env.c (gupcr_facility_table): Add FC_NB facility.
36         * portals4/gupcr_main.c (gupcr_init): Add NB initialization.
37         (gupcr_fini): Add NB finalization.
38         * portals4/gupcr_nb.upc: New. Non-blocking transfers library.
39         * portals4/gupcr_nb_sup.c: New. Non-blocking transfers support.
40         * portals4/gupcr_nb_sup.h: New. Non-blocking transfers support.
41         * portals4/gupcr_portals.h: Add GUPCR_PTL_PTE_NB for non-blocking
42         transfers.
43         (gupcr_portals_call_with_status): PTL_EQ_EMPTY is not an error.
44         * portals4/gupcr_utils.h (gupcr_facility_t): Add enum value for FC_NB.
46 2013-09-09  Nenad Vukicevic  <nenad@intrepid.com>
48         Added UPC non-blocking transfer header file.
49         * Makefile.am (UPC_HDRS): Add upc_nb.h
50         * Makefile.in: Re-generate.
51         * include/upc_nb.h: New.  Required per 1.3 spec.
53 2013-08-06  Gary Funck  <gary@intrepid.com>
55         Implement atomic operations library for SMP runtime.
56         * ../Makefile.def: Add dependencies for libatomic and libbacktrace.
57         * ../Makefile.in: Re-generate.
58         * Makefile.am: Add gen-inline-libgupc.pl gen-upc-ld-script.pl.
59         Add autogen rules to build smp/upc_atomic.upc.
60         * Makefile.in: Re-generate.
61         * include/upc_atomic.h: Add UPC_*_OP definitions.
62         * include/upc_ops.def: New. Describe UPC atomic operations.
63         * include/upc_types.def: New. Describe UPC atomic types.
64         * include/upc_types.h: Add UPC_*_OP definitions.
65         * smp/gcc-upc-lib.in: Define __UPC_ATOMIC__ and add typedef
66         for upc_atomicdomain_t.
67         * smp/upc_atomic.def: New. Autogen definition file for upc_atomic.upc.
68         * smp/upc_atomic.tpl: New. Autogen template file for upc_atomic.upc.
69         * smp/upc_atomic.upc: New. Generate from smp/upc_atomic.def.
70         * smp/upc_config.h: Add defines for LONG_LONG_BITS and SIZE_T_BITS.
71         * smp/upc_main.c: (__upc_fatal) Fix bug in handling of variadic args.
73 2013-07-24  Nenad Vukicevic  <nenad@intrepid.com>
75         * portals4/gupcr_atomic_sup.c: Use correct type for EQ declaration.
76         * portals4/gupcr_coll_sup.c: Ditto.
77         * portals4/gupcr_shutdown.c: Ditto.
79 2013-06-12  Nenad Vukicevic  <nenad@intrepid.com>
81         * testsuite/lib/libgupc-dg.exp: Check GUPC P4 runtime for SLURM
82         or YOD configuration and use appropriate commands to run tests.
84 2013-06-07  Nenad Vukicevic  <nenad@intrepid.com>
86         * testsuite/libgupc.upc/upc.exp: Changed list of tests to exclude
87         separate compilation units (*_sep.upc).
89 2013-06-07  Nenad Vukicevic  <nenad@intrepid.com>
91         * include/gasp_upc.h: Cleanup to conform to GCC codding style
92         (mainly fixing comments, but also some prototypes, defiens, ...).
93         include/gcc-upc.h: Ditto.
94         * include/pupc.h: Ditto.
95         * include/upc.h: Ditto.
96         * include/upc_collective.h: Ditto.
97         * include/upc_tick.h: Ditto.
98         * include/upc_types.h: Ditto.
99         * portals4/gcc-upc-lib.in: Ditto.
100         * portals4/gupcr_access.c: Ditto.
101         * portals4/gupcr_access.h: Ditto.
102         * portals4/gupcr_addr.c: Ditto.
103         * portals4/gupcr_alloc.upc: Ditto.
104         * portals4/gupcr_clock.c: Ditto.
105         * portals4/gupcr_coll_broadcast.upc: Ditto.
106         * portals4/gupcr_coll_reduce.in: Ditto.
107         * portals4/gupcr_coll_reduce.upc: Ditto.
108         * portals4/gupcr_config.h: Ditto.
109         * portals4/gupcr_defs.h: Ditto.
110         * portals4/gupcr_gmem.c: Ditto.
111         * portals4/gupcr_gmem.h: Ditto.
112         * portals4/gupcr_lock_sup.h: Ditto.
113         * portals4/gupcr_main.c: Ditto.
114         * portals4/gupcr_mem.c: Ditto.
115         * portals4/gupcr_pgm_info.c: Ditto.
116         * portals4/gupcr_portals.c: Ditto.
117         * portals4/gupcr_pts.h: Ditto.
118         * portals4/gupcr_runtime.c: Ditto.
119         * portals4/gupcr_shutdown.c: Ditto.
120         * portals4/gupcr_tick.c: Ditto.
121         * portals4/gupcr_utils.c: Ditto.
122         * portals4/gupcr_utils.h: Ditto.
124 2013-06-07  Nenad Vukicevic  <nenad@intrepid.com>
126         * portals4/gupcr_atomic.upc: Cleanup calls to gupc_fatal_error.
127         Message starts with lowercase letter, no need for thread
128         identification as it will be included automatically, cleanup
129         message content.
130         * portals4/gupcr_atomic_sup.c: Ditto.
131         * portals4/gupcr_barrier.c: Ditto.
132         * portals4/gupcr_broadcast.c: Ditto.
133         * portals4/gupcr_coll_init.upc: Ditto.
134         * portals4/gupcr_coll_reduce.in: Ditto.
135         * portals4/gupcr_coll_reduce.upc: Ditto.
136         * portals4/gupcr_coll_sup.c: Ditto.
137         * portals4/gupcr_env.c: Ditto.
138         * portals4/gupcr_lock.upc: Ditto.
139         * portals4/gupcr_lock_sup.c: Ditto.
141 2013-06-06  Nenad Vukicevic  <nenad@intrepid.com>
143         Update copyright years.
145 2013-06-06  Nenad Vukicevic  <nenad@intrepid.com>
147         * portals4/gupcr_atomic.upc (upc_atomic_query): Compile error fix.
149 2013-06-06  Gary Funck  <gary@intrepid.com>
151         * smp/upc_main.c (__upc_fatal): Extend interface to
152         support printf-like formatting of fatal error messages.
153         * smp/upc_sup.h (__upc_fatal): Adjust prototype.
154         (__upc_exit): Add nothrow attribute to prototype.
156 2013-06-06  Gary Funck  <gary@intrepid.com>
158         * include/upc.h: Re-fix. Delete all of the (deprecated) declarations
159         of prototype for upc_local_alloc().  It has been
160         removed in the UPC 1.3 spec.
162 2013-06-05  Nenad Vukicevic  <nenad@intrepid.com>
164         Add support for UPC atomics to Portals4 runtime.
165         * Makefile.am (UPC_RUNTIME_SRC): Add atomic files.
166         (UPC_HDRS): Add atomic files.
167         * Makefile.in: Re-generate.
168         * include/upc_atomic.h: New. UPC atomic interface.
169         * portals4/gcc-upc-lib.in (__UPC_ATOMIC__): Add.
170         Add definition of upc_atomicdomain_t.
171         * portals4/gupcr_atomic.upc: New. UPC atomic implementation.
172         * portals4/gupcr_atomic_sup.c: New. UPC atomic support functions.
173         * portals4/gupcr_atomic_sup.h: New.
174         * portals4/gupcr_env.c (gupcr_facility_table): Add atomic facility.
175         * portals4/gupcr_main.c (gupcr_init): Add atomic initialization.
176         (gupcr_fini): Add atomic finalization.
177         * portals4/gupcr_portals.c (gupcr_get_atomic_size): Add.
178         * portals4/gupcr_portals.h (gupcr_get_atomic_size): Add.
179         * portals4/gupcr_utils.c (gupcr_get_buf_as_hex): Add.
180         * portals4/gupcr_utils.h (gupcr_facility_t): Add atomic facility.
182 2013-05-09  Nenad Vukicevic  <nenad@intrepid.com>
184         * portals4/gupcr_env.c: Add UPC_FIRSTTOUCH environment variable
185         as a no-op.  Misc fixes in comments for ON/OFF -> YES/NO.
186         (gupcr_env_init): Handle UPC_FIRSTTOUCH as no-op.
188 2013-05-09  Nenad Vukicevic  <nenad@intrepid.com>
190         Add support for remote put optimization with usage of volatile MD.
191         configure.ac: Add configuration option
192         (--with-upc-max-outstanding-puts) for maximum number of
193         outstanding remote put operations.
194         * config.h.in: Re-generate.
195         configure: Re-generate.
196         * portals4/gupcr_gmem.c: Add gupcr_gmem_high_mark_puts variable.
197         Add gupcr_gmem_low_mark_puts variable.
198         (gupcr_gmem_put): Use volatile MD if transfer size is
199         smaller then the volatile maximum size.  Add checking for maximum
200         number of outstanding puts (flow control).
201         * portals4/gupcr_gmem.h (gupcr_gmem_xfer_info_t): Add md_volatile
202         field.
203         * portals4/gupcr_portals.c: Add gupcr_max_volatile_size variable.
204         (gupcr_portals_ni_init): Initialize max volatile size from NI
205         limits.
206         * portals4/gupcr_portals.h: Add GUPCR_PORTALS_MAX_VOLATILE_SIZE
207         define.  Add gupcr_max_volatile_size extern definition.
209 2013-04-18  Nenad Vukicevic  <nenad@intrepid.com>
211         * portals4/gupcr_gmem.c (gupcr_gmem_init): Add debug logging for
212         GMEM location/size.
213         * portals4/gupcr_lock_sup.c (gupcr_lock_init): Fix the debug print
214         format for GMEM size.
216 2013-04-11  Nenad Vukicevic  <nenad@intrepid.com>
218         * configure.ac: Fix check for correct bounce buffer size value where
219         suffix multiplier (e.g. "k") was always expected.  Small fix for
220         correct checking of the "multilib" setting.
221         * configure: Re-generate.
223 2013-04-09  Nenad Vukicevic  <nenad@intrepid.com>
225         * portals4/gupcr_lock.upc (upc_unlock): Add missing upc_fence.
226         * smp/upc_lock.upc (upc_unlock): Ditto.
228 2013-04-02  Nenad Vukicevic  <nenad@intrepid.com>
230         * portals4/gupcr_utils.c (gupcr_is_node_local_memory_enabled); Rename
231         from gupcr_is_node_local_memory.  Fixing error from the previous
232         update.
234 2013-04-01  Nenad Vukicevic  <nenad@intrepid.com>
236         * portals4/gupcr_env.c (gupcr_env_boolean): Rename from gupcr_env_switch.
237         Change options to NO/no/0 or YES/yes/1.
238         (gupcr_env_init): New names for node memory and forcetouch options
239         set routines.
240         * portals4/gupcr_node.c (gupcr_node_local_alloc): Ditto.
241         (gupcr_node_init): Ditto.
242         * portals4/gupcr_utils.c (gupcr_set_node_local_memory): Rename from
243         gupcr_set_node_local_mem_enabled.
244         (gupcr_set_forcetouch): Rename from gupcr_set_forcetouch_enabled.
245         * portals4/gupcr_utils.h: Ditto.
247 2013-04-01  Nenad Vukicevic  <nenad@intrepid.com>
249         Add shared memory page by page touch on startup.
250         * configure.ac: Add --with-upc-memory-page-size switch.
251         * config.h.in: Re-generate.
252         * configure: Re-generate.
253         * portals4/gupcr_env.c: Add UPC_FORCETOUCH env variable. Set to
254         1 (one) by default.
255         (gupcr_env_init): Decode UPC_FORCETOUCH env variable.
256         * portals4/gupcr_node.c (gupcr_mem_check): Touch each page
257         of the local shared memory to make sure that memory is NUMA local.
258         * portals4/gupcr_utils.c (gupcr_set_forcetouch_enabled): Add.
259         (gupcr_is_forcetouch_enabled): Add.
260         * portals4/gupcr_utils.h (gupcr_set_forcetouch_enabled): Add.
261         (gupcr_is_forcetouch_enabled): Add.
263 2013-04-01  Nenad Vukicevic  <nenad@intrepid.com>
265         * portals4/gupcr_main.c (gupcr_init): Initialize runtime
266         interface first and set MYTHREAD right after, making sure that
267         MYTHREAD is valid while going through the Portals runtime
268         initialization.
269         Fix the error reporting on threads number mismatch.
271 2013-03-30  Gary Funck  <gary@intrepid.com>
273         * include/upc.h: Delete (deprecated) declaration
274         of prototype for upc_local_alloc().  It has been
275         removed in the UPC 1.3 spec.
277 2013-03-30  Gary Funck  <gary@intrepid.com>
279         Implement upc_castable library support (per UPC 1.3 spec.)
280         * Makefile.am: Add upc_castable.h as an exported header file.
281         Add smp/upc_castable.upc and portals4/gupcr_castable.upc
282         to list of runtime source files.
283         * Makefile.in: Re-generate.
284         * include/upc_castable.h: New.
285         * portals4/gupcr_castable.upc: New.
286         * smp/upc_castable.upc: New.
288 2013-03-30  Gary Funck  <gary@intrepid.com>
290         * portals4/gupcr_coll_reduce.in: Change printf format in
291         error message to match the type of upc_op_t, which is
292         now 'unsigned long'.
293         * portals4/gupcr_coll_reduce.upc: Re-generate.
295 2013-03-29  Gary Funck  <gary@intrepid.com>
297         Implement and use upc_types.h (per UPC 1.3 spec.)
298         * Makefile.am: Add upc_types.h as an exported header file.
299         * Makefile.in: Re-generate.
300         * collectives/upc_coll_err.upc: Fix check for out-of-range
301         collective operation op code.  Use UPC_MAX_COLL_OP.
302         * include/upc_collective.h: #include upc_types.h
303         Define UPC_MAX_COLL_OP, the maximum collectives opcode value.
304         * include/upc_types.h: New.
306 2013-03-27  Nenad Vukicevic  <nenad@intrepid.com>
308         * configure.ac: Add configuration option for selecting a job
309         launcher (slurm, yod).  Default is slurm.
310         * configure: Regenerate.
311         * config.h.in: Regenerate.
312         * portals4/gupcr_runtime.c: Select the right pmi.h based on
313         the job launcher configuration.
315 2013-02-20  Nenad Vukicevic  <nenad@intrepid.com>
317         * configure.tgt: Add "-lpthread" if linking with
318         portals4 runtime.  Newer systems are linking with
319         the ld.gold which does no allow for linking to
320         required libraries through intermediate objects/libraries.
322 2012-12-11  Nenad Vukicevic  <nenad@intrepid.com>
324         * configure.ac: As libgupc is not built yet, make sure
325         that UPC compiler does not pre-include gcc-upc.h and
326         gcc-upc-lib.h while performing configuration checks.
327         * configure: Regenerate.
329 2012-11-27  Gary Funck  <gary@intrepid.com>
331         * config/default/upc-crt-config.h: Remove check for
332         TARGET_ASM_NAMED_SECTION.
333         * smp/upc_config.h: Avoid multiple definition of __USE_GNU.
334         * smp/upc_lock.upc: Use local search (") quoting in #include.
335         * upc-crtstuff.c: Update copyright notice and fix minor typos.
337 2012-11-19  Nenad Vukicevic  <nenad@intrepid.com>
339         * portals4/gupcr_mem.c (upc_memput): Add appropriate checks
340         for proper UPC data ordering.  All requests in size above the
341         GUPCR_PORTALS_MAX_ORDERED_SIZE must be treated as strict.
342         (upc_memcopy): Ditto.
343         (upc_memset): Ditto.
345 2012-11-08  Nenad Vukicevic  <nenad@intrepid.com>
347         * portals4/gupcr_portals.c (gupcr_get_datatype): Rename
348         to gupcr_get_atomic_datatype to name it correctly.  Use
349         PTL_DOUBLE_COMPLEX atomic type as a container for 16 bytes
350         CSWAP operations.  The MCS lock implementation requires CSWAP
351         on a pointer to shared which is 16 bytes in the struct
352         configuration.
353         * portals4/gupcr_portals.h: Rename gupcr_get_datatype.
354         * portals4/gupcr_lock_sup.c (gupcr_lock_swap): Ditto.
355         (gupcr_lock_cswap): Ditto.
357 2012-11-08  Nenad Vukicevic  <nenad@intrepid.com>
359         Prevent data tearing on accessing a pointer to shared in
360         the shared address space.
361         * portals4/gupcr_lock_sup.c (gupcr_lock_get): New.
362         * portals4/gupcr_lock_sup.h: Add extern def for gupcr_lock_get.
363         * portals4/gupcr_lock.upc (upc_unlock): Access data that can
364         be changed by other threads via Portals interface.
366 2012-11-08  Nenad Vukicevic  <nenad@intrepid.com>
368         Replace the usage of spin locks to regular UPC locks in
369         the heap allocation implementation.
370         * Makefile.am (UPC_RUNTIME_SRC): Remove spin lock source
371         files. Add gupcr_lock.h.
372         * Makefile.in; Regenerate.
373         * portals4/gupcr_lock.h: New. External definitions for heap
374         allocation locks.
375         * portals4/gupcr_lock.upc: Declare heap allocation locks.
376         (gupcr_lock_heap_sup_init): New. Initialize heap allocation locks.
377         * portals4/gupcr_alloc.upc: Remove spin lock declarations.
378         (gupcr_alloc_init): Remove spin lock initialization.
379         (gupcr_heap_init_info): Replace spin lock with UPC lock.
380         (gupcr_heap_region_alloc): Ditto.
381         (gupcr_heap_alloc): Ditto.
382         (gupcr_heap_free): Ditto.
383         * portals4/gupcr_lock_sup.h (gupcr_lock_heap_sup_init): Add external
384         definition.
385         * portals4/gupcr_lock_sup.c (gupcr_lock_init): Call the heap
386         allocation locks initialization.
387         * portals4/gupcr_slock.h: Delete.
388         * portals4/gupcr_slock.upc: Delete.
390 2012-11-08  Nenad Vukicevic  <nenad@intrepid.com>
392         * testsuite/lib/libgupc.exp: Set the "-B" option at the right
393         place so we support command that runs the tests on multiple
394         targets.  The previous version failed on building RPMs that
395         tested "unix,unix/-fstack-protector" targets.
397 2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>
399         Place shared initialization code into the .text
400         section instead of a separate .upc_init section.
401         * config/default/upc-crt-config.h (UPC_INIT_SECTION_BEGIN):
402         Delete.
403         (UPC_INIT_SECTION_END): Delete.
404         * config/darwin/upc-crt-config.h: Ditto.
405         * upc-crtstuff.c: Remove declarations for .upc_init
406         section start/end.
408 2012-10-24  Nenad Vukicevic  <nenad@intrepid.com>
410         * smp/upc_main.c (__upc_monitor_threads): Allow for MPIR
411         debug connection while waiting for threads.  STAT requires
412         job launcher to periodically call MPIR_Breakpoint().  If
413         killpg() fails call exit() instead of abort to avoid recursion
414         in handling signals.
416 2012-10-24  Nenad Vukicevic  <nenad@intrepid.com>
418         * Makefile.am: Add more files for cleanup.
419         * Makefile.in: Regenerate.
420         * smp/upc_tick.c: Add proper casting for calculating
421           nanoseconds from sec/usec if gettimeofday() call was used.
423 2012-10-23  Nenad Vukicevic  <nenad@intrepid.com>
424             Gary Funck  <gary@intrepid.com>
426         Implement Portals4-based UPC runtime.
427         * configure.ac: Add a check for --with-upc-runtime=portals4.
428         Disable multilib when building libgupc for the portals4 based
429         UPC runtime.  Portals4 does not currently support
430         32-bit targets.  Implement additional UPC runtime configuration
431         switches, currently supported by the portals4 based UPC
432         runtime.  Check if the user has requested that 'doxygen'
433         design documentation generation is enabled.
434         * configure.tgt: Add portals4 library linker switches if
435         the portals4 based runtime has been enabled via a configure option.
436         * Makefile.am: Add make rules to build the portals4 based runtime
437         when enabled via a configuration option.
438         * aclocal.m4: Re-generate.
439         * config.h.in: Re-generate.
440         * configure: Re-generate.
441         * Makefile.in: Re-generate.
442         * testsuite/Makefile.in: Re-generate.
443         * ax_prog_doxygen.m4: New. Doxygen support.
444         * dox-filter-config-h: New. Doxygen support.
445         * doxygen-include.am: New. Doxygen support.
446         * doxygen.sty.in: New. Doxygen support.
447         * header.tex.in: New. Doxygen support.
448         * portals4/doxygen.cfg.in: New. Doxygen support.
449         * collectives/gen-upc-coll-reduce.pl: Add additional pattern
450         substitutions when expanding collectives customized for use
451         with portals.
452         * collectives/upc_coll_prefix_reduce.in: Ditto.
453         * collectives/upc_coll_reduce.in: Ditto.
454         * portals4/gcc-upc-lib.in: New.
455         * portals4/gupcr_access.c: New.
456         * portals4/gupcr_access.h: New.
457         * portals4/gupcr_addr.c: New.
458         * portals4/gupcr_alloc.h: New.
459         * portals4/gupcr_alloc.upc: New.
460         * portals4/gupcr_barrier.c: New.
461         * portals4/gupcr_barrier.h: New.
462         * portals4/gupcr_broadcast.c: New.
463         * portals4/gupcr_broadcast.h: New.
464         * portals4/gupcr_clock.c: New.
465         * portals4/gupcr_coll_broadcast.upc: New.  Collectives support
466         that uses portals4 collective operations.
467         * portals4/gupcr_coll_init.upc: New. Ditto.
468         * portals4/gupcr_coll_reduce.in: New. Ditto.
469         * portals4/gupcr_coll_reduce.upc: New. Ditto.
470         * portals4/gupcr_coll_sup.c: New. Ditto.
471         * portals4/gupcr_coll_sup.h: New. Ditto.
472         * portals4/upc_coll.h: New. Ditto.
473         * portals4/gupcr_config.h: New.
474         * portals4/gupcr_defs.h: New.
475         * portals4/gupcr_env.c: New.
476         * portals4/gupcr_gmem.c: New.
477         * portals4/gupcr_gmem.h: New.
478         * portals4/gupcr_lib.h: New.
479         * portals4/gupcr_lock_sup.c: New.
480         * portals4/gupcr_lock_sup.h: New.
481         * portals4/gupcr_lock.upc: New.
482         * portals4/gupcr_main.c: New.
483         * portals4/gupcr_mem.c: New.
484         * portals4/gupcr_node.c: New.
485         * portals4/gupcr_node.h: New.
486         * portals4/gupcr_node_mem_mmap.c: New.
487         * portals4/gupcr_node_mem_posix.c: New.
488         * portals4/gupcr_pgm_info.c: New.
489         * portals4/gupcr_portals.c: New.
490         * portals4/gupcr_portals.h: New.
491         * portals4/gupcr_pts.h: New.
492         * portals4/gupcr_runtime.c: New.
493         * portals4/gupcr_runtime.h: New.
494         * portals4/gupcr_shutdown.c: New.
495         * portals4/gupcr_shutdown.h: New.
496         * portals4/gupcr_slock.h: New.
497         * portals4/gupcr_slock.upc: New.
498         * portals4/gupcr_sup.h: New.
499         * portals4/gupcr_sync.h: New.
500         * portals4/gupcr_tick.c: New.
501         * portals4/gupcr_utils.c: New.
502         * portals4/gupcr_utils.h: New.
503         * testsuite/lib/libgupc-dg.exp: Build 'yod' command line
504         when running tests with the portals4 based UPC runtime.
505         * testsuite/lib/libgupc.exp: Add 'yod' switches
506         when running tests with the portals4 based UPC runtime.
508 2012-10-16  Nenad Vukicevic  <nenad@intrepid.com>
510         Add MCS lock implementation - fix for some 32 bit targets.
511         * Makefile.am (UPC_RUNTIME_SRC): Add upc_lock_sup.c file.
512         * Makefile.in: Regenerate.
513         * smp/upc_lock_sup.c: New. Provide 8 byte CSWAP for targets
514         that don't have it (PowerPC).
516 2012-10-15  Nenad Vukicevic  <nenad@intrepid.com>
518         Add MCS lock implementation.
519         * configure.ac: Add max number of locks held by a thread.
520         * configure: Regenerate.
521         * Makefile.am (UPC_RUNTIME_SRC): Add lock related new files.
522         Removed upc_lock.c.
523         * Makefile.in: Regenerate.
524         * config.h.in: Regenerate.
525         * smp/upc_defs.h: Remove definition of upc_lock_t (new
526         implementation has more fields that are lock implementation
527         specific). Remove alloc lock from the upc_info_p as UPC lock
528         is used to protect alloc routines.
529         * smp/upc_lock.c: Delete.
530         * smp/upc_lock.h: Add prototype for lock init routine.
531         * smp/upc_lock_sup.h: MCS lock support routines for
532         signalling, swap, and compare/swap.
533         * smp/upc_main.c (__upc_per_thread_init): Call lock init.
534           (GUPCR_START): Remove init of alloc lock.
535         * smp/upc_lock.upc: New. New MCS lock implementation.
537 2012-10-03  Gary Funck  <gary@intrepid.com>
539         * gen-inline-libgupc.pl: Add logic to check for //begin
540         directives with no matching end.
542 2012-10-02  nenad Vukicevic  <nenad@intrepid.com>
544         * configure.ac: Check for backtrace additional libraries only
545         if backtrace is enabled.
546         * configure: Regenerate.
547         * smp/upc_backtrace.c (__upc_backtrace): Change default trace
548         file to 'backtrace.THREAD-ID'.
549         (__upc_backtrace_init): Install backtrace signal handler only
550         if backtrace is enabled for faults.
551         (__upc_fault_handler): Do not announce signals, just restore
552         signals, print backtrace, and return.  This causes a signal to
553         be taken again, but this time monitor thread is informed.
554         (__upc_fatal_backtrace): No need to check env variable as signal
555         handler is conditionally installed.
557 2012-09-26  Gary Funck  <gary@intrepid.com>
559         * collectives/upc_coll_sort.upc: Remove reference to
560         deprecated upc_local_alloc function.
561         * configure.ac: Revert - do not restore saved LIBS value
562         when checking for librt.
563         * configure: Re-generate.
564         * include/upc.h (upc_all_free, upc_all_freeg, upc_all_lock_free,
565         upc_all_lock_freeg): New. Define collective de-allocation functions.
566         (upc_local_allocg, upc_local_alloc): Add "deprecated" attribute.
567         * include/upc_tick.h: New. Define wall/clock timer library functions.
568         * Makefile.am (include/upc_tick.h, smp/upc_tick.c): New.
569         * Makefile.in: Re-generate.
570         * smp/upc_allocg.upc (upc_all_freeg): New.
571         * smp/upc_alloc.upc (upc_local_alloc): Delete.
572         (upc_all_free): New.
573         * smp/upc_config.h: Include time-related system header files.
574         * smp/upc_libg.c (upc_all_lock_freeg): New.
575         * smp/upc_lib.h (upc_local_alloc): Delete prototype.
576         (upc_all_free, upc_all_lock_free): New prototype.
577         (upc_tick_t): New typedef.
578         (upc_ticks_now, upc_ticks_to_ns): New prototype.
579         * smp/upc_lock.c (upc_all_lock_free): New.
580         * smp/upc_tick.c: New.
582 2012-09-20  Nenad Vukicevic  <nenad@intrepid.com>
584         * smp/upc_main.c (__upc_monitor_threads): Install
585         SIGTERM handler for the monitor thread.  Use process
586         group (instead of PID) for killpg().  Announce child
587         KILL signal if upc global exit is not underway.
588         (__upc_sigterm_handler): New. Terminate the program on
589         SIGTERM to the monitor thread.
591 2012-09-04  Nenad Vukicevic  <nenad@intrepid.com>
593         Move MPIR related variables/functions into a separate file.
594         * Makefile.am (UPC_RUNTIME_SRC): Add upc_debug.c
595         * Makefile.in: Regenerate.
596         * smp/upc_main.c: Move MPIR specific variables into upc_debug.c.
597         (MPIR_Breakpoint): Delete. Move into upc_debug.c.
598         (MPIR_i_am_starter): Delete. Move into upc_debug.c.
599         (MPIR_ignore_queues): Delete. Move into upc_debug.c.
600         (MPIR_force_to_main): Delete. Move into upc_debug.c.
601         * smp/upc_debug.c: New. All MPIR related variables and procedures
602         are in this file now.
604 2012-09-04  Nenad Vukicevic  <nenad@intrepid.com>
606         Add backtrace logging into files.
607         * upc_backtrace.h (GUPCR_BACKTRACE_FILE_ENV): New. File prefix
608         for backtrace log file.
609         * upc_backtrace.c (__upc_backtrace): Save backtrace logs into the
610         file if environment variable UPC_BACKTRACEFILE is defined.  Do not
611         show traces above upc_main.
612         (__upc_backtrace_thread_map): Rename to __upc_backtrace_monitor.
613         (__upc_backtrace_monitor): If logging into files is specified, monitor
614         thread sends backtrace signal to all UPC threads.
616 2012-08-30  Nenad Vukicevic  <nenad@intrepid.com>
618         * upc_defs.h (upc_info_struct): Added host name and
619         flag for MPIR partial attach support.
620         * upc_main.c: Add MPIR_partial_attach_ok support.
621         (__upc_init): Set start flag for all threads based on
622         the debugging mode.  Initialize hostname in the info
623         structure.
624         (__upc_run_this_thread): Wait on start flag if necessary.
625         (__upc_run_threads): Release threads after MPIR_Breakpoint().
626         Set host_name and executable_name in the info structure.
627         (__upc_print_help_and_exit): Removed help for unused flag
628         -fupc-pthreads-per-process-N.
630 2012-08-29  Nenad Vukicevic  <nenad@intrepid.com>
632         * upc_backtrace.h (__upc_backtrace_restore_handlers): New.
633         Prototype.
634         * upc_backtrace.c (__upc_backtrace_restore_handlers): New.
635         Restore default signal handlers.
636         (__upc_backtrace_init): Install handlers for additional signals:
637         SIGABRT, SIGILL, SIGFPE, and SIGBUS.
638         (__upc_fault_handlers): Add handling of additional signals.
639         * upc_main.c (__upc_fatal): Restore default handlers before calling
640         backtrace and abort.
642 2012-08-28  Nenad Vukicevic  <nenad@intrepid.com>
644         * include/gcc-upc.h (upc_fence): Delete. Replaced with the
645         library specific definition in gcc-upc-lib.h
646         (__BERKELEY_UPC_RUNTIME__): Delete. Remove conditional compile
647         for upc_fence and upc_poll if compiled with the Berkeley
648         runtime as they are already provided in gcc-upc-lib.h.
649         * smp/gcc-upc-lib.in (upc_fence): Add.
650         * smp/upc_access.h (__upc_fence): Add prototype.
651         * smp/upc_access.c (__upc_fence): Add SMP upc_fence implementation.
653 2012-08-22  Nenad Vukicevic  <nenad@intrepid.com>
655         * upc_defs.h: Additianl clean-up related to the new barrier
656         implementation.
657         (upc_barrier_id_t): Delete.
658         (upc_barrier_info_t): Delete.
659         (upc_barrier_info_p): Delete.
660         (upc_info_t): Remove barrier from the upc info structure.
661         (__upc_barrier_id): New.
662         * upc_barrier.upc (__upc_barrier_id): Make it global.
663         * upc_backtrace.c (__upc_backtrace): Print barrier ID from the
664         new implementation.
666 2012-08-15  Nenad Vukicevic  <nenad@intrepid.com>
668         Add tree based barrier implementation for SMP-based UPC run-time.
669         * configure.ac: Add configuration for the barrier tree fanout.
670         Add checking for __sync_fetch_and_add built-in function.
671         * configure: Re-generate.
672         * config.h.in: Re-generate.
673         * Makefile.am (AM_UPCFLAGS): Added -fno-strict-aliasing
674         to prevent alias warning when converting from pointer-to-shared
675         into its internal representation.
676         (UPC_RUNTIME_SRC): Remove upc_barrier.c.
677         (UPC_RUNTIME_SRC): Add upc_barrier.upc.
678         * Makefile.in: Re-generate.
679         * smp/gcc-upc-lib.in: Add inclusion of atomic/spin_until code when
680         compiling inside the target library.  Replace lib_atomic_cas name
681         to lib_atomic to cover more then CAS atomic.
682         * smp/upc_barrier.c: Delete.
683         * smp/upc_barrier.upc: Add. A new tree based barrier implementation.
684         * smp/upc_config.h (INT_MIN): Make it available for inlined code
685         under int_min_max.
686         * smp/upc_main.c (__upc_per_thread_init): Add call to initialize
687         barrier implementation.
688         * smp/upc_sync.h (__upc_atomic_cas): Move from upc_sysdep.h.
689         (__upc_sync_fetch_and_add): New.
690         (__upc_spin_until): Move from upc_sysdep.h.
691         (__upc_num_cpus): Move from upc_sysdep.h.
692         * smp/upc_sysdep.h (__upc_atomic_cas): Delete.
693         (__upc_spin_until): Delete.
694         (__upc_num_cpus): Delete.
695         * smp/upc_sup.h (__upc_barrier_init): Add external definition.
696         (__upc_map_to_local): New.  Map shared pointer into local address.
698 2012-07-31  Nenad Vukicevic  <nenad@intrepid.com>
700         * configure.ac: Added help description for --with-bfd,
701         --with-bfd-include, and --with-bfd-lib.
702         * configure: Re-generate.
704 2012-07-31  Gary Funck  <gary@intrepid.com>
706         * configure.ac: Remove extra white space at end-of-line.
707         * Makefile.am: Ditto.
708         * Makefile.in: Re-generate.
710 2012-07-31  Gary Funck  <gary@intrepid.com>
712         * configure.ac: Improve diagnostics for options
713         that control UPC stack backtrace support.
714         * configure: Re-generate.
716 2012-07-31  Gary Funck  <gary@intrepid.com>
718         * configure.ac: Shorten long lines.  Improve the
719         consistency of first letter capitalization and
720         remove periods from all except AC_DEFINE's.
721         * acinclude.m4: Ditto.
722         * configure: Re-generate.
723         * config.h.in: Re-generate.
725 2012-07-14  Gary Funck  <gary@intrepid.com>
727         * acinclude.m4 (LIBGUPC_CHECK_SYNC_BUILTINS): Remove
728         set-but-not-used variable in the check for builtin sync. ops.
729         * configure: Re-generate.
731 2012-07-03  Gary Funck  <gary@intrepid.com>
733         * libgupc.texi: Include gpl_v3.texi instead of gpl.texi.
735 2012-06-09  Nenad Vukicevic  <nenad@intrepid.com>
737         * Makefile.am: Removed indented spaces on if/endif.
739 2012-06-08  Nenad Vukicevic  <nenad@intrepid.com>
740         
741         Add backtrace support for UPC SMP run-time.
742         * configure.ac: Added UPC backtrace configuration
743         options (--enable-upc-backtrace, --enable-upc-backtrace-gdb,
744         --with-upc-backtrace-gdb, --enable-upc-backtrace-signal,
745         --with_upc-backtrace-signal). Fix the check for 'gettime' to
746         save/restore libraries on the check line.
747         * configure: Regenerate.
748         * config.h.in: Regenerate.
749         * Makefile.am (AM_CPPFLAGS): Add include path for bfd.h.
750         (UPC_RUNTIME_SRC): Add new source files for backtrace.
751         (UPC_BACKTRACE_SUP): New.
752         * Makefile.in: Regenerate.
753         * testsuite/Makefile.in: Regenerate.
754         * configure.tgt (LIBS): Added options for linking with libbfd,
755         libdl. Added -export-dynamic if -rdynamic option is supported.
756         * smp/upc_backtrace.h: New. Backtrace API.
757         * smp/upc_backtrace.c: New. Backtrace support functions.
758         * smp/upc_backtrace_sup.c: New.  Source file/line search support
759         functions.
760         * smp/upc_main.c (__upc_fatal): Added call to backtrace.
761         (__upc_monitor_threads): Added code to continue monitoring threads
762         if the wait() was interrupted by a signal (e.g. backtrace request
763         signal).
764         * smp/upc_sysdep.h (__upc_create_temp_file): Add prototype.
765         * smp/upc_sysdep.c (__upc_create_temp_file): Made public.
767 2012-05-19  Gary Funck  <gary@intrepid.com>
769         * smp/upc_main.c (__upc_per_thread_init):
770         Change the declaration of GUPCR_INIT_ARRAY_START
771         and GUPCR_INIT_ARRAY_END so that the optimizer does
772         not conclude that the per-thread initialization procedure table
773         has only a single element.
775 2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>
777         * configure.ac: Check for gupc driver only.
778         Use gupc driver instead of xgupc. Add -fno-upc-pre-include
779         on the command line to prevent inclusion of gcc-upc.h
780         * configure: Regenerate.
781         * Makefile.am (AM_CPPFLAGS): Add -isystem option to
782         allow compiler to find upc.h.
783         * Makefile.in: Regenerate.
784         * include/upc.h (upc_global_lock_alloc): Fix prototype.
785         (upc_all_lock_alloc): Fix prototype.
786         * include/upc_collective.h (upc_coll_init): Fix prototype.
787         * testsuite/lib/libgupc.exp: Added appropriate options to
788         compile the tests with gupc from the build tree.
790 2012-05-02  Nenad Vukicevic  <nenad@intrepid.com>
792         Add memory fence to the low level lock support routines
793         that are called for multiple places in the run-time.
794         * smp/upc_sysdep.c (__upc_acquire_lock): Add a memory fence
795         once lock is acquired.
796         (__upc_try_acquire_lock): Add a memory fence is lock is
797         acquired.
798         (__upc_release_lock): Add a memory fence before releasing
799         the lock.
800         * smp/upc_lock.c (upc_lock): Remove memory fence.
801         (upc_lock_attempt): Ditto.
802         (upc_unlock): Ditto.
804 2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>
806         * testsuite/libgupc.upc/upc.exp: Use '-fupc-threads'
807         option instead of '-n' as the new GUPC driver does not
808         support it.
810 2012-04-16  Nenad Vukicevic  <nenad@intrepid.com>
812         * smp/upc_lock.c (upc_lock): Adding a fence as per the
813         language specification.  This also forces the processor to
814         discard all speculaive memory fetches.
815         (upc_lock_attempt): Ditto.
816         (upc_ulock): Ditto.
818 2012-04-13  Nenad Vukicevic  <nenad@intrepid.com>
820         * smp/upc_sync.h (GUPCR_WRITE_FENCE): Change write fence
821         for PPC processors to use light weight sync instruction.
822         * smp/upc_sysdep.c (__upc_atomic_get_bit): Introduce a read barrier
823         to force processor to discard all speculative memory fetches.
825 2012-03-26  Nenad Vukicevic  <nenad@intrepid.com>
827         * testsuite/lib/libgupc.exp: Added fortran-modules.exp
828         for explicit load from the gcc testsuite directory. It is
829         a required file for gcc-dg.exp.
831 2012-02-02  Nenad Vukicevic  <nenad@intrepid.com>
833         * Makefile.am: Prevent install from adding suffix to the
834         link script (gupc.ld).
835         (toolexeclib_SCRIPTS) remove upc link script.
836         (nodist_toolexeclib_HEADERS) add upc link script.
837         * Makefile: Regenerate.
838         * configure: Regenerate.
840 2012-01-24  Nenad Vukicevic  <nenad@intrepid.com>
842         * smp/upc_pgm_info.c (__upc_validate_pgm_info): Fix the error
843         where the very first entry on the compiled thread info list is
844         not checked.
846 2012-01-09  Gary Funck  <gary@intrepid.com>
848         * smp/upc_pgm_info.c (__upc_validate_pgm_info):  Ignore intervening
849         null bytes in the UPC program information section, to ensure that
850         all configuration information strings are processed.  Allow
851         static THREADS compilations to be mixed with dynamic THREADS
852         compilations as long as the static THREADS values all match.
854 2011-12-19  Nenad Vukicevic  <nenad@intrepid.com>
856         Improve handling of shared pointer vaddr field. Make sure
857         that upc_addrfield() always returns an offset of the shared variable
858         from the beginning of the shared section.
859         * smp/upc_pts.h (GUPCR_PTS_VADDR): Macro definition returns the
860         offset of the shared variable in the shared section.
861         (GUPCR_PTS_SET_VADDR): Macro definition accepts the offset of the
862         shared variable in the shared section and sets the value of the
863         vaddr: offset for packed pts rep, address for struct pts rep.
864         * smp/upc_main.c (__upc_init): Adjust the argument for setting of
865         pointer-to-shared vaddr field.
866         * smp/upc_alloc.upc: Adjust the argument for building a
867         pointer-to-shared to the offset of the shared variable in the
868         shared section.
870 2011-12-17  Nenad Vukicevic  <nenad@intrepid.com>
872         * configure.ac: Remove erroneous check for enable_shared. Build
873         libgupc only as a static library as shared data sections from
874         all the UPC compilations must be combined into a single
875         contiguous section.
876         * configure.tgt: Always include the necessary libraries required by
877         libgupc on the command line. This is necessary as we don't build
878         libgupc as a dynamic link library.
879         * configure: Re-generate.
881 2011-11-19  Gary Funck  <gary@intrepid.com>
883         * smp/upc_sync.h (GUPCR_WRITE_FENCE, GUPCR_READ_FENCE):
884         For powerpc, also check __PPC__ pre-processor definition,
885         as 'PPC' is apparently not defined on 64-bit PPC targets.
886         * smp/upc_sysdep.c (__upc_atomic_cas): Implement as external
887         procedure only if builtin compare-and-swap is unavailable.
888         * smp/upc_sysdep.h (__upc_atomic_cas): Ditto.
890 2011-11-09  Nenad Vukicevic  <nenad@intrepid.com>
892         * config/default/upc-crtstuff.mak (ALL_CRT_CFLAGS): Remove
893         $(INCLUDES) as it might contain relative include paths that
894         are not correct for current build directory.
895         (GCC_SRCDIR_INC): Rename from GCC_SRCDIR_CONF_INC.  Added necessary
896         include paths to build in the current libgupc build directory.
898 2011-10-27  Nenad Vukicevic  <nenad@intrepid.com>
900         * smp/upc_sup.h (__upc_sptr_to_addr): Fixed the warning where
901           'void *' type was used in arithmetic.
902         * smp/upc_mem.h (__upc_memget): Ditto.
903         * (__upc_memput): Ditto.
905 2011-10-27  Nenad Vukicevic  <nenad@intrepid.com>
907         * upc-crtstuff.c: Remove unnecessary includes that caused
908         multiple defined warnings.
910 2011-10-26  Gary Funck  <gary@intrepid.com>
912         Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
913         "libupc" to "libgupc".
914         * top-level/libgupc: rename from libupc.
915         * configure.ac: Change "GCC UPC" references to "GNU UPC".
916         Change "libupc" references to "libgupc".  Change "xupc" references
917         to "xgupc".  Change "upc-cmd" references to "gupc".
918         Change "gen-gccupc-ld-script.pl" references to "gen-upc-ld-script.pl".
919         Change "libupc.spec" references to "libgupc.spec".
920         * configure: Re-generate.
921         * Makefile.am: Change "libupc" references to "libgupc".
922         * Makefile.in: Re-generate.
923         * config.h.in: Adjust for rename of libupc to libgupc.
924         * configure.tgt: Ditto.
925         * acinclude.m4: Ditto.
926         * gen-inline-libgupc.pl: Re-name from gen-gccupc-inline-lib.pl
927         Change "GCC/UPC" to "GUPC".
928         * gen-upc-ld-script.pl: Re-name from gen-gccupc-ld-script.pl.
929         * libgupc.texi: Re-name from libupc.texi.
930         * libgupc.spec.in: Re-name from libupc.spec.in.
931         * smp/upc_pgm_info.c (__upc_validate_pgm_info): Change "GCC/UPC"
932         references to "GUPC".
933         * smp/upc_main.c (__upc_run_threads): Ditto.
934         * smp/upc_gasp.c: Ditto.
935         * smp/upc_sysdep.h: Ditto.
936         * testsuite/lib/libgupc-dg.exp: Re-name form libupc-dg.exp.
937         * testsuite/lib/libgupc.exp: Re-name from libupc.a.
938         * testsuite/libgupc.upc: Re-name from libupc.upc.
940 2011-10-18  Nenad Vukicevic  <nenad@intrepid.com>
942         Fix support for large file support on 32-bit machines.
944         * smp/upc_config.h: Move inclusion of 'config.h' to the top
945         of the include list. This allows all system include files
946         to see definition of _FILE_OFFSET_BITS=64 that enables large
947         file support.
949 2011-10-02  Gary Funck  <gary@intrepid.com>
951         Move the collectives library sources into their own directory
952         and add support for additional runtime implementation models.
953         * collectives/gen-upc-coll-reduce.pl: Moved from 'smp' directory.
954         * collectives/upc_coll_broadcast.upc: Ditto.
955         * collectives/upc_coll_err.upc: Ditto.
956         * collectives/upc_coll_exchange.upc: Ditto.
957         * collectives/upc_coll_gather_all.upc: Ditto.
958         * collectives/upc_coll_gather.upc: Ditto.
959         * collectives/upc_coll.h: Ditto.
960         * collectives/upc_coll_init.upc: Ditto.
961         * collectives/upc_coll_permute.upc: Ditto.
962         * collectives/upc_coll_prefix_reduce.in: Ditto.
963         * collectives/upc_coll_prefix_reduce.upc: Ditto.
964         * collectives/upc_coll_readme.txt: Ditto.
965         * collectives/upc_coll_reduce.in: Ditto.
966         * collectives/upc_coll_reduce.upc: Ditto.
967         * collectives/upc_coll_scatter.upc: Ditto.
968         * collectives/upc_coll_sort.upc: Ditto.
969         * smp/gcc-upc-lib.in: Moved from 'include' directory.
970         * gen-gccupc-inline-lib.pl: Moved from 'smp' directory.
971         * gen-gccupc-ld-script.pl: Ditto.
972         * configure.ac: Implement support for additional runtime
973         models. (Currently, only 'smp' is supported.)
974         Build the collectives library from sources in the
975         collectives directory.
976         * Makefile.am: Likewise.
977         * configure: Re-generate.
978         * config.h.in: Re-generate.
979         * Makefile.in: Re-generate.
981 2011-09-30  Gary Funck  <gary@intrepid.com>
983         Generalize collectives library to support indefinite block sizes.
984         * smp/upc_coll_prefix_reduce.in: If 'blk_size' is zero, then set it
985         to 'nelems'.
986         * smp/upc_coll_reduce.in: Ditto.
987         * smp/upc_coll_prefix_reduce.upc: Re-generate.
988         * smp/upc_coll_reduce.upc: Re-generate.
990 2011-09-19  Gary Funck  <gary@intrepid.com>
992         * libupc/smp/upc_access.c (__getstf2, __getsxf2):
993         Define temporary as "long double" rather than "double" to avoid
994         loss of precision.
995         * testsuite/libupc.upc/intrepid/test29.upc: Improve the test of
996         "long double" by adding checks that required accuracy
997         exceeds the accuracy of "double".
999 2011-09-02  Gary Funck  <gary@intrepid.com>
1001         Align UPC pointers-to-shared, only if the target enforces
1002         strict alignment.
1003         * configure.ac: Derive GUPCR_PTS_ALIGN from __UPC_PTS_ALIGN__,
1004           if present.  Define GUPCR_PTS_ALIGN as a config.h variable.
1005         * smp/upc_pts.h (GUPCR_PTS_ALIGN): Use only if defined.
1006         * config.h.in: Re-generate.
1007         * configure: Re-generate.
1009 2011-08-23  Nenad Vukicevic  <nenad@intrepid.com>
1011         * configure.ac: Enable detection of large file support on
1012           32-bit machines.
1013         * configure: Re-generate.
1014         * config.h.in: Added define for large file support on 32-bit
1015           machines.
1016         * smp/upc_config.h: Limit number of VM pages to the number
1017           of configured VADDR bits.
1018         * smp/upc_sup.h: Prototype change.
1019         * smp/upc_vm.c (__upc_vm_alloc): Return an error if no
1020           more virtual pages can be allocated.
1021           (__upc_vm_alloc): Abort if initial number of VM pages cannot
1022           be allocated.
1023           (__upc_vm_get_cur_page_alloc): Check for error before NUMA
1024           memory region mapping.
1025         * smp/upc_alloc.upc (__upc_global_heap_alloc): Return NULL pointer
1026           if VM pages cannot be allocated.
1027           (__upc_local_alloc): Return NULL pointer if memory is not available.
1029 2011-08-16  Gary Funck  <gary@intrepid.com>
1031         * smp/upc_barrier.c (__upc_notify, __upc_wait):
1032           Improve error messages.
1034 2011-08-10  Gary Funck  <gary@intrepid.com>
1036         Define UPCFLAGS so that it is available in the Makefile,
1037         and assign CFLAGS as its default value.
1039         * configure.ac (UPCFLAGS): Default to CFLAGS if not set.
1040           (UPCFLAGS): Make it an AC_SUBST() so that it can
1041           be referenced in the Makefile.
1042         * Makefile.am (AM_UPCFLAGS): Make sure that it is update
1043           the same as AM_CFLAGS.
1044         * configure, Makefile.in: Re-generate.
1046 2011-06-06  Nenad Vukicevic  <nenad@intrepid.com>
1048         * smp/upc_config.h: Change default scheduling policy.
1049           Allow the kernel to schedule UPC threads on its own.
1051 2011-05-17  Gary Funck  <gary@intrepid.com>
1053         * configure.ac (GUPCR_PTS_VADDR_FIELD,
1054           Delete unused definitions.
1055           configure: Regenerate.
1057         * smp/upc_pts.h (GUPCR_PTS_THREAD_FIELD,
1058           GUPCR_PTS_PHASE_FIELD): Delete unused definitions
1059           and references.
1061         * config.h.in (GUPCR_PTS_THREAD_FIELD,
1062           GUPCR_PTS_PHASE_FIELD): Delete unused definitions
1063           and references.
1065         * upc-crtstuff.c: Delete include of "upc-conf.h".
1067 2011-05-03  Gary Funck  <gary@intrepid.com>
1069         * smp/upc_alloc.upc (__upc_global_heap_alloc,
1070           upc_free): Remove extraneous FIXME/TODO comments.
1072 2011-05-01  Gary Funck  <gary@intrepid.com>
1074         * configure.ac (upc_crtstuff_mak): New AC_SUBST variable.
1075         * configure.tgt (upc_crtstuff_mak): Find upc-crtstuff.mak
1076           on $config_path.
1077         * Makefile.am (upc_crtstuff_mak): Set make variable to value
1078           of configured AC_SUBST value.  This eliminates an automake
1079           error caused by a nested 'if' statement.
1080         * configure, Makefile.in, testsuite/Makefile.in: Regenerate.
1082 2011-04-13  Gary Funck  <gary@intrepid.com>
1084         * testsuite/lib/libupc.exp (ALWAYS_CFLAGS):
1085           Remove -lupc from required default switches.
1086           The appropriate library is selected by the
1087           libupc.spec file.
1089 2011-03-22  Gary Funck  <gary@intrepid.com>
1091         * configure.tgt: Move linker switches into libupc.spec.
1093 2011-03-20  Gary Funck  <gary@intrepid.com>
1095         Place error message strings directly into the calls to
1096         __upc_fatal(), rather than listing them separately
1097         as #define's.  The intent of this change is to make
1098         it easier to internationalize the message text
1099         using standard tools.
1101         * include/gcc-upc-lib.in: Remove include of lib_config_msgs
1102           named code segment.
1104         * smp/upc_config.h: Remove #define's used to provide named
1105           references to error messages.
1107         * smp/upc_lock.c, smp/upc_numa.c, smp/upc_access.c,
1108           smp/upc_vm.c, smp/upc_main.c, smp/upc_alloc.upc,
1109           smp/upc_sysdep.c, smp/upc_affinity.c, smp/upc_addr.c,
1110           smp/upc_mem.h, smp/upc_barrier.c: Replace named references
1111           with actual error message text strings.
1113 2011-03-20  Gary Funck  <gary@intrepid.com>
1115         Move UPC start files, end files, and linker specs.
1116         into libupc.  This reduces the impact on common GCC
1117         configuration files, and ensures that these UPC-specific
1118         components are only built when the UPC language dialect is built.
1120         * upc-crtstuff.c: New file. Moved from gcc/upc/upc-crtstuff.c.
1122         * config/darwin/upc-crt-config.h: New file. Move defines for
1123           UPC-related section begins/ends from gcc/config/darwin.h to here.
1125         * config/default/upc-crt-config.h: New file. Move defines for
1126           UPC-related section begins/ends from gcc/config/upc-conf.h to here.
1128         * config/default/upc-crtstuff.mak: New file. Default makefile fragment for
1129           building the upc-crtbegin and upc-crtend object files.
1130           This logic was moved from libgcc/Makefile.in to here.
1132         * config.h.in: Regenerate with autoheader.  Rename HAVE_GUM_DEBUG
1133           to GUPCR_HAVE_GUM_DEBUG.  Add define for HAVE_UPC_LINK_SCRIPT.
1135         * configure.ac, configure: Include new configure.tgt script
1136           towards the end of the logic that configures the smp runtime.
1137           Define substitutions for 'config_path', 'XCFLAGS',
1138           'XLDFLAGS', 'link_upc_spec', 'upc_crtbegin_spec',
1139           'upc_crtend_spec', 'upc_crtstuff_objs'. Add LIBUPC_CRTSTUFF
1140           automake conditional.  Fix copyright date in AM_TOP() comment.
1141           Define upc-crtbegin.spec libupc.spec upc-crtend.spec as
1142           autoconf generated config. files.  Regenerate 'configure'.
1144         * configure.tgt: New. Target-specific configuration logic.
1145           Defines 'config_path', 'upc_crtstuff', 'upc_crtbegin_spec',
1146           'upc_crtend_spec', 'upc_crtstuff_objs' variables; these are used
1147           to control the build of the UPC-related begin/end files
1148           and associated target-specific compiler specification files.
1150         * libupc.spec.in, upc-crtbegin.spec.in, upc-crtend.spec.in: New.
1151           Define target-specific compiler specifications for linking
1152           and for inclusion of UPC-related start/end object files
1153           when a UPC program is linked.  These files are used
1154           to create resulting .spec files that are included via
1155           GCC's link spec. when a UPC program is linked.
1157         * Makefile.am: Add rules to build and install upc-crtbegin.spec,
1158           libupc.spec, and upc-crtend.spec from there .in files.
1159           Add rules to build the UPC-specific start/end files if the
1160           automake conditional LIBUPC_CRTSTUFF is enabled.
1161           Fix references to make variables $(UPC_COLL_PREFIX_REDUCE_UPC)
1162           and $(UPC_COLL_REDUCE_UPC) in MAINTAINER_MODE block.
1164         * Makefile.in, testsuite/Makefile.in: Regenerate with automake.
1166         * smp/Make-defs, smp/Make-deps, smp/Make-rules: Remove.
1167           These Makefile fragments have not been used since libupc
1168           was re-worked to use automake (when the gupc branch
1169           was first checked in).
1171         * smp/upc_config.h: Move the defintions of GUPCR_INIT_ARRAY_START
1172           and GUPCR_INIT_ARRAY_END from smp/upc_main.c to here.
1174         * smp/upc_main.c: Rename HAVE_GUM_DEBUG to GUPCR_HAVE_GUM_DEBUG.
1175           Move the defintions of GUPCR_INIT_ARRAY_START and
1176           GUPCR_INIT_ARRAY_END to smp/upc_config.h.
1178 2011-02-22  Gary Funck  <gary@intrepid.com>
1180         * include/gcc-upc.h (barrier, barrier_notify, barrier_wait,
1181           forall, fence): Remove #define's that renamed these deprecated
1182         UPC keywords into their equivalents in the current UPC
1183         language specification.
1185 2011-02-08  Gary Funck  <gary@intrepid.com>
1187         * acinclude.m4, configure.ac, include/gasp.h,
1188           include/gasp_upc.h, include/gcc-upc.h, include/gcc-upc-lib.in,
1189           include/pupc.h, include/upc_collective.h, include/upc.h,
1190           include/upc_relaxed.h, include/upc_strict.h, libupc.texi,
1191           smp/upc_access.c, smp/upc_accessg.c, smp/upc_access.h,
1192           smp/upc_addr.c, smp/upc_affinity.c, smp/upc_affinity.h,
1193           smp/upc_affinity_stub.c, smp/upc_allocg.upc,
1194           smp/upc_alloc.upc, smp/upc_barrier.c, smp/upc_config.h,
1195           smp/upc_debug.h, smp/upc_defs.h, smp/upc_gasp.c, smp/upc_gum.c,
1196           smp/upc_libg.c, smp/upc_lib.h, smp/upc_lock.c, smp/upc_main.c,
1197           smp/upc_mem.c, smp/upc_mem.h, smp/upc_numa.c, smp/upc_numa.h,
1198           smp/upc_numa_stub.c, smp/upc_pgm_info.c, smp/upc_pts.h,
1199           smp/upc_pupc.c, smp/upc_pupc.h, smp/upc_sup.h, smp/upc_sync.h,
1200           smp/upc_sysdep.c, smp/upc_sysdep.h, smp/upc_vm.c:
1201         Update copyright notices.
1203 2010-10-18  Gary Funck  <gary@intrepid.com>
1205         * smp/upc_alloc.upc: upc_alloc.upc: remove pointer arithmetic on
1206           (shared void *) types.
1208           Now that GCC/UPC prohibits arithmetic on "(shared void *)" types,
1209           re-work the logic in upc_alloc.upc to avoid operating directly on
1210           "(shared void *)" type.
1212 2010-10-16  Gary Funck  <gary@intrepid.com>
1214         * smp/upc_main.c: Fix comment format.
1216 2010-10-16  Gary Funck  <gary@intrepid.com>
1218         * smp/: upc_access.c, upc_access.h, upc_accessg.c: Implement fixes
1219           for SGI/IRIX/MIPS port.
1221           The gcc/Makefile.in rules for install-plugin had to be re-written to
1222           break up a long list of header files that exceeded the command line
1223           limitation imposed by Irix.
1225           Access functions for TFmode types had to be implemented.
1226           Apparently, this is the mode used for the SGI/MIPS port to represent
1227           "long float".
1229           See also: gcc/Makefile.in libupc/smp/upc_access.c
1230           libupc/smp/upc_access.h libupc/smp/upc_accessg.c
1232 2010-10-16  Nenad Vukicevic  <nenad@intrepid.com>
1234         * include/gcc-upc.h, smp/upc_main.c: Fix rand() implementation for
1235           pthreads run-time.
1237           For the pthreads implementation we keep a per-thread random seed
1238           number.  This way, calls to rand() function will return the same
1239           value on each thread.
1241           rand() and srand() functions are redefined as __upc_random and
1242           __upc_srandom.
1244 2010-10-10  Gary Funck  <gary@intrepid.com>
1246         * include/upc_collective.h, smp/gen-upc-coll-reduce.pl,
1247           smp/upc_coll_prefix_reduce.upc, smp/upc_coll_reduce.upc:
1248           Implement collectives on "long double" objects.
1250           See also: libupc/include/upc_collective.h
1251           libupc/smp/gen-upc-coll-reduce.pl
1252           libupc/smp/upc_coll_prefix_reduce.upc libupc/smp/upc_coll_reduce.upc
1254 2010-10-09  Gary Funck  <gary@intrepid.com>
1256         * smp/: upc_access.c, upc_access.h, upc_accessg.c: Implement shared
1257           access to "long float" data type.
1259           See also: libupc/smp/upc_access.c libupc/smp/upc_access.h
1260           libupc/smp/upc_accessg.c
1262 2010-09-24  Gary Funck  <gary@intrepid.com>
1264         * smp/upc_main.c: Fix bug: Failure to initialize per-thread
1265           static variables that refer to shared addresses.
1267           The shared data initialization routine created by the compiler needs
1268           to be called on each threead, because in some cases it will
1269           initialize per thread data.  At the moment, the compiler does not
1270           generate code that will differentiate between initialization code
1271           that should only occur on thread 0, so some additional work may get
1272           done.  In the future, that aspect of initialization will be
1273           corrected.
1275 2010-09-22  Gary Funck  <gary@intrepid.com>
1277         * include/gcc-upc-lib.in, include/upc.h, smp/upc_main.c:
1278           Fix bug: Nested upc_forall() semantics are not implemented
1280           The checkforall test in the Berkeley harness test suite indicated
1281           that GCC/UPC was not properly implementing nested upc_forall
1282           semantics.  Nested upc_forall statements (both statically or
1283           dynamically nested) must implement their affinity clause as if it
1284           were "continue"; thus all steps in the loop must execute without
1285           regard for affinity.  To implement these semantics a global depth
1286           counter, __upc_forall_depth, is maintained by the generated code
1287           that implements upc_forall.
1289           See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
1290           gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
1291           libupc/include/upc.h libupc/smp/upc_main.c
1293 2010-09-18  Gary Funck  <gary@intrepid.com>
1295         * Makefile.in, config.h.in, configure, configure.ac, include/upc.h,
1296           smp/Make-defs, smp/upc_accessg.c, smp/upc_allocg.upc,
1297           smp/upc_defs.h, smp/upc_libg.c, smp/upc_main.c, smp/upc_sup.h:
1298           Implement -fupc-debug switch.
1300 2010-02-28  Gary Funck  <gary@intrepid.com>
1302         Initial implementation and checkin.