[Bug bootstrap/77768] [7 Regression] LTO/PGO -O3 bootstrap broken: tree-vrp.c:11053:0: internal compiler error: Segmentation fault

rguenther at suse dot de gcc-bugzilla@gcc.gnu.org
Thu Sep 29 07:20:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77768

--- Comment #10 from rguenther at suse dot de <rguenther at suse dot de> ---
On Thu, 29 Sep 2016, trippels at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77768
> 
> --- Comment #8 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
> Looks like tree-ssa-pre.c also needs to be guarded:
> 
> 0x10c3a273 crash_signal
>         ../../gcc/gcc/toplev.c:337
> 0x10f30e2c eliminate_dom_walker::before_dom_children(basic_block_def*)
>         ../../gcc/gcc/tree-ssa-pre.c:4448
> 0x11807427 dom_walker::walk(basic_block_def*)
>         ../../gcc/gcc/domwalk.c:265
> 0x10f2a9a7 eliminate
>         ../../gcc/gcc/tree-ssa-pre.c:4709
> 0x10f3e31f execute
>         ../../gcc/gcc/tree-ssa-pre.c:5055
> 
> 
> diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
> index 3675fb9..cc008c2 100644
> --- a/gcc/tree-ssa-pre.c
> +++ b/gcc/tree-ssa-pre.c
> @@ -4445,8 +4445,8 @@ eliminate_dom_walker::before_dom_children (basic_block b)
>               /* We can only remove the later store if the former aliases
>                  at least all accesses the later one does.  */
>               alias_set_type set = get_alias_set (lhs);
> -             if (vnresult->set == set
> -                 || alias_set_subset_of (set, vnresult->set))
> +             if (vnresult && (vnresult->set == set
> +                 || alias_set_subset_of (set, vnresult->set)))
>                 {
>                   if (dump_file && (dump_flags & TDF_DETAILS))
>                     {

I'm testing ! vnresult || vnresult->set == ... instead, we can remove
stores to readonly memory if it stores the same value as present.

Richard.


More information about the Gcc-bugs mailing list