OSDN Git Service

* config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Nov 2005 05:13:41 +0000 (05:13 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Nov 2005 05:13:41 +0000 (05:13 +0000)
        (rs6000_override_options): Remove initialization of
        rs6000_sr_alias_set.
        (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
        (rs6000_emit_stack_tie): Same.
        (emit_frame_save): Same.
        (gen_frame_mem_offset): Same.
        (rs6000_emit_prologue): Same.
        (rs6000_emit_epilogue): Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107489 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index bb928cf..6b19608 100644 (file)
@@ -1,3 +1,15 @@
+2005-11-25  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
+       (rs6000_override_options): Remove initialization of
+       rs6000_sr_alias_set.
+       (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
+       (rs6000_emit_stack_tie): Same.
+       (emit_frame_save): Same.
+       (gen_frame_mem_offset): Same.
+       (rs6000_emit_prologue): Same.
+       (rs6000_emit_epilogue): Same.
+
 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR middle-end/24989
index f096e38..d8d00a5 100644 (file)
@@ -234,9 +234,6 @@ static enum {
 int toc_initialized;
 char toc_label_name[10];
 
-/* Alias set for saves and restores from the rs6000 stack.  */
-static GTY(()) int rs6000_sr_alias_set;
-
 /* Control alignment for fields within structures.  */
 /* String from -malign-XXXXX.  */
 int rs6000_alignment_flags;
@@ -1406,9 +1403,6 @@ rs6000_override_options (const char *default_cpu)
       && (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN))
     REAL_MODE_FORMAT (TFmode) = &ibm_extended_format;
 
-  /* Allocate an alias set for register saves & restores from stack.  */
-  rs6000_sr_alias_set = new_alias_set ();
-
   if (TARGET_TOC)
     ASM_GENERATE_INTERNAL_LABEL (toc_label_name, "LCTOC", 1);
 
@@ -13443,9 +13437,7 @@ rs6000_emit_eh_reg_restore (rtx source, rtx scratch)
          || current_function_calls_alloca
          || info->total_size > 32767)
        {
-         tmp = gen_rtx_MEM (Pmode, frame_rtx);
-         MEM_NOTRAP_P (tmp) = 1;
-         set_mem_alias_set (tmp, rs6000_sr_alias_set);
+         tmp = gen_frame_mem (Pmode, frame_rtx);
          emit_move_insn (operands[1], tmp);
          frame_rtx = operands[1];
        }
@@ -13453,9 +13445,7 @@ rs6000_emit_eh_reg_restore (rtx source, rtx scratch)
        sp_offset = info->total_size;
 
       tmp = plus_constant (frame_rtx, info->lr_save_offset + sp_offset);
-      tmp = gen_rtx_MEM (Pmode, tmp);
-      MEM_NOTRAP_P (tmp) = 1;
-      set_mem_alias_set (tmp, rs6000_sr_alias_set);
+      tmp = gen_frame_mem (Pmode, tmp);
       emit_move_insn (tmp, operands[0]);
     }
   else
@@ -13550,15 +13540,15 @@ rs6000_aix_emit_builtin_unwind_init (void)
   emit_label (no_toc_save_needed);
 }
 \f
-/* This ties together stack memory (MEM with an alias set of
-   rs6000_sr_alias_set) and the change to the stack pointer.  */
+/* This ties together stack memory (MEM with an alias set of frame_alias_set)
+   and the change to the stack pointer.  */
 
 static void
 rs6000_emit_stack_tie (void)
 {
-  rtx mem = gen_rtx_MEM (BLKmode, gen_rtx_REG (Pmode, STACK_POINTER_REGNUM));
+  rtx mem = gen_frame_mem (BLKmode,
+                          gen_rtx_REG (Pmode, STACK_POINTER_REGNUM));
 
-  set_mem_alias_set (mem, rs6000_sr_alias_set);
   emit_insn (gen_stack_tie (mem));
 }
 
@@ -13898,8 +13888,7 @@ emit_frame_save (rtx frame_reg, rtx frame_ptr, enum machine_mode mode,
 
   reg = gen_rtx_REG (mode, regno);
   addr = gen_rtx_PLUS (Pmode, frame_reg, offset_rtx);
-  mem = gen_rtx_MEM (mode, addr);
-  set_mem_alias_set (mem, rs6000_sr_alias_set);
+  mem = gen_frame_mem (mode, addr);
 
   insn = emit_move_insn (mem, reg);
 
@@ -13925,7 +13914,7 @@ gen_frame_mem_offset (enum machine_mode mode, rtx reg, int offset)
   else
     offset_rtx = int_rtx;
 
-  return gen_rtx_MEM (mode, gen_rtx_PLUS (Pmode, reg, offset_rtx));
+  return gen_frame_mem (mode, gen_rtx_PLUS (Pmode, reg, offset_rtx));
 }
 
 /* Look for user-defined global regs.  We should not save and restore these,
@@ -14068,8 +14057,7 @@ rs6000_emit_prologue (void)
          rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                                   GEN_INT (info->fp_save_offset
                                            + sp_offset + 8 * i));
-         rtx mem = gen_rtx_MEM (DFmode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         rtx mem = gen_frame_mem (DFmode, addr);
 
          RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg);
        }
@@ -14079,8 +14067,7 @@ rs6000_emit_prologue (void)
          rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                                   GEN_INT (info->altivec_save_offset
                                            + sp_offset + 16 * i));
-         rtx mem = gen_rtx_MEM (V4SImode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         rtx mem = gen_frame_mem (V4SImode, addr);
 
          RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg);
        }
@@ -14090,8 +14077,7 @@ rs6000_emit_prologue (void)
          rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                                   GEN_INT (info->gp_save_offset
                                            + sp_offset + reg_size * i));
-         rtx mem = gen_rtx_MEM (reg_mode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         rtx mem = gen_frame_mem (reg_mode, addr);
 
          RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg);
        }
@@ -14102,8 +14088,7 @@ rs6000_emit_prologue (void)
        rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                                 GEN_INT (info->cr_save_offset
                                          + sp_offset));
-       rtx mem = gen_rtx_MEM (reg_mode, addr);
-       set_mem_alias_set (mem, rs6000_sr_alias_set);
+       rtx mem = gen_frame_mem (reg_mode, addr);
 
        RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg);
       }
@@ -14154,10 +14139,8 @@ rs6000_emit_prologue (void)
            emit_move_insn (areg, GEN_INT (offset));
 
            /* AltiVec addressing mode is [reg+reg].  */
-           mem = gen_rtx_MEM (V4SImode,
-                              gen_rtx_PLUS (Pmode, frame_reg_rtx, areg));
-
-           set_mem_alias_set (mem, rs6000_sr_alias_set);
+           mem = gen_frame_mem (V4SImode,
+                                gen_rtx_PLUS (Pmode, frame_reg_rtx, areg));
 
            insn = emit_move_insn (mem, savereg);
 
@@ -14193,10 +14176,9 @@ rs6000_emit_prologue (void)
        {
           /* Save VRSAVE.  */
           offset = info->vrsave_save_offset + sp_offset;
-          mem
-           = gen_rtx_MEM (SImode,
-                          gen_rtx_PLUS (Pmode, frame_reg_rtx, GEN_INT (offset)));
-          set_mem_alias_set (mem, rs6000_sr_alias_set);
+          mem = gen_frame_mem (SImode,
+                              gen_rtx_PLUS (Pmode, frame_reg_rtx,
+                                            GEN_INT (offset)));
           insn = emit_move_insn (mem, reg);
        }
 
@@ -14272,8 +14254,7 @@ rs6000_emit_prologue (void)
          addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                               GEN_INT (info->fp_save_offset
                                        + sp_offset + 8*i));
-         mem = gen_rtx_MEM (DFmode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         mem = gen_frame_mem (DFmode, addr);
 
          RTVEC_ELT (p, i + 2) = gen_rtx_SET (VOIDmode, mem, reg);
        }
@@ -14297,8 +14278,7 @@ rs6000_emit_prologue (void)
                               GEN_INT (info->gp_save_offset
                                        + sp_offset
                                        + reg_size * i));
-         mem = gen_rtx_MEM (reg_mode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         mem = gen_frame_mem (reg_mode, addr);
 
          RTVEC_ELT (p, i) = gen_rtx_SET (VOIDmode, mem, reg);
        }
@@ -14336,8 +14316,7 @@ rs6000_emit_prologue (void)
                  b = GEN_INT (offset);
 
                addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, b);
-               mem = gen_rtx_MEM (V2SImode, addr);
-               set_mem_alias_set (mem, rs6000_sr_alias_set);
+               mem = gen_frame_mem (V2SImode, addr);
                insn = emit_move_insn (mem, reg);
 
                if (GET_CODE (b) == CONST_INT)
@@ -14353,8 +14332,7 @@ rs6000_emit_prologue (void)
                                     GEN_INT (info->gp_save_offset
                                              + sp_offset
                                              + reg_size * i));
-               mem = gen_rtx_MEM (reg_mode, addr);
-               set_mem_alias_set (mem, rs6000_sr_alias_set);
+               mem = gen_frame_mem (reg_mode, addr);
 
                insn = emit_move_insn (mem, reg);
                rs6000_frame_related (insn, frame_ptr_rtx, info->total_size,
@@ -14377,8 +14355,7 @@ rs6000_emit_prologue (void)
          reg = gen_rtx_REG (reg_mode, 2);
          addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                               GEN_INT (sp_offset + 5 * reg_size));
-         mem = gen_rtx_MEM (reg_mode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         mem = gen_frame_mem (reg_mode, addr);
 
          insn = emit_move_insn (mem, reg);
          rs6000_frame_related (insn, frame_ptr_rtx, info->total_size,
@@ -14406,7 +14383,7 @@ rs6000_emit_prologue (void)
                               GEN_INT (info->lr_save_offset + sp_offset));
       rtx reg = gen_rtx_REG (Pmode, 0);
       rtx mem = gen_rtx_MEM (Pmode, addr);
-      /* This should not be of rs6000_sr_alias_set, because of
+      /* This should not be of frame_alias_set, because of
         __builtin_return_address.  */
 
       insn = emit_move_insn (mem, reg);
@@ -14419,12 +14396,10 @@ rs6000_emit_prologue (void)
     {
       rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                               GEN_INT (info->cr_save_offset + sp_offset));
-      rtx mem = gen_rtx_MEM (SImode, addr);
+      rtx mem = gen_frame_mem (SImode, addr);
       /* See the large comment above about why CR2_REGNO is used.  */
       rtx magic_eh_cr_reg = gen_rtx_REG (SImode, CR2_REGNO);
 
-      set_mem_alias_set (mem, rs6000_sr_alias_set);
-
       /* If r12 was used to hold the original sp, copy cr into r0 now
         that it's free.  */
       if (REGNO (frame_reg_rtx) == 12)
@@ -14667,8 +14642,7 @@ rs6000_emit_epilogue (int sibcall)
        rtx reg = gen_rtx_REG (reg_mode, CR2_REGNO);
        rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                                 GEN_INT (info->cr_save_offset));
-       rtx mem = gen_rtx_MEM (reg_mode, addr);
-       set_mem_alias_set (mem, rs6000_sr_alias_set);
+       rtx mem = gen_frame_mem (reg_mode, addr);
 
        RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem);
       }
@@ -14679,8 +14653,7 @@ rs6000_emit_epilogue (int sibcall)
          rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                                   GEN_INT (info->gp_save_offset
                                            + reg_size * i));
-         rtx mem = gen_rtx_MEM (reg_mode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         rtx mem = gen_frame_mem (reg_mode, addr);
 
          RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem);
        }
@@ -14690,8 +14663,7 @@ rs6000_emit_epilogue (int sibcall)
          rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                                   GEN_INT (info->altivec_save_offset
                                            + 16 * i));
-         rtx mem = gen_rtx_MEM (V4SImode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         rtx mem = gen_frame_mem (V4SImode, addr);
 
          RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem);
        }
@@ -14701,8 +14673,7 @@ rs6000_emit_epilogue (int sibcall)
          rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                                   GEN_INT (info->fp_save_offset
                                            + 8 * i));
-         rtx mem = gen_rtx_MEM (DFmode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         rtx mem = gen_frame_mem (DFmode, addr);
 
          RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem);
        }
@@ -14768,8 +14739,7 @@ rs6000_emit_epilogue (int sibcall)
 
            /* AltiVec addressing mode is [reg+reg].  */
            addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, areg);
-           mem = gen_rtx_MEM (V4SImode, addr);
-           set_mem_alias_set (mem, rs6000_sr_alias_set);
+           mem = gen_frame_mem (V4SImode, addr);
 
            emit_move_insn (gen_rtx_REG (V4SImode, i), mem);
          }
@@ -14783,8 +14753,7 @@ rs6000_emit_epilogue (int sibcall)
 
       addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                           GEN_INT (info->vrsave_save_offset + sp_offset));
-      mem = gen_rtx_MEM (SImode, addr);
-      set_mem_alias_set (mem, rs6000_sr_alias_set);
+      mem = gen_frame_mem (SImode, addr);
       reg = gen_rtx_REG (SImode, 12);
       emit_move_insn (reg, mem);
 
@@ -14797,8 +14766,6 @@ rs6000_emit_epilogue (int sibcall)
       rtx mem = gen_frame_mem_offset (Pmode, frame_reg_rtx,
                                      info->lr_save_offset + sp_offset);
 
-      set_mem_alias_set (mem, rs6000_sr_alias_set);
-
       emit_move_insn (gen_rtx_REG (Pmode, 0), mem);
     }
 
@@ -14807,9 +14774,7 @@ rs6000_emit_epilogue (int sibcall)
     {
       rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                               GEN_INT (info->cr_save_offset + sp_offset));
-      rtx mem = gen_rtx_MEM (SImode, addr);
-
-      set_mem_alias_set (mem, rs6000_sr_alias_set);
+      rtx mem = gen_frame_mem (SImode, addr);
 
       emit_move_insn (gen_rtx_REG (SImode, 12), mem);
     }
@@ -14828,9 +14793,7 @@ rs6000_emit_epilogue (int sibcall)
        {
          rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
                                   GEN_INT (sp_offset + 5 * reg_size));
-         rtx mem = gen_rtx_MEM (reg_mode, addr);
-
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         rtx mem = gen_frame_mem (reg_mode, addr);
 
          emit_move_insn (gen_rtx_REG (reg_mode, 2), mem);
        }
@@ -14846,7 +14809,6 @@ rs6000_emit_epilogue (int sibcall)
          mem = gen_frame_mem_offset (reg_mode, frame_reg_rtx,
                                      info->ehrd_offset + sp_offset
                                      + reg_size * (int) i);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
 
          emit_move_insn (gen_rtx_REG (reg_mode, regno), mem);
        }
@@ -14864,9 +14826,7 @@ rs6000_emit_epilogue (int sibcall)
                                   GEN_INT (info->gp_save_offset
                                            + sp_offset
                                            + reg_size * i));
-         rtx mem = gen_rtx_MEM (reg_mode, addr);
-
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         rtx mem = gen_frame_mem (reg_mode, addr);
 
          RTVEC_ELT (p, i) =
            gen_rtx_SET (VOIDmode,
@@ -14889,7 +14849,7 @@ rs6000_emit_epilogue (int sibcall)
                                   GEN_INT (info->gp_save_offset
                                            + sp_offset
                                            + reg_size * i));
-         rtx mem = gen_rtx_MEM (reg_mode, addr);
+         rtx mem = gen_frame_mem (reg_mode, addr);
 
          /* Restore 64-bit quantities for SPE.  */
          if (TARGET_SPE_ABI && info->spe_64bit_regs_used != 0)
@@ -14906,11 +14866,9 @@ rs6000_emit_epilogue (int sibcall)
                b = GEN_INT (offset);
 
              addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, b);
-             mem = gen_rtx_MEM (V2SImode, addr);
+             mem = gen_frame_mem (V2SImode, addr);
            }
 
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
-
          emit_move_insn (gen_rtx_REG (reg_mode,
                                       info->first_gp_reg_save + i), mem);
        }
@@ -14926,8 +14884,7 @@ rs6000_emit_epilogue (int sibcall)
                               GEN_INT (info->fp_save_offset
                                        + sp_offset
                                        + 8 * i));
-         mem = gen_rtx_MEM (DFmode, addr);
-         set_mem_alias_set (mem, rs6000_sr_alias_set);
+         mem = gen_frame_mem (DFmode, addr);
 
          emit_move_insn (gen_rtx_REG (DFmode,
                                       info->first_fp_reg_save + i),
@@ -15047,8 +15004,7 @@ rs6000_emit_epilogue (int sibcall)
              rtx addr, mem;
              addr = gen_rtx_PLUS (Pmode, sp_reg_rtx,
                                   GEN_INT (info->fp_save_offset + 8*i));
-             mem = gen_rtx_MEM (DFmode, addr);
-             set_mem_alias_set (mem, rs6000_sr_alias_set);
+             mem = gen_frame_mem (DFmode, addr);
 
              RTVEC_ELT (p, i+3) =
                gen_rtx_SET (VOIDmode,