i386.c (set_pic_reg_ever_live): Remove.
authorUros Bizjak <ubizjak@gmail.com>
Mon, 20 Apr 2015 19:24:57 +0000 (21:24 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 20 Apr 2015 19:24:57 +0000 (21:24 +0200)
* config/i386/i386.c (set_pic_reg_ever_live): Remove.
(legitimize_pic_address): Do not call set_pic_reg_ever_live.
(legitimize_tls_address): Ditto.
(ix86_expand_move): Ditto.
(ix86_expand_binary_operator): Remove reload_in_progress checks.
(ix86_expand_unary_operator): Ditto.
* config/i386/predicates.md (index_register_operand): Ditto.

From-SVN: r222246

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/predicates.md

index a46036f43cf0d1e6823505d344a16d701ec93d6a..a4c10765dfaa7bf2ae01b0bd88682469a1003454 100644 (file)
@@ -1,3 +1,13 @@
+2015-04-19  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (set_pic_reg_ever_live): Remove.
+       (legitimize_pic_address): Do not call set_pic_reg_ever_live.
+       (legitimize_tls_address): Ditto.
+       (ix86_expand_move): Ditto.
+       (ix86_expand_binary_operator): Remove reload_in_progress checks.
+       (ix86_expand_unary_operator): Ditto.
+       * config/i386/predicates.md (index_register_operand): Ditto.
+
 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
 
        * reorg.c (try_merge_delay_insns): Improve correctness checking
index d870ab815254d8a607ad5ac07bca0b3ae3f47629..74332f3bef0f1cf411e38342546eff27d52b071b 100644 (file)
@@ -13576,15 +13576,6 @@ ix86_GOT_alias_set (void)
   return set;
 }
 
-/* Set regs_ever_live for PIC base address register
-   to true if required.  */
-static void
-set_pic_reg_ever_live ()
-{
-  if (reload_in_progress)
-    df_set_regs_ever_live (REGNO (pic_offset_table_rtx), true);
-}
-
 /* Return a legitimate reference for ORIG (an address) using the
    register REG.  If REG is 0, a new pseudo is generated.
 
@@ -13635,7 +13626,6 @@ legitimize_pic_address (rtx orig, rtx reg)
       /* This symbol may be referenced via a displacement from the PIC
         base address (@GOTOFF).  */
 
-      set_pic_reg_ever_live ();
       if (GET_CODE (addr) == CONST)
        addr = XEXP (addr, 0);
       if (GET_CODE (addr) == PLUS)
@@ -13667,7 +13657,6 @@ legitimize_pic_address (rtx orig, rtx reg)
       /* This symbol may be referenced via a displacement from the PIC
         base address (@GOTOFF).  */
 
-      set_pic_reg_ever_live ();
       if (GET_CODE (addr) == CONST)
        addr = XEXP (addr, 0);
       if (GET_CODE (addr) == PLUS)
@@ -13728,7 +13717,6 @@ legitimize_pic_address (rtx orig, rtx reg)
          /* This symbol must be referenced via a load from the
             Global Offset Table (@GOT).  */
 
-         set_pic_reg_ever_live ();
          new_rtx = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_GOT);
          new_rtx = gen_rtx_CONST (Pmode, new_rtx);
          if (TARGET_64BIT)
@@ -13780,7 +13768,6 @@ legitimize_pic_address (rtx orig, rtx reg)
            {
              if (!TARGET_64BIT)
                {
-                 set_pic_reg_ever_live ();
                  new_rtx = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op0),
                                            UNSPEC_GOTOFF);
                  new_rtx = gen_rtx_PLUS (Pmode, new_rtx, op1);
@@ -14082,7 +14069,6 @@ legitimize_tls_address (rtx x, enum tls_model model, bool for_mov)
        }
       else if (flag_pic)
        {
-         set_pic_reg_ever_live ();
          pic = pic_offset_table_rtx;
          type = TARGET_ANY_GNU_TLS ? UNSPEC_GOTNTPOFF : UNSPEC_GOTTPOFF;
        }
@@ -17306,10 +17292,8 @@ ix86_expand_move (machine_mode mode, rtx operands[])
          /* dynamic-no-pic */
          if (MACHOPIC_INDIRECT)
            {
-             rtx temp = ((reload_in_progress
-                          || ((op0 && REG_P (op0))
-                              && mode == Pmode))
-                         ? op0 : gen_reg_rtx (Pmode));
+             rtx temp = (op0 && REG_P (op0) && mode == Pmode)
+                        ? op0 : gen_reg_rtx (Pmode);
              op1 = machopic_indirect_data_reference (op1, temp);
              if (MACHOPIC_PURE)
                op1 = machopic_legitimize_pic_address (op1, mode,
@@ -17957,16 +17941,10 @@ ix86_expand_binary_operator (enum rtx_code code, machine_mode mode,
  /* Emit the instruction.  */
 
   op = gen_rtx_SET (VOIDmode, dst, gen_rtx_fmt_ee (code, mode, src1, src2));
-  if (reload_in_progress)
-    {
-      /* Reload doesn't know about the flags register, and doesn't know that
-         it doesn't want to clobber it.  We can only do this with PLUS.  */
-      gcc_assert (code == PLUS);
-      emit_insn (op);
-    }
-  else if (reload_completed
-          && code == PLUS
-          && !rtx_equal_p (dst, src1))
+
+  if (reload_completed
+      && code == PLUS
+      && !rtx_equal_p (dst, src1))
     {
       /* This is going to be an LEA; avoid splitting it later.  */
       emit_insn (op);
@@ -18130,13 +18108,9 @@ ix86_expand_unary_operator (enum rtx_code code, machine_mode mode,
   /* Emit the instruction.  */
 
   op = gen_rtx_SET (VOIDmode, dst, gen_rtx_fmt_e (code, mode, src));
-  if (reload_in_progress || code == NOT)
-    {
-      /* Reload doesn't know about the flags register, and doesn't know that
-         it doesn't want to clobber it.  */
-      gcc_assert (code == NOT);
-      emit_insn (op);
-    }
+
+  if (code == NOT)
+    emit_insn (op);
   else
     {
       clob = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG));
index 278d3cc6ef0c62348074a7a640b5168130e303d9..92533b553a4f5b836be6ff316e1b40d0dce3ed73 100644 (file)
 {
   if (GET_CODE (op) == SUBREG)
     op = SUBREG_REG (op);
-  if (reload_in_progress || reload_completed)
+  if (reload_completed)
     return REG_OK_FOR_INDEX_STRICT_P (op);
   else
     return REG_OK_FOR_INDEX_NONSTRICT_P (op);