summaryrefslogtreecommitdiffstats
path: root/openmp
Commit message (Collapse)AuthorAgeFilesLines
...
* [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][libomptarget] New reduction scheme for team reductionsGheorghe-Teodor Bercea2019-02-202-0/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds a more sophisticated team reduction scheme to the OpenMP libomptarget-nvptx runtime. The scheme uses a fixed size global memory buffer whose length can be adjusted via compiler flag: ``` -fopenmp-cuda-teams-reduction-recs-num=1024 ``` The global buffer is a structure of arrays (with default size of 1024 each and controlled by the above flag), one array for each reduction variable. Values in the buffer are processed by the last team to finish executing the body of the target region. In addition to adding support for the new flag, the compiler also emits special functions used for the reduction of the intermediate reduction values. These changes will be added in a separate compiler patch following this one. Reviewers: ABataev, caomhin Reviewed By: ABataev Subscribers: guansong, jfb, jdoerfert, openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D58409 llvm-svn: 354471
* [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] Fix broken link to browse sourcesJonathan Peyton2019-02-121-1/+1
| | | | llvm-svn: 353858
* [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
* Guard a feature that unsupported by old GCCTaewook Oh2019-02-081-1/+9
| | | | | | | | | | | | | | | | Summary: As @david2050 commented, changes introduced by https://reviews.llvm.org/D56397 break builds for older compilers which don't support `__has(_cpp)_attribute`. This is a fix for the break. Reviewers: protze.joachim, jlpeyton, AndreyChurbanov, Hahnfeld, david2050 Subscribers: openmp-commits, david2050 Tags: #openmp Differential Revision: https://reviews.llvm.org/D57851 llvm-svn: 353538
* [OMPT] Make sure that OMPT is enabled when accessing internals of the runtimeJoachim Protze2019-02-044-0/+17
| | | | | | | | | | | | | | | | | The three switch fallthrough generate a warning with -Wimplicit-fallthrough. Two are documented as fallthrough, one is not, but I think the intention is to also fallthrough in kmp_tasking.cpp. Not sure whether kmp.h is the best place to define the macro. Reviewers: jlpeyton, AndreyChurbanov, Hahnfeld Reviewed By: jlpeyton Tags: #openmp Differential Revision: https://reviews.llvm.org/D56397 llvm-svn: 353052
* [OMPT] Make sure that OMPT is enabled when accessing internals of the runtimeJoachim Protze2019-01-302-4/+163
| | | | | | | | | | | | | | | | | | | | Redo after revert by hans. The wrong include in one test is fixed. Make sure that OMPT is enabled in runtime entry points that access internals of the runtime. Else, return an appropiate value indicating an error or that the data is not available. Patch provided by @sconvent Reviewers: jlpeyton, omalyshe, hbae, Hahnfeld, joachim.protze Reviewed By: joachim.protze Tags: #openmp, #ompt Differential Revision: https://reviews.llvm.org/D47717 llvm-svn: 352611
* Adjust documentation for git migration.James Y Knight2019-01-291-16/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes most references to the paths: llvm.org/svn/ llvm.org/git/ llvm.org/viewvc/ github.com/llvm-mirror/ github.com/llvm-project/ reviews.llvm.org/diffusion/ to instead point to https://github.com/llvm/llvm-project. This is *not* a trivial substitution, because additionally, all the checkout instructions had to be migrated to instruct users on how to use the monorepo layout, setting LLVM_ENABLE_PROJECTS instead of checking out various projects into various subdirectories. I've attempted to not change any scripts here, only documentation. The scripts will have to be addressed separately. Additionally, I've deleted one document which appeared to be outdated and unneeded: lldb/docs/building-with-debug-llvm.txt Differential Revision: https://reviews.llvm.org/D57330 llvm-svn: 352514
* Remove no longer needed Arm specific words in the LICENSE.txt file.Arnaud A. de Grandmaison2019-01-281-50/+0
| | | | | | | | | As the codebase is now under the Apache 2.0 license with LLVM Exceptions, and all Arm's contributions, past or future, are under that new license, this Arm specific words in LICENSE.txt are no longer needed. llvm-svn: 352377
* NFC: fixed formatting to be consistent across the fileAndrey Churbanov2019-01-211-1/+2
| | | | llvm-svn: 351748
* Fixed https://reviews.llvm.org/D55078 broken Fortran fixed form.Andrey Churbanov2019-01-211-4/+6
| | | | | | | | Long lines split in order to obey Fortran fixed form compilation. Differential Revision: https://reviews.llvm.org/D57017 llvm-svn: 351745
* Fix typos throughout the license files that somehow I and my reviewersChandler Carruth2019-01-211-1/+1
| | | | | | | | | | | all missed! Thanks to Alex Bradbury for pointing this out, and the fact that I never added the intended `legacy` anchor to the developer policy. Add that anchor too. With hope, this will cause the links to all resolve successfully. llvm-svn: 351731
* Update more file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-19175-700/+525
| | | | | | | | | | | | | | | | | | to reflect the new license. These used slightly different spellings that defeated my regular expressions. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351648
* Install new LLVM license structure and new developer policy.Chandler Carruth2019-01-191-0/+237
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This installs the new developer policy and moves all of the license files across all LLVM projects in the monorepo to the new license structure. The remaining projects will be moved independently. Note that I've left odd formatting and other idiosyncracies of the legacy license structure text alone to make the diff easier to read. Critically, note that we do not in any case *remove* the old license notice or terms, as that remains necessary until we finish the relicensing process. I've updated a few license files that refer to the LLVM license to instead simply refer generically to whatever license the LLVM project is under, basically trying to minimize confusion. This is really the culmination of so many people. Chris led the community discussions, drafted the policy update and organized the multi-year string of meeting between lawyers across the community to figure out the strategy. Numerous lawyers at companies in the community spent their time figuring out initial answers, and then the Foundation's lawyer Heather Meeker has done *so* much to help refine and get us ready here. I could keep going on, but I just want to make sure everyone realizes what a huge community effort this has been from the begining. Differential Revision: https://reviews.llvm.org/D56897 llvm-svn: 351631
* Revert r351311 "[OMPT] Make sure that OMPT is enabled when accessing ↵Hans Wennborg2019-01-172-163/+4
| | | | | | | | | | | | | | | | | | | | | | | | internals of the runtime" and also the follow-up r351315. The new test is failing on the buildbots. > Make sure that OMPT is enabled in runtime entry points that access internals > of the runtime. Else, return an appropiate value indicating an error or that > the data is not available. > > Patch provided by @sconvent > > Reviewers: jlpeyton, omalyshe, hbae, Hahnfeld, joachim.protze > > Reviewed By: joachim.protze > > Tags: #openmp, #ompt > > Differential Revision: https://reviews.llvm.org/D47717 llvm-svn: 351431
* [OpenMP] Add omp_pause_resource* APIJonathan Peyton2019-01-1619-10/+456
| | | | | | | | | | | | Add omp_pause_resource and omp_pause_resource_all API and enum, plus stub for internal implementation. Implemented callable helper function to do local pause, and added basic functionality for hard and soft pause. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D55078 llvm-svn: 351372
* [OpenMP] Output written by tests should go to build directoryJoachim Protze2019-01-161-1/+1
| | | | llvm-svn: 351332
* [OpenMP] Remove compiler warning about unused valueJoachim Protze2019-01-161-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | The compiler warns about an unused variable/statement: runtime/src/kmp_affinity.cpp:4958:18: warning: statement has no effect [-Wunused-value] KA_TRACE(1000, ; { ^ runtime/src/kmp_debug.h:84:24: note: in definition of macro 'KA_TRACE' __kmp_debug_printf x; \ ^ Instead of the unused reference to this function, this patch now calls the function with an empty string. The call to this function should have no effect. Patch provided by joachim.protze Reviewers: jlpeyton, hbae, AndreyChurbanov Reviewed By: AndreyChurbanov Tags: #openmp, #ompt Differential Revision: https://reviews.llvm.org/D56775 llvm-svn: 351323
* Fix compiler error in r351311Joachim Protze2019-01-161-1/+1
| | | | llvm-svn: 351315
* [OMPT] Make sure that OMPT is enabled when accessing internals of the runtimeJoachim Protze2019-01-162-4/+163
| | | | | | | | | | | | | | | | | | Make sure that OMPT is enabled in runtime entry points that access internals of the runtime. Else, return an appropiate value indicating an error or that the data is not available. Patch provided by @sconvent Reviewers: jlpeyton, omalyshe, hbae, Hahnfeld, joachim.protze Reviewed By: joachim.protze Tags: #openmp, #ompt Differential Revision: https://reviews.llvm.org/D47717 llvm-svn: 351311
* [OpenMP] Fix for nested proc_bind affinity bugJonathan Peyton2019-01-153-13/+44
| | | | | | | | | | | | | | Using proc_bind clause on a nested #pragma omp parallel region with KMP_AFFINITY set causes an assertion error. This assertion occurs because the place-partition-var is not properly initialized in the nested master threads. Trying to get an intuitive result with KMP_AFFINITY + proc_bind is difficult because of how the KMP_AFFINITY gtid-to-place mapping occurs. This patch creates an initial place list no matter what affinity mechanism is used. For KMP_AFFINITY, the place-partition-var is initialized to all the places. Differential Revision: https://reviews.llvm.org/D55795 llvm-svn: 351227
* [OpenMP] Add lock function definitions to fix Bug 40042Jonathan Peyton2019-01-151-0/+41
| | | | | | | | | | | | | This change fixes the sanity issue reported in Bug 40042. Lock function definitions for the three lock kinds were added to disambiguate calls to the lock functions done directly and indirectly. Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=40042 Patch by Hansang Bae Differential Revision: https://reviews.llvm.org/D56103 llvm-svn: 351224
* [OpenMP][Cmake] Allowed OpenMP testing detect test compiler with same generatorJonathan Peyton2019-01-151-1/+1
| | | | | | | | | | Fix ninja build detect test compiler failed under windows. Patch by Peiyuan Song Differential Revision: https://reviews.llvm.org/D53479 llvm-svn: 351223
* [OpenMP] Fix performance regression in SPEC kdtree testJonathan Peyton2019-01-151-13/+9
| | | | | | | | | | Make __ompt_implicit_task_end a static function and remove the inline part. Remove pId variable that is unused. This fixes small regression in SPEC kdtree benchmark. Also reformat some of __ompt_implicit_task_end. Differential Revision: https://reviews.llvm.org/D55788 llvm-svn: 351221
* [OMPT] Second chunk of final OMPT 5.0 interface updatesJoachim Protze2019-01-1525-798/+1161
| | | | | | | | | | | | | | | | | | | | | The omp-tools.h file is generated from the OpenMP spec to ensure that the interface is implemented as specified. The other changes are necessary to update the interface implementation to the final version as published in 5.0. The omp-tools.h header was previously called ompt.h, currently a copy under this name is installed for legacy tools. Patch partially perpared by @sconvent Reviewers: AndreyChurbanov, hbae, Hahnfeld Reviewed By: hbae Tags: #openmp, #ompt Differential Revision: https://reviews.llvm.org/D55579 llvm-svn: 351197
* Update year in license filesHans Wennborg2019-01-151-2/+2
| | | | | | | In last year's update (D48219) it was suggested that the release manager might want to do this, so here we go. llvm-svn: 351194
* [OpenMP] Fix LIBOMP_USE_DEBUGGER=ON build (PR38612)Roman Lebedev2019-01-133-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Two things: 1. Those two variables had the wrong sigdness, which was resulting in "sign mismatch in comparison" warning. 2. The whole `kmp_debugger.cpp` wasn't being built, or rather, it was being built as-if `USE_DEBUGGER` was off, thus, nothing provided the definition of `__kmp_omp_debug_struct_info`, `__kmp_debugging`. Makes sense, because `USE_DEBUGGER` is set in `kmp_config.h`, which is not included explicitly. It is included by `kmp.h`, but that one is only included inside of the `#if USE_DEBUGGER` block.. I *think* this is the only source file with this issue, everything else seem to `#include` either `kmp.h` or `kmp_config.h`. The alternative solution would be to add `add_compile_options(-include kmp_config.h)` in CMake. I did verify that `__kmp_omp_debug_struct_info` becomes available with this patch. Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=38612 | PR38612 ]]. Reviewers: AndreyChurbanov, jlpeyton, Hahnfeld Reviewed By: jlpeyton Subscribers: guansong, jfb, openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D55783 llvm-svn: 351019
* [OpenMP][libomptarget] Use shared memory variable for tracking parallel levelGheorghe-Teodor Bercea2019-01-096-69/+21
| | | | | | | | | | | | | | Summary: Replace existing infrastructure for tracking parallel level using global memory with a per-team shared memory variable. This minimizes the impact of the overhead of tracking the parallel level for non-nested cases. Reviewers: ABataev, caomhin Reviewed By: ABataev Subscribers: guansong, openmp-commits Differential Revision: https://reviews.llvm.org/D55773 llvm-svn: 350747
* Doc: fixed description of a parameter of the __kmpc_taskloopAndrey Churbanov2019-01-091-1/+1
| | | | | | | | Patch by sergi.mateo.bellido@gmail.com Differential Revision: https://reviews.llvm.org/D56432 llvm-svn: 350713
* [OPENMP][NVPTX]Fix dynamic scheduling.Alexey Bataev2019-01-072-22/+47
| | | | | | | | | | | | | | | Summary: Previous implementation may cause the runtime crash when the number of teams is > 1024. Patch fixes this problem + reduces number of the atomic operations by 32 times. Reviewers: grokos, gtbercea, kkwli0 Subscribers: guansong, jfb, openmp-commits, caomhin Differential Revision: https://reviews.llvm.org/D56332 llvm-svn: 350524
* [OPENMP][NVPTX]General formatting/code improvement, NFC.Alexey Bataev2019-01-0410-81/+57
| | | | | | | | | | | | Summary: Formatting. Reviewers: gtbercea, grokos, kkwli0 Subscribers: guansong, openmp-commits, caomhin Differential Revision: https://reviews.llvm.org/D56290 llvm-svn: 350431
* [OPENMP][NVPTX]Improve performance + reduce number of used registers.Alexey Bataev2019-01-0413-83/+124
| | | | | | | | | | | | | | | | | Summary: Reduced number of the used register + improved performance propagating the information about current execution/data sharing mode directly from the compiler, where it is possible. In some cases, it requires new/reworked interfaces of the runtime external functions. Old functions are marked as deprecated. Reviewers: grokos, gtbercea, kkwli0 Subscribers: guansong, jfb, openmp-commits, caomhin Differential Revision: https://reviews.llvm.org/D56278 llvm-svn: 350405
* [OpenMP] Fix nvidia-cuda-toolkit detection on Debian/UbuntuJoel E. Denny2019-01-041-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | The OpenMP runtime's cmake scripts do not correctly locate the libdevice that the Debian/Ubuntu package nvidia-cuda-toolkit currently includes, at least on my Ubuntu 18.04.1 installation. This patch fixes that for me. This problem was discussed at length in D55269. D40453 added a similar adjustment in clang, but reviewers of D55269 concluded that, for the OpenMP runtime, the right place to address this problem is in cmake's CUDA support. However, it was also suggested we could add a workaround to OpenMP's cmake scripts now. This patch contains such a workaround, which I've tried to design so that it will have no harmful effect if cmake improves in the future. nvidia-cuda-toolkit also needs improvements because its intended monolithic CUDA tree shim, /usr/lib/cuda, has many empty directories, such as bin. I reported that at: <https://bugs.launchpad.net/ubuntu/+source/nvidia-cuda-toolkit/+bug/1808999> Reviewed By: grokos Differential Revision: https://reviews.llvm.org/D55588 llvm-svn: 350377
* [OpenMP] Add omp_get_device_num() and update several other device API functionsJonathan Peyton2019-01-0313-48/+172
| | | | | | | | | | | | | | | | | | | | Add omp_get_device_num() function for 5.0 which returns the number of the device the current thread is running on. Currently, we are leaving it to the compiler to handle this properly if it is called inside target. Also, did some cleanup and updating of duplicate device API functions (in both libomp and libomptarget) to make them into weak functions that check for the symbol from libomptarget, and will call the version in libomptarget if it is present. If any additional device API functions are implemented also in libomptarget in the future, we should add the dlsym calls to the host functions. Also, if the omp_target_* functions are to be implemented for the host (this has been requested), they should attempt to call the libomptarget versions as well. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D55578 llvm-svn: 350352
* [OPENMP][NVPTX]Fix incompatibility of __syncthreads with LLVM, NFC.Alexey Bataev2019-01-034-6/+15
| | | | | | | | | | | | | | | | | | Summary: One of the LLVM optimizations, split critical edges, also clones tail instructions. This is a dangerous operation for __syncthreads() functions and this transformation leads to undefined behavior or incorrect results. Patch fixes this problem by replacing __syncthreads() function with the assembler instruction, which cost is too high and wich cannot be copied. Reviewers: grokos, gtbercea, kkwli0 Subscribers: guansong, openmp-commits, caomhin Differential Revision: https://reviews.llvm.org/D56274 llvm-svn: 350333
* [libomptarget] Added install component for libomptargetVyacheslav Zakharin2019-01-021-1/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D56108 llvm-svn: 350254
* [OPENMP][NVPTX]Added/fixed debugging messages, NFC.Alexey Bataev2018-12-283-3/+7
| | | | | | | | | | | | | | Summary: Added or fixed new/old debugging messages for the better diagnostics. Reviewers: gtbercea, kkwli0, grokos Reviewed By: grokos Subscribers: caomhin, guansong, openmp-commits Differential Revision: https://reviews.llvm.org/D56102 llvm-svn: 350137
* [OPENMP][NVPTX]Fixed initialization of the data-sharing interface.Alexey Bataev2018-12-281-6/+9
| | | | | | | | | | | | | | | | Summary: Avoid using of the atomic loop to wait for the completion of the data-sharing interface initialization, use __shfl_sync instead for the communication within the warp to signal other threads in the warp about completion of the initialization. Reviewers: gtbercea, kkwli0, grokos Subscribers: guansong, jfb, caomhin, openmp-commits Differential Revision: https://reviews.llvm.org/D56100 llvm-svn: 350129
* [OPENMP][NVPTX]Outline assert into noinline function, NFC.Alexey Bataev2018-12-281-8/+19
| | | | | | | | | | | | | | | | Summary: At high optimization level asserts lead to some unexpected results because of auto-inserted unreachable instructions. This outlining prevents some of such dangerous optimizations and leads to better stability. Reviewers: gtbercea, kkwli0, grokos Subscribers: guansong, caomhin, openmp-commits Differential Revision: https://reviews.llvm.org/D56101 llvm-svn: 350128
* [runtime] [test] Fix using %python pathMichal Gorny2018-12-2212-16/+17
| | | | | | | | | | Fix the newly-added tests to use %python substitution in order to use the correct path to Python interpreter. Otherwise, they fail on NetBSD where there is no 'python', just 'pythonX.Y'. Differential Revision: https://reviews.llvm.org/D56048 llvm-svn: 350001
OpenPOWER on IntegriCloud