summaryrefslogtreecommitdiffstats
path: root/openmp/runtime
Commit message (Collapse)AuthorAgeFilesLines
...
* Add checks before pointer dereferencingHansang Bae2019-05-301-1/+5
| | | | | | | | | This change adds checks before dereferencing a pointer returned from a function. Differential Revision: https://reviews.llvm.org/D62224 llvm-svn: 362111
* [openmp] [test] Skip kernel-breaking tests on NetBSDMichal Gorny2019-05-283-0/+13
| | | | | | | | | The omp_taskloop_num_tasks and omp_taskwait have deadlooped on the NetBSD buildbot previously, practically hanging the host running it. Disable them until we can find a good solution, or make the kernel less fragile. llvm-svn: 361825
* Fixed third issue reported in https://bugs.llvm.org/show_bug.cgi?id=41584.Andrey Churbanov2019-05-221-5/+0
| | | | | | | | Removed wrong debug assertion. Differential Revision: https://reviews.llvm.org/D62251 llvm-svn: 361408
* [OpenMP] Add implementation to two OMPT API routinesJonathan Peyton2019-05-215-15/+182
| | | | | | | | | | | This change adds implementation to ompt_finalize_tool() and ompt_get_task_memory(). Patch by Hansang Bae Differential Revision: https://reviews.llvm.org/D61657 llvm-svn: 361309
* [OpenMP][OMPT] Fix locking testcases for 32 bit architecturesJoachim Protze2019-05-205-67/+76
| | | | | | | | | | | | | | https://reviews.llvm.org/D58454 did not fix the problem for a typical use case of building LLVM with gcc or icc and then testing with the newly built clang compiler. The compilers do not agree on how to extend a 32-bit pointer to uint64, so make the pointer unsigned first, before adjusting the size. Patch by Joachim Protze Differential Revision: https://reviews.llvm.org/D58506 llvm-svn: 361158
* [OMPT] Handling of the events of initial-task-begin and initial-task-endJoachim Protze2019-05-2011-54/+68
| | | | | | | | | | | OpenMP 5.0 says that the callback for the events initial-task-begin and initial-task-end has to be ompt_callback_implicit_task. Patch by Tim Cramer Differential Revision: https://reviews.llvm.org/D58776 llvm-svn: 361157
* Fixed second issue reported in https://bugs.llvm.org/show_bug.cgi?id=41584.Andrey Churbanov2019-05-163-14/+36
| | | | | | | | | | | | | Added synchronization for possible concurrent initialization of mutexes by multiple threads. The need of synchronization caused by commit r357927 which added the use of mutexes at threads movement to/from common pool (earlier the mutexes were used only at suspend/resume). Patch by Johnny Peyton. Differential Revision: https://reviews.llvm.org/D61995 llvm-svn: 360919
* Fix hwloc topology traversal code unable to handle situation where L2 cache ↵Paul Osmialowski2019-05-161-2/+4
| | | | | | | | | | | | | | | | | | | | is common for the packages Currently cores within package that share the same L2 cache are grouped together. The current logic behind this assumes that the L2 cache is always at deeper (or the same) level than the package itself. In case when L2 cache is common for all packages (and the packages are at deeper level than L2 cache) the whole of the further topology discovery fails to find any computational units resulting in following assertion: Assertion failure at kmp_affinity.cpp(715): nActiveThreads == __kmp_avail_proc. OMP: Error #13: Assertion failure at kmp_affinity.cpp(715). This patch adds a bit of a logic that prevents such situation from occurring. Differential Revision: https://reviews.llvm.org/D61796 llvm-svn: 360890
* Fixed https://bugs.llvm.org/show_bug.cgi?id=41584.Andrey Churbanov2019-05-151-2/+0
| | | | | | | | | Removed unconditional and unsafe decrement of counter of active threads in pool at shutdown time. Differential Revision: https://reviews.llvm.org/D61944 llvm-svn: 360784
* Introduce new OpenMP 5.0 depend object type.Andrey Churbanov2019-05-154-0/+5
| | | | | | | | | The implementation should be done by compiler, user can only declare objects of this type and use them in OpenMP directives. Differential Revision: https://reviews.llvm.org/D61860 llvm-svn: 360774
* [OpenMP][AArch64] Fix compile with LLVM trunk.Eli Friedman2019-05-141-1/+1
| | | | | | | | | | | | | | | | The code is currently using the ambiguous instruction "sub sp, sp, w9, lsl #4". The ARM reference manual says this isn't valid, and it's not clear whether it's supposed to mean uxtw or uxtx. It doesn't matter which instruction we use here, since the high bits of the operand are zero anyway, so I arbitrarily choose uxtw, to preserve the register name. See https://reviews.llvm.org/D60840 for the LLVM patch. Differential Revision: https://reviews.llvm.org/D61770 llvm-svn: 360711
* fixed typo made by commit r360595Andrey Churbanov2019-05-131-1/+2
| | | | llvm-svn: 360602
* Fixed creation of aliases in Windows build.Andrey Churbanov2019-05-131-2/+1
| | | | | | | | | Changed file extension of the destination of the copy of libomp.lib (it was mistakely .dll, now it is .lib) in installation on Windows. Differential Revision: https://reviews.llvm.org/D61673 llvm-svn: 360595
* [OpenMP] Workaround gfortran bugzilla build bug 41755Jonathan Peyton2019-05-082-2/+8
| | | | | | | | | | | | | | | | | | | | This patch provides workaround to allow gfortran to compile the OpenMP Fortran modules. From the gfortran manual: https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/BOZ-literal-constants.html "Note that initializing an INTEGER variable with a statement such as DATA i/Z'FFFFFFFF'/ will give an integer overflow error rather than the desired result of -1 when i is a 32-bit integer on a system that supports 64-bit integers. The -fno-range-check option can be used as a workaround for legacy code that initializes integers in this manner." Bug filed: https://bugs.llvm.org/show_bug.cgi?id=41755 Differential Revision: https://reviews.llvm.org/D61603 llvm-svn: 360299
* Add non-SSE wrapper for __kmp_{load,store}_mxcsrDimitry Andric2019-05-061-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: To be able to successfully build OpenMP on FreeBSD/i386, which still uses i486 as its default processor, I had to provide wrappers for the `__kmp_load_mxcsr` and `__kmp_store_mxcsr` functions. If the compiler signals that SSE is not available, loading and storing mxcsr does not make sense anway, so in that case the inline functions are empty. This gives the minimum amount of code churn. See also https://svnweb.freebsd.org/changeset/base/345283 Reviewers: emaste, jlpeyton, Hahnfeld Reviewed By: jlpeyton Subscribers: hfinkel, krytarowski, jdoerfert, openmp-commits, llvm-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D60916 llvm-svn: 360062
* Enable OpenMP build for 32-bit FreeBSDDimitry Andric2019-05-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: To be able to successfully build OpenMP on 32-bit FreeBSD, such as FreeBSD/i386, I first had to provide a few wrappers (see D60916), and then add `KMP_OS_FREEBSD` to the list of defines checked for 32-bit architectures in `kmp_runtime.cpp`. I have successfully built libomp.so and ran a bunch of test programs on FreeBSD/i386 with this. See also https://svnweb.freebsd.org/changeset/base/345283 Reviewers: emaste, jlpeyton, Hahnfeld Reviewed By: jlpeyton Subscribers: krytarowski, guansong, jdoerfert, openmp-commits, llvm-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D60917 llvm-svn: 359716
* [OpenMP] Implement task modifier for reduction clauseJonathan Peyton2019-05-017-57/+757
| | | | | | | | | | | | | | | | | Implemented task modifier in two versions - one without taking into account omp_orig variable (the omp_orig still can be processed by compiler without help of the library, but each reduction object will need separate initializer with global access to omp_orig), another with omp_orig variable included into interface (single initializer can be used for multiple reduction objects of the same type). Second version can be used when the omp_orig is not globally accessible, or to optimize code in case of multiple reduction objects of the same type. Patch by Andrey Churbanov Differential Revision: https://reviews.llvm.org/D60976 llvm-svn: 359710
* [OpenMP] Add OpenMP 5.0 nonmonotonic codeJonathan Peyton2019-04-3011-95/+456
| | | | | | | | | | | | This patch adds: * New omp_sched_monotonic flag to omp_sched_t which is handled within the runtime * Parsing of monotonic/nonmonotonic in OMP_SCHEDULE * Tests for the monotonic flag and envirable parsing * Logic to force monotonic when hierarchical scheduling is used Differential Revision: https://reviews.llvm.org/D60979 llvm-svn: 359601
* [OpenMP] Eliminate some compiler warningsJonathan Peyton2019-04-303-4/+10
| | | | | | | | | | | * Remove accidental == for = * Assign values to variables to appease compiler * Surround debug code with KMP_DEBUG * Remove unused local typedefs Differential Revision: https://reviews.llvm.org/D60983 llvm-svn: 359599
* Use correct way to test for MIPS arch after rOMP355687Dimitry Andric2019-04-221-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I ran into some issues after rOMP355687, where __atomic_fetch_add was being used incorrectly on x86, and this turns out to be caused by the following added conditionals: ``` #if defined(KMP_ARCH_MIPS) ``` The problem is, these macros are always defined, and are either 0 or 1 depending on the architecture. E.g. the correct way to test for MIPS is: ``` #if KMP_ARCH_MIPS ``` Reviewers: petarj, jlpeyton, Hahnfeld, AndreyChurbanov Reviewed By: petarj, AndreyChurbanov Subscribers: AndreyChurbanov, sdardis, arichardson, atanasyan, jfb, jdoerfert, openmp-commits, llvm-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D60938 llvm-svn: 358911
* Fixed memory leak reported in Bugzilla:Andrey Churbanov2019-04-171-2/+9
| | | | | | | | | | https://bugs.llvm.org/show_bug.cgi?id=41494 Freed th_cg_roots structure at exit from uber thread. Differential Revision: https://reviews.llvm.org/D60729 llvm-svn: 358572
* [OpenMP] Exchange code in asm file for inline assemblyJonathan Peyton2019-04-152-206/+69
| | | | | | | | | | This change replaces some of the assembly functions in z_Linux_asm.S for inline asm in kmp.h. This allows better interaction with compiler tools and sanitizers. Differential Revision: https://reviews.llvm.org/D60423 llvm-svn: 358438
* Fixed possible out of bound array access.Andrey Churbanov2019-04-111-2/+2
| | | | | | | | The check of index value moved to before the write to the array. Differential Revision: https://reviews.llvm.org/D60471 llvm-svn: 358181
* [OpenMP] Implement 5.0 memory managementJonathan Peyton2019-04-0818-269/+1000
| | | | | | | | | | | | | | | | | | * Replace HBWMALLOC API with more general MEMKIND API, new functions and variables added. * Have libmemkind.so loaded when accessible. * Redirect memspaces to default one except for high bandwidth which is processed separately. * Ignore some allocator traits e.g., sync_hint, access, pinned, while others are processed normally e.g., alignment, pool_size, fallback, fb_data, partition. * Add tests for memory management Patch by Andrey Churbanov Differential Revision: https://reviews.llvm.org/D59783 llvm-svn: 357929
* [OpenMP] Clean up load balancing dynamic modeJonathan Peyton2019-04-087-36/+30
| | | | | | | | | | | | | | | | This patch cleans up the bookkeeping code for the load balancing dynamic mode. When a thread is moved to or from the thread pool, the th_active_in_pool flag and the __kmp_thread_pool_active_nth global counter are both updated. This removes the need for the corrective code in the main wait loop. Another global counter, __kmp_thread_pool_nth, was removed completely, as it was only used for debugging, but was not under KMP_DEBUG. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D59508 llvm-svn: 357927
* [OpenMP] Fix hang on WindowsJonathan Peyton2019-04-041-21/+46
| | | | | | | | | | | | | | | | | | | | | | | | Debug dump on large machine shows when many OpenMP threads (401 in total) sleep on a barrier, one of the innermost nesting levels sleeps on a child's b_arrived flag whose value is equal to 4 and is equal to checker value. i.e., (1) sleep bit is 0, and (2) done_check() would return true if called. It is unclear how this might happen. It could be Windows Server 2016's error of EnterCriticalSection / LeaveCriticalSection, or error of WaitForSingleObject / SetEvent / ResetEvent, or error in the library which is very difficult to find. As a workaround, change INFINITE wait to timed wait, so that each thread awakens each 5 seconds (the timeout was chosen arbitrary to not disturb other threads much), check flag condition under the lock, and either go to sleep again or stop sleeping as a result of the check. Patch by Andrey Churbanov Differential Revision: https://reviews.llvm.org/D59793 llvm-svn: 357722
* [OpenMP][Stats] Fix stats gathering for distribute and team clauseJonathan Peyton2019-04-036-32/+107
| | | | | | | | | | | The distribute clause needs an explicit push of a timer. The teams clause needs a timer added and also, similarly to parallel, exchanged with the serial timer when encountered so that serial regions are counted properly. Differential Revision: https://reviews.llvm.org/D59801 llvm-svn: 357621
* Ensure correct pthread flags and libraries are usedDimitry Andric2019-04-035-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On most platforms, certain compiler and linker flags have to be passed when using pthreads, otherwise linking against libomp.so might fail with undefined references to several pthread functions. Use CMake's `find_package(Threads)` to determine these for standalone builds, or take them (and optionally modify them) from the top-level LLVM cmake files. Also, On FreeBSD, ensure that libomp.so is linked against libm.so, similar to NetBSD. Adjust test cases with hardcoded `-lpthread` flag to use the common build flags, which should now have the required pthread flags. Reviewers: emaste, jlpeyton, krytarowski, mgorny, protze.joachim, Hahnfeld Reviewed By: Hahnfeld Subscribers: AndreyChurbanov, tra, EricWF, Hahnfeld, jfb, jdoerfert, openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D59451 llvm-svn: 357618
* [OpenMP] Add LLVM license header to fileJonathan Peyton2019-03-251-0/+12
| | | | | | This file was missing the LLVM license header llvm-svn: 356962
* [OpenMP] Add Intel 19.0 to list of compilers in kmp_version.cppJonathan Peyton2019-03-251-3/+3
| | | | llvm-svn: 356961
* Fix interoperability test compilation on FreeBSDDimitry Andric2019-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: While building the 8.0 releases on FreeBSD, I encountered the following error in the regression tests, where ompt/misc/interoperability.cpp failed to compile, with: ``` projects/openmp/runtime/test/ompt/misc/interoperability.cpp:7:10: fatal error: 'alloca.h' file not found #include <alloca.h> ^~~~~~~~~~ ``` Like on NetBSD, alloca(3) is defined in <stdlib.h> instead. Reviewers: emaste, jlpeyton, krytarowski, mgorny, protze.joachim Reviewed By: jlpeyton Subscribers: jdoerfert, openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D59736 llvm-svn: 356936
* Fix gettid warnings on FreeBSDDimitry Andric2019-03-251-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: [Split off from D59451 to get this fix in separately] While building the 8.0 releases on FreeBSD, I encountered the following warnings in openmp quite a few times: ``` In file included from projects/openmp/runtime/src/kmp_settings.cpp:27: projects/openmp/runtime/src/kmp_wrapper_getpid.h:35:2: warning: #warning is a language extension [-Wpedantic] #warning No gettid found, use getpid instead ^ projects/openmp/runtime/src/kmp_wrapper_getpid.h:35:2: warning: No gettid found, use getpid instead [-W#warnings] 2 warnings generated. ``` I added a gettid wrapper that uses FreeBSD's pthread_getthreadid_np(3) function for this. Reviewers: emaste, jlpeyton, krytarowski, mgorny, protze.joachim Reviewed By: jlpeyton Subscribers: jfb, jdoerfert, openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D59735 llvm-svn: 356934
* [OpenMP] Fix pause check with version infoJonathan Peyton2019-03-251-9/+6
| | | | | | | | | | Add 5.0 guard to pause code for now. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D59428 llvm-svn: 356933
* [OpenMP] Fix OMPT cancellation test for GOMPJonathan Peyton2019-03-151-2/+2
| | | | | | | | | The GOMP sections interface uses schedule(dynamic) dispatch so it cannot be assumed which thread executes the cancel and which thread executes the cancellation point. This patch allows either thread to execute either section. llvm-svn: 356302
* [OpenMP] Add missing parenthesis in Perl moduleJonathan Peyton2019-03-151-1/+1
| | | | llvm-svn: 356289
* [OpenMP] Remove deprecated taskqJonathan Peyton2019-03-156-2248/+16
| | | | | | | | | | Remove very old, unused, and deprecated taskq code. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D58989 llvm-svn: 356288
* [OpenMP][stats] Update stats gathering macrosJonathan Peyton2019-03-082-16/+16
| | | | llvm-svn: 355739
* [mips] Use libatomic instead of GCC intrinsics for 64bitPetar Jovanovic2019-03-081-10/+66
| | | | | | | | | | | | | | | | | The following GCC intrinsics are not available on MIPS32: __sync_fetch_and_add_8 __sync_fetch_and_and_8 __sync_fetch_and_or_8 __sync_val_compare_and_swap_8 Replace these with appropriate libatomic implementation. Patch by Miodrag Dinic. Differential Revision: https://reviews.llvm.org/D45691 llvm-svn: 355687
* [OPENMP] Deal with additional store inserted by Clang under -fno-PIC for ↵Stefan Pintilie2019-03-015-7/+6
| | | | | | | | | | | | | | | | PowerPC. Changing the default from -fPIC to -fno-PIC on PowerPC exposed an issue in OpenMP for PowerPC. The issue is reported here: https://bugs.llvm.org/show_bug.cgi?id=40082 This is a fix for that issue. Also removed the XFAIL from the two tests that were failing under -fno-PIC. Differential Revision: https://reviews.llvm.org/D56286 llvm-svn: 355229
* [OpenMP][OMPT] Distinguish different barrier kindsJonathan Peyton2019-02-286-21/+57
| | | | | | | | | | | | | This change makes the runtime decide the intended use of each barrier invocation, for the OMPT synchronization tool callbacks. The OpenMP 5.0 specification defines four possible barrier kinds -- implicit, explicit, implementation, and just normal barrier. Patch by Hansang Bae Differential Revision: https://reviews.llvm.org/D58247 llvm-svn: 355140
* [OpenMP 5.0] Deprecate nest-var and associated featuresJonathan Peyton2019-02-287-37/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | Nest-var, OMP_NESTED, omp_set_nested()., and omp_get_nested() have been deprecated in the 5.0 spec. Initial nesting info is now derived from OMP_MAX_ACTIVE_LEVELS, OMP_NUM_THREADS, and OMP_PROC_BIND. This patch deprecates the internal ICV that corresponds to nest-var, and replaces it with the max-active-levels-var ICV to determine nesting. The change still allows for use of OMP_NESTED (according to 5.0 changes), omp_get_nested, and omp_set_nested, which have had deprecation messages added to them. The change allows certain settings of OMP_NUM_THREADS, OMP_PROC_BIND, and OMP_MAX_ACTIVE_LEVELS to turn on nesting, but OMP_NESTED=0 will still force nesting to be off. The runtime now prints informative messages about deprecation of OMP_NESTED, omp_set_nested(), and omp_get_nested(), when those environment variables or routines are used. It also prints deprecated message in output for KMP_SETTINGS and OMP_DISPLAY_ENV for OMP_NESTED. This patch also fixes OMP_DISPLAY_ENV output for OMP_TARGET_OFFLOAD. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D58408 llvm-svn: 355138
* [OpenMP] Make use of sched_yield optional in runtimeJonathan Peyton2019-02-2819-383/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch cleans up the yielding code and makes it optional. An environment variable, KMP_USE_YIELD, was added. Yielding is still on by default (KMP_USE_YIELD=1), but can be turned off completely (KMP_USE_YIELD=0), or turned on only when oversubscription is detected (KMP_USE_YIELD=2). Note that oversubscription cannot always be detected by the runtime (for example, when the runtime is initialized and the process forks, oversubscription cannot be detected currently over multiple instances of the runtime). Because yielding can be controlled by user now, the library mode settings (from KMP_LIBRARY) for throughput and turnaround have been adjusted by altering blocktime, unless that was also explicitly set. In the original code, there were a number of places where a double yield might have been done under oversubscription. This version checks oversubscription and if that's not going to yield, then it does the spin check. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D58148 llvm-svn: 355120
* [OpenMP] Fix check-openmp after r354553Jonas Hahnfeld2019-02-211-0/+2
| | | | | | | | | | | | | | | | | | Calling add_openmp_testsuite will add the tests to check-openmp unless EXCLUDE_FROM_ALL is set. This is problematic because the tests for OMPT will be included twice which doesn't work if the same test is executed concurrently by multiple threads. See: http://lab.llvm.org:8011/builders/openmp-gcc-x86_64-linux-debian/builds/163 http://lab.llvm.org:8011/builders/openmp-clang-x86_64-linux-debian/builds/184 http://lab.llvm.org:8011/builders/openmp-clang-ppc64le-linux-rhel/builds/133 (On PPC some failures are unrelated to r354553, the bot has been red before and this commit is not expected to fix that. For a proper patch please see https://reviews.llvm.org/D56286.) llvm-svn: 354572
* [OpenMP][OMPT] Fix locking testcases for 32 bit architecturesJoachim Protze2019-02-213-2/+3
| | | | | | | | | | | Fix for the bug reported in: https://bugs.llvm.org/show_bug.cgi?id=40531 The address is now casted the same way as in the runtime code. Differential Revision: https://reviews.llvm.org/D58454 llvm-svn: 354553
* [OpenMP] Remove XFAIL for cancellation tests using gccJonathan Peyton2019-02-192-2/+1
| | | | llvm-svn: 354370
* [OpenMP 5.0] Add omp_get_supported_active_levels()Jonathan Peyton2019-02-198-0/+39
| | | | | | | | | | This patch adds the new 5.0 API function omp_get_supported_active_levels(). Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D58211 llvm-svn: 354368
* [OpenMP] Adding GOMP compatible cancellationJonathan Peyton2019-02-195-113/+246
| | | | | | | | | | | Remove fatal error messages from the cancellation API for GOMP Add __kmp_barrier_gomp_cancel() to implement cancellation of parallel regions. This new function uses the linear barrier algorithm with a cancellable nonsleepable wait loop. Differential Revision: https://reviews.llvm.org/D57969 llvm-svn: 354367
* [OpenMP] Remove accidental commit to config-ix.cmake in r353747Jonathan Peyton2019-02-111-38/+0
| | | | llvm-svn: 353748
* [OpenMP] Fix thread_limits to work properly for teams constructJonathan Peyton2019-02-115-26/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The thread-limit-var and omp_get_thread_limit API was not perfectly handled for teams construct. Now, when modified by thread_limit clause, omp_get_thread_limit reports the correct value. In addition, the value is restored when leaving the teams construct to what it was in the encountering context. This is done partly by creating the notion of a Contention Group root (CG root) that keeps track of the thread at the root of each separate CG, the thread-limit-var associated with the CG, and associated counter of active threads within the contention group. thread-limits are passed from master to worker threads via an entry in the ICV data structure. When a "contention group switch" occurs, a new CG root record is made and passed from master to worker. A thread could potentially have several CG root records if it encounters multiple nested teams constructs (but at the moment the spec doesn't allow for nested teams, so the most one could have currently is 2). The master of the teams masters gets the thread-limit clause value stored to its local ICV structure, and the other teams masters copy it from the master. The thread-limit is set from that ICV copy and restored to the ICV copy when entering and leaving the teams construct. This change also fixes a bug when the top-level teams construct team gets reused, and OMP_DYNAMIC was true, which can cause the expected size of this team to be smaller than what was actually allocated. The fix updates the size of the team after its threads were reserved. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D56804 llvm-svn: 353747
* [OMPT] Remove test output from source treeJonas Hahnfeld2019-02-111-1/+1
| | | | | | | | | %s refers to the test file in the source tree. This was accidentally added in r351197 / 2b46d30 ("[OMPT] Second chunk of final OMPT 5.0 interface updates"). Differential Revision: https://reviews.llvm.org/D58002 llvm-svn: 353715
OpenPOWER on IntegriCloud