X-Git-Url: http://git.webkit.org/?p=WebKit-https.git;a=blobdiff_plain;f=Source%2FJavaScriptCore%2FChangeLog;h=53a27229eec1ef245225c785961b9bcf844bd13f;hp=21d656dc9438b8464861dba1d0f55672be0c3e3e;hb=5af607634ba2c7d097041de26f8987c95903dee0;hpb=100f45f3c20105086e9408825240d9d9f1f4f212 diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog index 21d656d..53a2722 100644 --- a/Source/JavaScriptCore/ChangeLog +++ b/Source/JavaScriptCore/ChangeLog @@ -1,3 +1,35 @@ +2016-04-17 Filip Pizlo + + FTL should pin the tag registers at inline caches + https://bugs.webkit.org/show_bug.cgi?id=156678 + + Reviewed by Saam Barati. + + This is a long-overdue fix to our inline caches. Back when we had LLVM, we couldn't rely on the tags + being pinned to any registers. So, if the inline caches needed tags, they'd have to materialize them. + + This removes those materializations. This should reduce the amount of code generated in inline caches + and it should make inline caches faster. The effect appears to be small. + + It may be that after this change, we'll even be able to kill the + HaveTagRegisters/DoNotHaveTagRegisters logic. + + * bytecode/PolymorphicAccess.cpp: + (JSC::AccessCase::generateWithGuard): + (JSC::AccessCase::generateImpl): + * ftl/FTLLowerDFGToB3.cpp: + (JSC::FTL::DFG::LowerDFGToB3::compilePutById): + (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct): + (JSC::FTL::DFG::LowerDFGToB3::compileTailCall): + (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs): + (JSC::FTL::DFG::LowerDFGToB3::compileIn): + (JSC::FTL::DFG::LowerDFGToB3::getById): + * jit/Repatch.cpp: + (JSC::readCallTarget): + (JSC::linkPolymorphicCall): + * jit/ThunkGenerators.cpp: + (JSC::virtualThunkFor): + 2016-04-18 Yusuke Suzuki [ES7] yield star should not return if the inner iterator.throw returns { done: true }