Thx Toon, I have a bit of conversation here..
--Michael
https://codereview.chromium.org/196103005/diff/30001/src/ia32/code-stubs-ia32.cc
File src/ia32/code-stubs-ia32.cc (right):
https://codereview.chromium.org/196103005/diff/30001/src/ia32/code-stubs-ia32.cc#newcode2478
src/ia32/code-stubs-ia32.cc:2478: __ cmp(edi, FieldOperand(ecx,
FixedArray::OffsetOfElementAt(0)));
On 2014/03/24 13:24:52, Toon Verwaest wrote:
Don't you know which function this is at compile time? Can't you
inline the
pointer to the function in the code, rather than forcing each IC to
track the
pointer in the type feedback array?
Even if it's context specific, we can probably load it from the
context?
If so, we don't need the fixed array of size 2, but can just have the
allocation
site and nothing else stored in the feedback vector.
I thought about that, but decided to keep the vector for now to
illustrate a general idea: 1 slot to protect monomorphism, the other
slot to hold the feedback. Because if Array is the only consumer of
custom feedback like this then fine, we can know that an AllocationSite
means it's an array call. But what about if it's math.abs or something
(I don't know what Sven would need to store). I guess we can interpret
what we find based on the monomorphic feedback from the LoadIC before
the CallIC?
https://codereview.chromium.org/196103005/diff/30001/src/ic.h
File src/ic.h (right):
https://codereview.chromium.org/196103005/diff/30001/src/ic.h#newcode312
src/ic.h:312: enum StubType { GENERIC, MONOMORPHIC, MONOMORPHIC_ARRAY };
On 2014/03/24 13:24:52, Toon Verwaest wrote:
Ugh, do we need to add new stub types for each custom handler?
I see that we could recognize a custom handler in the miss case based on
the contents of the FeedbackVector[slot]...
But I'm not sure, how would I distinguish among different CallICStubs
without using this bit?
https://codereview.chromium.org/196103005/
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.