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.
+                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.

Thanks,
Dave

--
John David Anglin    dave.ang...@bell.net

Reply via email to