On Fri, Oct 13, 2017 at 6:38 AM, Jan Hubicka <[email protected]> wrote:
> Hi,
> this patch enables check that no edge probabilities are missing.
This caused a bootstrap failure on aarch64-linux-gnu with go enabled.
But I see you have disabled the code for now.
Just for reference the failure:
../../../gcc/libgo/go/unicode/letter.go
../../../gcc/libgo/go/unicode/tables.go -o unicode.o >/dev/null 2>&1
../../../gcc/libgo/go/runtime/panic.go: In function ‘runtime.gopanic’:
../../../gcc/libgo/go/runtime/panic.go:408:1: error: Uninitialized
probability of edge 103->128
func gopanic(e interface{}) {
^
during RTL pass: subreg1
../../../gcc/libgo/go/runtime/panic.go:408:1: internal compiler error:
verify_flow_info failed
0x71f3b7 verify_flow_info()
../../gcc/gcc/cfghooks.c:267
0xa9402b execute_function_todo
../../gcc/gcc/passes.c:2006
0xa94de3 execute_todo
../../gcc/gcc/passes.c:2048
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Thanks,
Andrew
>
> Honza
>
> * cfghooks.c (verify_flow_info): Check that edge probabilities are
> set.
>
> Index: cfghooks.c
> ===================================================================
> --- cfghooks.c (revision 253694)
> +++ cfghooks.c (working copy)
> @@ -160,6 +161,13 @@ verify_flow_info (void)
> e->src->index, e->dest->index);
> err = 1;
> }
> + if (profile_status_for_fn (cfun) >= PROFILE_GUESSED
> + && !e->probability.initialized_p ())
> + {
> + error ("Uninitialized probability of edge %i->%i",
> e->src->index,
> + e->dest->index);
> + err = 1;
> + }
> if (!e->probability.verify ())
> {
> error ("verify_flow_info: Wrong probability of edge %i->%i",