diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2020-06-05 15:17:14 -0400 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2020-06-11 09:01:23 -0400 |
commit | fb80e67f10eea7177b0ff9c618c8231363b6f2fc (patch) | |
tree | 21ab281dc104d46e209c464f5d37df98e2f04a1a /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
parent | 948b206fc236502caa20e51cf39b9d4d0fda00b6 (diff) | |
download | llvm-fb80e67f10eea7177b0ff9c618c8231363b6f2fc.zip llvm-fb80e67f10eea7177b0ff9c618c8231363b6f2fc.tar.gz llvm-fb80e67f10eea7177b0ff9c618c8231363b6f2fc.tar.bz2 |
[OPENMP50]Codegen for scan directive in simd loops.
Added codegen for scandirectives in simd loop. The codegen transforms
original code:
```
int x = 0;
#pragma omp simd reduction(inscan, +: x)
for (..) {
<first part>
#pragma omp scan inclusive(x)
<second part>
}
```
into
```
int x = 0;
for (..) {
int x_priv = 0;
<first part>
x = x_priv + x;
x_priv = x;
<second part>
}
```
and
```
int x = 0;
#pragma omp simd reduction(inscan, +: x)
for (..) {
<first part>
#pragma omp scan exclusive(x)
<second part>
}
```
into
```
int x = 0;
for (..) {
int x_priv = 0;
<second part>
int temp = x;
x = x_priv + x;
x_priv = temp;
<first part>
}
```
Differential revision: https://reviews.llvm.org/D78232
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions