Closed
Bug 848449
Opened 11 years ago
Closed 11 years ago
GC: Remove AutoAssertNoGC and AssertCanGC
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla22
People
(Reporter: jonco, Assigned: jonco)
References
Details
Attachments
(3 files)
81.43 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
81.11 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
11.33 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
No description provided.
Assignee | ||
Comment 1•11 years ago
|
||
Attachment #721792 -
Flags: review?(terrence)
Assignee | ||
Comment 2•11 years ago
|
||
Attachment #721793 -
Flags: review?(terrence)
Assignee | ||
Comment 3•11 years ago
|
||
Attachment #721795 -
Flags: review?(terrence)
Assignee | ||
Comment 4•11 years ago
|
||
This improves time taken to run jittests and jstests by roughly 13%. I still like the idea of having the assertions though.
Comment 5•11 years ago
|
||
Comment on attachment 721792 [details] [diff] [review] 1 - Remove use of AutoAssertNoGC Review of attachment 721792 [details] [diff] [review]: ----------------------------------------------------------------- Thanks for doing these! ::: js/src/jsstr.cpp @@ -2621,1 @@ > Remove the line after as well.
Attachment #721792 -
Flags: review?(terrence) → review+
Updated•11 years ago
|
Attachment #721793 -
Flags: review?(terrence) → review+
Comment 6•11 years ago
|
||
Comment on attachment 721795 [details] [diff] [review] 3 - Remove AutoAssertNoGC and AssertCanGC Review of attachment 721795 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/jscntxt.h @@ +463,5 @@ > SavedGCRoot(void *thing, JSGCTraceKind kind) : thing(thing), kind(kind) {} > }; > js::Vector<SavedGCRoot, 0, js::SystemAllocPolicy> gcSavedRoots; > > bool gcRelaxRootChecks; It looks as if the relaxRootsChecks infrastructure is also dead now. Please open a new bug to remove it.
Attachment #721795 -
Flags: review?(terrence) → review+
Comment 7•11 years ago
|
||
Comment on attachment 721792 [details] [diff] [review] 1 - Remove use of AutoAssertNoGC Review of attachment 721792 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/jsgc.cpp @@ -4329,5 @@ > GCCycle(JSRuntime *rt, bool incremental, int64_t budget, JSGCInvocationKind gckind, gcreason::Reason reason) > { > - /* If we attempt to invoke the GC while we are running in the GC, assert. */ > - AutoAssertNoGC nogc; > - We should be able to do JS_ASSERT(!rt->heapIsBusy()); to keep an equivalent assertion.
Assignee | ||
Comment 8•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/f079105a0966 https://hg.mozilla.org/integration/mozilla-inbound/rev/d01a2a30d626 https://hg.mozilla.org/integration/mozilla-inbound/rev/1768185637fd
Comment 9•11 years ago
|
||
Push backed out for Window mochitest-chrome crashes: https://tbpl.mozilla.org/?tree=Mozilla-Inbound&rev=1768185637fd https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?changeset=7f0a4a8f2013
Assignee | ||
Comment 10•11 years ago
|
||
Relanding: https://hg.mozilla.org/integration/mozilla-inbound/rev/05113da6e613 https://hg.mozilla.org/integration/mozilla-inbound/rev/59f5f4b017ed https://hg.mozilla.org/integration/mozilla-inbound/rev/908a5ff75e5e
Comment 11•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/05113da6e613 https://hg.mozilla.org/mozilla-central/rev/59f5f4b017ed https://hg.mozilla.org/mozilla-central/rev/908a5ff75e5e
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla22
Comment 12•11 years ago
|
||
Oh. Were these no longer useful?
Comment 13•11 years ago
|
||
Pros of having them: In source documentation of GC patterns. Runtime assertions of GC safety. Cons of having them: Maintenance. Weakness of the assertions -- dependent on AssertCanGC coverage. Runtime cost -- Was eating 5-10% of our time in debug builds even with our spotty coverage. Now that we have mrgiggles, the cons outweigh the pros. Except for Steve, who has to maintain mrgiggles, but that should already be fairly well automated.
Comment 14•11 years ago
|
||
Ah, but who has to maintain Steve?
Comment 15•11 years ago
|
||
I should also point out that basically all of the AssertCanGC under Ion were a total lie after Brian implemented SuppressGC.
You need to log in
before you can comment on or make changes to this bug.
Description
•