diff options
-rw-r--r-- | gcc/common.opt | 4 | ||||
-rw-r--r-- | gcc/tree-vectorizer.c | 18 |
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; |