summaryrefslogtreecommitdiffstats
path: root/openmp/libomptarget
Commit message (Collapse)AuthorAgeFilesLines
...
* [libomptarget] Split implementation of API functionsJonas Hahnfeld2017-12-065-297/+316
| | | | | | | | | | This third patch moves the implementation of the user-facing OpenMP API functions into its own file. For now, the code is only moved, no cleanups applied yet. Differential Revision: https://reviews.llvm.org/D40800 llvm-svn: 319971
* [libomptarget] Split device functionalityJonas Hahnfeld2017-12-064-321/+339
| | | | | | | | | | This is the second patch to split the current monolithic implementation into separate files. Note that this change doesn't cleanup the code yet. Differential Revision: https://reviews.llvm.org/D40799 llvm-svn: 319970
* [libomptarget] Split RTL plugin functionalityJonas Hahnfeld2017-12-066-629/+742
| | | | | | | | | | | This is the first of four patches to split the target agnostic library into multiple (smaller) files. It only moves the code to separate implementation files and does no cleanup (yet) except removing unneeded headers. Differential Revision: https://reviews.llvm.org/D40798 llvm-svn: 319969
* [libomptarget] Move header files and CMake library definitionJonas Hahnfeld2017-12-065-17/+32
| | | | | | | | | | | | | | Future patches will add (private) header files in src/ that should not be visible to plugins, so move the "public" ones to a new include/ directory. This is still internal in a sense that the contained files won't be installed for the user. Similarly, the target agnostic offloading library should be built directly in src/. The parent directory is responsible for finding dependencies and including all subdirectories. Differential Revision: https://reviews.llvm.org/D40797 llvm-svn: 319968
* [CMake] Detect information about test compilerJonas Hahnfeld2017-11-301-24/+6
| | | | | | | | | | | | Perform a nested CMake invocation to avoid writing our own parser for compiler versions when we are not testing the in-tree compiler. Use the extracted information to mark a test as unsupported that hangs with Clang prior to version 4.0.1 and restrict tests for libomptarget to Clang version 6.0.0 and later. Differential Revision: https://reviews.llvm.org/D40083 llvm-svn: 319448
* [CMake] Refactor testing infrastructureJonas Hahnfeld2017-11-294-102/+23
| | | | | | | | | | | | | | | The code for the two OpenMP runtime libraries was very similar. Move to common CMake file that is included and provides a simple interface for adding testsuites. Also add a common check-openmp target that runs all testsuites that have been registered. Note that this renames all test options to the common OPENMP namespace, for example OPENMP_TEST_C_COMPILER instead of LIBOMP_TEST_COMPILER and so on. Differential Revision: https://reviews.llvm.org/D40082 llvm-svn: 319343
* [CMake] Refactor common settings and flagsJonas Hahnfeld2017-11-295-84/+41
| | | | | | | | | | | | These are needed by both libraries, so we can do that in a common namespace and unify configuration parameters. Also make sure that the user isn't requesting libomptarget if the library cannot be built on the system. Issue an error in that case. Differential Revision: https://reviews.llvm.org/D40081 llvm-svn: 319342
* [CMake] Disallow direct configurationJonas Hahnfeld2017-11-293-18/+6
| | | | | | | | | | As a first step, this allows us to generalize the detection of standalone builds and make it fully compatible when building in llvm/runtimes/ which automatically sets OPENMP_STANDLONE_BUILD. Differential Revision: https://reviews.llvm.org/D40080 llvm-svn: 319341
* [CMake] Re-enable libomptarget and restrict tests to Clang 6.0.0Jonas Hahnfeld2017-11-221-0/+23
| | | | | | | | | | We have just fixed the codegen of omp_is_initial_device() to reliably work when offloading to the same device, see commit r316001. This fixes the failing tests that were the reason why we disabled the library for 5.0. Differential Revision: https://reviews.llvm.org/D39052 llvm-svn: 318847
* [Clang][OpenMP] New clang/libomptarget map interface: new function ↵George Rokos2017-11-212-57/+57
| | | | | | | | | | | signatures, libomptarget-side This is the libomptarget-side patch which changes the __tgt_* API function signatures in preparation for the new map interface. Changes are: Device IDs 32bits --> 64bits, Flags 32bits --> 64bits Differential revision: https://reviews.llvm.org/D40313 llvm-svn: 318790
* [libomptarget] Build all libraries in libomptarget/Jonas Hahnfeld2017-11-111-0/+3
| | | | | | | | | In standalone build, plugins where previously built in their subdirectory in plugins/ and tests couldn't find them. Differential Revision: https://reviews.llvm.org/D39920 llvm-svn: 317979
* Revert "Rename fields of ompt_frame_t"Jonas Hahnfeld2017-11-031-3/+0
| | | | | | This reverts commit r317338 which discarded some recent commits. llvm-svn: 317347
* Rename fields of ompt_frame_tJoachim Protze2017-11-031-0/+3
| | | | | | | | | | This is part of the renaming of data types from OpenMP TR4 to TR6 Patch by Simon Convent Differential Revision: https://reviews.llvm.org/D39326 llvm-svn: 317338
* [libomptarget] Remove stale omp handleJonas Hahnfeld2017-11-021-3/+0
| | | | | | | | | This was never used in the upstream compiler and was responsible for some problems with reductions in the clang-ykt fork. Differential Revision: https://reviews.llvm.org/D39553 llvm-svn: 317214
* [OpenMP] libomptarget: move debugging dumps under control of env var ↵Sergey Dmitriev2017-08-147-7/+112
| | | | | | | | | | | | | | | LIBOMPTARGET_DEBUG Disable default debugging dumps for libomptarget and plugins and move dumps under control of environment variable LIBOMPTARGET_DEBUG=<integer>. Dumps are enabled when LIBOMPTARGET_DEBUG is set to a positive integer value. Debugging dumps are available only in debug build; release build does not support it. Differential Revision: https://reviews.llvm.org/D33227 llvm-svn: 310841
* Whitespace.NAKAMURA Takumi2017-07-201-8/+7
| | | | llvm-svn: 308693
* Only use libdl when it is availableDimitry Andric2017-06-261-1/+1
| | | | | | | | | | | | | | | | Summary: On BSDs, there is no `libdl.so`, and functions like `dlopen` are implemented in the main C library instead. Use the `CMAKE_DL_LIBS` variable instead of hardcoding a dependency on the `dl` library. Reviewers: grokos, joerg, emaste Reviewed By: emaste Subscribers: jlpeyton, mgorny, openmp-commits Differential Revision: https://reviews.llvm.org/D34632 llvm-svn: 306319
* [OpenMP] Prevent unused-variable warning in libomptarget when compiling in ↵Samuel Antao2017-06-091-0/+4
| | | | | | Release mode. llvm-svn: 305090
* [OpenMP] libomptarget: eliminate compiler warnings at buildGeorge Rokos2017-06-022-11/+13
| | | | | | | | Thanks to Sergey Dmitriev for submitting the patch. Differential Revision: https://reviews.llvm.org/D33851 llvm-svn: 304601
* [OpenMP] Changes in the plugin interfaceGeorge Rokos2017-05-105-47/+158
| | | | | | | | | | | This patch chagnes the plugin interface so that: 1) future plugins can take advantage of systems with shared CPU/device storage 2) instead of using base addresses, target regions are launched by providing target addresseds and base offsets explicitly. Differential revision: https://reviews.llvm.org/D33028 llvm-svn: 302663
* [OpenMP] libomptarget: test correction for use with OpenMP 4.5George Rokos2017-04-272-2/+2
| | | | | | | | Differential Revision: https://reviews.llvm.org/D32562 Thanks to Sergey Dmitriev for submitting the patch. llvm-svn: 301577
* [OpenMP] Optimized default kernel launch parameters in CUDA pluginGeorge Rokos2017-04-251-11/+30
| | | | | | Differential Revision: https://reviews.llvm.org/D32321 llvm-svn: 301321
* [OpenMP] libomptarget: Set ref count for global objects to positive infinityGeorge Rokos2017-04-221-5/+15
| | | | | | Differential Revision: https://reviews.llvm.org/D32326 llvm-svn: 301076
* [OpenMP] libomptarget: Remove obsolete negative device IDs -2/-3George Rokos2017-04-222-16/+0
| | | | | | Differential Revision: https://reviews.llvm.org/D32325 llvm-svn: 301075
* [OpenMP] Run libomptarget regression tests using all available system threads.George Rokos2017-04-221-1/+0
| | | | | | Differential Revision: https://reviews.llvm.org/D32327 llvm-svn: 301074
* [OpenMP] CUDA plugin: More descriptive error messagesGeorge Rokos2017-03-221-2/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D31206 llvm-svn: 298527
* [OpenMP] Allow multiple weak symbols to be loaded from the fat binaryGeorge Rokos2017-03-221-10/+9
| | | | | | | | For compatibility with Fortran. Differential Revision: https://reviews.llvm.org/D31205 llvm-svn: 298516
* [OpenMP] CUDA plugin: add include directory for libelfGeorge Rokos2017-03-221-1/+2
| | | | | | | | Allow the user to manually specify where libelf is installed. Differential Revision: https://reviews.llvm.org/D31207 llvm-svn: 298515
* Add AArch64 support.Paul Osmialowski2017-03-067-1/+26
| | | | | | | | This adds AArch64 support to recently added part of the runtime responsible for offloading to target. This piece of code allows offloading-to-self on AArch64 machines. Differential Revision: https://reviews.llvm.org/D30644 llvm-svn: 297070
* [OpenMP] libomptarget: Protect parent struct from being deallocatedGeorge Rokos2017-02-151-8/+19
| | | | | | | | Fixed bug due to which a parent struct was deallocated when one of the struct's pointers was being unmapped. Differential Revision: https://reviews.llvm.org/D29914 llvm-svn: 295231
* [libomptarget] Align test code with runtime/Jonas Hahnfeld2017-02-072-13/+13
| | | | | | | | | | | | | This change allows setting LIBOMPTARGET_LLVM_LIT_EXECUTABLE and LIBOMPTARGET_FILECHECK_EXECUTABLE as full path. It also honors OPENMP_LLVM_TOOLS_DIR which is meant as a common configuration for both libomp and libomptarget. Maybe this should be done in a common CMake module, but I'm no expert here. Differential Revision: https://reviews.llvm.org/D29172 llvm-svn: 294284
* [OpenMP] Redefined macro warning in libomptargetGeorge Rokos2017-02-011-0/+3
| | | | | | | | Fixed compilation warning in libomptarget. Differential Revision: https://reviews.llvm.org/D29353 llvm-svn: 293747
* [OpenMP] Initial implementation of OpenMP offloading library - libomptarget ↵George Rokos2017-02-0110-0/+1249
| | | | | | | | | | plugins. This is the patch upstreaming the plugins part of libomptarget (CUDA, generic-elf-64). Differential Revision: https://reviews.llvm.org/D14253 llvm-svn: 293724
* [libomptarget] Fix Debug build with glibc < 2.18Jonas Hahnfeld2017-01-301-0/+1
| | | | | | | | | | | glibc < 2.18 is C99 compliant and only provides the format macros in C++ if __STDC_FORMAT_MACROS is defined. This change fixes the debug build for GCC 4.8, GCC 6.2 and Clang 3.9.1 that were previously broken on my machine. It shows no regression for libc++ >= 4.0.0 which has a fix since September: http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160926/171659.html llvm-svn: 293468
* [libomptarget] Fix compilation with libc++Jonas Hahnfeld2017-01-271-1/+1
| | | | | | | | iterator is only guaranteed to be default-constructible, without any argument. Differential Revision: https://reviews.llvm.org/D29171 llvm-svn: 293277
* [OpenMP] Initial implementation of OpenMP offloading library - libomptarget.George Rokos2017-01-2514-0/+3356
This is the patch upstreaming the device-agnostic part of libomptarget. Differential Revision: https://reviews.llvm.org/D14031 llvm-svn: 293094
OpenPOWER on IntegriCloud