The call to ifc_temp_var in predicate_mem_writes become redundant
in r230099.  Before that point the mask was calculated using
fold_build_*s, but now it's calculated by gimple_build and so
is already a valid gimple value.

As it stands, the call forces an SSA_NAME-to-SSA_NAME copy
to be created, whereas SLP expects that such redundant copies
have already been eliminated.

This is latent at the moment, but since it's dead code...

Tested on aarch64-linux-gnu (with and without SVE), x86_64-linux-gnu
and powerpc64le-linux-gnu.  OK to install?

Richard


2017-11-17  Richard Sandiford  <richard.sandif...@linaro.org>

gcc/
        * tree-if-conv.c (predicate_mem_writes): Remove redundant
        call to ifc_temp_var.

Index: gcc/tree-if-conv.c
===================================================================
--- gcc/tree-if-conv.c  2017-11-17 15:07:43.953630256 +0000
+++ gcc/tree-if-conv.c  2017-11-17 16:05:10.483025412 +0000
@@ -2261,7 +2261,6 @@ predicate_mem_writes (loop_p loop)
                    }
                  gsi_insert_seq_before (&gsi, stmts, GSI_SAME_STMT);
 
-                 mask = ifc_temp_var (TREE_TYPE (mask), mask, &gsi);
                  /* Save mask and its size for further use.  */
                  vect_sizes.safe_push (bitsize);
                  vect_masks.safe_push (mask);

Reply via email to