llvm-capstone/clang/lib
Alexey Bataev cb90e6a7c0 [OPENMP50]Codegen for scan directives in parallel for simd regions.
Summary:
Added codegen for scan directives in parallel for simd regions.

Emits the code for the directive with inscan reductions.
Original code:
```
 #pragma omp parallel for simd reduction(inscan, op : ...)
for() {
  <input phase>;
  #pragma omp scan (in)exclusive(...)
  <scan phase>
}
```
is transformed to something:
```
 #pragma omp parallel
{
size num_iters = <num_iters>;
<type> buffer[num_iters];
 #pragma omp for simd
for (i: 0..<num_iters>) {
  <input phase>;
  buffer[i] = red;
}
 #pragma omp barrier
for (int k = 0; k != ceil(log2(num_iters)); ++k)
for (size cnt = last_iter; cnt >= pow(2, k); --k)
  buffer[i] op= buffer[i-pow(2,k)];
 #pragma omp for simd
for (0..<num_iters>) {
  red = InclusiveScan ? buffer[i] : buffer[i-1];
  <scan phase>;
}
}
```

Reviewers: jdoerfert

Subscribers: yaxunl, guansong, sstefan1, cfe-commits, caomhin

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82115
2020-06-23 08:41:11 -04:00
..
Analysis Assignment and Inc/Dec operators wouldn't register as a mutation when Implicit Paren Casts were present 2020-06-09 19:45:57 +01:00
ARCMigrate
AST Handle invalid types in the nullPointerConstant AST matcher 2020-06-23 07:14:33 -04:00
ASTMatchers [ASTMatcher] Correct memoization bug ignoring direction (descendants or ancestors) 2020-06-22 12:56:29 +02:00
Basic [X86] Remove encoding value from the X86_FEATURE and X86_FEATURE_COMPAT macro. NFCI 2020-06-22 11:46:21 -07:00
CodeGen [OPENMP50]Codegen for scan directives in parallel for simd regions. 2020-06-23 08:41:11 -04:00
CrossTU [analyzer] On-demand parsing capability for CTU 2020-06-11 10:56:59 +02:00
DirectoryWatcher
Driver Revert "[AVR] Explicitly set the address of the data section when invoking the linker" 2020-06-23 22:23:05 +12:00
Edit
Format [clang/llvm] As part of using inclusive language within 2020-06-20 16:03:58 -07:00
Frontend Add -ast-dump-decl-types flag to include types of value and type 2020-06-22 16:47:51 -07:00
FrontendTool [NFC] Refactor Registry loops to range for 2020-06-19 00:40:10 +01:00
Headers [PowerPC][Power10] Implement VSX PCV Generate Operations in LLVM/Clang 2020-06-22 21:09:34 -05:00
Index [ARM] Add __bf16 as new Bfloat16 C Type 2020-06-05 10:32:43 +01:00
Lex [AST/Lex/Parse/Sema] As part of using inclusive language within 2020-06-20 01:15:32 -07:00
Parse Revert commit 9e52530 because of dependencies issue 2020-06-22 09:56:14 -04:00
Rewrite
Sema Fix rejects-valid when referencing an implicit operator== from within a 2020-06-22 20:19:20 -07:00
Serialization Return false if the identifier is not in the global module index. 2020-06-22 08:03:11 +00:00
StaticAnalyzer [Analyzer][StreamChecker] Add note tags for file opening. 2020-06-22 11:15:35 +02:00
Testing Fix MSVC "not all control paths return a value" warning. NFC. 2020-06-05 10:45:59 +01:00
Tooling Revert commit 9e52530 because of dependencies issue 2020-06-22 09:56:14 -04:00
CMakeLists.txt Move unittest helpers to a shared location 2020-05-29 16:47:33 +02:00