Bug 141369 - DFG should only have two mechanisms for describing effectfulness of nodes; previously there were three
Summary: DFG should only have two mechanisms for describing effectfulness of nodes; pr...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-08 11:00 PST by Filip Pizlo
Modified: 2015-02-09 11:58 PST (History)
11 users (show)

See Also:


Attachments
the patch (24.57 KB, patch)
2015-02-08 11:05 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (24.57 KB, patch)
2015-02-08 11:28 PST, Filip Pizlo
msaboff: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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