aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>2021-05-05 12:45:02 +0530
committerPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>2021-05-05 12:45:02 +0530
commite0cd24ce6e3319f2aafc8b02c4fd7cf88d8c34d7 (patch)
tree1946301209735eebb8dfb2f48b6dad9a8fe8d412
parentb48d76c4e6bd3b88f23979ede4ff12f875e0ad60 (diff)
Change-Id: I5d529ada1c19de2d105c7a11d561e4d8c5a890bd
-rw-r--r--gcc/common.opt4
-rw-r--r--gcc/tree-vectorizer.c18
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/common.opt b/gcc/common.opt
index c75dd36843e..cca8f73a03a 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -3049,6 +3049,10 @@ ftree-scev-cprop
Common Var(flag_tree_scev_cprop) Init(1) Optimization
Enable copy propagation of scalar-evolution information.
+fmetric-vect
+Common Var(flag_metric_vect)
+Specify vect metric.
+
; -fverbose-asm causes extra commentary information to be produced in
; the generated assembly code (to make it more readable). This option
; is generally only of use to those who actually need to read the
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 63ba594f227..0fa9204d13e 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -1278,6 +1278,24 @@ vectorize_loops (void)
}
}
+ if (flag_metric_vect)
+ {
+ const char *src_filename
+ = LOCATION_FILE (DECL_SOURCE_LOCATION (cfun->decl));
+ gcc_assert (src_filename != NULL);
+ char *vect_metric_filename
+ = (char *) xmalloc (strlen (src_filename) + strlen(".vect") + 1);
+ strcpy (vect_metric_filename, src_filename);
+ strcat (vect_metric_filename, ".vect");
+ FILE *vect_metric_fp = fopen (vect_metric_filename, "a");
+ gcc_assert (vect_metric_fp != NULL);
+
+ fprintf (vect_metric_fp, "%s,%d\n",
+ IDENTIFIER_POINTER (DECL_NAME (cfun->decl)),
+ num_vectorized_loops);
+ fclose (vect_metric_fp);
+ }
+
for (i = 1; i < number_of_loops (cfun); i++)
{
loop_vec_info loop_vinfo;