WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
129741
JSCell::m_gcData should encode its information differently
https://bugs.webkit.org/show_bug.cgi?id=129741
Summary
JSCell::m_gcData should encode its information differently
Mark Hahnenberg
Reported
2014-03-05 08:24:40 PST
We want to keep track of three states for an object: (1) Not marked (which implies not in the remembered set) (2) Marked but not in the remembered set (3) Marked and in the remembered set Currently we only indicate marked vs. not marked in JSCell::m_gcData. During a write barrier, we only want to take the slow path if the object being stored to is in state (2). We'd like to make the test for state (2) as fast as possible, which probably means making it a compare against 0.
Attachments
Patch
(22.91 KB, patch)
2014-03-05 12:11 PST
,
Mark Hahnenberg
no flags
Details
Formatted Diff
Diff
Patch
(22.85 KB, patch)
2014-03-05 12:18 PST
,
Mark Hahnenberg
no flags
Details
Formatted Diff
Diff
Patch
(22.91 KB, patch)
2014-03-05 12:29 PST
,
Mark Hahnenberg
ggaren
: review+
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Mark Hahnenberg
Comment 1
2014-03-05 12:11:52 PST
Created
attachment 225902
[details]
Patch
Mark Hahnenberg
Comment 2
2014-03-05 12:18:53 PST
Created
attachment 225903
[details]
Patch
Mark Hahnenberg
Comment 3
2014-03-05 12:29:01 PST
Created
attachment 225905
[details]
Patch
Geoffrey Garen
Comment 4
2014-03-05 13:07:24 PST
Comment on
attachment 225905
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=225905&action=review
r=me Is speedup?
> Source/JavaScriptCore/runtime/JSCell.h:150 > + void mark() { m_gcData = Marked; }
I would call this "setMarked".
> Source/JavaScriptCore/runtime/JSCell.h:151 > + void remember() { ASSERT(m_gcData == Marked); m_gcData = MarkedAndRemembered; }
"setRemembered(true)"
> Source/JavaScriptCore/runtime/JSCell.h:152 > + void forget() { ASSERT(m_gcData == MarkedAndRemembered); m_gcData = Marked; }
"setRemembered(false)"
Mark Hahnenberg
Comment 5
2014-03-05 14:33:09 PST
(In reply to
comment #4
)
> (From update of
attachment 225905
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=225905&action=review
> > r=me > > Is speedup?
No visible effect on benchmarks.
Mark Hahnenberg
Comment 6
2014-03-05 15:27:43 PST
Committed
r165135
: <
http://trac.webkit.org/changeset/165135
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug