[AArch64 costs 3/18] Wrap aarch64_rtx_costs to dump verbose output 67/41167/1
authorjgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 May 2014 08:45:39 +0000 (08:45 +0000)
committerNikolai Bozhenov <n.bozhenov@samsung.com>
Thu, 11 Jun 2015 11:05:59 +0000 (14:05 +0300)
git cherry-pick e50295b

gcc/

* config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
(TARGET_RTX_COSTS): Call it.

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

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index ec97d71..8900efc 100644 (file)
@@ -1,5 +1,10 @@
 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
 
+       * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
+       (TARGET_RTX_COSTS): Call it.
+
+2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
+
        * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
        (cortexa57_vector_cost): Likewise.
        (cortexa57_tunings): Use them.
index 4639283..9b4b5c1 100644 (file)
@@ -63,6 +63,7 @@
 #include "cfgloop.h"
 #include "tree-vectorizer.h"
 #include "config/arm/aarch-cost-tables.h"
+#include "dumpfile.h"
 
 /* Defined for convenience.  */
 #define POINTER_BYTES (POINTER_SIZE / BITS_PER_UNIT)
@@ -4963,6 +4964,26 @@ aarch64_rtx_costs (rtx x, int code, int outer ATTRIBUTE_UNUSED,
   return false;
 }
 
+/* Wrapper around aarch64_rtx_costs, dumps the partial, or total cost
+   calculated for X.  This cost is stored in *COST.  Returns true
+   if the total cost of X was calculated.  */
+static bool
+aarch64_rtx_costs_wrapper (rtx x, int code, int outer,
+                  int param, int *cost, bool speed)
+{
+  bool result = aarch64_rtx_costs (x, code, outer, param, cost, speed);
+
+  if (dump_file && (dump_flags & TDF_DETAILS))
+    {
+      print_rtl_single (dump_file, x);
+      fprintf (dump_file, "\n%s cost: %d (%s)\n",
+              speed ? "Hot" : "Cold",
+              *cost, result ? "final" : "partial");
+    }
+
+  return result;
+}
+
 static int
 aarch64_register_move_cost (enum machine_mode mode,
                            reg_class_t from_i, reg_class_t to_i)