[PATCH PR69652, Regression]

Yuri Rumyantsev ysrumyan@gmail.com
Thu Feb 4 14:46:00 GMT 2016


Hi All,

Here is a patch that cures the issues with non-correct vuse for scalar
statements during code motion, i.e. if vuse of scalar statement is
vdef of masked store which has been sunk to new basic block, we must
fix it up.  The patch also fixed almost all remarks pointed out by
Jacub.

Bootstrapping and regression testing on v86-64 did not show any new failures.
Is it OK for trunk?

ChangeLog:
2016-02-04  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/69652
* tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
to nested loop, introduce new SCALAR_VUSE vector to keep vuse of all
skipped scalar statements, introduce variable LAST_VUSE that has
vuse of LAST_STORE, add assertion that SCALAR_VUSE is empty in the
begining of current masked store processing, did source re-formatting,
skip parsing of debug gimples, stop processing when call or gimple
with volatile operand habe been encountered, save scalar statement
with vuse in SCALAR_VUSE, skip processing debug statements in IMM_USE
iterator, change vuse of all saved scalar statements to LAST_VUSE if
it makes sence.

gcc/testsuite/ChangeLog:
* gcc.dg/torture/pr69652.c: New test.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch
Type: application/octet-stream
Size: 6534 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160204/31e5cf3c/attachment.obj>


More information about the Gcc-patches mailing list