RESOLVED FIXED 163900
[DOMJIT] Tell IDL result type to DFG to drop type checks in AI
https://bugs.webkit.org/show_bug.cgi?id=163900
Summary [DOMJIT] Tell IDL result type to DFG to drop type checks in AI
Yusuke Suzuki
Reported 2016-10-24 10:29:47 PDT
We use heap prediction in propagation phase since it is more accurate, but we can use IDL result type in AI to drop type checks.
Attachments
Patch (87.96 KB, patch)
2016-10-25 15:30 PDT, Yusuke Suzuki
no flags
Patch (91.81 KB, patch)
2016-10-25 15:44 PDT, Yusuke Suzuki
sam: review+
Yusuke Suzuki
Comment 1 2016-10-25 15:30:47 PDT
Yusuke Suzuki
Comment 2 2016-10-25 15:44:37 PDT
Yusuke Suzuki
Comment 3 2016-10-25 15:44:57 PDT
Added more tests.
Sam Weinig
Comment 4 2016-10-25 22:30:03 PDT
Comment on attachment 292837 [details] Patch Awesome!
Yusuke Suzuki
Comment 5 2016-10-25 22:45:58 PDT
Yusuke Suzuki
Comment 6 2016-10-25 22:46:20 PDT
Thanks!
Saam Barati
Comment 7 2016-10-26 00:17:30 PDT
Comment on attachment 292837 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=292837&action=review > Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2506 > + "long" => "SpecInt32Only", This shouldn't be SpecBytecodeNumber?
Yusuke Suzuki
Comment 8 2016-10-26 02:12:41 PDT
Comment on attachment 292837 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=292837&action=review >> Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2506 >> + "long" => "SpecInt32Only", > > This shouldn't be SpecBytecodeNumber? Do you mean this `long` exceeds the range of SpecInt32Only? According to the WebIDL spec, the long is defined as a range of int32_t. https://www.w3.org/TR/WebIDL/#idl-long
Saam Barati
Comment 9 2016-10-28 02:06:00 PDT
(In reply to comment #8) > Comment on attachment 292837 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=292837&action=review > > >> Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2506 > >> + "long" => "SpecInt32Only", > > > > This shouldn't be SpecBytecodeNumber? > > Do you mean this `long` exceeds the range of SpecInt32Only? > According to the WebIDL spec, the long is defined as a range of int32_t. > https://www.w3.org/TR/WebIDL/#idl-long Yeah I was worried about that but if it's int32 then we're fine :)
Note You need to log in before you can comment on or make changes to this bug.