Commits

Joe Groff committed 4322494ed1e
SILGen: Emit a single epilog block for returns. Funnel all top-level cleanups and returns through a single epilog block instead of re-emitting the cleanups and returns for every 'return' statement like an idiot. This has some interesting interactions with other features that need additional work: - ReturnInst's SILLocation is no longer naturally associated with a single source location, which complicates return analysis diagnostics. For now, I just save the location of the first ReturnStmt we see and tag the ReturnInst with that, but we should do better. - We still duplicate cleanups below the top level like chumps. I still need to resurrect the CleanupOutflows stuff from the old IRGen backend. - A DebugInfo test breaks. Adrian will have to look into that. Swift SVN r6782