From 213c9bf1219497f096351f7b8f9905cffc79f416 Mon Sep 17 00:00:00 2001 From: Claudiu Zissulescu Date: Fri, 14 Apr 2017 13:40:54 +0200 Subject: [PATCH] [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 * 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 --- gcc/ChangeLog | 7 +++++++ gcc/config/arc/arc-protos.h | 1 - gcc/config/arc/arc.c | 11 ----------- 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 + * 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 + * 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 -- 2.7.4