[Openmp-dev] Some more patches

Peyton, Jonathan L jonathan.l.peyton at intel.com
Fri Jan 30 15:42:17 PST 2015


These patches have more meat to them.

two_task_teams.patch - The tt_state flag is removed and replaced by an array of two task_team pointers in the team struct.  Each thread's local th_task_team points to one of those two task_teams on the team struct, and the thread's th_task_state indicates which one.  With this change, inside a barrier, the master thread can now change out the task_team on the team struct at any time, because the threads will switch to look at the other task_team.  This gives us some flexibility in implementing barrier algorithms that don't have separate gather and release phases, like dissemination barriers.

backtrace_fix_cfi.patch - Inline assembly breaks back trace for OpenMP applications.  This change adds CFI directives for stack tracing.

omp_is_initial_device.patch - omp_is_initial_device() was implemented based on operating system:
We use _Offload_get_device_number() on Linux.
And on other operating systems, omp_is_initial_device() always returns 1.

debugger_struct_update.patch - updates the kmp_omp_struct_info_t for debuggers.  Kmp_omp_struct_info_t is a structure that was prepared and exported as a static symbol
to be used for interfacing with debuggers.   In this change, kmp_omp_struct_info_t structure was fixed to reflect the current OpenMP RTL structures.

loop_out_of_bounds_fix.patch - small patch to fix a loop-out-of-bounds error for Fortran.

Applying patches (all independent):
$ patch -p0 < two_task_teams.patch
$ patch -p0 < backtrace_fix_cfi.patch
$ patch -p0 < omp_is_initial_device.patch
$ patch -p0 < debugger_struct_update.patch
$ patch -p0 < loop_out_of_bounds_fix.patch

-- Johnny

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20150130/e92c379e/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: two_task_teams.patch
Type: application/octet-stream
Size: 38478 bytes
Desc: two_task_teams.patch
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20150130/e92c379e/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: backtrace_fix_cfi.patch
Type: application/octet-stream
Size: 6861 bytes
Desc: backtrace_fix_cfi.patch
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20150130/e92c379e/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: omp_is_initial_device.patch
Type: application/octet-stream
Size: 8045 bytes
Desc: omp_is_initial_device.patch
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20150130/e92c379e/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: debugger_struct_update.patch
Type: application/octet-stream
Size: 6216 bytes
Desc: debugger_struct_update.patch
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20150130/e92c379e/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: loop_out_of_bounds_fix.patch
Type: application/octet-stream
Size: 516 bytes
Desc: loop_out_of_bounds_fix.patch
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20150130/e92c379e/attachment-0004.obj>


More information about the Openmp-dev mailing list