On Mon, Sep 21, 2015 at 4:53 PM, Ignacio Queralt <[email protected]>
wrote:

> [snip]
>
> My questions would be:
> 1) Where are the transitions between Uninitialized, and Monomorphic of the
> newadd function, for instance? I read that there are some Uninitialized ->
> Smi, but I can't see the relation in the output to my function newadd().
>
We don't use the term "monomorphic" for binary ops, only for loads and
stores, so the BinaryOpIC transitions you're seeing in "newadd" are exactly
what's expected to happen.

> 2) How does the IC technique works here? I've seen in the code, in
> runtime-profiler.cc that here's where the OptimizeNow() function is called,
> but I don't understand how many times or why is it called. Does anyone here
> knows how it works?
>
The runtime profiler has nothing to do with ICs. (Well, almost nothing, it
uses some hints from the IC system to make its decisions, but is not
required for the IC system to work.) An IC misses when it sees a new type,
then the code in src/ic/ic.cc patches it to fit the new types.

> 3) What does LoadIC, StoreIC, CompareIC and BinaryOpcIC mean?
>
A LoadIC handles loads, e.g. "foo.bar". A StoreIC handles stores, e.g.
"foo.bar = 1". A Compare IC handles comparisons, e.g. "foo == bar".
Finally, a BinaryOpIC handles binary ops (hard to guess, eh?), e.g. "foo +
bar".

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" 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.

Reply via email to