[ARM] Use std::swap instead of manually swapping
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 18 Nov 2014 10:10:53 +0000 (10:10 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 18 Nov 2014 10:10:53 +0000 (10:10 +0000)
* config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
manual swapping implementation.
(movcond_addsi): Likewise.
* config/arm/arm.c (arm_canonicalize_comparison): Likewise.
(arm_select_dominance_cc_mode): Likewise.
(arm_reload_out_hi): Likewise.
(gen_operands_ldrd_strd): Likewise.
(output_move_double): Likewise.
(arm_print_operand_address): Likewise.
(thumb_output_move_mem_multiple): Likewise.
(SWAP_RTX): Delete.

From-SVN: r217701

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/arm.md

index fa97da712547fd097ec906595825de48a1d2d1ca..52fa23be23b4f0f5cca8e5473010b11464609b80 100644 (file)
@@ -1,3 +1,17 @@
+2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
+       manual swapping implementation.
+       (movcond_addsi): Likewise.
+       * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
+       (arm_select_dominance_cc_mode): Likewise.
+       (arm_reload_out_hi): Likewise.
+       (gen_operands_ldrd_strd): Likewise.
+       (output_move_double): Likewise.
+       (arm_print_operand_address): Likewise.
+       (thumb_output_move_mem_multiple): Likewise.
+       (SWAP_RTX): Delete.
+
 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
 
        * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
index e37465e98ca1a05430c89361d9d10ef22b1556ae..64494e8539281ef4610198c1b2c82c66b785e4c1 100644 (file)
@@ -4606,7 +4606,6 @@ arm_canonicalize_comparison (int *code, rtx *op0, rtx *op1,
      for GTU/LEU in Thumb mode.  */
   if (mode == DImode)
     {
-      rtx tem;
 
       if (*code == GT || *code == LE
          || (!TARGET_ARM && (*code == GTU || *code == LEU)))
@@ -4646,9 +4645,7 @@ arm_canonicalize_comparison (int *code, rtx *op0, rtx *op1,
          /* If that did not work, reverse the condition.  */
          if (!op0_preserve_value)
            {
-             tem = *op0;
-             *op0 = *op1;
-             *op1 = tem;
+             std::swap (*op0, *op1);
              *code = (int)swap_condition ((enum rtx_code)*code);
            }
        }
@@ -14927,11 +14924,7 @@ arm_select_dominance_cc_mode (rtx x, rtx y, HOST_WIDE_INT cond_or)
     return CCmode;
 
   if (swapped)
-    {
-      enum rtx_code temp = cond1;
-      cond1 = cond2;
-      cond2 = temp;
-    }
+    std::swap (cond1, cond2);
 
   switch (cond1)
     {
@@ -15440,11 +15433,7 @@ arm_reload_out_hi (rtx *operands)
          /* Updating base_plus might destroy outval, see if we can
             swap the scratch and base_plus.  */
          if (!reg_overlap_mentioned_p (scratch, outval))
-           {
-             rtx tmp = scratch;
-             scratch = base_plus;
-             base_plus = tmp;
-           }
+           std::swap (scratch, base_plus);
          else
            {
              rtx scratch_hi = gen_rtx_REG (HImode, REGNO (operands[2]));
@@ -15499,11 +15488,7 @@ arm_reload_out_hi (rtx *operands)
              /* Updating base_plus might destroy outval, see if we
                 can swap the scratch and base_plus.  */
              if (!reg_overlap_mentioned_p (scratch, outval))
-               {
-                 rtx tmp = scratch;
-                 scratch = base_plus;
-                 base_plus = tmp;
-               }
+               std::swap (scratch, base_plus);
              else
                {
                  rtx scratch_hi = gen_rtx_REG (HImode, REGNO (operands[2]));
@@ -15736,8 +15721,6 @@ mem_ok_for_ldrd_strd (rtx mem, rtx *base, rtx *offset)
   return false;
 }
 
-#define SWAP_RTX(x,y) do { rtx tmp = x; x = y; y = tmp; } while (0)
-
 /* Called from a peephole2 to replace two word-size accesses with a
    single LDRD/STRD instruction.  Returns true iff we can generate a
    new instruction sequence.  That is, both accesses use the same base
@@ -15877,10 +15860,10 @@ gen_operands_ldrd_strd (rtx *operands, bool load,
       offset = offsets[1];
 
       /* Swap the instructions such that lower memory is accessed first.  */
-      SWAP_RTX (operands[0], operands[1]);
-      SWAP_RTX (operands[2], operands[3]);
+      std::swap (operands[0], operands[1]);
+      std::swap (operands[2], operands[3]);
       if (const_store)
-        SWAP_RTX (operands[4], operands[5]);
+        std::swap (operands[4], operands[5]);
     }
   else
     {
@@ -15905,7 +15888,7 @@ gen_operands_ldrd_strd (rtx *operands, bool load,
   if (load && commute)
     {
       /* Try reordering registers.  */
-      SWAP_RTX (operands[0], operands[1]);
+      std::swap (operands[0], operands[1]);
       if (operands_ok_ldrd_strd (operands[0], operands[1], base, offset,
                                  false, load))
         return true;
@@ -15934,7 +15917,7 @@ gen_operands_ldrd_strd (rtx *operands, bool load,
       if (operands_ok_ldrd_strd (operands[1], operands[0], base, offset,
                                   false, false))
         {
-          SWAP_RTX (operands[0], operands[1]);
+          std::swap (operands[0], operands[1]);
           return true;
         }
 
@@ -15965,7 +15948,6 @@ gen_operands_ldrd_strd (rtx *operands, bool load,
 
   return false;
 }
-#undef SWAP_RTX
 
 
 
@@ -18111,12 +18093,9 @@ output_move_double (rtx *operands, bool emit, int *count)
                      if (reg_overlap_mentioned_p (operands[0],
                                                   otherops[2]))
                        {
-                         rtx tmp;
                          /* Swap base and index registers over to
                             avoid a conflict.  */
-                         tmp = otherops[1];
-                         otherops[1] = otherops[2];
-                         otherops[2] = tmp;
+                         std::swap (otherops[1], otherops[2]);
                        }
                      /* If both registers conflict, it will usually
                         have been fixed by a splitter.  */
@@ -22176,9 +22155,7 @@ arm_print_operand_address (FILE *stream, rtx x)
              /* Ensure that BASE is a register.  */
              /* (one of them must be).  */
              /* Also ensure the SP is not used as in index register.  */
-             rtx temp = base;
-             base = index;
-             index = temp;
+             std::swap (base, index);
            }
          switch (GET_CODE (index))
            {
@@ -25351,23 +25328,11 @@ thumb_output_move_mem_multiple (int n, rtx *operands)
 
     case 3:
       if (REGNO (operands[4]) > REGNO (operands[5]))
-       {
-         tmp = operands[4];
-         operands[4] = operands[5];
-         operands[5] = tmp;
-       }
+        std::swap (operands[4], operands[5]);
       if (REGNO (operands[5]) > REGNO (operands[6]))
-       {
-         tmp = operands[5];
-         operands[5] = operands[6];
-         operands[6] = tmp;
-       }
+        std::swap (operands[5], operands[6]);
       if (REGNO (operands[4]) > REGNO (operands[5]))
-       {
-         tmp = operands[4];
-         operands[4] = operands[5];
-         operands[5] = tmp;
-       }
+        std::swap (operands[4], operands[5]);
 
       output_asm_insn ("ldmia\t%1!, {%4, %5, %6}", operands);
       output_asm_insn ("stmia\t%0!, {%4, %5, %6}", operands);
index a3b14fef64c2639fcac8eb82717fccbba66c946e..b9880b423010831aade0d80273b0fd92ee075c43 100644 (file)
        swap the order in which the loads are emitted.  */
     if (reg_overlap_mentioned_p (operands[0], operands[1]))
       {
-        rtx tmp = operands[1];
-        operands[1] = operands[3];
-        operands[3] = tmp;
-        tmp = operands[0];
-        operands[0] = operands[2];
-        operands[2] = tmp;
+        std::swap (operands[1], operands[3]);
+        std::swap (operands[0], operands[2]);
       }
   }
   [(set_attr "arch" "t2,any")
     gcc_assert (!(mode == CCFPmode || mode == CCFPEmode));
     if (REGNO (operands[2]) != REGNO (operands[0]))
       rc = reverse_condition (rc);
-    else 
-      {
-       rtx tmp = operands[1];
-       operands[1] = operands[2];
-       operands[2] = tmp;
-      }
+    else
+      std::swap (operands[1], operands[2]);
 
     operands[6] = gen_rtx_fmt_ee (rc, VOIDmode, operands[6], const0_rtx);
   }