Statically find rooting hazards and unnecessary roots

RESOLVED FIXED in mozilla29

Status

()

Core
JavaScript Engine
RESOLVED FIXED
5 years ago
4 years ago

People

(Reporter: bhackett, Unassigned)

Tracking

Other Branch
mozilla29
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

5 years ago
With an analysis to find the set of functions which can GC (bug 829243), it is not too hard to automatically find unrooted GC thing pointers or Values which are held live across a call which can GC, or to find rooted things which are not held live across such a call (and for which the root adds unnecessary overhead).

I wrote some more scripts to find variables fitting either of these categories, building on top of bug 829243 and also stored at https://github.com/bhackett1024/gcAnalysis.  A list of all the reports is at:

http://people.mozilla.org/~bhackett/rootingHazards.html

This currently reports 851 rooting hazards in the shell (though 107 are in jsxml.cpp and can be ignored), and 171 unnecessary roots.  These reports are still preliminary and will have a fair number of false positives, will be working to improve this.  For usability the number of false positives needs to be zero.
(Reporter)

Updated

5 years ago
Duplicate of this bug: 658676
(Reporter)

Updated

5 years ago
Depends on: 831822
Depends on: 831961

Updated

5 years ago
Depends on: 833396
Depends on: 895647
Depends on: 895654
Depends on: 898554
Blocks: 834909
Blocks: 898606
No longer blocks: 753203
No longer blocks: 898606
OS: Mac OS X → All
Hardware: x86 → All
No longer depends on: 898554
\o/
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
You need to log in before you can comment on or make changes to this bug.