Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 974bb61fa67c11e5a53ba0c41bfed99806a86aa6 https://github.com/WebKit/WebKit/commit/974bb61fa67c11e5a53ba0c41bfed99806a86aa6 Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths: M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h M Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h M Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h M Source/JavaScriptCore/b3/B3ConstDoubleValue.cpp M Source/JavaScriptCore/b3/B3ConstDoubleValue.h M Source/JavaScriptCore/b3/B3ConstFloatValue.cpp M Source/JavaScriptCore/b3/B3ConstFloatValue.h M Source/JavaScriptCore/b3/B3LowerInt64.cpp M Source/JavaScriptCore/b3/B3LowerMacrosAfterOptimizations.cpp M Source/JavaScriptCore/b3/B3LowerToAir.cpp M Source/JavaScriptCore/b3/B3LowerToAir32_64.cpp M Source/JavaScriptCore/b3/B3Opcode.cpp M Source/JavaScriptCore/b3/B3Opcode.h M Source/JavaScriptCore/b3/B3ReduceDoubleToFloat.cpp M Source/JavaScriptCore/b3/B3ReduceStrength.cpp M Source/JavaScriptCore/b3/B3Validate.cpp M Source/JavaScriptCore/b3/B3Value.cpp M Source/JavaScriptCore/b3/B3Value.h M Source/JavaScriptCore/b3/B3ValueInlines.h M Source/JavaScriptCore/b3/B3ValueKey.cpp M Source/JavaScriptCore/b3/air/AirFixPartialRegisterStalls.cpp M Source/JavaScriptCore/b3/air/AirOpcode.opcodes M Source/JavaScriptCore/b3/testb3.h M Source/JavaScriptCore/b3/testb3_1.cpp M Source/JavaScriptCore/b3/testb3_3.cpp M Source/JavaScriptCore/bytecode/SpeculatedType.cpp M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp M Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp M Source/JavaScriptCore/ftl/FTLOutput.cpp M Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp M Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp M Source/JavaScriptCore/wasm/wasm.json Log Message: ----------- [JSC] Further precise impure NaN modeling in DFG / FTL https://bugs.webkit.org/show_bug.cgi?id=287103 rdar://144247202 Reviewed by Yijia Huang and Justin Michaud. This patch further makes impure NaN modeling precise. 1. Add FTrunc B3 opcode, which does Math::truncDouble / Math::truncFloat ops. 2. Rounding's speculated types should not include impure NaN. 3. Fold PurifyNaN for Float16Array / Float32Array / Float64Array PutByVal. * Source/JavaScriptCore/assembler/MacroAssemblerARM64.h: (JSC::MacroAssemblerARM64::truncDouble): (JSC::MacroAssemblerARM64::truncFloat): * Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h: (JSC::MacroAssemblerARMv7::truncFloat): (JSC::MacroAssemblerARMv7::truncDouble): * Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h: (JSC::MacroAssemblerRISCV64::truncDouble): (JSC::MacroAssemblerRISCV64::truncFloat): * Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h: (JSC::MacroAssemblerX86_64::truncDouble): (JSC::MacroAssemblerX86_64::truncFloat): * Source/JavaScriptCore/b3/B3ConstDoubleValue.cpp: (JSC::B3::ConstDoubleValue::fTruncConstant const): * Source/JavaScriptCore/b3/B3ConstDoubleValue.h: * Source/JavaScriptCore/b3/B3ConstFloatValue.cpp: (JSC::B3::ConstFloatValue::fTruncConstant const): * Source/JavaScriptCore/b3/B3ConstFloatValue.h: * Source/JavaScriptCore/b3/B3LowerInt64.cpp: * Source/JavaScriptCore/b3/B3LowerMacrosAfterOptimizations.cpp: * Source/JavaScriptCore/b3/B3LowerToAir.cpp: * Source/JavaScriptCore/b3/B3LowerToAir32_64.cpp: * Source/JavaScriptCore/b3/B3Opcode.cpp: (WTF::printInternal): * Source/JavaScriptCore/b3/B3Opcode.h: * Source/JavaScriptCore/b3/B3ReduceDoubleToFloat.cpp: * Source/JavaScriptCore/b3/B3ReduceStrength.cpp: * Source/JavaScriptCore/b3/B3Validate.cpp: * Source/JavaScriptCore/b3/B3Value.cpp: (JSC::B3::Value::fTruncConstant const): (JSC::B3::Value::isRounded const): (JSC::B3::Value::effects const): (JSC::B3::Value::key const): (JSC::B3::Value::typeFor): * Source/JavaScriptCore/b3/B3Value.h: * Source/JavaScriptCore/b3/B3ValueInlines.h: * Source/JavaScriptCore/b3/B3ValueKey.cpp: (JSC::B3::ValueKey::materialize const): * Source/JavaScriptCore/b3/air/AirFixPartialRegisterStalls.cpp: * Source/JavaScriptCore/b3/air/AirOpcode.opcodes: * Source/JavaScriptCore/b3/testb3.h: * Source/JavaScriptCore/b3/testb3_1.cpp: (run): * Source/JavaScriptCore/b3/testb3_2.cpp: (testImpureNaN): * Source/JavaScriptCore/b3/testb3_3.cpp: (testFTruncArg): (testFTruncImm): (testFTruncMem): * Source/JavaScriptCore/bytecode/SpeculatedType.cpp: (JSC::typeOfDoubleSumOrDifferenceOrProduct): (JSC::typeOfDoubleRounding): * Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): * Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp: * Source/JavaScriptCore/ftl/FTLOutput.cpp: (JSC::FTL::Output::doubleTrunc): * Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp: (JSC::Wasm::BBQJITImpl::BBQJIT::addF32Trunc): (JSC::Wasm::BBQJITImpl::BBQJIT::addF64Trunc): * Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp: (JSC::Wasm::OMGIRGenerator::addF64Trunc): Deleted. (JSC::Wasm::OMGIRGenerator::addF32Trunc): Deleted. * Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp: (JSC::Wasm::OMGIRGenerator::addF64Trunc): Deleted. (JSC::Wasm::OMGIRGenerator::addF32Trunc): Deleted. * Source/JavaScriptCore/wasm/wasm.json: Canonical link: https://commits.webkit.org/289897@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes