[ARC] Test against frame_pointer_needed in arc_can_eliminate.

arc_can_eliminate is using arc_frmae_pointer_required() which is wrong
as the frame_pointer_needed can be set on different conditions. Fix it
by calling arc_frame_pointer_needed().

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_can_eliminate): Test against
	arc_frame_pointer_needed.

From-SVN: r248782
This commit is contained in:
Claudiu Zissulescu 2017-06-01 11:42:59 +02:00 committed by Claudiu Zissulescu
parent 2daad50b02
commit 19dc47524f
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.c (arc_can_eliminate): Test against
arc_frame_pointer_needed.
2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.c (arc_expand_prologue): Emit a special barrier

View File

@ -4644,7 +4644,7 @@ arc_final_prescan_insn (rtx_insn *insn, rtx *opvec ATTRIBUTE_UNUSED,
static bool
arc_can_eliminate (const int from ATTRIBUTE_UNUSED, const int to)
{
return to == FRAME_POINTER_REGNUM || !arc_frame_pointer_required ();
return ((to == FRAME_POINTER_REGNUM) || !arc_frame_pointer_needed ());
}
/* Define the offset between two registers, one to be eliminated, and