1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/test
Joseph Huber 3aea5cddbb [OpenMP] Simplify GPU memory globalization
Summary:
Memory globalization is required to maintain OpenMP standard semantics for data sharing between
worker and master threads. The GPU cannot share data between its threads so must allocate global or
shared memory to store the data in. Currently this is implemented fully in the frontend using the
`__kmpc_data_sharing_push_stack` and __kmpc_data_sharing_pop_stack` functions to emulate standard
CPU stack sharing. The front-end scans the target region for variables that escape the region and
must be shared between the threads. Each variable then has a field created for it in a global record
type.

This patch replaces this functinality with a single allocation command, effectively mimicing an
alloca instruction for the variables that must be shared between the threads. This will be much
slower than the current solution, but makes it much easier to optimize as we can analyze each
variable independently and determine if it is not captured. In the future, we can replace these
calls with an `alloca` and small allocations can be pushed to shared memory.

Reviewed By: tianshilei1992

Differential Revision: https://reviews.llvm.org/D97680
2021-06-22 10:52:46 -04:00
..
Analysis [SCEV] Retain AddExpr flags when subtracting a foldable constant. 2021-06-22 11:27:51 +01:00
Assembler [OpaquePtr] Support opaque constant expression GEP 2021-06-21 20:06:25 +02:00
Bindings
Bitcode [BitcodeReader] Validate Strtab before accessing. 2021-06-22 14:52:16 +01:00
BugPoint
CodeGen [IR] convert warn-stack-size from module flag to fn attr 2021-06-21 15:09:25 -07:00
DebugInfo RegisterCoalescer: Fix iterating through use operands. 2021-06-21 09:17:54 -07:00
Demangle [Demangle][Rust] Parse dot suffix 2021-06-18 09:29:45 +02:00
Examples
ExecutionEngine [JITLink][MachO] Add missing testcase. 2021-06-13 20:43:49 +10:00
Feature
FileCheck
Instrumentation [DFSan] Cleanup code for platforms other than Linux x86_64. 2021-06-18 11:21:46 -07:00
Integer
JitListener
Linker [IR] convert warn-stack-size from module flag to fn attr 2021-06-21 15:09:25 -07:00
LTO LTO: Export functions referenced by non-canonical CFI jump tables 2021-06-08 14:57:43 -07:00
MachineVerifier
MC [AArch64][X86] Allow 64-bit label differences lower to IMAGE_REL_*_REL32 2021-06-21 14:32:25 -07:00
Object Reland "[AMDGPU] Add gfx1013 target" 2021-06-08 21:15:35 -04:00
ObjectYAML [WebAssembly] Rename event to tag 2021-06-17 20:34:19 -07:00
Other [NewPM] Print passes with params when using "opt -print-passes" 2021-06-22 09:01:38 +02:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen
ThinLTO/X86 [LTO] Support new PM in ThinLTOCodeGenerator. 2021-06-09 10:05:14 +01:00
tools [llvm-reduce] Don't delete arguments of intrinsics 2021-06-21 12:43:58 -07:00
Transforms [OpenMP] Simplify GPU memory globalization 2021-06-22 10:52:46 -04:00
Unit
Verifier [IR] convert warn-stack-size from module flag to fn attr 2021-06-21 15:09:25 -07:00
YAMLParser
.clang-format
CMakeLists.txt Revert "[IRSim] Adding basic implementation of llvm-sim." 2021-06-11 15:44:19 -05:00
lit.cfg.py Revert "[IRSim] Adding basic implementation of llvm-sim." 2021-06-11 15:44:19 -05:00
lit.site.cfg.py.in
TestRunner.sh