[committed] arm: cleanup legacy ARM_PE code

Message ID 20240710115907.3366160-1-rearnsha@arm.com
State New
Series [committed] arm: cleanup legacy ARM_PE code |


Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm warning Patch is already merged
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 warning Patch is already merged

Commit Message

Richard Earnshaw July 10, 2024, 11:59 a.m. UTC
  The arm 'pe' target was removed back in 2012 when the FPA support was
removed, but in a small number of places some conditional code was
accidentally left behind.  It's no-longer needed, so remove it.


	* config/arm/arm-protos.h (arm_dllexport_name_p): Remove prototype.
	(arm_dllimport_name_p): Likewise.
	(arm_pe_unique_section): Likewise.
	(arm_pe_encode_section_info): Likewise.
	(arm_dllexport_p): Likewise.
	(arm_dllimport_p): Likewise.
	(arm_mark_dllexport): Likewise.
	(arm_mark_dllimport): Likewise.
	(arm_change_mode_p): Likewise.
	* config/arm/arm.cc (arm_gnu_attributes): Remove attributes for ARM_PE.
	(is_called_in_ARM_mode): Remove ARM_PE conditional code.
	(thumb1_output_interwork): Remove obsolete ARM_PE code.
	(arm_encode_section_info): Remove surrounding #ifndef.
 gcc/config/arm/arm-protos.h | 12 ------------
 gcc/config/arm/arm.cc       | 32 +-------------------------------
 2 files changed, 1 insertion(+), 43 deletions(-)


diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h
index 34d6be76e94..50cae2b513a 100644
--- a/gcc/config/arm/arm-protos.h
+++ b/gcc/config/arm/arm-protos.h
@@ -266,19 +266,7 @@  extern const char *thumb1_output_casesi (rtx *);
 extern const char *thumb2_output_casesi (rtx *);
-/* Defined in pe.c.  */
-extern int arm_dllexport_name_p (const char *);
-extern int arm_dllimport_name_p (const char *);
-#ifdef TREE_CODE
-extern void arm_pe_unique_section (tree, int);
-extern void arm_pe_encode_section_info (tree, rtx, int);
-extern int arm_dllexport_p (tree);
-extern int arm_dllimport_p (tree);
-extern void arm_mark_dllexport (tree);
-extern void arm_mark_dllimport (tree);
 extern bool arm_change_mode_p (tree);
 extern tree arm_valid_target_attribute_tree (tree, struct gcc_options *,
 					     struct gcc_options *);
diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc
index 93993d95eb9..92cd168e659 100644
--- a/gcc/config/arm/arm.cc
+++ b/gcc/config/arm/arm.cc
@@ -208,9 +208,7 @@  static int aapcs_select_return_coproc (const_tree, const_tree);
 static void arm_elf_asm_constructor (rtx, int) ATTRIBUTE_UNUSED;
 static void arm_elf_asm_destructor (rtx, int) ATTRIBUTE_UNUSED;
-#ifndef ARM_PE
 static void arm_encode_section_info (tree, rtx, int);
 static void arm_file_end (void);
 static void arm_file_start (void);
@@ -352,21 +350,7 @@  static const attribute_spec arm_gnu_attributes[] =
     NULL },
   { "naked",        0, 0, true,  false, false, false,
     arm_handle_fndecl_attribute, NULL },
-#ifdef ARM_PE
-  /* ARM/PE has three new attributes:
-     interfacearm - ?
-     dllexport - for exporting a function/variable that will live in a dll
-     dllimport - for importing a function/variable from a dll
-     Microsoft allows multiple declspecs in one __declspec, separating
-     them with spaces.  We do NOT support this.  Instead, use __declspec
-     multiple times.
-  */
-  { "dllimport",    0, 0, true,  false, false, false, NULL, NULL },
-  { "dllexport",    0, 0, true,  false, false, false, NULL, NULL },
-  { "interfacearm", 0, 0, true,  false, false, false,
-    arm_handle_fndecl_attribute, NULL },
   { "dllimport",    0, 0, false, false, false, false, handle_dll_attribute,
     NULL },
   { "dllexport",    0, 0, false, false, false, false, handle_dll_attribute,
@@ -488,11 +472,7 @@  static const scoped_attribute_specs *const arm_attribute_table[] =
 #define TARGET_MEMORY_MOVE_COST arm_memory_move_cost
-#ifdef ARM_PE
-#define TARGET_ENCODE_SECTION_INFO  arm_pe_encode_section_info
 #define TARGET_ENCODE_SECTION_INFO  arm_encode_section_info
 #define TARGET_STRIP_NAME_ENCODING arm_strip_name_encoding
@@ -26821,11 +26801,7 @@  is_called_in_ARM_mode (tree func)
     return true;
-#ifdef ARM_PE
-  return lookup_attribute ("interfacearm", DECL_ATTRIBUTES (func)) != NULL_TREE;
   return false;
 /* Given the stack offsets and register mask in OFFSETS, decide how
@@ -28301,10 +28277,6 @@  thumb1_output_interwork (void)
 #define STUB_NAME ".real_start_of"
   fprintf (f, "\t.code\t16\n");
-#ifdef ARM_PE
-  if (arm_dllexport_name_p (name))
-    name = arm_strip_name_encoding (name);
   asm_fprintf (f, "\t.globl %s%U%s\n", STUB_NAME, name);
   fprintf (f, "\t.thumb_func\n");
   asm_fprintf (f, "%s%U%s:\n", STUB_NAME, name);
@@ -28893,7 +28865,6 @@  arm_file_end (void)
-#ifndef ARM_PE
 /* Symbols in the text segment can be accessed without indirecting via the
    constant pool; it may take an extra binary operation, but this is still
    faster than indirecting via memory.  Don't do this when not optimizing,
@@ -28908,7 +28879,6 @@  arm_encode_section_info (tree decl, rtx rtl, int first)
   default_encode_section_info (decl, rtl, first);
-#endif /* !ARM_PE */
 static void
 arm_internal_label (FILE *stream, const char *prefix, unsigned long labelno)