On Mon, Jan 04, 2021 at 02:10:39PM -0700, Jeff Law wrote: > > I explained what the code handles and when in the pipeline in > > the discussion of the previous patch: > > https://gcc.gnu.org/pipermail/gcc-patches/2020-November/559770.html > Right, but that message talks about GC. This is not a GC issue. > > This feels like we need a SAVE_EXPR to me to ensure single evaluation > and an unshare_expr to avoid problems with destructive gimplification.
unshare_expr will not duplicate SAVE_EXPRs. So, one would need to unshare with special handling of SAVE_EXPRs that would throw them away (for the simple arguments case) rather than handling them normally. Jakub