This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR87873
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Richard Guenther <rguenther at suse dot de>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 5 Nov 2018 15:34:05 -0800
- Subject: Re: [PATCH] Fix PR87873
- References: <alpine.LSU.2.20.1811051553550.1827@zhemvz.fhfr.qr>
On Mon, Nov 5, 2018 at 6:55 AM Richard Biener <rguenther@suse.de> wrote:
>
>
> The fragile PHI copying logic in the vectorizer got confused by
> constants in loop-closed PHI nodes. Fixed like the following.
>
> Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.
>
> Richard.
>
> From a965417cbefd54f45ac6f2b6e3d5dc39c307da09 Mon Sep 17 00:00:00 2001
> From: Richard Guenther <rguenther@suse.de>
> Date: Mon, 5 Nov 2018 13:02:48 +0100
> Subject: [PATCH] fix-pr87873
>
> 2018-11-05 Richard Biener <rguenther@suse.de>
>
> PR tree-optimization/87873
> * tree-ssa-loop-manip.h (split_loop_exit_edge): Add copy_constants_p
> argument.
> * tree-ssa-loop-manip.c (split_loop_exit_edge): Likewise.
> * tree-vect-loop.c (vect_transform_loop): When splitting the
> loop exit also create forwarder PHIs for constants.
> * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
> Handle constant to_arg, add extra checking we match up the correct
> PHIs.
>
This caused:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87889
--
H.J.