WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 179912
[DFG] Add NormalizeMapKey DFG IR
https://bugs.webkit.org/show_bug.cgi?id=179912
Summary
[DFG] Add NormalizeMapKey DFG IR
Yusuke Suzuki
Reported
2017-11-21 02:34:36 PST
...
Attachments
Patch
(34.18 KB, patch)
2017-11-21 08:06 PST
,
Yusuke Suzuki
no flags
Details
Formatted Diff
Diff
Patch
(34.19 KB, patch)
2017-11-21 09:23 PST
,
Yusuke Suzuki
saam
: review+
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Yusuke Suzuki
Comment 1
2017-11-21 08:06:09 PST
Created
attachment 327410
[details]
Patch
EWS Watchlist
Comment 2
2017-11-21 08:51:22 PST
Comment on
attachment 327410
[details]
Patch
Attachment 327410
[details]
did not pass jsc-ews (mac): Output:
http://webkit-queues.webkit.org/results/5321124
New failing tests: stress/proxy-own-keys.js.dfg-eager-no-cjit-validate stress/proxy-own-keys.js.ftl-eager-no-cjit stress/proxy-own-keys.js.ftl-eager
Yusuke Suzuki
Comment 3
2017-11-21 09:23:27 PST
Created
attachment 327417
[details]
Patch
Saam Barati
Comment 4
2017-11-26 17:20:16 PST
Comment on
attachment 327417
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=327417&action=review
r=me
> Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1115 > + forNode(node).makeHeapTop();
Is it worth doing constant folding here based on child1's type?
> Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5195 > + // Give key and bucket's key are already normalized. So if 64-bit compare fails and one is not a cell, they're definitely not equal.
"Give key and bucket's key" => "The input key and bucket's key"
> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8585 > + m_out.appendTo(passThroughCase, continuation); > + ValueFromBlock fastResult = m_out.anchor(key); > + m_out.jump(continuation);
This doesn't need to be a block. You can make the upsilon at the top, and make everything that jumps to "passThroughCase" jump to continuation.
Yusuke Suzuki
Comment 5
2017-11-26 17:31:24 PST
Comment on
attachment 327417
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=327417&action=review
Thank you for your review!
>> Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1115 >> + forNode(node).makeHeapTop(); > > Is it worth doing constant folding here based on child1's type?
Sounds nice. I think large part of NormalizeMapKey will be converted to Identity in fixup phase. But mixed typed case is not handled well in fixup phase. Introducing constant foldoing here could increase the coverage.
>> Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5195 >> + // Give key and bucket's key are already normalized. So if 64-bit compare fails and one is not a cell, they're definitely not equal. > > "Give key and bucket's key" => "The input key and bucket's key"
Thanks, fixed.
>> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8585 >> + m_out.jump(continuation); > > This doesn't need to be a block. You can make the upsilon at the top, and make everything that jumps to "passThroughCase" jump to continuation.
Sounds nice. Fixed.
Yusuke Suzuki
Comment 6
2017-11-26 23:51:22 PST
Committed
r225154
: <
https://trac.webkit.org/changeset/225154
>
Radar WebKit Bug Importer
Comment 7
2017-11-26 23:52:29 PST
<
rdar://problem/35693381
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug