https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65496

--- Comment #3 from Richard Henderson <rth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #2)
> Richard, any thoughts what to do about this?  Avoid scheduling frame related
> instructions across conditional jumps?  Something else?

Yes, for the short term that will have to be a requirement in order to
keep the unwind info happy.

Something for the next stage1 is

(1) Avoiding the use of bare /f, and thus also REG_FRAME_RELATED_EXPR,
using instead always REG_CFA_*.  I suspect that this insn 620 shouldn't
actually be frame related at all, but is a part of a larger dwarf
expression we're intending to construct.

(2) Once we have an unambiguous note for everything, we can allow these
insns to be scheduled across a conditional jump if we strip and collect
those notes and place them after the conditional jump, probably on a
fake insn like

  (insn/f (use (const_int 0))
     (expr-list:REG_CFA_...
       (expr-list:REG_CFA_...
         (expr-list:REG_CFA_...))))

Reply via email to