On Tue, Nov 23, 2021 at 09:30:30PM +0530, Siddhesh Poyarekar wrote: > On 11/23/21 21:22, Jakub Jelinek wrote: > > Evaluating __bdos in both passes is undesirable, certainly for the same > > SSA_NAME, but even for different SSA_NAMEs, if everything is done in a > > single pass it can easily share temporaries (object sizes for SSA_NAMEs it > > uses), while if some __bdos is evaluated early and other late, we'll need to > > hope further optimizations CSE those. > > OK, then treat __bdos like __bos in objsz1, adding MIN?MAX for subobjects > and full evaluation in objsz2?
Yes. It is not perfect, but unfortunately it is hard to get perfect results. The subobject stuff for __bos has been designed when GCC wasn't doing such optimizations, later MEM_REF has been introduced and we really can't prevent all those optimizations just because there could be a subobject __bos somewhere that cares about that. Jakub