[Patch 1/2 PR78561] Rename get_pool_size to get_pool_size_upper_bound
authorJames Greenhalgh <james.greenhalgh@arm.com>
Fri, 2 Dec 2016 14:29:35 +0000 (14:29 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Fri, 2 Dec 2016 14:29:35 +0000 (14:29 +0000)
gcc/

PR rtl-optimization/78561
* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Rename
get_pool_size to get_pool_size_upper_bound.
(rs6000_stack_info): Likewise.
(rs6000_emit_prologue): Likewise.
(rs6000_elf_declare_function_name): Likewise.
(rs6000_set_up_by_prologue): Likewise.
(rs6000_can_eliminate): Likewise, reformat spaces to tabs.
* output.h (get_pool_size): Rename to...
(get_pool_size_upper_bound): ...This.
* varasm.c (get_pool_size): Rename to...
(get_pool_size_upper_bound): ...This.

From-SVN: r243182

gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/output.h
gcc/varasm.c

index 85b4bdb0ae0fbd76cd45772e67f907781c9bd9aa..734868404df48d47528993bf7878f0e6806a74e5 100644 (file)
@@ -1,3 +1,18 @@
+2016-12-02  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       PR rtl-optimization/78561
+       * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Rename
+       get_pool_size to get_pool_size_upper_bound.
+       (rs6000_stack_info): Likewise.
+       (rs6000_emit_prologue): Likewise.
+       (rs6000_elf_declare_function_name): Likewise.
+       (rs6000_set_up_by_prologue): Likewise.
+       (rs6000_can_eliminate): Likewise, reformat spaces to tabs.
+       * output.h (get_pool_size): Rename to...
+       (get_pool_size_upper_bound): ...This.
+       * varasm.c (get_pool_size): Rename to...
+       (get_pool_size_upper_bound): ...This.
+
 2016-12-02  Bin Cheng  <bin.cheng@arm.com>
 
        * match.pd: Add new pattern:
index e57262092972d4fab0473ecc479b4d60ec844142..425a885e75b713187f3c50fae1349978a75fcdef 100644 (file)
@@ -25460,7 +25460,7 @@ rs6000_reg_live_or_pic_offset_p (int reg)
       if (TARGET_TOC && TARGET_MINIMAL_TOC
          && (crtl->calls_eh_return
              || df_regs_ever_live_p (reg)
-             || get_pool_size ()))
+             || get_pool_size_upper_bound ()))
        return true;
 
       if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN)
@@ -26266,7 +26266,7 @@ rs6000_stack_info (void)
 #ifdef TARGET_RELOCATABLE
       || (DEFAULT_ABI == ABI_V4
          && (TARGET_RELOCATABLE || flag_pic > 1)
-         && get_pool_size () != 0)
+         && get_pool_size_upper_bound () != 0)
 #endif
       || rs6000_ra_ever_killed ())
     info->lr_save_p = 1;
@@ -28044,7 +28044,8 @@ rs6000_emit_prologue (void)
       cfun->machine->r2_setup_needed = df_regs_ever_live_p (TOC_REGNUM);
 
       /* With -mminimal-toc we may generate an extra use of r2 below.  */
-      if (TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0)
+      if (TARGET_TOC && TARGET_MINIMAL_TOC
+         && get_pool_size_upper_bound () != 0)
        cfun->machine->r2_setup_needed = true;
     }
 
@@ -28899,7 +28900,8 @@ rs6000_emit_prologue (void)
 
   /* If we are using RS6000_PIC_OFFSET_TABLE_REGNUM, we need to set it up.  */
   if (!TARGET_SINGLE_PIC_BASE
-      && ((TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0)
+      && ((TARGET_TOC && TARGET_MINIMAL_TOC
+          && get_pool_size_upper_bound () != 0)
          || (DEFAULT_ABI == ABI_V4
              && (flag_pic == 1 || (flag_pic && TARGET_SECURE_PLT))
              && df_regs_ever_live_p (RS6000_PIC_OFFSET_TABLE_REGNUM))))
@@ -34966,7 +34968,7 @@ rs6000_elf_declare_function_name (FILE *file, const char *name, tree decl)
   if (DEFAULT_ABI == ABI_V4
       && (TARGET_RELOCATABLE || flag_pic > 1)
       && !TARGET_SECURE_PLT
-      && (get_pool_size () != 0 || crtl->profile)
+      && (get_pool_size_upper_bound () != 0 || crtl->profile)
       && uses_TOC ())
     {
       char buf[256];
@@ -37449,10 +37451,11 @@ static bool
 rs6000_can_eliminate (const int from, const int to)
 {
   return (from == ARG_POINTER_REGNUM && to == STACK_POINTER_REGNUM
-          ? ! frame_pointer_needed
-          : from == RS6000_PIC_OFFSET_TABLE_REGNUM
-            ? ! TARGET_MINIMAL_TOC || TARGET_NO_TOC || get_pool_size () == 0
-            : true);
+         ? ! frame_pointer_needed
+         : from == RS6000_PIC_OFFSET_TABLE_REGNUM
+           ? ! TARGET_MINIMAL_TOC || TARGET_NO_TOC
+               || get_pool_size_upper_bound () == 0
+           : true);
 }
 
 /* Define the offset between two registers, FROM to be eliminated and its
@@ -38988,7 +38991,7 @@ rs6000_set_up_by_prologue (struct hard_reg_set_container *set)
   if (!TARGET_SINGLE_PIC_BASE
       && TARGET_TOC
       && TARGET_MINIMAL_TOC
-      && get_pool_size () != 0)
+      && get_pool_size_upper_bound () != 0)
     add_to_hard_reg_set (&set->set, Pmode, RS6000_PIC_OFFSET_TABLE_REGNUM);
   if (cfun->machine->split_stack_argp_used)
     add_to_hard_reg_set (&set->set, Pmode, 12);
index 0924499c484bc7296e868660412892ea132827da..7186dc1b98b62015ca3cb0a788070ef9581d11fd 100644 (file)
@@ -287,8 +287,11 @@ extern void assemble_real (REAL_VALUE_TYPE, machine_mode, unsigned,
 /* Write the address of the entity given by SYMBOL to SEC.  */
 extern void assemble_addr_to_section (rtx, section *);
 
-/* Return the size of the constant pool.  */
-extern int get_pool_size (void);
+/* Return the maximum size of the constant pool.  This may be larger
+   than the final size of the constant pool, as entries may be added to
+   the constant pool which become unreferenced, or otherwise not need
+   output by the time we actually emit the pool.  */
+extern int get_pool_size_upper_bound (void);
 
 extern rtx_insn *peephole (rtx_insn *);
 
index 1e7c2b523c107e37a55f0542ea65cfe30aca4bf1..f8af0c1a69353b7e2fe660496e8bb90b381b11fd 100644 (file)
@@ -3811,7 +3811,7 @@ get_pool_mode (const_rtx addr)
 /* Return the size of the constant pool.  */
 
 int
-get_pool_size (void)
+get_pool_size_upper_bound (void)
 {
   return crtl->varasm.pool->offset;
 }