* target.c (struct gomp_coalesce_buf): New type.
commit5af416bdad51b4f4ef8f818d4f37638956e9db41
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 28 Oct 2017 07:02:39 +0000 (28 07:02 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 28 Oct 2017 07:02:39 +0000 (28 07:02 +0000)
tree4508f21797eab3eccc7a20d91a4d188d55e33f78
parente7ec0394ec748585847c7110744a2e55a0877c70
* target.c (struct gomp_coalesce_buf): New type.
(MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define.
(gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions.
(gomp_copy_host2dev): Add CBUF argument, if copying into
the cached ranges, memcpy into buffer instead of copying
into device.
(gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing):
Add CBUF argument, pass it through to other calls.
(gomp_map_vars): Aggregate copies from host to device if small enough
and with small enough gaps in between into memcpy into a buffer and
fewer host to device copies from the buffer.
(gomp_update): Adjust gomp_copy_host2dev caller.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254194 138bc75d-0d04-0410-961f-82ee72b054a4
libgomp/ChangeLog
libgomp/target.c