aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@synopsys.com>2017-06-01 11:42:59 +0200
committerClaudiu Zissulescu <claziss@gcc.gnu.org>2017-06-01 11:42:59 +0200
commit19dc47524f9bd79cf5c8bc0dcb4a1c381b88391d (patch)
tree6e22ae6a976ee90ce1c641320a827a25ff402953 /gcc
parent2daad50b025d4db0492cf14390ba76272f2df015 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arc/arc.c2
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