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_...))))