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