This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Turn streamer cache to pointer_map


On Mon, May 2, 2011 at 4:35 PM, Michael Matz <matz@suse.de> wrote:
> Hi,
>
> On Mon, 2 May 2011, Jan Hubicka wrote:
>
>> ! ? d_entry.base.from = t;
>> ! ? slot = htab_find_slot (cache->node_map, &d_entry, INSERT);
>> ! ? if (*slot == NULL)
>> ? ? ? {
>> ? ? ? ? /* Determine the next slot to use in the cache. ?*/
>> ? ? ? ? if (insert_at_next_slot_p)
>> ? ? ? ix = VEC_length (tree, cache->nodes);
>> ? ? ? ? else
>> ? ? ? ix = *ix_p;
>> !
>> ! ? ? ? entry = (struct tree_int_map *)pool_alloc (cache->node_map_entries);
>> ! ? ? ? entry->base.from = t;
>> ! ? ? ? entry->to = ix;
>> ! ? ? ? *slot = entry;
>>
>> ? ? ? ? lto_streamer_cache_add_to_node_array (cache, ix, t);
>>
>> --- 348,367 ----
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ?bool insert_at_next_slot_p)
>> ? {
>> ? ? void **slot;
>> ? ? unsigned ix;
>> ? ? bool existed_p;
>>
>> ? ? gcc_assert (t);
>>
>> ! ? slot = pointer_map_insert (cache->node_map, t);
>> ! ? if (!*slot)
>
> ix might legitimately be zero. ?Hence this transformation is not
> equivalent. ?You might want to enter ix+1 into the cache with the
> appropriate adjustment at read-out. ?Same for the other places.

Or not use index zero.  Maybe better than also have to deal
with ix + 1 wrapping ...

Richard.

>
> Ciao,
> Michael.
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]