Bug 141369

Summary: DFG should only have two mechanisms for describing effectfulness of nodes; previously there were three
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, commit-queue, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, saam, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
the patch
none
the patch msaboff: review+

Description Filip Pizlo 2015-02-08 11:00:06 PST
We previously used the NodeMightClobber and NodeClobbersWorld NodeFlags to describe effectfulness.  Starting over a year ago, we introduced a more powerful mechanism - the DFG::clobberize() function.  Now we only have one remaining client of the old NodeFlags, and everyone else uses DFG::clobberize().  We should get rid of those NodeFlags and finally switch everyone over to DFG::clobberize().  This means that going forward, there will only be two places where the effectfulness of a node has to be described:

- DFG::clobberize()
- DFG::AbstractInterpreter

Unfortunately, the AbstractInterpreter has to duplicate the knowledge of effects, mostly because of efficiency concerns: calling into clobberize() from the abstract interpreter would slow things down too much.  Also, AbstractInterpreter might still have a more precise model of effects in some places, particularly when dealing with structure transitions.
Comment 1 Filip Pizlo 2015-02-08 11:05:00 PST
Created attachment 246243 [details]
the patch
Comment 2 WebKit Commit Bot 2015-02-08 11:07:12 PST
Attachment 246243 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGClobberize.h:937:  The parameter name "graph" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGClobberize.h:937:  The parameter name "node" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:64:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Filip Pizlo 2015-02-08 11:12:13 PST
(In reply to comment #2)
> Attachment 246243 [details] did not pass style-queue:
> 
> 
> ERROR: Source/JavaScriptCore/dfg/DFGClobberize.h:937:  The parameter name
> "graph" adds no information, so it should be removed. 
> [readability/parameter_name] [5]
> ERROR: Source/JavaScriptCore/dfg/DFGClobberize.h:937:  The parameter name
> "node" adds no information, so it should be removed. 
> [readability/parameter_name] [5]

Fixed locally.

> ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:64:  Place brace on its
> own line for function definitions.  [whitespace/braces] [4]
> Total errors found: 3 in 8 files

No, that's not our style for lambdas.

> 
> 
> If any of these errors are false positives, please file a bug against
> check-webkit-style.
Comment 4 Filip Pizlo 2015-02-08 11:28:50 PST
Created attachment 246245 [details]
the patch
Comment 5 WebKit Commit Bot 2015-02-08 11:31:17 PST
Attachment 246245 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:64:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 6 Michael Saboff 2015-02-09 10:52:51 PST
Comment on attachment 246245 [details]
the patch

r=me
Comment 7 Filip Pizlo 2015-02-09 11:58:06 PST
Landed in http://trac.webkit.org/changeset/179840