forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[OpenMP] Implement TR8
present
map type modifier in runtime (2/2)
This implements OpenMP runtime support for the OpenMP TR8 `present` map type modifier. The previous patch in this series implements Clang front end support. See that patch summary for behaviors that are not yet supported. Reviewed By: grokos, jdoerfert Differential Revision: https://reviews.llvm.org/D83062
- Loading branch information
1 parent
aa82c40
commit 45b8f7e
Showing
12 changed files
with
390 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
// RUN: %libomptarget-compile-aarch64-unknown-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-aarch64-unknown-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-aarch64-unknown-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-powerpc64-ibm-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-powerpc64-ibm-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-powerpc64-ibm-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-powerpc64le-ibm-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-powerpc64le-ibm-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-powerpc64le-ibm-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-x86_64-pc-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-x86_64-pc-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-x86_64-pc-linux-gnu | ||
|
||
#include <stdio.h> | ||
|
||
int main() { | ||
int i; | ||
|
||
// CHECK: addr=0x[[#%x,HOST_ADDR:]], size=[[#%u,SIZE:]] | ||
fprintf(stderr, "addr=%p, size=%ld\n", &i, sizeof i); | ||
|
||
// CHECK-NOT: Libomptarget | ||
#pragma omp target data map(alloc: i) | ||
#pragma omp target map(present, alloc: i) | ||
; | ||
|
||
// CHECK: i is present | ||
fprintf(stderr, "i is present\n"); | ||
|
||
// CHECK: Libomptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes) | ||
// CHECK: Libomptarget fatal error 1: failure of target construct while offloading is mandatory | ||
#pragma omp target map(present, alloc: i) | ||
; | ||
|
||
// CHECK-NOT: i is present | ||
fprintf(stderr, "i is present\n"); | ||
|
||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
// RUN: %libomptarget-compile-aarch64-unknown-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-aarch64-unknown-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-aarch64-unknown-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-powerpc64-ibm-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-powerpc64-ibm-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-powerpc64-ibm-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-powerpc64le-ibm-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-powerpc64le-ibm-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-powerpc64le-ibm-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-x86_64-pc-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-x86_64-pc-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-x86_64-pc-linux-gnu | ||
|
||
#include <stdio.h> | ||
|
||
int main() { | ||
int i; | ||
|
||
// CHECK: addr=0x[[#%x,HOST_ADDR:]], size=[[#%u,SIZE:]] | ||
fprintf(stderr, "addr=%p, size=%ld\n", &i, sizeof i); | ||
|
||
// CHECK-NOT: Libomptarget | ||
#pragma omp target data map(alloc: i) | ||
#pragma omp target data map(present, alloc: i) | ||
; | ||
|
||
// CHECK: i is present | ||
fprintf(stderr, "i is present\n"); | ||
|
||
// CHECK: Libomptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes) | ||
// CHECK: Libomptarget fatal error 1: failure of target construct while offloading is mandatory | ||
#pragma omp target data map(present, alloc: i) | ||
; | ||
|
||
// CHECK-NOT: i is present | ||
fprintf(stderr, "i is present\n"); | ||
|
||
return 0; | ||
} |
41 changes: 41 additions & 0 deletions
41
openmp/libomptarget/test/mapping/present/target_enter_data.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
// RUN: %libomptarget-compile-aarch64-unknown-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-aarch64-unknown-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-aarch64-unknown-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-powerpc64-ibm-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-powerpc64-ibm-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-powerpc64-ibm-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-powerpc64le-ibm-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-powerpc64le-ibm-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-powerpc64le-ibm-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-x86_64-pc-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-x86_64-pc-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-x86_64-pc-linux-gnu | ||
|
||
#include <stdio.h> | ||
|
||
int main() { | ||
int i; | ||
|
||
// CHECK: addr=0x[[#%x,HOST_ADDR:]], size=[[#%u,SIZE:]] | ||
fprintf(stderr, "addr=%p, size=%ld\n", &i, sizeof i); | ||
|
||
// CHECK-NOT: Libomptarget | ||
#pragma omp target enter data map(alloc: i) | ||
#pragma omp target enter data map(present, alloc: i) | ||
#pragma omp target exit data map(delete: i) | ||
|
||
// CHECK: i is present | ||
fprintf(stderr, "i is present\n"); | ||
|
||
// CHECK: Libomptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes) | ||
// CHECK: Libomptarget fatal error 1: failure of target construct while offloading is mandatory | ||
#pragma omp target enter data map(present, alloc: i) | ||
|
||
// CHECK-NOT: i is present | ||
fprintf(stderr, "i is present\n"); | ||
|
||
return 0; | ||
} |
40 changes: 40 additions & 0 deletions
40
openmp/libomptarget/test/mapping/present/target_exit_data.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
// RUN: %libomptarget-compile-aarch64-unknown-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-aarch64-unknown-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-aarch64-unknown-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-powerpc64-ibm-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-powerpc64-ibm-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-powerpc64-ibm-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-powerpc64le-ibm-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-powerpc64le-ibm-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-powerpc64le-ibm-linux-gnu | ||
|
||
// RUN: %libomptarget-compile-x86_64-pc-linux-gnu -fopenmp-version=51 | ||
// RUN: %libomptarget-run-fail-x86_64-pc-linux-gnu 2>&1 \ | ||
// RUN: | %fcheck-x86_64-pc-linux-gnu | ||
|
||
#include <stdio.h> | ||
|
||
int main() { | ||
int i; | ||
|
||
// CHECK: addr=0x[[#%x,HOST_ADDR:]], size=[[#%u,SIZE:]] | ||
fprintf(stderr, "addr=%p, size=%ld\n", &i, sizeof i); | ||
|
||
// CHECK-NOT: Libomptarget | ||
#pragma omp target enter data map(alloc: i) | ||
#pragma omp target exit data map(present, release: i) | ||
|
||
// CHECK: i is present | ||
fprintf(stderr, "i is present\n"); | ||
|
||
// CHECK: Libomptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes) | ||
// CHECK: Libomptarget fatal error 1: failure of target construct while offloading is mandatory | ||
#pragma omp target exit data map(present, release: i) | ||
|
||
// CHECK-NOT: i is present | ||
fprintf(stderr, "i is present\n"); | ||
|
||
return 0; | ||
} |
Oops, something went wrong.