aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineOperand.cpp
diff options
context:
space:
mode:
authorPeter Klausler <pklausler@nvidia.com>2022-11-16 13:48:45 -0800
committerPeter Klausler <pklausler@nvidia.com>2022-12-04 13:04:36 -0800
commitaf54b676e4712e81216eea66e92baa7ffba19a46 (patch)
treeb8acf6fc886d81d1b201928586e43d6ae73856f3 /llvm/lib/CodeGen/MachineOperand.cpp
parent4e62072ca1ee4ecb7584ba9a69464ba617eaae61 (diff)
downloadllvm-af54b676e4712e81216eea66e92baa7ffba19a46.zip
llvm-af54b676e4712e81216eea66e92baa7ffba19a46.tar.gz
llvm-af54b676e4712e81216eea66e92baa7ffba19a46.tar.bz2
[flang] Emit errors and warnings about DIM= arguments to intrinsic functions
The semantics of many transformational intrinsic functions, especially reductions like SUM(), are determined by the static presence or absence of a DIM= argument. In the case of an actual DIM= argument that is syntactically present but could be dynamically absent at execution time (due to being OPTIONAL, POINTER, or ALLOCATABLE), f18 should emit some kind of diagnostic message. Other compilers either ignore this possibility or treat it as a hard error; neither really seems correct, so let's do something more nuanced. For cases where the dynamic absence of a value for DIM doesn't pose as much of a risk because it lowering is going to assume that it's equal to 1 anyway, emit only a portability warning. For other cases where the generated code or runtime support library will need the value of DIM= during execution, emit a warning that the use of an OPTIONAL/POINTER/ALLOCATABLE variable or component here is dicey and should be reconsidered. While here, also catch bad constant DIM= values. Differential Revision: https://reviews.llvm.org/D139155
Diffstat (limited to 'llvm/lib/CodeGen/MachineOperand.cpp')
0 files changed, 0 insertions, 0 deletions