On 10/06/2011 11:03 AM, Bernd Schmidt wrote: > HJ found some more maybe_record_trace_start failures. In one case I > debugged, we have > > (insn/f 31 0 32 (parallel [ > (set (reg/f:DI 7 sp) > (plus:DI (reg/f:DI 7 sp) > (const_int 8 [0x8]))) > (clobber (reg:CC 17 flags)) > (clobber (mem:BLK (scratch) [0 A8])) > ]) -1 > (expr_list:REG_CFA_ADJUST_CFA (set (reg/f:DI 7 sp) > (plus:DI (reg/f:DI 7 sp) > (const_int 8 [0x8]))) > (nil))) > > The insn pattern is later changed by csa to adjust by 24, and the note > is left untouched; that seems to be triggering the problem.
Hmm. That seems a bit odd, considering this function probably does not use alloca (no frame pointer), and uses accumulated outgoing arguments (x86_64 never uses no-accumulate-outgoing-args, afaik). > Richard, is there a reason to use REG_CFA_ADJUST_CFA rather than > REG_CFA_DEF_CFA? If no, I'll just try to fix i386.c not to emit the former. Not that I can think of. But if that change makes any difference at all, that's almost certainly another bug. What PR are you looking at here? r~