aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@synopsys.com>2017-04-14 13:40:54 +0200
committerClaudiu Zissulescu <claziss@gcc.gnu.org>2017-04-14 13:40:54 +0200
commit213c9bf1219497f096351f7b8f9905cffc79f416 (patch)
tree3afef82a9791e35082c3f7fb123eab557add6814
parent1fccdd40cf7a4802a3e78c0e5197332c69be3b5e (diff)
downloadgcc-213c9bf1219497f096351f7b8f9905cffc79f416.zip
gcc-213c9bf1219497f096351f7b8f9905cffc79f416.tar.gz
gcc-213c9bf1219497f096351f7b8f9905cffc79f416.tar.bz2
[ARC] DWARF emitting cleanup.
The use of CFA_FRAME_BASE_OFFSET and ARG_POINTER_CFA_OFFSET macros leads to wrong offset calculation for DW_OP_fbreg constructions. Remove them. gcc/ 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-protos.h (arc_decl_pretend_args): Remove. * config/arc/arc.c (arc_decl_pretend_args): Likewise. * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise. (ARG_POINTER_CFA_OFFSET): Likewise. From-SVN: r246926
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/arc/arc-protos.h1
-rw-r--r--gcc/config/arc/arc.c11
-rw-r--r--gcc/config/arc/arc.h5
4 files changed, 7 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 27cfef5..312ef8d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
+ * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
+ * config/arc/arc.c (arc_decl_pretend_args): Likewise.
+ * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
+ (ARG_POINTER_CFA_OFFSET): Likewise.
+
+2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
+
* config/arc/arc.c (arc_mode_dependent_address_p): Relax
conditions to take advantage of various optimizations.
diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
index 063ca5a..93a64cf 100644
--- a/gcc/config/arc/arc-protos.h
+++ b/gcc/config/arc/arc-protos.h
@@ -111,7 +111,6 @@ extern int arc_label_align (rtx_insn *label);
extern bool arc_need_delay (rtx_insn *insn);
extern bool arc_text_label (rtx_insn *insn);
-extern int arc_decl_pretend_args (tree decl);
extern bool arc_short_comparison_p (rtx, int);
extern bool arc_epilogue_uses (int regno);
extern bool arc_eh_uses (int regno);
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index b28c590..c8ffa1a 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -9338,17 +9338,6 @@ arc_text_label (rtx_insn *label)
return false;
}
-/* Return the size of the pretend args for DECL. */
-
-int
-arc_decl_pretend_args (tree decl)
-{
- /* struct function is in DECL_STRUCT_FUNCTION (decl), but no
- pretend_args there... See PR38391. */
- gcc_assert (decl == current_function_decl);
- return crtl->args.pretend_args_size;
-}
-
/* Without this, gcc.dg/tree-prof/bb-reorg.c fails to assemble
when compiling with -O2 -freorder-blocks-and-partition -fprofile-use
-D_PROFILE_USE; delay branch scheduling then follows a crossing jump
diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h
index 08644eb..2706a85 100644
--- a/gcc/config/arc/arc.h
+++ b/gcc/config/arc/arc.h
@@ -1581,11 +1581,6 @@ extern enum arc_function_type arc_compute_function_type (struct function *);
#define INIT_EXPANDERS arc_init_expanders ()
-#define CFA_FRAME_BASE_OFFSET(FUNDECL) (-arc_decl_pretend_args ((FUNDECL)))
-
-#define ARG_POINTER_CFA_OFFSET(FNDECL) \
- (FIRST_PARM_OFFSET (FNDECL) + arc_decl_pretend_args ((FNDECL)))
-
enum
{
ARC_LRA_PRIORITY_NONE, ARC_LRA_PRIORITY_NONCOMPACT, ARC_LRA_PRIORITY_COMPACT