diff options
author | Claudiu Zissulescu <claziss@synopsys.com> | 2017-06-01 11:42:59 +0200 |
---|---|---|
committer | Claudiu Zissulescu <claziss@gcc.gnu.org> | 2017-06-01 11:42:59 +0200 |
commit | 19dc47524f9bd79cf5c8bc0dcb4a1c381b88391d (patch) | |
tree | 6e22ae6a976ee90ce1c641320a827a25ff402953 | |
parent | 2daad50b025d4db0492cf14390ba76272f2df015 (diff) | |
download | gcc-19dc47524f9bd79cf5c8bc0dcb4a1c381b88391d.zip gcc-19dc47524f9bd79cf5c8bc0dcb4a1c381b88391d.tar.gz gcc-19dc47524f9bd79cf5c8bc0dcb4a1c381b88391d.tar.bz2 |
[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
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arc/arc.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 92a7c0a..ce7085b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 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 to prevent store reordering. * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define. diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index caf01c8..d9ad139 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -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 |