forked from OSchip/llvm-project
e40901806f
target/teams/distribute regions. Target/teams/distribute regions exist for all the time the kernel is executed. Thus, if the variable is declared in their context and then escape it, we can allocate global memory statically instead of allocating it dynamically. Patch captures all the globalized variables in target/teams/distribute contexts, merges them into the records, one per each target region. Those records are then joined into the union, one per compilation unit (to save the global memory). Those units are organized into 2 x dimensional arrays, where the first dimension is the number of blocks per SM and the second one is the number of SMs. Runtime functions manage this global memory space between the executing teams. llvm-svn: 345978 |
||
---|---|---|
.. | ||
ToolChains | ||
Action.cpp | ||
CMakeLists.txt | ||
Compilation.cpp | ||
Distro.cpp | ||
Driver.cpp | ||
DriverOptions.cpp | ||
InputInfo.h | ||
Job.cpp | ||
Multilib.cpp | ||
Phases.cpp | ||
SanitizerArgs.cpp | ||
Tool.cpp | ||
ToolChain.cpp | ||
Types.cpp | ||
XRayArgs.cpp |