-
fpizlo@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=123574 Source/JavaScriptCore: Reviewed by Mark Hahnenberg. This is performance-neutral because I also make Math.cos/sin intrinsic. This means that we gain the "overhead" of actually computing sin and cos but we lose the overhead of going through the native call thunks. Caching transcendental functions is a really ugly idea. It works for SunSpider because that benchmark makes very predictable calls into Math.sin. But I don't believe that this is representative of any kind of reality, and so for sensible uses of Math.sin/cos all that this was doing was adding more call overhead and some hashing overhead. * JavaScriptCore.xcodeproj/project.pbxproj: * dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::::executeEffects): * dfg/DFGBackwardsPropagationPhase.cpp: (JSC::DFG::BackwardsPropagationPhase::propagate): * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleIntrinsic): * dfg/DFGCSEPhase.cpp: (JSC::DFG::CSEPhase::performNodeCSE): * dfg/DFGClobberize.h: (JSC::DFG::clobberize): * dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): * dfg/DFGNodeType.h: * dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate): (JSC::DFG::PredictionPropagationPhase::doDoubleVoting): * dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute): * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::callOperation): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): * jit/JITOperations.h: * runtime/CachedTranscendentalFunction.h: Removed. * runtime/DateInstanceCache.h: * runtime/Intrinsic.h: * runtime/MathObject.cpp: (JSC::MathObject::finishCreation): (JSC::mathProtoFuncCos): (JSC::mathProtoFuncSin): * runtime/VM.h: Tools: Reviewed by Mark Hahnenberg. Make it easier to see that a test doesn't have an -expected file. * Scripts/run-jsc-stress-tests: LayoutTests: Reviewed by Mark Hahnenberg. * js/dfg-cos-constant-expected.txt: Added. * js/dfg-cos-constant.html: Added. * js/dfg-sin-constant-expected.txt: Added. * js/dfg-sin-constant.html: Added. * js/script-tests/dfg-cos-constant.js: Added. (foo): * js/script-tests/dfg-sin-constant.js: Added. (foo): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
b3336c7b