Commit Graph

1295 Commits

Author SHA1 Message Date
Bran Hagger
7a795c42ad Enable kmpc_atomic functions for arm64
Define the same kmpc_atomic functions for arm and arm64 that are defined for x86 and x64.

Reviewed By: mstorsjo

Differential Revision: https://reviews.llvm.org/D139139
2022-12-07 23:38:12 +02:00
zhanglimin
600c2b0f1e [OMPT][test] Fix mismatch error between the current address and the return address for LoongArch
This patch fixes tests masked.c and master.c on LoongArch.

Reviewed By: SixWeining, protze.joachim

Differential Revision: https://reviews.llvm.org/D138785
2022-12-07 11:58:28 +08:00
Jonathan Peyton
fef73b81e9 [OpenMP][libomp] Cleanup version script and exported symbols
This patch fixes issues seen once https://reviews.llvm.org/D135402 is applied.

The exports_so.txt file attempts to export functions which may not exist
depending on which features are enabled/disabled in the OpenMP
runtime library. There are not many of these so exporting dummy
symbols is feasible.

* Export dummy __kmp_reset_stats() function when stats is disabled.
* Export dummy debugging data when USE_DEBUGGER is disabled
* Export dummy __kmp_itt_[fini|init]_ittlib() functions
   when ITT Notify is disabled
* Export dummy __kmp_reap_monitor() function when KMP_USE_MONITOR
  is disabled
* Remove __kmp_launch_monitor and __kmp_launch_worker from being exported.
  They have been static symbols since library inception.

Fixes: https://github.com/llvm/llvm-project/issues/58858
Differential Revision: https://reviews.llvm.org/D138049
2022-12-06 08:33:31 -06:00
Nawrin Sultana
e6d2665df3 [OpenMP] Let predefined allocator fallback to default instead of returning null
Differential Revision: https://reviews.llvm.org/D139376
2022-12-05 20:52:51 -06:00
Ron Lieberman
b09a5e5cb3 Revert "Add mean_anyway to hpc config"
my bad, wrong repo ,so sorry.

This reverts commit 0b9350f3da.
2022-11-29 15:20:23 -06:00
Martin Storsjö
624e9e1318 [openmp] [test] Use stdint.h instead of manual code defining kmp_int*. NFC.
Differential Revision: https://reviews.llvm.org/D138818
2022-11-29 23:16:11 +02:00
Martin Storsjö
2bd2734f44 Reapply [openmp] [test] XFAIL many-microtask-args.c on ARM
On ARM, a C fallback version of __kmp_invoke_microtask is used,
which only handles up to a fixed number of arguments - while
many-microtask-args.c tests that the function can handle an
arbitrarily large number of arguments (the testcase produces 17
arguments).

On the CMake level, we can't add ${LIBOMP_ARCH} directly to
OPENMP_TEST_COMPILER_FEATURES in OpenMPTesting.cmake, since
that file is parsed before LIBOMP_ARCH is set. Instead
convert the feature list into a proper CMake list, and append
${LIBOMP_ARCH} into it before serializing it to an Python array.

Reapply: Make sure OPENMP_TEST_COMPILER_FEATURES is defined
properly in all other test subdirectories other than
runtime/test too.

Differential Revision: https://reviews.llvm.org/D138738
2022-11-29 23:16:10 +02:00
Ron Lieberman
0b9350f3da Add mean_anyway to hpc config 2022-11-29 15:11:57 -06:00
Martin Storsjö
5611bf69fc Revert "[openmp] [test] XFAIL many-microtask-args.c on ARM"
This reverts commit 03bf001b6d.

This commit broke a number of OpenMP buildbots, e.g.
https://lab.llvm.org/buildbot#builders/84/builds/31839, where
the build ends up with errors like this:

[0/1] Running OpenMP tests
llvm-lit: /b/1/openmp-clang-x86_64-linux-debian/llvm.src/llvm/utils/lit/lit/TestingConfig.py:140: fatal: unable to parse config file '/b/1/openmp-clang-x86_64-linux-debian/llvm.build/projects/openmp/libomptarget/test/x86_64-pc-linux-gnu/lit.site.cfg', traceback: Traceback (most recent call last):
 File "/b/1/openmp-clang-x86_64-linux-debian/llvm.src/llvm/utils/lit/lit/TestingConfig.py", line 129, in load_from_path
   exec(compile(data, path, 'exec'), cfg_globals, None)
 File "/b/1/openmp-clang-x86_64-linux-debian/llvm.build/projects/openmp/libomptarget/test/x86_64-pc-linux-gnu/lit.site.cfg", line 6
   config.test_compiler_features =
                                   ^
SyntaxError: invalid syntax
2022-11-28 23:08:10 +02:00
Martin Storsjö
4ed8fcc59a [openmp] [test] Fix data structure mismatches for tests that define kmp_depend_info
Use the correct data type for pointer sized integers on Windows;
"long" is always 32 bit, even on 64 bit Windows - don't use it
for the kmp_intptr_t type.

Provide the exact correct definition of the kmp_depend_info
struct - avoid the risk of mismatches (if a platform would pack
things slightly differently when things are declared differently).

Zero initialize the whole dep_info struct before filling it in;
if only setting the in/out bits, the rest of the unallocated bits
in the bitfield can have undefined values. Libomp reads the flags
in combined form as an kmp_uint8 by reading the flag field - thus,
the unused bits do need to be zeroed. (Alternatively, the flag field
could be set to zero before setting the individual bits in the
bitfield).

Use kmp_intptr_t instead of long for casting pointers to integers.

Differential Revision: https://reviews.llvm.org/D137748
2022-11-28 22:40:02 +02:00
Martin Storsjö
03bf001b6d [openmp] [test] XFAIL many-microtask-args.c on ARM
On ARM, a C fallback version of __kmp_invoke_microtask is used,
which only handles up to a fixed number of arguments - while
many-microtask-args.c tests that the function can handle an
arbitrarily large number of arguments (the testcase produces 17
arguments).

On the CMake level, we can't add ${LIBOMP_ARCH} directly to
OPENMP_TEST_COMPILER_FEATURES in OpenMPTesting.cmake, since
that file is parsed before LIBOMP_ARCH is set. Instead
convert the feature list into a proper CMake list, and append
${LIBOMP_ARCH} into it before serializing it to an Python array.

Differential Revision: https://reviews.llvm.org/D138738
2022-11-28 22:40:02 +02:00
Martin Storsjö
63f0fdc262 [openmp] [test] Set __COMPAT_LAYER=RunAsInvoker when running tests on Windows
Windows heuristics may decide to want to run some tested processes
as elevated (since it may think some of them are installers - executables
with "dispatch" in the name may hit a heuristic looking for "patch").

Set this environment variable to disable this heuristic and just run
the executable with whatever privileges the caller has.

This fixes a couple tests on such versions of Windows where this
heuristic is active.

Differential Revision: https://reviews.llvm.org/D137772
2022-11-28 22:40:01 +02:00
Martin Storsjö
db6406acec [openmp] Use GCC style intrinsics for atomics on Clang-cl on aarch64 too
This fixes compilation in the Clang-cl configuration on aarch64;
Clang doesn't implement all the aarch64 MSVC atomic intrinsics yet.

Differential Revision: https://reviews.llvm.org/D138737
2022-11-28 22:40:01 +02:00
Martin Storsjö
97958c9bb8 [openmp] Support building for armv7 Windows with mingw tools
This does things in the same way as
D137168 / a356782426 and
D101173 / 4fb0aaf033 did for aarch64.

This adds a C implementation of __kmp_invoke_microtask in the same
way as the fallback C implementation in z_Linux_util.cpp.

Both the existing C fallback used on arm linux, and this one added here,
fail test/misc_bugs/many-microtask-args.c similarly (which could be
considered as an XFAIL).

Differential Revision: https://reviews.llvm.org/D138689
2022-11-25 21:46:31 +02:00
Martin Storsjö
d6ab42dec4 [openmp] Fix build break for less common architectures
fb947c3586 introduced the gas
macro COMMON, but it was only defined within ifdefs of the form:

    #if (KMP_OS_LINUX || KMP_OS_DARWIN || KMP_OS_WINDOWS) && KMP_ARCH_AARCH64

It was used, however, within other conditions:

    #if KMP_ARCH_ARM || KMP_ARCH_MIPS

and:

    #if KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 || KMP_ARCH_MIPS64 || KMP_ARCH_RISCV64 || KMP_ARCH_LOONGARCH64

Move the definition of the COMMON macro out from the current ifdef,
so that it always gets defined (as it's only dependent on the target
platform).

This fixes building on ARM (and presumably all the other mentioned
architectures except aarch64).

Differential Revision: https://reviews.llvm.org/D138703
2022-11-25 21:46:31 +02:00
Martin Storsjö
fb947c3586 [openmp] Use z_Linux_asm.S to provide __kmp_invoke_microtask with Clang for Windows/aarch64
When building for Windows aarch64, and not using the actual MSVC,
we can assemble gnu assembly files just fine, and the existing
correct implementation of __kmp_invoke_microtask is fully usable.

The C implementation of __kmp_invoke_microtask in
z_Windows_NT-586_util.cpp relies on unguaranteed assumptions about
the compiler behaviour - it does work currently on MSVC, but doesn't
necessarily on other compilers. That function uses an alloca to pass
parameters on the stack to the called functions.

There's no guarantee that the buffer allocated by alloca is exactly
at the bottom of the stack when doing the call; the compiler might
have left space for extra things to save on the stack there.

Additionally, when compiled with Clang with optimization, Clang
optimizes out the alloca and memcpy entirely. On the C language
level, they don't have any visible effect outside of the function
and thus can be omitted entirely.

This fixes calling microtasks with more than 6 parameters, in
builds for Windows/aarch64 with Clang.

Differential Revision: https://reviews.llvm.org/D137827
2022-11-24 23:06:21 +02:00
Fangrui Song
cae1942297 [CMake][OpenMP] Remove -Wl,--warn-shared-textrel
This option is legacy and is removed from GNU ld's doc (many binutils
distributions are configured with --enable-textrel-check=). lld ignores the
option.
2022-11-21 00:37:32 +00:00
Martin Storsjö
a6440b0fc5 [openmp] [test] Fix warnings about printf format mismatches on Windows
This fixes warnings like this:

```
openmp/runtime/test/omp_testsuite.h:107:60: warning: format specifies type 'unsigned int' but the argument has type 'DWORD' (aka 'unsigned long') [-Wformat]
    fprintf(stderr, "CreateThread() failed: Error #%u.\n", GetLastError());
                                                   ~~      ^~~~~~~~~~~~~~
                                                   %lu
```

Differential Revision: https://reviews.llvm.org/D137747
2022-11-18 08:50:26 +02:00
Martin Storsjö
fe287bf096 [openmp] Only try to add the -mrtm flag on i386/x86_64
Clang does accept the flag for any architecture, but prints a
warning:

    clang-16: warning: argument unused during compilation: '-mrtm' [-Wunused-command-line-argument]

This flag is documented as an x86 specific flag, so don't try to
add it for other architectures, to silence this warning.

Differential Revision: https://reviews.llvm.org/D137744
2022-11-18 08:50:26 +02:00
Yabin Cui
622d329148 [OpenMP] kmp_affinity.h: add RISCV64 support
In D135552 the #else is added, which causes build error when
building openmp on RISCV64. This patch fixed the error:
   "Unknown or unsupported architecture"

Reviewed By: pirama

Differential Revision: https://reviews.llvm.org/D138241
2022-11-18 00:03:59 +00:00
Martin Storsjö
c0e4a0c3a4 [openmp] [test] Unbreak tests that rely on hidden_helper_task on Windows
The hidden helper task is only enabled on Linux (kmp_runtime.cpp
initializes __kmp_enable_hidden_helper to TRUE for linux but to
FALSE for any other OS), and the __kmp_stg_parse_use_hidden_helper
function always makes it disabled on non-Linux OSes too.

Add a lit test feature for hidden helper tasks (only made available
on Linux) and mark two tests as requiring this feature.

Disable hidden helper tasks in the test that doesn't really involve
them, for consistent behaviour across platforms.

Differential Revision: https://reviews.llvm.org/D137749
2022-11-17 22:24:24 +02:00
Martin Storsjö
a429773b3e [openmp] [cmake] Fix detecting aarch64 in standalone MSVC builds
Differential Revision: https://reviews.llvm.org/D138113
2022-11-17 14:18:36 +02:00
zhanglimin
db8a96731f [OpenMP] kmp_affinity.h: add LoongArch64 support
In D135552 the #else is added, which causes build error when
building openmp on LoongArch. This patch fixed the error:
      "Unknown or unsupported architecture"

Reviewed By: SixWeining, MaskRay

Differential Revision: https://reviews.llvm.org/D137604
2022-11-17 11:59:00 +08:00
Dhruva Chakrabarti
5b67bce787 [OpenMP] [OMPT] [2/8] Implemented a connector for communication of OMPT callbacks between libraries.
This is part of a set of patches implementing OMPT target callback support and has been split out of the originally submitted https://reviews.llvm.org/D113728. The overall design can be found in https://rice.app.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc

The purpose of this patch is to provide a way to register tool-provided callbacks into libomp when libomptarget is loaded.

Introduced a cmake variable LIBOMPTARGET_OMPT_SUPPORT that can be used to control OMPT target support. It follows host OMPT support, controlled by LIBOMP_HAVE_OMPT_SUPPORT.

Added a connector that can be used to communicate between OMPT implementations in libomp and libomptarget or libomptarget and a plugin.

Added a global constructor in libomptarget that uses the connector to force registration of tool-provided callbacks in libomp. A pair of init and fini functions are provided to libomp as part of the connect process which will be used to register the tool-provided callbacks in libomptarget.

Patch from John Mellor-Crummey <johnmc@rice.edu>
(With contributions from Dhruva Chakrabarti <Dhruva.Chakrabarti@amd.com>)

Reviewed By: dreachem, jhuber6

Differential Revision: https://reviews.llvm.org/D123572
2022-11-15 14:21:55 -08:00
Krzysztof Parzyszek
6b9a79f9a2 Move variable declarations out of #if guard, NFC
They are used in other sides of the #if/#else.
2022-11-13 12:54:03 -06:00
Martin Storsjö
29ef16c29f [openmp] [test] Set the right calling convention for the Windows thread start function
This is required on i386 Windows; this fixes 99 testcases in that
build configuration.

Differential Revision: https://reviews.llvm.org/D137776
2022-11-11 13:55:25 +02:00
Martin Storsjö
323b4309e2 [openmp] [test] Use omp_testsuite.h instead of directly including pthread.h
OpenMP tests that use pthread functions include this header instead.
On Unix systems, this header includes pthread.h, while it provides
minimal implementations of the used pthread functions for Windows.

Differential Revision: https://reviews.llvm.org/D137746
2022-11-11 13:54:52 +02:00
Martin Storsjö
4bf5893d1a [openmp] [test] Fix building the affinity/format/fields_values.c testcase on Windows
Add a missing <process.h> include for _getpid. Don't typedef the
pid_t type on mingw, as mingw headers already provide a typedef for
it.

Differential Revision: https://reviews.llvm.org/D137745
2022-11-11 13:54:27 +02:00
Martin Storsjö
3438ed8f7e [openmp] Fix building in debug mode with mingw
Mingw doesn't provide the _malloc_dbg/_free_dbg functions.

Differential Revision: https://reviews.llvm.org/D137743
2022-11-11 13:54:02 +02:00
zhanglimin
49b07fb519 [OpenMP][test] Add #include <cstdint> for gcc-13
Due to https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes.

Reviewed By: SixWeining, MaskRay

Differential Revision: https://reviews.llvm.org/D137543
2022-11-10 13:46:04 +08:00
Alvin Wong
a356782426 [OpenMP][mingw] Fix build for aarch64 target
This patch changes AArch64 + `__GNUC__` to use `__sync` builtins to
implement internal atomic macros just like for Unix, because mingw-w64
is missing some of the intrinsics which the MSVC codepath is using.

Then some remaining intel-only functions are removed from dllexport to
fix linking.

This should fix https://github.com/llvm/llvm-project/issues/56349.

Reviewed By: natgla

Differential Revision: https://reviews.llvm.org/D137168
2022-11-08 15:27:03 +02:00
Sam James
32a2af44e1 [CMake] Fix -Wstrict-prototypes
Fixes warnings (or errors, if someone injects -Werror in their build system,
which happens in fact with some folks vendoring LLVM too) with Clang 16:
```
+/var/tmp/portage.notmp/portage/sys-devel/llvm-15.0.4/work/llvm_build-abi_x86_64.amd64/CMakeFiles/CMakeTmp/src.c:3:9: warning: a function declaration without a prototype
is deprecated in all versions of C [-Wstrict-prototypes]
-/var/tmp/portage.notmp/portage/sys-devel/llvm-14.0.4/work/llvm_build-abi_x86_64.amd64/CMakeFiles/CMakeTmp/src.c:3:9: error: a function declaration without a prototype is
deprecated in all versions of C [-Werror,-Wstrict-prototypes]
 int main() {return 0;}
         ^
          void
```

Differential Revision: https://reviews.llvm.org/D137503
2022-11-08 01:37:04 +00:00
Fangrui Song
432a7e2844 [libomp] Add -Wl,--undefined-version workaround
Issue #58858: when linking libomp.so, exports_so.txt has non-existent/undefined
symbols which cause errors to ld --no-undefined-version. Use
-Wl,--undefined-version if available (gold, ld.lld, future GNU ld 2.40).
2022-11-07 22:15:28 +00:00
Jonathan Peyton
96696b882b [OpenMP][libomp] Fix disabled affinity
Fix setting affinity type and topology method when affinity is disabled
and fix places that were not taking into account that affinity can be
explicitly disabled by putting proper KMP_AFFINITY_CAPABLE() check.

Differential Revision: https://reviews.llvm.org/D137176
2022-11-02 15:37:41 -05:00
Dhruva Chakrabarti
88e557cbc9 Revert "[OpenMP] [OMPT] [2/8] Implemented a connector for communication of OMPT callbacks between libraries."
This reverts commit f94c2679cb.
2022-11-01 08:59:58 -07:00
Dhruva Chakrabarti
f94c2679cb [OpenMP] [OMPT] [2/8] Implemented a connector for communication of OMPT callbacks between libraries.
This is part of a set of patches implementing OMPT target callback support and has been split out of the originally submitted https://reviews.llvm.org/D113728. The overall design can be found in https://rice.app.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc

The purpose of this patch is to provide a way to register tool-provided callbacks into libomp when libomptarget is loaded.

Introduced a cmake variable LIBOMPTARGET_OMPT_SUPPORT that can be used to control OMPT target support. It follows host OMPT support, controlled by LIBOMP_HAVE_OMPT_SUPPORT.

Added a connector that can be used to communicate between OMPT implementations in libomp and libomptarget or libomptarget and a plugin.

Added a global constructor in libomptarget that uses the connector to force registration of tool-provided callbacks in libomp. A pair of init and fini functions are provided to libomp as part of the connect process which will be used to register the tool-provided callbacks in libomptarget.

Depends on D123429

Patch from John Mellor-Crummey <johnmc@rice.edu>
(With contributions from Dhruva Chakrabarti <Dhruva.Chakrabarti@amd.com>)

Reviewed By: dreachem

Differential Revision: https://reviews.llvm.org/D123572
2022-10-31 10:33:23 -07:00
Jonathan Peyton
7a9643fd2a [OpenMP][libomp] Add hidden helper affinity
Add new hidden helper affinity via the environment variable,
KMP_HIDDEN_HELPER_AFFINITY, which allows users to assign thread
affinity to hidden helper threads using the same syntax as
KMP_AFFINITY. OMP_PLACES/OMP_PROC_BIND have no interaction with
KMP_HIDDEN_HELPER_AFFINITY.

Differential Revision: https://reviews.llvm.org/D135113
2022-10-28 15:21:07 -05:00
Jonathan Peyton
b03d67f7f5 [OpenMP][libomp] Make affinity warnings parameterized
Separate change for the warnings to depend on the relevant affinity
settings verbose and warnings settings.

Differential Revision: https://reviews.llvm.org/D135112
2022-10-28 15:21:07 -05:00
Jonathan Peyton
174502fc14 [OpenMP][libomp] Parameterize affinity functions
This patch parameterizes the affinity initialization code to allow multiple
affinity settings. Almost all global affinity settings are consolidated
and put into a structure kmp_affinity_t. This is in anticipation of the
addition of hidden helper affinity which will have the same syntax and
semantics as KMP_AFFINITY only for the hidden helper team.

Differential Revision: https://reviews.llvm.org/D135109
2022-10-28 15:21:06 -05:00
YunQiang Su
3f9d51ab5a [OpenMP] kmp_affinity.h: add missing #else
When detect __NR_sched_getaffinity. the last #else is missing,
which make the last platform MIPS64 failed to build with an error:
   "Unknown or unsupported architecture"

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D135552
2022-10-25 19:53:38 -07:00
Malhar Jajoo
cea951dccd Avoid exporting 80-bit fp functions for architectures other than Intel.
This patch is a partial fix for [[ https://github.com/llvm/llvm-project/issues/56349 | issue ]], due to functions affected by D117473.

Implementation details:
The patch essentially creates a new macro if the architecture is either
intel32 or intel64, since the generate-def.pl cannot process boolean algebra
on macros.

Reviewed By: jlpeyton

Differential Revision: https://reviews.llvm.org/D135795
2022-10-19 15:55:19 +01:00
Nawrin Sultana
9f1f1b924f [OpenMP] Add upper limit to TPAUSE exponential backoff time
Differential Revision: https://reviews.llvm.org/D135003
2022-10-17 10:22:11 -05:00
Slava Zakharin
88da0de14f Revert "[Libomp] Do not error on undefined version script symbols"
This reverts commit 096f93e73d.

Revert "[Libomptarget] Make the plugins ingore undefined exported symbols"

This reverts commit 3f62314c23.

Revert "[LLD] Enable --no-undefined-version by default."

This reverts commit 7ec8b0d162.

Three commits are reverted because of the current omp build fail
with GNU ld. See discussion here: https://reviews.llvm.org/rG096f93e73dc3
2022-10-13 14:12:07 -07:00
Joseph Huber
096f93e73d [Libomp] Do not error on undefined version script symbols
Summary:
A recent patch made all of the places we used version scripts in OpenMP
start throwing errors when linking with LLD. This is hopefully the last
one required to get the build bots to pass. This patch simply adds the
`--undefined-version` flag to the places where the version scripts are
used.
2022-10-13 08:45:23 -05:00
Jonathan Peyton
f8d081c1a5 [OpenMP][libomp] Allow unused-but-set warnings
Only a few remaining which are taken care of by this patch.

Differential Revision: https://reviews.llvm.org/D133528
2022-10-03 10:24:33 -05:00
Hansang Bae
772fb97c0b [OpenMP] Ignore schedule modifier in static scheduling
The modifier bits in the schedule type is not used/supported in the
static scheduler, so it should be ignored.

Differential Revision: https://reviews.llvm.org/D134983
2022-10-03 08:29:57 -05:00
Dhruva Chakrabarti
667af48179 [OpenMP] [OMPT] [1/8] Create separate categories for host, device, [no]emi events
In preparation for OMPT target changes, create separate categories of events that will be used by OMPT target support.

Split up existing macro FOREACH_OMPT_EVENT into new ones. There is no change to the original macro. Created new macros FOREACH_OMPT_HOST_EVENT, FOREACH_OMPT_DEVICE_EVENT, FOREACH_OMPT_NOEMI_EVENT, FOREACH_OMPT_EMI_EVENT, and a few other sub-categories that can be used as required. One such use is in D123974 which uses events selectively.

Patch from John Mellor-Crummey <johnmc@rice.edu>

Reviewed By: dreachem

Differential Revision: https://reviews.llvm.org/D123429
2022-10-01 00:46:40 +00:00
SignKirigami
6772987fc3 [OpenMP] Add LoongArch64 support
GCC, glibc, binutils, and LLVM have added support for LoongArch64.
This patch adds support for LLVM OpenMP following D59880 for RISCV64.

Reviewed By: MaskRay, SixWeining

Differential Revision: https://reviews.llvm.org/D132925
2022-09-19 22:49:15 +00:00
Joseph Huber
23bc343855 [Libomptarget] Change device free routines to accept the allocation kind
Previous support for device memory allocators used a single free
routine and did not provide the original kind of the allocation. This is
problematic as some of these memory types required different handling.
Previously this was worked around using a map in runtime to record the
original kind of each pointer. Instead, this patch introduces new free
routines similar to the existing allocation routines. This allows us to
avoid a map traversal every time we free a device pointer.

The only interfaces defined by the standard are `omp_target_alloc` and
`omp_target_free`, these do not take a kind as `omp_alloc` does. The
standard dictates the following:

"The omp_target_alloc routine returns a device pointer that references
the device address of a storage location of size bytes. The storage
location is dynamically allocated in the device data environment of the
device specified by device_num."

Which suggests that these routines only allocate the default device
memory for the kind. So this has been changed to reflect this. This
change is somewhat breaking if users were using `omp_target_free` as
previously shown in the tests.

Reviewed By: JonChesterfield, tianshilei1992

Differential Revision: https://reviews.llvm.org/D133053
2022-09-14 12:14:07 -05:00
serge-sans-paille
6f2ed8fd3f [OpenMP] Install ompt-multiplex.h alongside omp.h
The default install direction may not be in the compiler search path.

Differential Revision: https://reviews.llvm.org/D133420
2022-09-09 09:42:08 +02:00