[webkit-changes] [WebKit/WebKit] 919ed0: [JSC] Add SensitiveToNaN flag to B3 Kind
Yusuke Suzuki
noreply at github.com
Wed Jan 4 16:07:45 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 919ed00f75d8752cddfdacb59d286f1fc168a307
https://github.com/WebKit/WebKit/commit/919ed00f75d8752cddfdacb59d286f1fc168a307
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-01-04 (Wed, 04 Jan 2023)
Changed paths:
M JSTests/wasm/spec-tests/float_exprs.wast.js
M Source/JavaScriptCore/b3/B3Kind.cpp
M Source/JavaScriptCore/b3/B3Kind.h
M Source/JavaScriptCore/b3/B3ReduceStrength.cpp
M Source/JavaScriptCore/b3/B3Value.h
M Source/JavaScriptCore/wasm/generateWasmB3IRGeneratorInlinesHeader.py
Log Message:
-----------
[JSC] Add SensitiveToNaN flag to B3 Kind
https://bugs.webkit.org/show_bug.cgi?id=249991
rdar://103807651
Reviewed by Saam Barati.
This patch adds SensitiveToNaN flag to B3 Kind. This means "The B3 Value is sensitive to NaN bit pattern",
and it supresses some of strength reduction which can be observable as a NaN bit pattern difference.
>From JS, this flag is always false since JS does not care about NaN bit pattern. On the other hand, Wasm
cares. In B3 Wasm IR generator, we put this flag to Wasm generated B3 Values.
This makes float spec-tests pass by 100%.
* JSTests/wasm/spec-tests/float_exprs.wast.js:
* Source/JavaScriptCore/b3/B3Kind.cpp:
(JSC::B3::Kind::dump const):
* Source/JavaScriptCore/b3/B3Kind.h:
(JSC::B3::Kind::Kind):
(JSC::B3::Kind::hasSensitiveToNaN):
(JSC::B3::Kind::hasSensitiveToNaN const):
(JSC::B3::Kind::sensitiveToNaN const):
(JSC::B3::Kind::setSensitiveToNaN):
(JSC::B3::Kind::operator== const):
(JSC::B3::Kind::hash const):
(JSC::B3::sensitiveToNaN):
* Source/JavaScriptCore/b3/B3ReduceStrength.cpp:
* Source/JavaScriptCore/b3/B3Value.h:
* Source/JavaScriptCore/wasm/generateWasmB3IRGeneratorInlinesHeader.py:
(CodeGenerator.generateB3OpCode):
(CodeGenerator):
(CodeGenerator.generateConstCode):
(CodeGenerator.generateOpcode):
(CodeGenerator.makeResult):
(CodeGenerator.generate):
(temp):
(generateB3OpCode): Deleted.
(generateConstCode): Deleted.
Canonical link: https://commits.webkit.org/258455@main
More information about the webkit-changes
mailing list