Ping? Thanks, Kugan
> On 21 Jan 2026, at 8:11 pm, Kugan Vivekanandarajah <[email protected]> > wrote: > > External email: Use caution opening links or attachments > > >> On 19 Jan 2026, at 9:34 pm, Kugan Vivekanandarajah <[email protected]> >> wrote: >> >> External email: Use caution opening links or attachments >> >> >> Hi Honza, >> >>> On 13 Jan 2026, at 7:29 pm, Jan Hubička <[email protected]> wrote: >>> >>> When doing PGO or autofdo we should first read the FDO info and create >>> speculative edges based on it. >>> >>> Later speculation is made by ipa-devirt and ipa-prop. If profile feedback >>> is available (i.e. edge->speculative is true) we do not want to add another >>> speculation. First we do not know how to redistribute probabilities and >>> profile info should be more accurate. >>> >>> ipa-devirt already has check >>> if (e->speculative) >>> { >>> if (dump_file) >>> fprintf (dump_file, "Call is already speculated\n\n"); >>> stats.nspeculated++; >>> >>> /* When dumping see if we agree with speculation. */ >>> if (!dump_file) >>> continue; >>> } >>> ... >>> /* This is reached only when dumping; check if we agree or >>> disagree >>> with the speculation. */ >>> if (e->speculative) >>> { >>> bool found = false; >>> for (cgraph_node * likely_target: likely_targets) >>> if (e->speculative_call_for_target (likely_target)) >>> { >>> found = true; >>> break; >>> } >>> if (found) >>> { >>> fprintf (dump_file, "We agree with speculation\n\n"); >>> stats.nok++; >>> } >>> else >>> { >>> fprintf (dump_file, "We disagree with speculation\n\n"); >>> stats.nwrong++; >>> } >>> continue; >>> } >>> >>> Similarly ipa-prop avoids double-speculation >>> /* If the edge is already speculated. */ >>> if (speculative && ie->speculative) >>> { >>> if (dump_file) >>> { >>> cgraph_edge *e2 = ie->speculative_call_for_target (callee); >>> if (!e2) >>> { >>> if (dump_file) >>> fprintf (dump_file, "ipa-prop: Discovered call to a " >>> "speculative target (%s -> %s) but the call is " >>> "already speculated to different target. " >>> "Giving up.\n", >>> ie->caller->dump_name (), callee->dump_name ()); >>> } >>> else >>> { >>> if (dump_file) >>> fprintf (dump_file, >>> "ipa-prop: Discovered call to a speculative target " >>> "(%s -> %s) this agree with previous speculation.\n", >>> ie->caller->dump_name (), callee->dump_name ()); >>> } >>> } >>> return NULL; >>> } >>> >>> So I wonder how the additional speculation is created at the first place? >>> Is it via ipa_merge_profiles? >> > Double checked this. Here is the gdb trace for speculative edges are not > adjacent > We do check e->speculative but in cgraph_edge::make_speculative we do > create_edge . So isn’t the original edge is still there? > AFIK this can happen even without AutoFDO too. > > This is the dump for order not being right? > > > Breakpoint 1, cgraph_edge::make_speculative (this=this@entry=0xfffff5a50f70, > n2=n2@entry=0xfffff5a40dd0, direct_count=..., > speculative_id=speculative_id@entry=0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > 1321 cgraph_node *n = caller; > (gdb) bt > #0 cgraph_edge::make_speculative (this=this@entry=0xfffff5a50f70, > n2=n2@entry=0xfffff5a40dd0, direct_count=..., > speculative_id=speculative_id@entry=0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > #1 0x0000000000e1d0bc in ipa_profile () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/ipa-profile.cc:953 > #2 0x0000000000f9de2c in execute_one_pass (pass=pass@entry=0x355a450) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:2656 > #3 0x0000000000fa7170 in execute_ipa_pass_list (pass=0x355a450) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:3118 > #4 0x0000000000ae95e4 in ipa_passes () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2299 > #5 symbol_table::compile (this=this@entry=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2364 > #6 0x0000000000aec3c0 in symbol_table::compile (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2342 > #7 symbol_table::finalize_compilation_unit (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2623 > #8 0x00000000010e41cc in compile_file () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:482 > #9 0x000000000086fec0 in do_compile () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2225 > #10 toplev::main (this=this@entry=0xfffffffff560, argc=<optimized out>, > argc@entry=6, argv=<optimized out>, argv@entry=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2390 > #11 0x00000000008767b8 in main (argc=6, argv=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/main.cc:39 > (gdb) p print_gimple_stmt (stderr, call_stmt, 0, 0) > _3 (&pNew, &b_1_0, &info); > $1 = void > (gdb) c > Continuing. > {heap 6336k} <icf> {heap 6336k} <devirt> > Breakpoint 1, cgraph_edge::make_speculative (this=this@entry=0xfffff5a50fd8, > n2=n2@entry=0xfffff5a40ff0, direct_count=direct_count@entry=..., > speculative_id=0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > 1321 cgraph_node *n = caller; > (gdb) bt > #0 cgraph_edge::make_speculative (this=this@entry=0xfffff5a50fd8, > n2=n2@entry=0xfffff5a40ff0, direct_count=direct_count@entry=..., > speculative_id=0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > #1 0x0000000000dced68 in ipa_devirt () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/ipa-devirt.cc:3942 > #2 0x0000000000f9de2c in execute_one_pass (pass=pass@entry=0x355a5b0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:2656 > #3 0x0000000000fa7170 in execute_ipa_pass_list (pass=0x355a5b0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:3118 > #4 0x0000000000ae95e4 in ipa_passes () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2299 > #5 symbol_table::compile (this=this@entry=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2364 > #6 0x0000000000aec3c0 in symbol_table::compile (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2342 > #7 symbol_table::finalize_compilation_unit (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2623 > #8 0x00000000010e41cc in compile_file () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:482 > #9 0x000000000086fec0 in do_compile () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2225 > #10 toplev::main (this=this@entry=0xfffffffff560, argc=<optimized out>, > argc@entry=6, argv=<optimized out>, argv@entry=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2390 > #11 0x00000000008767b8 in main (argc=6, argv=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/main.cc:39 > (gdb) p print_gimple_stmt (stderr, call_stmt, 0, 0) > _4 (&pParent, &pCell); > > (gdb) c > Continuing. > > Breakpoint 1, cgraph_edge::make_speculative (this=this@entry=0xfffff5a50f70, > n2=n2@entry=0xfffff5a40ee0, direct_count=direct_count@entry=..., > speculative_id=1) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > 1321 cgraph_node *n = caller; > (gdb) bt > #0 cgraph_edge::make_speculative (this=this@entry=0xfffff5a50f70, > n2=n2@entry=0xfffff5a40ee0, direct_count=direct_count@entry=..., > speculative_id=1) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > #1 0x0000000000dced68 in ipa_devirt () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/ipa-devirt.cc:3942 > #2 0x0000000000f9de2c in execute_one_pass (pass=pass@entry=0x355a5b0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:2656 > #3 0x0000000000fa7170 in execute_ipa_pass_list (pass=0x355a5b0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:3118 > #4 0x0000000000ae95e4 in ipa_passes () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2299 > #5 symbol_table::compile (this=this@entry=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2364 > #6 0x0000000000aec3c0 in symbol_table::compile (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2342 > #7 symbol_table::finalize_compilation_unit (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2623 > #8 0x00000000010e41cc in compile_file () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:482 > #9 0x000000000086fec0 in do_compile () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2225 > #10 toplev::main (this=this@entry=0xfffffffff560, argc=<optimized out>, > argc@entry=6, argv=<optimized out>, argv@entry=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2390 > #11 0x00000000008767b8 in main (argc=6, argv=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/main.cc:39 > (gdb) p print_gimple_stmt (stderr, call_stmt, 0, 0) > _3 (&pNew, &b_1_0, &info); > $3 = void > (gdb) > > > (gdb) c > Continuing. > {heap 6336k} <cp>sqlite3.c:72546:1: error: speculative edges are not adjacent > balance_nonroot/7 (balance_nonroot) > Type: function definition analyzed > Visibility: externally_visible public > References: decodeFlags_pPage_0/5 (read) decodeFlags_pPage/4 (write) > cellSizePtrNoPayload/3 (addr) decodeFlags_pPage/4 (write) > decodeFlags_flagByte/6 (read) btreeParseCellPtr/1 (addr) > btreeParseCellPtrNoPayload/11 (addr) decodeFlags_pPage/4 (write) > btreeParseCellPtrIndex/2 (addr) btreeParseCellPtr/1 (addr) (speculative) > cellSizePtrNoPayload/3 (addr) (speculative) btreeParseCellPtrIndex/2 (addr) > (speculative) > Referring: > Availability: available > Profile id: 2029414804 > Function flags: count:6838663652 (auto FDO) first_run:1 body hot > Called by: sqlite3_step/9 (1073741824 (estimated locally, globally 0 auto > FDO),1.00 per call) > Calls: btreeParseCellPtrIndex.constprop.0/12 (speculative) (0 (auto > FDO),0.00 per call) cellSizePtrNoPayload/3 (speculative) (8017743590 > (guessed),1.17 per call) btreeParseCellPtr/1 (speculative) (20044358980 (auto > FDO),2.93 per call) > indirect simple callsite, not calling a known parameter, flags 0, num > speculative call targets: 1 > indirect simple callsite, not calling a known parameter, flags 0, num > speculative call targets: 2 > during IPA pass: cp > sqlite3.c:72546:1: internal compiler error: verify_cgraph_node failed > 0x24292a7 internal_error(char const*, ...) > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/diagnostic-global-context.cc:787 > 0xae101f cgraph_node::verify_node() > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:4525 > 0xaccab3 symtab_node::verify() > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/symtab.cc:1377 > 0xacdf83 symtab_node::verify_symtab_nodes() > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/symtab.cc:1499 > 0xe5ff8f symtab_node::checking_verify_symtab_nodes() > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.h:730 > 0xe5ff8f symbol_table::remove_unreachable_nodes(_IO_FILE*) > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/ipa.cc:695 > 0xf9acf3 execute_todo > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:2166 > Please submit a full bug report, with preprocessed source (by using > -freport-bug). > Please include the complete backtrace with any bug report. > See <https://gcc.gnu.org/bugs/> for instructions. > [Inferior 1 (process 332413) exited with code 04] > (gdb) > > > Here is the gdb dump for duplicate entry? > > > Breakpoint 1, cgraph_edge::make_speculative (this=this@entry=0xfffff5a50d68, > n2=n2@entry=0xfffff5a40ee0, direct_count=..., > speculative_id=speculative_id@entry=0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > 1321 cgraph_node *n = caller; > (gdb) bt > #0 cgraph_edge::make_speculative (this=this@entry=0xfffff5a50d68, > n2=n2@entry=0xfffff5a40ee0, direct_count=..., > speculative_id=speculative_id@entry=0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > #1 0x0000000000e1a01c in ipa_profile () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/ipa-profile.cc:953 > #2 0x0000000000f9cd8c in execute_one_pass (pass=pass@entry=0x355a450) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:2656 > #3 0x0000000000fa60d0 in execute_ipa_pass_list (pass=0x355a450) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:3118 > #4 0x0000000000ae9544 in ipa_passes () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2299 > #5 symbol_table::compile (this=this@entry=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2364 > #6 0x0000000000aec320 in symbol_table::compile (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2342 > #7 symbol_table::finalize_compilation_unit (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2623 > #8 0x00000000010e412c in compile_file () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:482 > #9 0x000000000086fec0 in do_compile () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2225 > #10 toplev::main (this=this@entry=0xfffffffff560, argc=<optimized out>, > argc@entry=6, argv=<optimized out>, argv@entry=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2390 > #11 0x00000000008767b8 in main (argc=6, argv=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/main.cc:39 > (gdb) p print_gimple_stmt (stderr, call_stmt, 0, 0) > _1 (&balance_nonroot_pParent, &apDiv); > $1 = void > > > Continuing. > {heap 6336k} <icf> {heap 6336k} <devirt> > Breakpoint 1, cgraph_edge::make_speculative (this=this@entry=0xfffff5a50dd0, > n2=n2@entry=0xfffff5a40dd0, direct_count=direct_count@entry=..., > speculative_id=0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > 1321 cgraph_node *n = caller; > (gdb) bt > #0 cgraph_edge::make_speculative (this=this@entry=0xfffff5a50dd0, > n2=n2@entry=0xfffff5a40dd0, direct_count=direct_count@entry=..., > speculative_id=0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > #1 0x0000000000dcccc8 in ipa_devirt () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/ipa-devirt.cc:3942 > #2 0x0000000000f9cd8c in execute_one_pass (pass=pass@entry=0x355a5b0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:2656 > #3 0x0000000000fa60d0 in execute_ipa_pass_list (pass=0x355a5b0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:3118 > #4 0x0000000000ae9544 in ipa_passes () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2299 > #5 symbol_table::compile (this=this@entry=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2364 > #6 0x0000000000aec320 in symbol_table::compile (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2342 > #7 symbol_table::finalize_compilation_unit (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2623 > #8 0x00000000010e412c in compile_file () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:482 > #9 0x000000000086fec0 in do_compile () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2225 > #10 toplev::main (this=this@entry=0xfffffffff560, argc=<optimized out>, > argc@entry=6, argv=<optimized out>, argv@entry=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2390 > #11 0x00000000008767b8 in main (argc=6, argv=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/main.cc:39 > (gdb) p print_gimple_stmt (stderr, call_stmt, 0, 0) > _2 (&balance_nonroot_pNew, _4, &balance_nonroot_info); > $2 = void > > Breakpoint 1, cgraph_edge::make_speculative (this=this@entry=0xfffff5a50d68, > n2=n2@entry=0xfffff5a40ee0, direct_count=direct_count@entry=..., > speculative_id=1) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > 1321 cgraph_node *n = caller; > (gdb) bt > #0 cgraph_edge::make_speculative (this=this@entry=0xfffff5a50d68, > n2=n2@entry=0xfffff5a40ee0, direct_count=direct_count@entry=..., > speculative_id=1) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:1321 > #1 0x0000000000dcccc8 in ipa_devirt () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/ipa-devirt.cc:3942 > #2 0x0000000000f9cd8c in execute_one_pass (pass=pass@entry=0x355a5b0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:2656 > #3 0x0000000000fa60d0 in execute_ipa_pass_list (pass=0x355a5b0) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:3118 > #4 0x0000000000ae9544 in ipa_passes () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2299 > #5 symbol_table::compile (this=this@entry=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2364 > #6 0x0000000000aec320 in symbol_table::compile (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2342 > #7 symbol_table::finalize_compilation_unit (this=0xfffff59c0000) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraphunit.cc:2623 > #8 0x00000000010e412c in compile_file () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:482 > #9 0x000000000086fec0 in do_compile () at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2225 > #10 toplev::main (this=this@entry=0xfffffffff560, argc=<optimized out>, > argc@entry=6, argv=<optimized out>, argv@entry=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/toplev.cc:2390 > #11 0x00000000008767b8 in main (argc=6, argv=0xfffffffff6e8) at > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/main.cc:39 > (gdb) p print_gimple_stmt (stderr, call_stmt, 0, 0) > _1 (&balance_nonroot_pParent, &apDiv); > $3 = void > > Continuing. > {heap 6336k} <cp>sqlite3.c:128:14: error: speculative edges are not adjacent > balance_nonroot/7 (balance_nonroot) > Type: function definition analyzed > Visibility: externally_visible public > References: balance_nonroot_pParent/2 (read) balance_nonroot_pParent/2 > (addr) decodeFlags_pPage/1 (write) cellSizePtrNoPayload/6 (addr) > decodeFlags_pPage/1 (write) btreeParseCellPtrIndex/5 (addr) > balance_nonroot_pNew/3 (read) balance_nonroot_pNew/3 (addr) > balance_nonroot_info/4 (addr) balance_nonroot_pParent/2 (addr) > cellSizePtrNoPayload/6 (addr) (speculative) balance_nonroot_pNew/3 (addr) > balance_nonroot_info/4 (addr) btreeParseCellPtrIndex/5 (addr) (speculative) > balance_nonroot_pParent/2 (addr) cellSizePtrNoPayload/6 (addr) (speculative) > Referring: > Availability: available > Profile id: 2029414804 > Function flags: count:6838663652 (auto FDO) first_run:1 body hot > Called by: sqlite3_step/8 (1073741824 (estimated locally, globally 0 auto > FDO),1.00 per call) > Calls: cellSizePtrNoPayload.constprop.0/9 (speculative) (0 (auto FDO),0.00 > per call) btreeParseCellPtrIndex.constprop.0/10 (speculative) (1179834551162 > (auto FDO),172.52 per call) cellSizePtrNoPayload.constprop.0/9 (speculative) > (29359090506 (auto FDO),4.29 per call) > indirect simple callsite, not calling a known parameter, flags 0, num > speculative call targets: 1 > indirect simple callsite, not calling a known parameter, flags 0, num > speculative call targets: 2 > during IPA pass: cp > sqlite3.c:128:14: internal compiler error: verify_cgraph_node failed > 0x2429207 internal_error(char const*, ...) > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/diagnostic-global-context.cc:787 > 0xae0f7f cgraph_node::verify_node() > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.cc:4499 > 0xaccab3 symtab_node::verify() > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/symtab.cc:1377 > 0xacdf83 symtab_node::verify_symtab_nodes() > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/symtab.cc:1499 > 0xe5ceef symtab_node::checking_verify_symtab_nodes() > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/cgraph.h:730 > 0xe5ceef symbol_table::remove_unreachable_nodes(_IO_FILE*) > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/ipa.cc:695 > 0xf99c53 execute_todo > > /mnt/scratch.grco_devs3/kvivekananda/hierarchical/gcc/gcc/passes.cc:2166 > Please submit a full bug report, with preprocessed source (by using > -freport-bug). > Please include the complete backtrace with any bug report. > See <https://gcc.gnu.org/bugs/> for instructions. > [Inferior 1 (process 374309) exited with code 04] > (gdb) > > > > > IMO we need both the patches to fix them. > > Thanks, > Kugan > > > > > > > > >> >> >>> >>> Honza
