tree d4169dd2730b21d76549f8a617ef8c0ad32878ba
parent ab60910e01eaa8bcf993cdb59a95f882b3859fd1
author Slava Zakharin <szakharin@nvidia.com> 1747083795 -0700
committer GitHub <noreply@github.com> 1747083795 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoImITCRC1aQ7uu5UhlAAATh0QAKD1yiA4qiJnBhNqV6PDUyPY
 MIh2XTzMzzQvjnShngsagi6M1+yncmJOeqFU0mihH9mj7N0PVwB6q4RCC9RMjR3t
 CQ0ePOsb9+oRrYE2SbAMIyX3+Qg69UVPdcrZgjAhpzT0uTUMeaSxyPiU/i1sE7Hw
 iSB4NVtomSf4M/Z78qogiVqcCbGipilU/Bb6jRXPBzR9nYXo53ZsHVIK036X6aGE
 J1LLldMQIlDciko5BV7H+K5qw58FimnWgSzfsHG5AiL9Q+ZR55DywhJuyG4oKwSv
 lgHPzTak+B2PJb4SZrfhhQqDlD/neQAywzFTn0uN0Yo+KNgJklirSuNhr3pIX5UB
 vZACFIKUizZoXSrMSdD1To7PMKjU6kOPhFLiKiX76TraQdS+D/wSsaXhGVS5Z2D3
 zIwMVreppZn6dcbWZhd6fyOiSAEAtM/wQmQOPAmeryKDxAOLC/6SiA6jBaXGOiQb
 1n5Es8gWQhIBA6KoRKk8OhznxeCkZMpTHubhiKPKOtT/V73ET0of9dtMudOTtHyi
 tqE+8jZRPMWBm37cOHjqSUXy9xJduC988+dXL0gFZXPtZvfrHB2tmkuwkY4dWR/0
 jO3eUq9/MFGrf90GeMUTAC9GFSGm0zgFY1AiLGlYl+wC611kv+W4L6GrqT5uGgJA
 6NXmCj5M+2xPcg4f9rHN
 =P2Oz
 -----END PGP SIGNATURE-----
 

[flang] Postpone hlfir.end_associate generation for calls. (#138786)

If we generate hlfir.end_associate at the end of the statement,
we get easier optimizable HLFIR, because there are no compiler
generated operations with side-effects in between the call
and the consumers. This allows more hlfir.eval_in_mem to reuse
the LHS instead of allocating temporary buffer.

I do not think the same can be done for hlfir.copy_out always, e.g.:
```
subroutine test2(x)
  interface
     function array_func2(x,y)
       real:: x(*), array_func2(10), y
     end function array_func2
  end interface
  real :: x(:)
  x = array_func2(x, 1.0)
end subroutine test2
```

If we postpone the copy-out until after the assignment, then
the result may be wrong.