[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-smalltalk] _gst_invalidate_method_cache and _gst_reset_inline_
From: |
Paolo Bonzini |
Subject: |
Re: [Help-smalltalk] _gst_invalidate_method_cache and _gst_reset_inline_caches |
Date: |
Sat, 21 Dec 2013 21:38:26 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 21/12/2013 20:22, Holger Hans Peter Freyther ha scritto:
> Removing of calls:
> 1.) I think we can safely remove the flush from the call-in process
> creation. This code has been there since the initial import.
It's possible that it is a relic dating back to before the introduction
of MethodDictionary.
> 2.) I think we can remove the invalidate from install_method in case
> the kernel is initialized. In that case we will use >>#at:put: to
> add the method that will already end in a flushCache.
Interesting.
> MethodDictionary>>#select: will create a new MethodDictionary that
> will flush the cache when it is populated. It is wasteful and we could
> avoid this. It will only benefit VisualGST.
I think the species of MethodDictionary should be LookupTable?
Paolo
>
>
> Most inline caches are in-active (okay creating a VM that has both the
> jit and interpreter in one is another topic). The ideas we have talked
> about so far are:
>
> * OpenMP to make the invalidate spread across different cores
> * Add a global version to the IC. So the fast path would have an
> additional load, compare, branch.
> * Create a list or a flat array (and if more than 1024 entries) and
> add active entries there. So this would create additional calls
> on the hot path as well.
>
>
> comments?
>
> holger
>
> _______________________________________________
> help-smalltalk mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/help-smalltalk
>