On 8 June 2018 at 22:05, Martin Liška <mli...@suse.cz> wrote:
> On 06/08/2018 09:58 PM, Christophe Lyon wrote:
>>
>> On 7 June 2018 at 14:09, Jan Hubicka <hubi...@ucw.cz> wrote:
>>>>
>>>>
>>>> gcc/ChangeLog:
>>>>
>>>> 2018-05-16  Martin Liska  <mli...@suse.cz>
>>>>
>>>>        * cgraph.c (cgraph_node::remove): Do not recycle uid.
>>>>        * cgraph.h (symbol_table::release_symbol): Do not pass uid.
>>>>        (symbol_table::allocate_cgraph_symbol): Do not set uid.
>>>>        * passes.c (uid_hash_t): Record removed_nodes by their uids.
>>>>        (remove_cgraph_node_from_order): Use the removed_nodes set.
>>>>        (do_per_function_toporder): Likwise.
>>>>        * symbol-summary.h (symtab_insertion): Use cgraph_node::uid
>>>>        instead of summary_uid.
>>>>        (symtab_removal): Likewise.
>>>>        (symtab_duplication): Likewise.
>>>>
>>>> gcc/lto/ChangeLog:
>>>>
>>>> 2018-05-16  Martin Liska  <mli...@suse.cz>
>>>>
>>>>        * lto-partition.c (lto_balanced_map): Use cgraph_node::uid
>>>>        instead of summary_uid.
>>>
>>>
>>> I am still now convinced that competely moving from arrays made dense by
>>> uid recyclic to hash tables is performance-wise smart idea, but current
>>> uid is not working very well for this purpose - most summaries we have
>>> are only for definitions so we want something like definition uid.
>>>
>>> In general it seems bad that we allocate same memory for object with
>>> definition
>>> and external symbol. Something I planned to change but did not get to do
>>> that yet.
>>>
>>> So the patch is OK. With new abstraction we can always re-invent dense
>>> uids for
>>> this purpose later.
>>>
>>> Honza
>>
>>
>>
>> Hi!
>>
>> This patch broke the GCC build:
>
>
> Sorry for that. It was just short breakage, it's fixed in r261320.
>

OK, good to know. My build queue hasn't reached that stage yet :)

Thanks

> Martin
>
>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:
>> In function ‘void remove_cgraph_node_from_order(cgraph_node*, void*)’:
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> warning: ‘>>’ operator will be treated as two right angle brackets in
>> C++0x
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> warning: suggest parentheses around ‘>>’ expression
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: ‘removed_nodes’ was not declared in this scope
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: ‘*’ cannot appear in a constant-expression
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> warning: ‘>>’ operator will be treated as two right angle brackets in
>> C++0x
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> warning: suggest parentheses around ‘>>’ expression
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: ‘*’ cannot appear in a constant-expression
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: template argument 3 is invalid
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: template argument 1 is invalid
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: template argument 2 is invalid
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: an assignment cannot appear in a constant-expression
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: template argument 3 is invalid
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: template argument 1 is invalid
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1646:
>> error: template argument 2 is invalid
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:
>> In function ‘void do_per_function_toporder(void (*)(function*, void*),
>> void*)’:
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1664:
>> warning: ‘>>’ operator will be treated as two right angle brackets in
>> C++0x
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1664:
>> warning: suggest parentheses around ‘>>’ expression
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1664:
>> error: ‘removed_nodes’ was not declared in this scope
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1664:
>> error: template argument 3 is invalid
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1664:
>> error: template argument 1 is invalid
>>
>> /tmp/9400570_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/passes.c:1664:
>> error: template argument 2 is invalid
>> make[2]: *** [passes.o] Error 1
>>
>

Reply via email to