[V8] Vastly simplify V8GCController's NodeVisitor
authorabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 22 Oct 2012 18:50:11 +0000 (18:50 +0000)
committerabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 22 Oct 2012 18:50:11 +0000 (18:50 +0000)
commit7c27c4712ab12da3b22e7651d2e18e293db364ca
tree19b6aaed98a412d0c04cd10bf74b997fdb0b4f96
parent4f0a764507af139edb260458847a01190cc36083
[V8] Vastly simplify V8GCController's NodeVisitor
https://bugs.webkit.org/show_bug.cgi?id=99884

Reviewed by Kentaro Hara.

PerformanceTests:

Adds some performance tests for the garbage collector.

* Bindings/gc-forest.html: Added.
* Bindings/gc-mini-tree.html: Added.
* Bindings/gc-tree.html: Added.

Source/WebCore:

NodeVisitor was vastly more complicated than necessary.

This patch improve performance on these new gc benchmarks:

gc-forest: 1.14% better
gc-mini-tree: 5.09% better
gc-tree: 4.60% better

* bindings/v8/V8GCController.cpp:
(WebCore::ObjectVisitor::visitDOMWrapper):
(WebCore::addImplicitReferencesForNodeWithEventListeners):
(WebCore::rootForGC):
(WebCore::NodeVisitor::visitDOMWrapper):
(WebCore::NodeVisitor::applyGrouping):
(NodeVisitor):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132114 268f45cc-cd09-0410-ab3c-d52691b4dbfc
PerformanceTests/Bindings/gc-forest.html [new file with mode: 0644]
PerformanceTests/Bindings/gc-mini-tree.html [new file with mode: 0644]
PerformanceTests/Bindings/gc-tree.html [new file with mode: 0644]
PerformanceTests/ChangeLog
Source/WebCore/ChangeLog
Source/WebCore/bindings/v8/V8GCController.cpp