diff options
author | Claudiu Zissulescu <claziss@synopsys.com> | 2017-04-14 13:40:54 +0200 |
---|---|---|
committer | Claudiu Zissulescu <claziss@gcc.gnu.org> | 2017-04-14 13:40:54 +0200 |
commit | 213c9bf1219497f096351f7b8f9905cffc79f416 (patch) | |
tree | 3afef82a9791e35082c3f7fb123eab557add6814 /gcc | |
parent | 1fccdd40cf7a4802a3e78c0e5197332c69be3b5e (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/arc/arc-protos.h | 1 | ||||
-rw-r--r-- | gcc/config/arc/arc.c | 11 | ||||
-rw-r--r-- | gcc/config/arc/arc.h | 5 |
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 |