[JSC] Make some data members of UnlinkedCodeBlock private
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jul 2018 17:09:43 +0000 (17:09 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jul 2018 17:09:43 +0000 (17:09 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187467

Reviewed by Mark Lam.

This patch makes m_numVars, m_numCalleeLocals, and m_numParameters of UnlinkedCodeBlock private.
We also remove m_numCapturedVars since it is no longer used.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
* bytecode/CodeBlock.h:
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
* bytecode/UnlinkedCodeBlock.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233645 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/bytecode/CodeBlock.cpp
Source/JavaScriptCore/bytecode/CodeBlock.h
Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp
Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h

index 2d0f325..aaa52e3 100644 (file)
@@ -1,5 +1,22 @@
 2018-07-09  Yusuke Suzuki  <utatane.tea@gmail.com>
 
+        [JSC] Make some data members of UnlinkedCodeBlock private
+        https://bugs.webkit.org/show_bug.cgi?id=187467
+
+        Reviewed by Mark Lam.
+
+        This patch makes m_numVars, m_numCalleeLocals, and m_numParameters of UnlinkedCodeBlock private.
+        We also remove m_numCapturedVars since it is no longer used.
+
+        * bytecode/CodeBlock.cpp:
+        (JSC::CodeBlock::CodeBlock):
+        * bytecode/CodeBlock.h:
+        * bytecode/UnlinkedCodeBlock.cpp:
+        (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
+        * bytecode/UnlinkedCodeBlock.h:
+
+2018-07-09  Yusuke Suzuki  <utatane.tea@gmail.com>
+
         [JSC] Optimize layout of AccessCase / ProxyableAccessCase to reduce size of ProxyableAccessCase
         https://bugs.webkit.org/show_bug.cgi?id=187465
 
index b2278ce..b8b3de3 100644 (file)
@@ -371,8 +371,8 @@ CodeBlock::CodeBlock(VM* vm, Structure* structure, ScriptExecutable* ownerExecut
     , m_isConstructor(unlinkedCodeBlock->isConstructor())
     , m_isStrictMode(unlinkedCodeBlock->isStrictMode())
     , m_codeType(unlinkedCodeBlock->codeType())
-    , m_numCalleeLocals(unlinkedCodeBlock->m_numCalleeLocals)
-    , m_numVars(unlinkedCodeBlock->m_numVars)
+    , m_numCalleeLocals(unlinkedCodeBlock->numCalleeLocals())
+    , m_numVars(unlinkedCodeBlock->numVars())
     , m_hasDebuggerStatement(false)
     , m_steppingMode(SteppingModeDisabled)
     , m_numBreakpoints(0)
index 0df1ed3..553b3bb 100644 (file)
@@ -82,7 +82,6 @@ struct OSRExitState;
 } // namespace DFG
 #endif
 
-class BytecodeGenerator;
 class BytecodeLivenessAnalysis;
 class CodeBlockSet;
 class ExecState;
@@ -103,7 +102,6 @@ enum ReoptimizationMode { DontCountReoptimization, CountReoptimization };
 
 class CodeBlock : public JSCell {
     typedef JSCell Base;
-    friend class BytecodeGenerator;
     friend class BytecodeLivenessAnalysis;
     friend class JIT;
     friend class LLIntOffsetsExtractor;
index 1a0bb44..b735ae9 100644 (file)
@@ -54,9 +54,6 @@ const ClassInfo UnlinkedCodeBlock::s_info = { "UnlinkedCodeBlock", nullptr, null
 
 UnlinkedCodeBlock::UnlinkedCodeBlock(VM* vm, Structure* structure, CodeType codeType, const ExecutableInfo& info, DebuggerMode debuggerMode)
     : Base(*vm, structure)
-    , m_numVars(0)
-    , m_numCalleeLocals(0)
-    , m_numParameters(0)
     , m_usesEval(info.usesEval())
     , m_isStrictMode(info.isStrictMode())
     , m_isConstructor(info.isConstructor())
@@ -73,15 +70,7 @@ UnlinkedCodeBlock::UnlinkedCodeBlock(VM* vm, Structure* structure, CodeType code
     , m_hasTailCalls(false)
     , m_codeType(codeType)
     , m_didOptimize(MixedTriState)
-    , m_lineCount(0)
-    , m_endColumn(UINT_MAX)
     , m_parseMode(info.parseMode())
-    , m_features(0)
-    , m_arrayProfileCount(0)
-    , m_arrayAllocationProfileCount(0)
-    , m_objectAllocationProfileCount(0)
-    , m_valueProfileCount(0)
-    , m_llintCallLinkInfoCount(0)
 {
     for (auto& constantRegisterIndex : m_linkTimeConstants)
         constantRegisterIndex = 0;
index bce2b98..ceb4673 100644 (file)
@@ -47,6 +47,7 @@
 
 namespace JSC {
 
+class BytecodeGenerator;
 class BytecodeLivenessAnalysis;
 class BytecodeRewriter;
 class CodeBlock;
@@ -259,10 +260,6 @@ public:
     int numCalleeLocals() const { return m_numCalleeLocals; }
     int numVars() const { return m_numVars; }
 
-    int m_numVars;
-    int m_numCapturedVars;
-    int m_numCalleeLocals;
-
     // Jump Tables
 
     size_t numberOfSwitchJumpTables() const { return m_rareData ? m_rareData->m_switchJumpTables.size() : 0; }
@@ -423,6 +420,8 @@ protected:
 
 private:
     friend class BytecodeRewriter;
+    friend class BytecodeGenerator;
+
     void applyModification(BytecodeRewriter&, UnpackedInstructions&);
 
     void createRareDataIfNecessary()
@@ -436,8 +435,6 @@ private:
     void getLineAndColumn(const ExpressionRangeInfo&, unsigned& line, unsigned& column) const;
     BytecodeLivenessAnalysis& livenessAnalysisSlow(CodeBlock*);
 
-    int m_numParameters;
-
     std::unique_ptr<UnlinkedInstructionStream> m_unlinkedInstructions;
     std::unique_ptr<BytecodeLivenessAnalysis> m_liveness;
 
@@ -464,8 +461,12 @@ private:
     unsigned m_hasTailCalls : 1;
     unsigned m_codeType : 2; // CodeType
     unsigned m_didOptimize : 2; // TriState
-    unsigned m_lineCount;
-    unsigned m_endColumn;
+    unsigned m_lineCount { 0 };
+    unsigned m_endColumn { UINT_MAX };
+
+    int m_numVars { 0 };
+    int m_numCalleeLocals { 0 };
+    int m_numParameters { 0 };
 
     VirtualRegister m_thisRegister;
     VirtualRegister m_scopeRegister;
@@ -476,7 +477,7 @@ private:
 public:
     ConcurrentJSLock m_lock;
 private:
-    CodeFeatures m_features;
+    CodeFeatures m_features { 0 };
 
     Vector<unsigned> m_jumpTargets;
 
@@ -493,11 +494,11 @@ private:
     FunctionExpressionVector m_functionExprs;
     std::array<unsigned, LinkTimeConstantCount> m_linkTimeConstants;
 
-    unsigned m_arrayProfileCount;
-    unsigned m_arrayAllocationProfileCount;
-    unsigned m_objectAllocationProfileCount;
-    unsigned m_valueProfileCount;
-    unsigned m_llintCallLinkInfoCount;
+    unsigned m_arrayProfileCount { 0 };
+    unsigned m_arrayAllocationProfileCount { 0 };
+    unsigned m_objectAllocationProfileCount { 0 };
+    unsigned m_valueProfileCount { 0 };
+    unsigned m_llintCallLinkInfoCount { 0 };
 
 public:
     struct RareData {