[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