aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/ErrorHandling.cpp
diff options
context:
space:
mode:
authorAlex Zinenko <zinenko@google.com>2020-11-26 18:32:30 +0100
committerAlex Zinenko <zinenko@google.com>2020-12-02 14:59:41 +0100
commit240dd92432ebbfbf24ef85779f2cdf93e6ddf605 (patch)
treefafe8b7bcdd07daac3cf65ca16f34efa68a6de80 /llvm/lib/Support/ErrorHandling.cpp
parent437c4653855fbbe47a860ae95eb445fd004aa4de (diff)
downloadllvm-240dd92432ebbfbf24ef85779f2cdf93e6ddf605.zip
llvm-240dd92432ebbfbf24ef85779f2cdf93e6ddf605.tar.gz
llvm-240dd92432ebbfbf24ef85779f2cdf93e6ddf605.tar.bz2
[OpenMPIRBuilder] forward arguments as pointers to outlined function
OpenMPIRBuilder::createParallel outlines the body region of the parallel construct into a new function that accepts any value previously defined outside the region as a function argument. This function is called back by OpenMP runtime function __kmpc_fork_call, which expects trailing arguments to be pointers. If the region uses a value that is not of a pointer type, e.g. a struct, the produced code would be invalid. In such cases, make createParallel emit IR that stores the value on stack and pass the pointer to the outlined function instead. The outlined function then loads the value back and uses as normal. Reviewed By: jdoerfert, llitchev Differential Revision: https://reviews.llvm.org/D92189
Diffstat (limited to 'llvm/lib/Support/ErrorHandling.cpp')
0 files changed, 0 insertions, 0 deletions