aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
diff options
context:
space:
mode:
authorJean Perier <jperier@nvidia.com>2023-07-05 14:26:04 +0200
committerJean Perier <jperier@nvidia.com>2023-07-05 14:26:41 +0200
commite52a6d7784adbcb98b17af7943c69c854aa7b10f (patch)
treee8cff22376e277610decaaca962951d8e9bbd0b3 /clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
parent3003da71540bb8483615e18f8ab379da39fa4512 (diff)
downloadllvm-e52a6d7784adbcb98b17af7943c69c854aa7b10f.zip
llvm-e52a6d7784adbcb98b17af7943c69c854aa7b10f.tar.gz
llvm-e52a6d7784adbcb98b17af7943c69c854aa7b10f.tar.bz2
[flang][hlfir] avoid useless LHS temporaries inside WHERE
The need to save LHS addresses on a stack before doing an assignment is very limited: it is only really needed for forall and vectore subscripted LHS where the LHS cannot be computed as a descriptor. The previous current WHERE codegen was creating address stacks for LHS element addresses when the LHS evaluation conflicts with the assignment (may depend on the LHS value). This is not needed since the computed array designator for the LHS is already "saved" before the assignment from an SSA point of view. This patch prevents LHS temporary stack from being created outside of forall and vector subscripted assignments. Differential Revision: https://reviews.llvm.org/D154418
Diffstat (limited to 'clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp')
0 files changed, 0 insertions, 0 deletions