Closed Bug 1658268 Opened 4 years ago Closed 4 years ago

Optimise Boolean in Cache and Warp

Categories

(Core :: JavaScript Engine: JIT, task)

task

Tracking

()

RESOLVED FIXED
81 Branch
Tracking Status
firefox81 --- fixed

People

(Reporter: anba, Assigned: anba)

References

Details

Attachments

(1 file)

No description provided.

The CacheIR implementation uses the new LoadValueTruthyResult op instead of
the existing LoadThingTruthyResult ops to mirror how Warp implements boolean
coercion: Warp doesn't use ICs but instead uses MNot resp. MTest with Value
typed inputs.
Mirroring this approach avoids to have (from the user POV) strange performance
differences where for example using if (Boolean(v)) can be faster than just
if (v), when v is Value-typed, but monomorphic.

Pushed by csabou@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/004aa4224a84 Optimise Boolean in CacheIR and Warp. r=jandem

Backed out changeset 004aa4224a84 (bug 1658268) for test_ext_test.html failures

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&selectedTaskRun=LXQTD9uLRieB1nBNuaLqsw.0&searchStr=mochitest%2Cplain&fromchange=2dc89b5597d863cc4962891a4d2e6e13c14e4e7c&tochange=9625cc6bcea625824f79f71d198508c40d251a3b

Backout link: https://hg.mozilla.org/integration/autoland/rev/9625cc6bcea625824f79f71d198508c40d251a3b

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=312830826&repo=autoland&lineNumber=10031

[task 2020-08-12T14:33:23.996Z] 14:33:23     INFO - TEST-START | toolkit/components/extensions/test/mochitest/test_ext_test.html
[task 2020-08-12T14:33:24.056Z] 14:33:24     INFO - GECKO(8180) | Console message: [JavaScript Warning: "The character encoding of a framed document was not declared. The document may appear different if viewed without the document framing it." {file: "http://mochi.test:8888/tests/toolkit/components/extensions/test/mochitest/test_ext_test.html" line: 0}]
[task 2020-08-12T14:33:24.066Z] 14:33:24     INFO - GECKO(8180) | Console message: Warning: attempting to write 8787 bytes to preference extensions.webextensions.uuids. This is bad for general performance and memory usage. Such an amount of data should rather be written to an external file. This preference will not be sent to any content processes.
[task 2020-08-12T14:33:24.110Z] 14:33:24     INFO - GECKO(8180) | Console message: [JavaScript Warning: "XrayWrapper denied access to property "toString" (reason: value is callable). See https://developer.mozilla.org/en-US/docs/Xray_vision for more information. Note that only the first denied property access from a given global object will be reported." {file: "chrome://extensions/content/child/ext-test.js" line: 176}]
[task 2020-08-12T14:33:24.129Z] 14:33:24     INFO - TEST-INFO | started process screenshot
[task 2020-08-12T14:33:24.193Z] 14:33:24     INFO - TEST-INFO | screenshot: exit 0
[task 2020-08-12T14:33:24.194Z] 14:33:24     INFO - Buffered messages logged at 14:33:24
[task 2020-08-12T14:33:24.194Z] 14:33:24     INFO - add_task | Entering test test_test_in_background
[task 2020-08-12T14:33:24.195Z] 14:33:24     INFO - Received test result: ["test-done",true,"dot notifyPass"]
[task 2020-08-12T14:33:24.195Z] 14:33:24     INFO - Received test result: ["test-done",false,"dot notifyFail"]
[task 2020-08-12T14:33:24.195Z] 14:33:24     INFO - Received test result: ["test-log",true,"dot log"]
[task 2020-08-12T14:33:24.196Z] 14:33:24     INFO - Received test result: ["test-result",false,"dot fail"]
[task 2020-08-12T14:33:24.196Z] 14:33:24     INFO - Received test result: ["test-result",true,"dot succeed"]
[task 2020-08-12T14:33:24.197Z] 14:33:24     INFO - Received test result: ["test-result",true,"undefined"]
[task 2020-08-12T14:33:24.197Z] 14:33:24     INFO - Received test result: ["test-result",true,"undefined"]
[task 2020-08-12T14:33:24.198Z] 14:33:24     INFO - Received test result: ["test-eq",true,"undefined","",""]
[task 2020-08-12T14:33:24.198Z] 14:33:24     INFO - Received test result: ["test-result",true,"Object truthy"]
[task 2020-08-12T14:33:24.198Z] 14:33:24     INFO - Received test result: ["test-result",false,"Array truthy"]
[task 2020-08-12T14:33:24.199Z] 14:33:24     INFO - Received test result: ["test-result",false,"Element truthy"]
[task 2020-08-12T14:33:24.199Z] 14:33:24     INFO - Received test result: ["test-result",true,"True truthy"]
[task 2020-08-12T14:33:24.200Z] 14:33:24     INFO - Received test result: ["test-result",false,"False truthy"]
[task 2020-08-12T14:33:24.200Z] 14:33:24     INFO - Received test result: ["test-result",false,"Null truthy"]
[task 2020-08-12T14:33:24.200Z] 14:33:24     INFO - Received test result: ["test-result",false,"Void truthy"]
[task 2020-08-12T14:33:24.201Z] 14:33:24     INFO - Received test result: ["test-result",false,"[object HTMLHtmlElement]"]
[task 2020-08-12T14:33:24.201Z] 14:33:24     INFO - Received test result: ["test-result",false,"Object falsey"]
[task 2020-08-12T14:33:24.202Z] 14:33:24     INFO - Received test result: ["test-result",false,"Array falsey"]
[task 2020-08-12T14:33:24.202Z] 14:33:24     INFO - Received test result: ["test-result",false,"Element falsey"]
[task 2020-08-12T14:33:24.203Z] 14:33:24     INFO - Received test result: ["test-result",false,"True falsey"]
[task 2020-08-12T14:33:24.203Z] 14:33:24     INFO - Received test result: ["test-result",true,"False falsey"]
[task 2020-08-12T14:33:24.203Z] 14:33:24     INFO - Received test result: ["test-result",true,"Null falsey"]
[task 2020-08-12T14:33:24.204Z] 14:33:24     INFO - Received test result: ["test-result",true,"Void falsey"]
[task 2020-08-12T14:33:24.204Z] 14:33:24     INFO - Received test result: ["test-result",false,"[object HTMLHeadElement]"]
[task 2020-08-12T14:33:24.205Z] 14:33:24     INFO - Received test result: ["test-eq",true,"Object equality","[object Object]","[object Object]"]
[task 2020-08-12T14:33:24.205Z] 14:33:24     INFO - Received test result: ["test-eq",true,"Array equality","",""]
[task 2020-08-12T14:33:24.206Z] 14:33:24     INFO - Received test result: ["test-eq",true,"Element equality","[object HTMLBodyElement]","[object HTMLBodyElement]"]
[task 2020-08-12T14:33:24.206Z] 14:33:24     INFO - Received test result: ["test-eq",true,"Null equality","null","null"]
[task 2020-08-12T14:33:24.207Z] 14:33:24     INFO - Received test result: ["test-eq",true,"Void equality","undefined","undefined"]
[task 2020-08-12T14:33:24.207Z] 14:33:24     INFO - Received test result: ["test-eq",false,"Object reference ineqality","[object Object]","[object Object] (different)"]
[task 2020-08-12T14:33:24.208Z] 14:33:24     INFO - Received test result: ["test-eq",false,"Array reference ineqality",""," (different)"]
[task 2020-08-12T14:33:24.208Z] 14:33:24     INFO - Received test result: ["test-eq",false,"Element ineqality","[object HTMLBodyElement]","[object HTMLBodyElement] (different)"]
[task 2020-08-12T14:33:24.209Z] 14:33:24     INFO - Received test result: ["test-eq",false,"Null and void ineqality","null","undefined"]
[task 2020-08-12T14:33:24.210Z] 14:33:24     INFO - Received test result: ["test-eq",false,"[object HTMLDivElement]","true","false"]
[task 2020-08-12T14:33:24.210Z] 14:33:24     INFO - Received test result: ["test-eq",true,"obj with dynamic toString()","[object Object]","[object Object]"]
[task 2020-08-12T14:33:24.210Z] 14:33:24     INFO - Received message: Ran test at ["moz-extension:"]
[task 2020-08-12T14:33:24.210Z] 14:33:24     INFO - Received message: This is the last browser.test call []
[task 2020-08-12T14:33:24.210Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (dot notifyPass) 
[task 2020-08-12T14:33:24.210Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (dot notifyFail) 
[task 2020-08-12T14:33:24.211Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (dot log) 
[task 2020-08-12T14:33:24.211Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (dot fail) 
[task 2020-08-12T14:33:24.211Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (dot succeed) 
[task 2020-08-12T14:33:24.211Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (undefined) 
[task 2020-08-12T14:33:24.211Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (undefined) 
[task 2020-08-12T14:33:24.211Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (undefined -  - ) 
[task 2020-08-12T14:33:24.211Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Object truthy) 
[task 2020-08-12T14:33:24.211Z] 14:33:24     INFO - Buffered messages finished
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO - TEST-UNEXPECTED-FAIL | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Array truthy) -     Structures begin differing at:
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO - got['1'] = false
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO - expected['1'] = true
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO - 
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO -     SimpleTest.isDeeply@SimpleTest/SimpleTest.js:2002:16
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO -     verifyTestResults/<@toolkit/components/extensions/test/mochitest/test_ext_test.html:150:13
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO -     verifyTestResults@toolkit/components/extensions/test/mochitest/test_ext_test.html:148:16
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO -     test_test_in_background@toolkit/components/extensions/test/mochitest/test_ext_test.html:163:20
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO - Not taking screenshot here: see the one that was previously logged
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO - TEST-UNEXPECTED-FAIL | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Element truthy) -     Structures begin differing at:
[task 2020-08-12T14:33:24.212Z] 14:33:24     INFO - got['1'] = false
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO - expected['1'] = true
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO - 
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO -     SimpleTest.isDeeply@SimpleTest/SimpleTest.js:2002:16
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO -     verifyTestResults/<@toolkit/components/extensions/test/mochitest/test_ext_test.html:150:13
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO -     verifyTestResults@toolkit/components/extensions/test/mochitest/test_ext_test.html:148:16
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO -     test_test_in_background@toolkit/components/extensions/test/mochitest/test_ext_test.html:163:20
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (True truthy) 
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (False truthy) 
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Null truthy) 
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Void truthy) 
[task 2020-08-12T14:33:24.213Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page ([object HTMLHtmlElement]) 
[task 2020-08-12T14:33:24.214Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Object falsey) 
[task 2020-08-12T14:33:24.214Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Array falsey) 
[task 2020-08-12T14:33:24.214Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Element falsey) 
[task 2020-08-12T14:33:24.214Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (True falsey) 
[task 2020-08-12T14:33:24.214Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (False falsey) 
[task 2020-08-12T14:33:24.214Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Null falsey) 
[task 2020-08-12T14:33:24.214Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Void falsey) 
[task 2020-08-12T14:33:24.214Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page ([object HTMLHeadElement]) 
[task 2020-08-12T14:33:24.215Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Object equality - [object Object] - [object Object]) 
[task 2020-08-12T14:33:24.215Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Array equality -  - ) 
[task 2020-08-12T14:33:24.215Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Element equality - [object HTMLBodyElement] - [object HTMLBodyElement]) 
[task 2020-08-12T14:33:24.215Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Null equality - null - null) 
[task 2020-08-12T14:33:24.215Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Void equality - undefined - undefined) 
[task 2020-08-12T14:33:24.215Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Object reference ineqality - [object Object] - [object Object] (different)) 
[task 2020-08-12T14:33:24.215Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Array reference ineqality -  -  (different)) 
[task 2020-08-12T14:33:24.215Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Element ineqality - [object HTMLBodyElement] - [object HTMLBodyElement] (different)) 
[task 2020-08-12T14:33:24.216Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (Null and void ineqality - null - undefined) 
[task 2020-08-12T14:33:24.216Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page ([object HTMLDivElement] - true - false) 
[task 2020-08-12T14:33:24.216Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (obj with dynamic toString() - [object Object] - [object Object]) 
[task 2020-08-12T14:33:24.216Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page (moz-extension:) 
[task 2020-08-12T14:33:24.216Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | background page () 
[task 2020-08-12T14:33:24.216Z] 14:33:24     INFO - TEST-PASS | toolkit/components/extensions/test/mochitest/test_ext_test.html | No more results 
[task 2020-08-12T14:33:24.216Z] 14:33:24     INFO - add_task | Leaving test test_test_in_background
...
Flags: needinfo?(andrebargull)

Thanks! Should be an easy fix.

Flags: needinfo?(andrebargull)
Pushed by abutkovits@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a0f8c3caa23e Optimise Boolean in CacheIR and Warp. r=jandem
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 81 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: