RESOLVED FIXED 185287
DFG AI should have O(1) clobbering
https://bugs.webkit.org/show_bug.cgi?id=185287
Summary DFG AI should have O(1) clobbering
Filip Pizlo
Reported 2018-05-03 19:43:05 PDT
Patch forthcoming.
Attachments
work in progress (13.23 KB, patch)
2018-05-03 19:43 PDT, Filip Pizlo
no flags
more (39.41 KB, patch)
2018-05-04 18:50 PDT, Filip Pizlo
no flags
more (60.12 KB, patch)
2018-05-04 18:53 PDT, Filip Pizlo
no flags
more (70.34 KB, patch)
2018-05-05 11:15 PDT, Filip Pizlo
ews-watchlist: commit-queue-
the patch (114.78 KB, patch)
2018-05-05 18:08 PDT, Filip Pizlo
no flags
the patch (114.76 KB, patch)
2018-05-05 18:09 PDT, Filip Pizlo
no flags
the patch (114.71 KB, patch)
2018-05-05 18:25 PDT, Filip Pizlo
no flags
the patch (115.35 KB, patch)
2018-05-06 10:29 PDT, Filip Pizlo
saam: review+
Filip Pizlo
Comment 1 2018-05-03 19:43:30 PDT
Created attachment 339509 [details] work in progress
Filip Pizlo
Comment 3 2018-05-04 18:50:14 PDT
Filip Pizlo
Comment 4 2018-05-04 18:53:49 PDT
Filip Pizlo
Comment 5 2018-05-05 11:15:07 PDT
EWS Watchlist
Comment 6 2018-05-05 11:16:45 PDT
Attachment 339650 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1092: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 19 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 7 2018-05-05 12:28:12 PDT
Comment on attachment 339650 [details] more Attachment 339650 [details] did not pass jsc-ews (mac): Output: http://webkit-queues.webkit.org/results/7578343 New failing tests: v8-v6/v8-deltablue.js.ftl-eager v8-v6/v8-deltablue.js.ftl-no-cjit-b3o1 stress/v8-deltablue-strict.js.ftl-eager microbenchmarks/deltablue-for-of.js.ftl-eager microbenchmarks/deltablue-for-of.js.ftl-no-cjit-b3o1
Filip Pizlo
Comment 8 2018-05-05 17:51:26 PDT
An improved version of this is starting to pass tests and be a compile time speed-up.
Filip Pizlo
Comment 9 2018-05-05 18:08:11 PDT
Created attachment 339661 [details] the patch
Filip Pizlo
Comment 10 2018-05-05 18:09:01 PDT
Created attachment 339662 [details] the patch
Filip Pizlo
Comment 11 2018-05-05 18:25:38 PDT
Created attachment 339663 [details] the patch
EWS Watchlist
Comment 12 2018-05-05 18:27:45 PDT
Attachment 339663 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1092: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 20 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 13 2018-05-06 10:29:12 PDT
Created attachment 339687 [details] the patch
EWS Watchlist
Comment 14 2018-05-06 10:31:07 PDT
Attachment 339687 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1092: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
Saam Barati
Comment 15 2018-05-07 16:00:02 PDT
Comment on attachment 339687 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=339687&action=review r=me > Source/JavaScriptCore/dfg/DFGAbstractValue.h:409 > + // FIXME: Explain this. (OOPS!!) oops > Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.h:55 > + ALWAYS_INLINE AbstractValue& forNode(Edge edge) Why doesn't this need to fastForward as well?
Filip Pizlo
Comment 16 2018-05-07 17:11:59 PDT
(In reply to Saam Barati from comment #15) > Comment on attachment 339687 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=339687&action=review > > r=me > > > Source/JavaScriptCore/dfg/DFGAbstractValue.h:409 > > + // FIXME: Explain this. (OOPS!!) > > oops > > > Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.h:55 > > + ALWAYS_INLINE AbstractValue& forNode(Edge edge) > > Why doesn't this need to fastForward as well? Because it calls forNode(NodeProjection), and that one already fastForwards: ALWAYS_INLINE AbstractValue& forNode(NodeFlowProjection node) { return fastForward(m_abstractValues.at(node)); } ALWAYS_INLINE AbstractValue& forNode(Edge edge) { return forNode(edge.node()); }
Saam Barati
Comment 17 2018-05-07 17:42:28 PDT
(In reply to Filip Pizlo from comment #16) > (In reply to Saam Barati from comment #15) > > Comment on attachment 339687 [details] > > the patch > > > > View in context: > > https://bugs.webkit.org/attachment.cgi?id=339687&action=review > > > > r=me > > > > > Source/JavaScriptCore/dfg/DFGAbstractValue.h:409 > > > + // FIXME: Explain this. (OOPS!!) > > > > oops > > > > > Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.h:55 > > > + ALWAYS_INLINE AbstractValue& forNode(Edge edge) > > > > Why doesn't this need to fastForward as well? > > Because it calls forNode(NodeProjection), and that one already fastForwards: > > ALWAYS_INLINE AbstractValue& forNode(NodeFlowProjection node) > { > return fastForward(m_abstractValues.at(node)); > } > > ALWAYS_INLINE AbstractValue& forNode(Edge edge) > { > return forNode(edge.node()); > } Makes sense, I wasn't considering this that NodeFlowProjection had an implicit constructor.
Filip Pizlo
Comment 18 2018-05-07 18:05:39 PDT
Radar WebKit Bug Importer
Comment 19 2018-05-07 18:06:22 PDT
Note You need to log in before you can comment on or make changes to this bug.