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