aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode
diff options
context:
space:
mode:
authorSlava Zakharin <szakharin@nvidia.com>2023-09-01 10:04:44 -0700
committerSlava Zakharin <szakharin@nvidia.com>2023-09-01 12:09:23 -0700
commit8f1671c065539965834132c682da05dd8858b42d (patch)
tree82c34b0783e220bc0b6b0d5f08a2943bf33e2fa0 /llvm/lib/Bitcode
parent460bba35211853b6278ddd6064f7228db02da132 (diff)
downloadllvm-8f1671c065539965834132c682da05dd8858b42d.zip
llvm-8f1671c065539965834132c682da05dd8858b42d.tar.gz
llvm-8f1671c065539965834132c682da05dd8858b42d.tar.bz2
[flang][hlfir] Allow hlfir.assign expansion for array slices.
This case is important for `Polyhedron/channel2`: ``` u(2:M-1,1:N,new) = u(2:M-1,1:N,old) & +2.d0*dt*f(2:M-1,1:N)*v(2:M-1,1:N,mid) & -2.d0*dt/(2.d0*dx)*g*dhdx(2:M-1,1:N) ``` The slices of `u` on the left and the right hand sides are completely disjoint, but `old` and `new` are unknown runtime values. So the slices may also be identical rather than disjoint. For the purpose of hlfir.assign expansion we do not care whether they are identical or disjoint. Such kind of an answer does not fit well into the alias analysis definition, so I added a very simplified check to handle this case. This drops icelake execution time from 120 to 70 seconds. Reviewed By: tblah Differential Revision: https://reviews.llvm.org/D159323
Diffstat (limited to 'llvm/lib/Bitcode')
0 files changed, 0 insertions, 0 deletions