Hello!

No functional changes, just some trivial code reordering while looking
in these areas.
2014-01-18  Uros Bizjak  <ubiz...@gmail.com>

    * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
    and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.

2014-01-18  Uros Bizjak  <ubiz...@gmail.com>

    * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.

Bootstrapped and regression tested on x86_64-pc-linux-gnu, committed
to mainline SVN.

Uros.
Index: i386.c
===================================================================
--- i386.c      (revision 206750)
+++ i386.c      (working copy)
@@ -25491,8 +25491,6 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn
       break;
 
     case PROCESSOR_PENTIUMPRO:
-      memory = get_attr_memory (insn);
-
       /* INT->FP conversion is expensive.  */
       if (get_attr_fp_int_src (dep_insn))
        cost += 5;
@@ -25505,6 +25503,8 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn
          && MEM_P (SET_DEST (set2)))
        cost += 1;
 
+      memory = get_attr_memory (insn);
+
       /* Show ability of reorder buffer to hide latency of load by executing
         in parallel with previous instruction in case
         previous instruction is not needed to compute the address.  */
@@ -25522,10 +25522,8 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn
       break;
 
     case PROCESSOR_K6:
-      memory = get_attr_memory (insn);
-
-      /* The esp dependency is resolved before the instruction is really
-         finished.  */
+     /* The esp dependency is resolved before
+       the instruction is really finished.  */
       if ((insn_type == TYPE_PUSH || insn_type == TYPE_POP)
          && (dep_insn_type == TYPE_PUSH || dep_insn_type == TYPE_POP))
        return 1;
@@ -25534,6 +25532,8 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn
       if (get_attr_fp_int_src (dep_insn))
        cost += 5;
 
+      memory = get_attr_memory (insn);
+
       /* Show ability of reorder buffer to hide latency of load by executing
         in parallel with previous instruction in case
         previous instruction is not needed to compute the address.  */
@@ -25552,8 +25552,6 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn
        }
       break;
 
-    case PROCESSOR_ATHLON:
-    case PROCESSOR_K8:
     case PROCESSOR_AMDFAM10:
     case PROCESSOR_BDVER1:
     case PROCESSOR_BDVER2:
@@ -25562,14 +25560,16 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn
     case PROCESSOR_BTVER1:
     case PROCESSOR_BTVER2:
     case PROCESSOR_GENERIC:
-      memory = get_attr_memory (insn);
-
       /* Stack engine allows to execute push&pop instructions in parall.  */
-      if (((insn_type == TYPE_PUSH || insn_type == TYPE_POP)
-          && (dep_insn_type == TYPE_PUSH || dep_insn_type == TYPE_POP))
-         && (!TARGET_ATHLON && !TARGET_K8))
+      if ((insn_type == TYPE_PUSH || insn_type == TYPE_POP)
+         && (dep_insn_type == TYPE_PUSH || dep_insn_type == TYPE_POP))
        return 0;
+      /* FALLTHRU */
 
+    case PROCESSOR_ATHLON:
+    case PROCESSOR_K8:
+      memory = get_attr_memory (insn);
+
       /* Show ability of reorder buffer to hide latency of load by executing
         in parallel with previous instruction in case
         previous instruction is not needed to compute the address.  */
@@ -25600,13 +25600,13 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn
     case PROCESSOR_NEHALEM:
     case PROCESSOR_SANDYBRIDGE:
     case PROCESSOR_HASWELL:
-      memory = get_attr_memory (insn);
-
       /* Stack engine allows to execute push&pop instructions in parall.  */
       if ((insn_type == TYPE_PUSH || insn_type == TYPE_POP)
          && (dep_insn_type == TYPE_PUSH || dep_insn_type == TYPE_POP))
        return 0;
 
+      memory = get_attr_memory (insn);
+
       /* Show ability of reorder buffer to hide latency of load by executing
         in parallel with previous instruction in case
         previous instruction is not needed to compute the address.  */
Index: i386.md
===================================================================
--- i386.md     (revision 206750)
+++ i386.md     (working copy)
@@ -2466,7 +2466,7 @@
    (set_attr "memory" "load")
    (set_attr "mode" "<MODE>")])
 
-(define_insn "swap<mode>"
+(define_insn "*swap<mode>"
   [(set (match_operand:SWI48 0 "register_operand" "+r")
        (match_operand:SWI48 1 "register_operand" "+r"))
    (set (match_dup 1)

Reply via email to