On Tue, Feb 04, 2014 at 04:59:54PM +0000, Richard Sandiford wrote: > Right, that was my point. So by relying on unwind info in var-tracking.c > we're getting the wrong answer for the stack offset after the LM(G) > instruction. It sounds like we're going to pretend it's right anyway > for expediency. But in that case why not also allow the exit block > offsets to vary on the same basis? It's not like the current test is > an assert -- it's just silently refusing to do any var-tracking on the > function if the epilogue isn't fully understood. > > If these offsets must match on exit for correctness then we should > assert rather than silently bailing out. But if they're allowed to vary > then we should do our best to carry on. And since the exit block offset > is never used, it seems expedient to allow varying offsets in that case.
Ok then, but please do follow-up on the changes to not save/restore r15 in the unwind info, use REG_CFA_ADJUST_CFA where possible and teach var-tracking about that note. Jakub