initial comments
https://chromiumcodereview.appspot.com/9837005/diff/1/src/heap.cc File src/heap.cc (right): https://chromiumcodereview.appspot.com/9837005/diff/1/src/heap.cc#newcode4854 src/heap.cc:4854: NotifyGlobalContextDisposed(); Why do we signal context disposal here and abort incremental marking? What kind of hint Chrome passes to us? https://chromiumcodereview.appspot.com/9837005/diff/1/src/incremental-marking.cc File src/incremental-marking.cc (right): https://chromiumcodereview.appspot.com/9837005/diff/1/src/incremental-marking.cc#newcode185 src/incremental-marking.cc:185: IC::Clear(rinfo->pc()); I would expect we reset counter to be equal to heap_->global_context_disposed_count() otherwise we would flush again on the next GC even if the context was not disposed. surely reset should not happen in the place but at the place which calls visitor. https://chromiumcodereview.appspot.com/9837005/diff/1/src/mark-compact.cc File src/mark-compact.cc (right): https://chromiumcodereview.appspot.com/9837005/diff/1/src/mark-compact.cc#newcode1055 src/mark-compact.cc:1055: IC::Clear(rinfo->pc()); I would expect we reset counter to be equal to heap_->global_context_disposed_count() otherwise we would flush again on the next GC even if the context was not disposed. surely reset should not happen in the place but at the place which calls visitor. https://chromiumcodereview.appspot.com/9837005/diff/1/src/mark-compact.cc#newcode1412 src/mark-compact.cc:1412: shared->set_context_disposed_count(heap->global_context_disposed_count()); I suppose this piece of code is here to prevent optimizer from optimizing to early. There are heuristics that try to decide whether function should be optimized based on the amount of initialized ICs. Why do we need to reset opt_count separately? I would expect initialized ICs heuristic to cover it. Also we were discussing with Jakob if we should move opt_count to the code object itself. This would allow to easily adjust it when we clear ICs instead of doing special (spooky) handling of shared function info. https://chromiumcodereview.appspot.com/9837005/diff/1/src/objects.h File src/objects.h (right): https://chromiumcodereview.appspot.com/9837005/diff/1/src/objects.h#newcode4436 src/objects.h:4436: static const int kFlagsOffset = kContextDisposedCountOffset + kIntSize; I wonder how big our Code object will become with an addition of this one field. I think it will grow by 50% because of the alignment. https://chromiumcodereview.appspot.com/9837005/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
