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


Reply via email to