> Might you be able to provide any insight as to why you were able to
> remove the other calls to mark_temp_addr_taken?  Was it indeed because
> of improved alias analysis of MEM locations?  I wasn't, unfortunately,
> able to derive this from the email traffic.  

My *guess*, and it's just that, is that putting them in such central
places weren't needed since they were in higher-level places (such as
in the cited place in calls.c).  But this was *very* long ago.

I strongly doubt this had to do with alias analysis issues.

> I did investigate the case you described, where two function parameters
> are calls to the same function returning a structure.  The front-end
> generates temporaries to handle this, and so the middle-end-generated
> temporaries are still restricted to a lifetime of a single statement.

That's C.  Have you verified that all the other front ends do this?  Is
this really the most efficient approach?  Etc.

Neverthless, it may be that gimplification renders this OBE.  If so,
then I suspect a that *a lot* of the temporary lifetime tracking code is
also no longer needed.  But I wouldn't want to jump to any of these
conclusions too quickly: this stuff is very complex.

Reply via email to