This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r152168 - in /branches/streamization: gcc/Chang...
- From: apop at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Fri, 25 Sep 2009 12:28:31 -0000
- Subject: r152168 - in /branches/streamization: gcc/Chang...
Author: apop
Date: Fri Sep 25 12:28:31 2009
New Revision: 152168
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152168
Log:
2009-09-22 Antoniu Pop <antoniu.pop@gmail.com>
Adding multi-reader support in libGOMP streams.
libgomp/
* libgomp_g.h (GOMP_stream_create, GOMP_stream_head,
GOMP_stream_pop, GOMP_stream_eos_p): Adapted prototype.
(GOMP_stream_register_reader): New.
(GOMP_stream_align_push, GOMP_stream_align_pop, GOMP_sem_*):
Removed.
* libgomp.map (GOMP_stream_register_reader): Added.
(GOMP_stream_align_push, GOMP_stream_align_pop, GOMP_sem_*):
Removed.
* stream.h (read_index, read_buffer_index, read_buffer_index_sem,
write_buffer_index_sem): Chnaged from scalars to arrays to fit
multiple readers.
(lock, num_windows, num_consumers, next_consumer): New.
(read_ready_p): Removed.
* stream.c (debug_stream, GOMP_stream_create, slide_read_window,
slide_write_window, gomp_stream_commit, gomp_stream_pop,
GOMP_stream_head, GOMP_stream_eos_p, GOMP_stream_set_eos,
GOMP_stream_destroy, GOMP_stream_pop): Adapted to multi-reading
capability (mostly accessing the separate semaphores).
(GOMP_stream_register_reader): New.
(GOMP_stream_align_push, GOMP_stream_align_pop, GOMP_sem_*,
read_bytes_in_read_window, written_bytes_in_write_window):
Removed.
gcc/
* omp-low.c (var_stream): Added the CONSUMER_ID to hold the
thread/task-local variable used to identify each reader.
(lookup_stream, scan_sharing_clauses, lower_rec_input_clauses,
lower_send_clauses, expand_omp_taskreg, stream_create_calls):
Updated to generate code for multi-reader streams. Pass the
consumer ID to all runtime consumer calls.
* tree-flow.h (omp_region): Added field STREAMIZATION_CLEANUP_BB.
* builtin-types.def (BT_FN_SIZE_PTR, BT_FN_BOOL_PTR_SIZE,
BT_FN_PTR_SIZE_SIZE_SIZE_SIZE): New.
(BT_FN_BOOL_PTR, BT_FN_VOID_PTR_PTR_SIZE,
BT_FN_PTR_SIZE_SIZE_SIZE): Removed.
* fortran/types.def (BT_FN_SIZE_PTR, BT_FN_BOOL_PTR_SIZE,
BT_FN_PTR_SIZE_SIZE_SIZE_SIZE): New.
(BT_FN_BOOL_PTR, BT_FN_VOID_PTR_PTR_SIZE,
BT_FN_PTR_SIZE_SIZE_SIZE): Removed.
* omp-builtins.def (BUILT_IN_GOMP_STREAM_CREATE,
BUILT_IN_GOMP_STREAM_HEAD, BUILT_IN_GOMP_STREAM_POP,
BUILT_IN_GOMP_STREAM_EOS_P): Updated prototype.
(BUILT_IN_GOMP_STREAM_REGISTER_READER): New.
(BUILT_IN_GOMP_STREAM_ALIGN_PUSH, BUILT_IN_GOMP_STREAM_ALIGN_POP,
BUILT_IN_GOMP_SEM_CREATE, BUILT_IN_GOMP_SEM_INIT,
BUILT_IN_GOMP_SEM_DESTROY, BUILT_IN_GOMP_SEM_POST,
BUILT_IN_GOMP_SEM_WAIT): Removed.
Modified:
branches/streamization/gcc/ChangeLog.streamization
branches/streamization/gcc/builtin-types.def
branches/streamization/gcc/fortran/types.def
branches/streamization/gcc/omp-builtins.def
branches/streamization/gcc/omp-low.c
branches/streamization/gcc/tree-flow.h
branches/streamization/libgomp/ChangeLog.streamization
branches/streamization/libgomp/libgomp.map
branches/streamization/libgomp/libgomp_g.h
branches/streamization/libgomp/stream.c
branches/streamization/libgomp/stream.h