> 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