OK, I think this is really ready for review now :-)
Review guidance:
The most important changes are in runtime-profiler.cc, with corresponding
updates to runtime-profiler.h.
To enable the new optimization decisions, a bunch of changes were necessary
elsewhere:
1.) Track profiler ticks per function, meaning "how often has the profiler
seen
this function on the stack since its last IC patching?" -->
code-stubs-<ARCH>.cc, heap.cc, ic-inl.h, objects.h, objects-inl.h
2.) Make primitive functions trigger their own optimization. For that, they
need
to keep track of how often they've been called. --> full-codegen-<ARCH>.cc,
heap.cc, objects.h, objects-inl.h
3.) Inform the profiler about code generation events --> full-codegen.cc
4.) The GC now clears ICs only if Context::Exit() was recently executed. -->
api.cc, isolate.{h,cc}, mark-compact.cc
5.) Variable tick interval for ARM and MIPS --> log.{h,cc}, platform.h,
platform-<PLATFORM>.cc
In ic.cc, there's another change that's not really related to the rest: If
we
see a COW array the very first time after an KeyedStoreIC miss, use the
generic
stub immediately.
http://codereview.chromium.org/8700008/
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev