On Tue, Jan 06, 2015 at 12:07:17PM -0500, John David Anglin wrote: > On 1/6/2015 9:08 AM, Jakub Jelinek wrote: > >@@ -2527,7 +2518,13 @@ scan_insn (bb_info_t bb_info, rtx_insn * > > const_call ? "const" : "memset", INSN_UID (insn)); > > /* See the head comment of the frame_read field. */ > >- if (reload_completed) > >+ if (reload_completed > >+ /* Tail calls are storing their arguments using > >+ arg poinnter. If it is a frame pointer on the target, > Typo.
Consider it fixed in my copy. > >+ even before reload we need to kill frame pointer based > >+ stores. */ > >+ || (SIBLING_CALL_P (insn) > >+ && HARD_FRAME_POINTER_IS_ARG_POINTER)) > > insn_info->frame_read = true; > > I had tested this hunk before, without the > "HARD_FRAME_POINTER_IS_ARG_POINTER" > addition, on 32-bit hppa and it resolved the original test case. Jakub