Bug 128443

Summary: Don't throw away code if there is code on the worklists
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, ggaren, mark.lam, mhahnenberg, mmirman, msaboff, nrotem, oliver, sam, zalan
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 128291    
Attachments:
Description Flags
the patch joepeck: review+

Description Filip Pizlo 2014-02-07 22:26:36 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2014-02-07 22:28:15 PST
Created attachment 223551 [details]
the patch
Comment 2 Joseph Pecoraro 2014-02-07 22:35:41 PST
Comment on attachment 223551 [details]
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=223551&action=review

r=me

> Source/JavaScriptCore/dfg/DFGWorklist.h:73
> +    bool isActive() { return !!m_plans.size(); }

Nit: const
Comment 3 Filip Pizlo 2014-02-07 22:51:33 PST
Landed in http://trac.webkit.org/changeset/163695
Comment 4 Geoffrey Garen 2014-02-07 23:03:00 PST
Comment on attachment 223551 [details]
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=223551&action=review

> Source/JavaScriptCore/heap/Heap.cpp:738
> +    // If we have things on any worklist, then don't delete code. This is kind of
> +    // a weird heuristic. It's definitely not safe to throw away code that is on
> +    // the worklist. But this change was made in a hurry so we just avoid throwing

What about when we throw away code to enable the debugger?
Comment 5 Filip Pizlo 2014-02-07 23:03:29 PST
(In reply to comment #4)
> (From update of attachment 223551 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=223551&action=review
> 
> > Source/JavaScriptCore/heap/Heap.cpp:738
> > +    // If we have things on any worklist, then don't delete code. This is kind of
> > +    // a weird heuristic. It's definitely not safe to throw away code that is on
> > +    // the worklist. But this change was made in a hurry so we just avoid throwing
> 
> What about when we throw away code to enable the debugger?

That's a different code path.  That code path first waits for the worklist to finish.