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

Reply via email to