[PATCH] PR 80867: ICE during -O3 compile of libgnat

Kelvin Nilsen kdnilsen@linux.vnet.ibm.com
Mon Jan 29 23:37:00 GMT 2018


It was determined that the reported ICE occurs because a NULL value is
passed from vectorizable_call () to

   targetm.vectorize.builtin_md_vectorized_function (
		callee, vectype_out, vectype_in).

This patch avoids making this call if callee equals NULL.

After successful bootstrap and regression testing, with preapproval,
this patch has been committed to the trunk.

It it ok to backport to GCC 7 and GCC 6 (after testing on those
platforms)?

Thanks.


gcc/ChangeLog:

2018-01-29  Richard Biener <rguenther@suse.de>
	    Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR bootstrap/80867
	* tree-vect-stmts.c (vectorizable_call): Don't call
	targetm.vectorize_builtin_md_vectorized_function if callee is
	NULL.

Index: gcc/tree-vect-stmts.c
===================================================================
--- gcc/tree-vect-stmts.c	(revision 257105)
+++ gcc/tree-vect-stmts.c	(working copy)
@@ -3159,7 +3159,7 @@
       if (cfn != CFN_LAST)
 	fndecl = targetm.vectorize.builtin_vectorized_function
 	  (cfn, vectype_out, vectype_in);
-      else
+      else if (callee)
 	fndecl = targetm.vectorize.builtin_md_vectorized_function
 	  (callee, vectype_out, vectype_in);
     }



More information about the Gcc-patches mailing list