Modified: trunk/Source/_javascript_Core/ChangeLog (142386 => 142387)
--- trunk/Source/_javascript_Core/ChangeLog 2013-02-10 06:26:44 UTC (rev 142386)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-02-10 06:41:34 UTC (rev 142387)
@@ -1,3 +1,18 @@
+2013-02-09 Andreas Kling <[email protected]>
+
+ Shrink-wrap UnlinkedCodeBlock members.
+ <http://webkit.org/b/109368>
+
+ Reviewed by Oliver Hunt.
+
+ Rearrange the members of UnlinkedCodeBlock to avoid unnecessary padding on 64-bit.
+ Knocks ~600 KB off of the Membuster3 peak.
+
+ * bytecode/UnlinkedCodeBlock.cpp:
+ (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
+ * bytecode/UnlinkedCodeBlock.h:
+ (UnlinkedCodeBlock):
+
2013-02-08 Filip Pizlo <[email protected]>
DFG should allow phases to break Phi's and then have one phase to rebuild them
Modified: trunk/Source/_javascript_Core/bytecode/UnlinkedCodeBlock.cpp (142386 => 142387)
--- trunk/Source/_javascript_Core/bytecode/UnlinkedCodeBlock.cpp 2013-02-10 06:26:44 UTC (rev 142386)
+++ trunk/Source/_javascript_Core/bytecode/UnlinkedCodeBlock.cpp 2013-02-10 06:41:34 UTC (rev 142387)
@@ -160,7 +160,6 @@
, m_numVars(0)
, m_numCalleeRegisters(0)
, m_numParameters(0)
- , m_globalData(globalData)
, m_argumentsRegister(-1)
, m_needsFullScopeChain(info.m_needsActivation)
, m_usesEval(info.m_usesEval)
@@ -168,10 +167,10 @@
, m_isStrictMode(info.m_isStrictMode)
, m_isConstructor(info.m_isConstructor)
, m_hasCapturedVariables(false)
+ , m_codeType(codeType)
+ , m_features(0)
, m_firstLine(0)
, m_lineCount(0)
- , m_features(0)
- , m_codeType(codeType)
, m_resolveOperationCount(0)
, m_putToBaseOperationCount(1)
, m_arrayProfileCount(0)
@@ -179,6 +178,7 @@
, m_objectAllocationProfileCount(0)
, m_valueProfileCount(0)
, m_llintCallLinkInfoCount(0)
+ , m_globalData(globalData)
#if ENABLE(BYTECODE_COMMENTS)
, m_bytecodeCommentIterator(0)
#endif
Modified: trunk/Source/_javascript_Core/bytecode/UnlinkedCodeBlock.h (142386 => 142387)
--- trunk/Source/_javascript_Core/bytecode/UnlinkedCodeBlock.h 2013-02-10 06:26:44 UTC (rev 142386)
+++ trunk/Source/_javascript_Core/bytecode/UnlinkedCodeBlock.h 2013-02-10 06:41:34 UTC (rev 142387)
@@ -486,8 +486,6 @@
RefCountedArray<UnlinkedInstruction> m_unlinkedInstructions;
int m_numParameters;
- JSGlobalData* m_globalData;
-
int m_thisRegister;
int m_argumentsRegister;
int m_activationRegister;
@@ -498,12 +496,22 @@
bool m_isStrictMode : 1;
bool m_isConstructor : 1;
bool m_hasCapturedVariables : 1;
+ CodeType m_codeType : 2;
+ CodeFeatures m_features : 16;
+
unsigned m_firstLine;
unsigned m_lineCount;
- CodeFeatures m_features;
- CodeType m_codeType;
+ unsigned m_resolveOperationCount;
+ unsigned m_putToBaseOperationCount;
+ unsigned m_arrayProfileCount;
+ unsigned m_arrayAllocationProfileCount;
+ unsigned m_objectAllocationProfileCount;
+ unsigned m_valueProfileCount;
+ unsigned m_llintCallLinkInfoCount;
+ JSGlobalData* m_globalData;
+
Vector<unsigned> m_jumpTargets;
// Constant Pools
@@ -524,14 +532,6 @@
size_t m_bytecodeCommentIterator;
#endif
- unsigned m_resolveOperationCount;
- unsigned m_putToBaseOperationCount;
- unsigned m_arrayProfileCount;
- unsigned m_arrayAllocationProfileCount;
- unsigned m_objectAllocationProfileCount;
- unsigned m_valueProfileCount;
- unsigned m_llintCallLinkInfoCount;
-
public:
struct RareData {
WTF_MAKE_FAST_ALLOCATED;