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