aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/CommandFlags.cpp
diff options
context:
space:
mode:
authorValentin Clement <clementval@gmail.com>2021-11-30 13:50:32 +0100
committerValentin Clement <clementval@gmail.com>2021-11-30 13:51:08 +0100
commit47f759309eeaf9bd77debe4f6c3e1fe52913b537 (patch)
tree7407614950021104a02b96221bd1e5cb9d79fba8 /llvm/lib/CodeGen/CommandFlags.cpp
parent651122fc4ac92b93f36aab3b194de21065a0c48e (diff)
downloadllvm-47f759309eeaf9bd77debe4f6c3e1fe52913b537.zip
llvm-47f759309eeaf9bd77debe4f6c3e1fe52913b537.tar.gz
llvm-47f759309eeaf9bd77debe4f6c3e1fe52913b537.tar.bz2
[fir] Add array value copy pass
This patch upstream the array value copy pass. Transform the set of array value primitives to a memory-based array representation. The Ops `array_load`, `array_store`, `array_fetch`, and `array_update` are used to manage abstract aggregate array values. A simple analysis is done to determine if there are potential dependences between these operations. If not, these array operations can be lowered to work directly on the memory representation. If there is a potential conflict, a temporary is created along with appropriate copy-in/copy-out operations. Here, a more refined analysis might be deployed, such as using the affine framework. This pass is required before code gen to the LLVM IR dialect. This patch is part of the upstreaming effort from fir-dev branch. The pass is bringing quite a lot of file with it. Reviewed By: kiranchandramohan, schweitz Differential Revision: https://reviews.llvm.org/D111337 Co-authored-by: Jean Perier <jperier@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Co-authored-by: V Donaldson <vdonaldson@nvidia.com>
Diffstat (limited to 'llvm/lib/CodeGen/CommandFlags.cpp')
0 files changed, 0 insertions, 0 deletions