[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
barraclough at apple.com
barraclough at apple.com
Wed Dec 22 13:49:57 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 5be406f581ec4976be1b2f9b84728b49ce8b69c8
Author: barraclough at apple.com <barraclough at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Sep 28 00:25:06 2010 +0000
Bug 46680 - Inlining string concatenation can regress interpreter performance
<rdar://problem/8362752> REGRESSION: ~6.4% sunspider regression in interpreter
Do not inline calls to string concatenation in the interpret loop.
Reviewed by Darin Adler.
* interpreter/Interpreter.cpp:
(JSC::concatenateStrings):
(JSC::Interpreter::privateExecute):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index 3382388..4c2e226 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-09-27 Gavin Barraclough <barraclough at apple.com>
+
+ Reviewed by Darin Adler.
+
+ Bug 46680 - Inlining string concatenation can regress interpreter performance
+ <rdar://problem/8362752> REGRESSION: ~6.4% sunspider regression in interpreter
+ Do not inline calls to string concatenation in the interpret loop.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::concatenateStrings):
+ (JSC::Interpreter::privateExecute):
+
2010-09-27 Anders Carlsson <andersca at apple.com>
Fix thinko.
diff --git a/JavaScriptCore/interpreter/Interpreter.cpp b/JavaScriptCore/interpreter/Interpreter.cpp
index f03fea2..5943ece 100644
--- a/JavaScriptCore/interpreter/Interpreter.cpp
+++ b/JavaScriptCore/interpreter/Interpreter.cpp
@@ -82,6 +82,11 @@ static int depth(CodeBlock* codeBlock, ScopeChain& sc)
}
#if ENABLE(INTERPRETER)
+static NEVER_INLINE JSValue concatenateStrings(ExecState* exec, Register* strings, unsigned count)
+{
+ return jsString(exec, strings, count);
+}
+
NEVER_INLINE bool Interpreter::resolve(CallFrame* callFrame, Instruction* vPC, JSValue& exceptionValue)
{
int dst = vPC[1].u.operand;
@@ -4301,7 +4306,7 @@ skip_id_custom_self:
int src = vPC[2].u.operand;
int count = vPC[3].u.operand;
- callFrame->r(dst) = jsString(callFrame, &callFrame->registers()[src], count);
+ callFrame->r(dst) = concatenateStrings(callFrame, &callFrame->registers()[src], count);
CHECK_FOR_EXCEPTION();
vPC += OPCODE_LENGTH(op_strcat);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list