Displaying 3 results from an estimated 3 matches for "omp_offload".
2018 Apr 25
0
[LLVM][RFC] Representing the target device information in the LLVM IR
...> Existing code: 64-bit firstprivate variable
>
> void foo() {
>
> double d = 1.0;
>
> #pragma omp target firstprivate(d)
>
> {}
>
> }
>
> $clang –fopenmp-backend -fopenmp-targets=x86_64-mic, i386-pc-linux-gnu …
>
> x86_64-mic
>
> define void @__omp_offloading…(i64 %d) #0 {
>
> entry:
>
> …
>
> }
>
> i386-pc-linux-gnu
>
> define void @__omp_offloading…(double* dereferenceable(8) %d) #0 {
>
> entry:
>
> …
>
> }
>
> There is an inconsistency between host and target part(s) of the program!
>
I do...
2018 Apr 25
2
[LLVM][RFC] Representing the target device information in the LLVM IR
...side.
%0 = load double, double* @gg, align 8, !tbaa !3
%1 = bitcast double %0 to i64
...
%12 = getelementptr inbounds [4 x i8*], [4 x i8*]* %.offload_baseptrs, i32 0, i32 2
%13 = bitcast i8** %12 to i64*
store i64 %1, i64* %13, align 8
...
%20 = call i32 @__tgt_target(i64 -1, i8* @.omp_offload.region_id, i32 4, i8** %4, i8** %6, i64* getelementptr inbounds ([4 x i64], [4 x i64]* @.offload_sizes, i32 0, i32 0), i64* getelementptr inbounds ([4 x i64], [4 x i64]* @.offload_maptypes, i32 0, i32 0))
Thanks,
Jin
From: Friedman, Eli [mailto:efriedma at codeaurora.org]
Sent: Wednesday, April...
2018 Apr 25
2
[LLVM][RFC] Representing the target device information in the LLVM IR
...it will change the x86_64-mic interface for 'd' to pass by reference.
Existing code: 64-bit firstprivate variable
void foo() {
double d = 1.0;
#pragma omp target firstprivate(d)
{}
}
$clang -fopenmp-backend -fopenmp-targets=x86_64-mic, i386-pc-linux-gnu ...
x86_64-mic
define void @__omp_offloading...(i64 %d) #0 {
entry:
...
}
i386-pc-linux-gnu
define void @__omp_offloading...(double* dereferenceable(8) %d) #0 {
entry:
...
}
There is an inconsistency between host and target part(s) of the program!
Change Made
==========
We proposed new module level attribute to represent target device...