This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Fix tree-optimization/38079: segfault with -ftree-vectorizer-verbose=9


Hi,

The failure is caused by the use of dump_file instead of vect_dump.
Even that it doesn't ICE, 4.4 contains the same problem.

Bootstrapped with vectorization enabled on ppc-linux and tested on
x86-linux for 4.3 branch.
O.K. for 4.3 and 4.4 once the testing completes?

Thanks,
Ira

ChangeLog:.

      * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
      with vect-dump.

Index: tree-vect-analyze.c
===================================================================
--- tree-vect-analyze.c (revision 141763)
+++ tree-vect-analyze.c (working copy)
@@ -3314,8 +3314,8 @@ vect_analyze_data_refs (loop_vec_info lo

          if (vect_print_dump_info (REPORT_DETAILS))
            {
-             fprintf (dump_file, "analyze in outer-loop: ");
-             print_generic_expr (dump_file, inner_base, TDF_SLIM);
+             fprintf (vect_dump, "analyze in outer-loop: ");
+             print_generic_expr (vect_dump, inner_base, TDF_SLIM);
            }

          outer_base = get_inner_reference (inner_base, &pbitsize,
&pbitpos,
@@ -3325,7 +3325,7 @@ vect_analyze_data_refs (loop_vec_info lo
          if (pbitpos % BITS_PER_UNIT != 0)
            {
              if (vect_print_dump_info (REPORT_DETAILS))
-               fprintf (dump_file, "failed: bit offset alignment.\n");
+               fprintf (vect_dump, "failed: bit offset alignment.\n");
              return false;
            }

@@ -3333,7 +3333,7 @@ vect_analyze_data_refs (loop_vec_info lo
          if (!simple_iv (loop, stmt, outer_base, &base_iv, false))
            {
              if (vect_print_dump_info (REPORT_DETAILS))
-               fprintf (dump_file, "failed: evolution of base is not
affine.\n");.
+               fprintf (vect_dump, "failed: evolution of base is not
affine.\n");.
              return false;
            }

@@ -3353,7 +3353,7 @@ vect_analyze_data_refs (loop_vec_info lo
          else if (!simple_iv (loop, stmt, poffset, &offset_iv, false))
            {
              if (vect_print_dump_info (REPORT_DETAILS))
-               fprintf (dump_file, "evolution of offset is not
affine.\n");.
+               fprintf (vect_dump, "evolution of offset is not
affine.\n");.
              return false;
            }

@@ -3376,18 +3376,18 @@ vect_analyze_data_refs (loop_vec_info lo
          STMT_VINFO_DR_ALIGNED_TO (stmt_info) =
                                size_int (highest_pow2_factor
(offset_iv.base)););.

-         if (dump_file && (dump_flags & TDF_DETAILS))
+         if (vect_dump && (dump_flags & TDF_DETAILS))
            {
-             fprintf (dump_file, "\touter base_address: ");
-             print_generic_expr (dump_file, STMT_VINFO_DR_BASE_ADDRESS
(stmt_info), TDF_SLIM);
-             fprintf (dump_file, "\n\touter offset from base address: ");
-             print_generic_expr (dump_file, STMT_VINFO_DR_OFFSET
(stmt_info), TDF_SLIM);
-             fprintf (dump_file, "\n\touter constant offset from base
address: ");
-             print_generic_expr (dump_file, STMT_VINFO_DR_INIT
(stmt_info), TDF_SLIM););
-             fprintf (dump_file, "\n\touter step: ");
-             print_generic_expr (dump_file, STMT_VINFO_DR_STEP
(stmt_info), TDF_SLIM););
-             fprintf (dump_file, "\n\touter aligned to: ");
-             print_generic_expr (dump_file, STMT_VINFO_DR_ALIGNED_TO
(stmt_info), TDF_SLIM););
+             fprintf (vect_dump, "\touter base_address: ");
+             print_generic_expr (vect_dump, STMT_VINFO_DR_BASE_ADDRESS
(stmt_info), TDF_SLIM);
+             fprintf (vect_dump, "\n\touter offset from base address: ");
+             print_generic_expr (vect_dump, STMT_VINFO_DR_OFFSET
(stmt_info), TDF_SLIM);
+             fprintf (vect_dump, "\n\touter constant offset from base
address: ");
+             print_generic_expr (vect_dump, STMT_VINFO_DR_INIT
(stmt_info), TDF_SLIM););
+             fprintf (vect_dump, "\n\touter step: ");
+             print_generic_expr (vect_dump, STMT_VINFO_DR_STEP
(stmt_info), TDF_SLIM););
+             fprintf (vect_dump, "\n\touter aligned to: ");
+             print_generic_expr (vect_dump, STMT_VINFO_DR_ALIGNED_TO
(stmt_info), TDF_SLIM););
            }
        }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]