Hi, following the conversation in PR 90348, I wonder if it would make sense to suggest the idea presented there as a potential GSoC topic? Like this:
**Enhance GIMPLE IR to represent lifetimes explicitly** At the moment, GCC internal representation GIMPLE lacks precise lifetime information for addressable variables: GIMPLE marks the end of the lifetime by the so-called "GIMPLE clobber" statement, corresponding to the point where the variable goes out of scope in the original program. However, the event of the "birth" of a variable (where it appears in scope) is lost, making the IR ambiguous and opening the door for invalid optimizations, as shown in bug #90348. The project would entail inventing a way to represent "lifetime start" in GIMPLE, adjusting front-ends to emit it, implementing a verifier to check that optimizations do not move references outside of the variable's lifetime, and potentially enhancing optimizations to move lifetime markers, expanding the lifetime, where necessary. I know we already have good project ideas, and I suspect this idea may be too complicated for GSoC, but on the other hand it sounds useful, and gives an "experimental" topic that may be interesting for students. What do you think? Thanks. Alexander