Title: [244578] trunk/Source/_javascript_Core
Revision
244578
Author
[email protected]
Date
2019-04-23 18:50:50 -0700 (Tue, 23 Apr 2019)

Log Message

[JSC] Use node index as DFG::MinifiedID
https://bugs.webkit.org/show_bug.cgi?id=197186

Reviewed by Saam Barati.

DFG Nodes can be identified with index if the graph is given. We should use unsigned index as a DFG::MinifiedID's underlying
source instead of Node* to reduce the size of VariableEvent from 16 to 12. Vector<VariableEvent> is the main data in DFG's OSR
tracking. It is kept after DFG compilation is done to make OSR work. We saw that this is allocated with large size in GMail.

* _javascript_Core.xcodeproj/project.pbxproj:
* bytecode/DataFormat.h:
* bytecode/ValueRecovery.h:
* dfg/DFGGenerationInfo.h:
* dfg/DFGMinifiedID.h:
(JSC::DFG::MinifiedID::MinifiedID):
(JSC::DFG::MinifiedID::operator! const):
(JSC::DFG::MinifiedID::operator== const):
(JSC::DFG::MinifiedID::operator!= const):
(JSC::DFG::MinifiedID::operator< const):
(JSC::DFG::MinifiedID::operator> const):
(JSC::DFG::MinifiedID::operator<= const):
(JSC::DFG::MinifiedID::operator>= const):
(JSC::DFG::MinifiedID::hash const):
(JSC::DFG::MinifiedID::dump const):
(JSC::DFG::MinifiedID::isHashTableDeletedValue const):
(JSC::DFG::MinifiedID::fromBits):
(JSC::DFG::MinifiedID::bits const):
(JSC::DFG::MinifiedID::invalidIndex):
(JSC::DFG::MinifiedID::otherInvalidIndex):
(JSC::DFG::MinifiedID::node const): Deleted.
(JSC::DFG::MinifiedID::invalidID): Deleted.
(JSC::DFG::MinifiedID::otherInvalidID): Deleted.
* dfg/DFGMinifiedIDInlines.h: Copied from Source/_javascript_Core/dfg/DFGMinifiedNode.cpp.
(JSC::DFG::MinifiedID::MinifiedID):
* dfg/DFGMinifiedNode.cpp:
* dfg/DFGValueSource.h:
(JSC::DFG::ValueSource::ValueSource):
* dfg/DFGVariableEvent.h:
(JSC::DFG::VariableEvent::dataFormat const):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (244577 => 244578)


--- trunk/Source/_javascript_Core/ChangeLog	2019-04-24 01:28:49 UTC (rev 244577)
+++ trunk/Source/_javascript_Core/ChangeLog	2019-04-24 01:50:50 UTC (rev 244578)
@@ -1,3 +1,45 @@
+2019-04-23  Yusuke Suzuki  <[email protected]>
+
+        [JSC] Use node index as DFG::MinifiedID
+        https://bugs.webkit.org/show_bug.cgi?id=197186
+
+        Reviewed by Saam Barati.
+
+        DFG Nodes can be identified with index if the graph is given. We should use unsigned index as a DFG::MinifiedID's underlying
+        source instead of Node* to reduce the size of VariableEvent from 16 to 12. Vector<VariableEvent> is the main data in DFG's OSR
+        tracking. It is kept after DFG compilation is done to make OSR work. We saw that this is allocated with large size in GMail.
+
+        * _javascript_Core.xcodeproj/project.pbxproj:
+        * bytecode/DataFormat.h:
+        * bytecode/ValueRecovery.h:
+        * dfg/DFGGenerationInfo.h:
+        * dfg/DFGMinifiedID.h:
+        (JSC::DFG::MinifiedID::MinifiedID):
+        (JSC::DFG::MinifiedID::operator! const):
+        (JSC::DFG::MinifiedID::operator== const):
+        (JSC::DFG::MinifiedID::operator!= const):
+        (JSC::DFG::MinifiedID::operator< const):
+        (JSC::DFG::MinifiedID::operator> const):
+        (JSC::DFG::MinifiedID::operator<= const):
+        (JSC::DFG::MinifiedID::operator>= const):
+        (JSC::DFG::MinifiedID::hash const):
+        (JSC::DFG::MinifiedID::dump const):
+        (JSC::DFG::MinifiedID::isHashTableDeletedValue const):
+        (JSC::DFG::MinifiedID::fromBits):
+        (JSC::DFG::MinifiedID::bits const):
+        (JSC::DFG::MinifiedID::invalidIndex):
+        (JSC::DFG::MinifiedID::otherInvalidIndex):
+        (JSC::DFG::MinifiedID::node const): Deleted.
+        (JSC::DFG::MinifiedID::invalidID): Deleted.
+        (JSC::DFG::MinifiedID::otherInvalidID): Deleted.
+        * dfg/DFGMinifiedIDInlines.h: Copied from Source/_javascript_Core/dfg/DFGMinifiedNode.cpp.
+        (JSC::DFG::MinifiedID::MinifiedID):
+        * dfg/DFGMinifiedNode.cpp:
+        * dfg/DFGValueSource.h:
+        (JSC::DFG::ValueSource::ValueSource):
+        * dfg/DFGVariableEvent.h:
+        (JSC::DFG::VariableEvent::dataFormat const):
+
 2019-04-23  Keith Rollin  <[email protected]>
 
         Add Xcode version check for Header post-processing scripts

Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (244577 => 244578)


--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2019-04-24 01:28:49 UTC (rev 244577)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2019-04-24 01:50:50 UTC (rev 244578)
@@ -1783,6 +1783,7 @@
 		E35E03601B7AB43E0073AD2A /* InspectorInstrumentationObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E35E035E1B7AB43E0073AD2A /* InspectorInstrumentationObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		E36CC9472086314F0051FFD6 /* WasmCreationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = E36CC9462086314F0051FFD6 /* WasmCreationMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		E3794E761B77EB97005543AE /* ModuleAnalyzer.h in Headers */ = {isa = PBXBuildFile; fileRef = E3794E741B77EB97005543AE /* ModuleAnalyzer.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		E3850B15226ED641009ABF9C /* DFGMinifiedIDInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = E3850B14226ED63E009ABF9C /* DFGMinifiedIDInlines.h */; };
 		E3893A1D2203A7C600E79A74 /* AsyncFromSyncIteratorPrototype.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = E3893A1C2203A7C600E79A74 /* AsyncFromSyncIteratorPrototype.lut.h */; };
 		E38D999C221B78BB00D50474 /* JSNonDestructibleProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = E38D999A221B789F00D50474 /* JSNonDestructibleProxy.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		E39006212208BFC4001019CF /* SubspaceAccess.h in Headers */ = {isa = PBXBuildFile; fileRef = E39006202208BFC3001019CF /* SubspaceAccess.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -4781,6 +4782,7 @@
 		E3794E741B77EB97005543AE /* ModuleAnalyzer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModuleAnalyzer.h; sourceTree = "<group>"; };
 		E380A76B1DCD7195000F89E6 /* MacroAssemblerHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacroAssemblerHelpers.h; sourceTree = "<group>"; };
 		E380D66B1F19249D00A59095 /* BuiltinNames.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BuiltinNames.cpp; sourceTree = "<group>"; };
+		E3850B14226ED63E009ABF9C /* DFGMinifiedIDInlines.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DFGMinifiedIDInlines.h; path = dfg/DFGMinifiedIDInlines.h; sourceTree = "<group>"; };
 		E3893A1C2203A7C600E79A74 /* AsyncFromSyncIteratorPrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AsyncFromSyncIteratorPrototype.lut.h; sourceTree = "<group>"; };
 		E38D060B1F8E814100649CF2 /* JSScriptFetchParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSScriptFetchParameters.h; sourceTree = "<group>"; };
 		E38D060C1F8E814100649CF2 /* ScriptFetchParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptFetchParameters.h; sourceTree = "<group>"; };
@@ -6002,9 +6004,9 @@
 				142D6F0713539A2800B02E86 /* MarkedBlock.h */,
 				0F7C5FB71D888A010044F5E2 /* MarkedBlockInlines.h */,
 				141448CA13A176EC00F5BA1A /* MarkedBlockSet.h */,
+				33B2A54522651D53005A0F79 /* MarkedSpace.cpp */,
 				14D2F3D9139F4BE200491031 /* MarkedSpace.h */,
 				0F7DF1301E2970D50095951B /* MarkedSpaceInlines.h */,
-				33B2A54522651D53005A0F79 /* MarkedSpace.cpp */,
 				0F660E331E0517B70031462C /* MarkingConstraint.cpp */,
 				0F660E341E0517B70031462C /* MarkingConstraint.h */,
 				0F660E351E0517B70031462C /* MarkingConstraintSet.cpp */,
@@ -7598,6 +7600,7 @@
 				0F1725FE1B48719A00AC3A55 /* DFGMinifiedGraph.cpp */,
 				0F2BDC3D1522801700CD8910 /* DFGMinifiedGraph.h */,
 				0FB4B51016B3A964003F696B /* DFGMinifiedID.h */,
+				E3850B14226ED63E009ABF9C /* DFGMinifiedIDInlines.h */,
 				0F2BDC4C1522818300CD8910 /* DFGMinifiedNode.cpp */,
 				0F2BDC3E1522801700CD8910 /* DFGMinifiedNode.h */,
 				0F8F14311ADF090100ED792C /* DFGMovHintRemovalPhase.cpp */,
@@ -8521,7 +8524,6 @@
 				0F2C63BC1E63440C00C13839 /* AirBlockInsertionSet.h in Headers */,
 				0FB3878E1BFBC44D00E3AB1E /* AirBlockWorklist.h in Headers */,
 				0F79C7CA1E74C93B00EB34D1 /* AirBreakCriticalEdges.h in Headers */,
-				33B2A54722653481005A0F79 /* B3ValueInlines.h in Headers */,
 				0F61832A1C45BF070072450B /* AirCCallingConvention.h in Headers */,
 				0FEC85741BDACDC70080FF74 /* AirCCallSpecial.h in Headers */,
 				0FF4B4C71E8893C500DBBE86 /* AirCFG.h in Headers */,
@@ -8714,6 +8716,7 @@
 				0FEC85401BDACDAC0080FF74 /* B3UseCounts.h in Headers */,
 				0FEC85421BDACDAC0080FF74 /* B3Validate.h in Headers */,
 				0FEC85441BDACDAC0080FF74 /* B3Value.h in Headers */,
+				33B2A54722653481005A0F79 /* B3ValueInlines.h in Headers */,
 				0F338E151BF0276C0013C88F /* B3ValueKey.h in Headers */,
 				0F338E161BF0276C0013C88F /* B3ValueKeyInlines.h in Headers */,
 				0FEC85471BDACDAC0080FF74 /* B3ValueRep.h in Headers */,
@@ -8967,6 +8970,7 @@
 				0F5874EE194FEB1200AAB2C1 /* DFGMayExit.h in Headers */,
 				0F2BDC451522801B00CD8910 /* DFGMinifiedGraph.h in Headers */,
 				0F2E892D16D02BAF009E4FD2 /* DFGMinifiedID.h in Headers */,
+				E3850B15226ED641009ABF9C /* DFGMinifiedIDInlines.h in Headers */,
 				0F2BDC461522802000CD8910 /* DFGMinifiedNode.h in Headers */,
 				0F8F14361ADF090100ED792C /* DFGMovHintRemovalPhase.h in Headers */,
 				0FF2CD5C1B61A4F8004955A8 /* DFGMultiGetByOffsetData.h in Headers */,
@@ -10718,6 +10722,7 @@
 				5333BBDC2110F7D9007618EC /* DFGSpeculativeJIT.cpp in Sources */,
 				5333BBDB2110F7D2007618EC /* DFGSpeculativeJIT32_64.cpp in Sources */,
 				5333BBDD2110F7E1007618EC /* DFGSpeculativeJIT64.cpp in Sources */,
+				33B2A548226543BF005A0F79 /* FTLLowerDFGToB3.cpp in Sources */,
 				536B319E1F735F160037FC33 /* LowLevelInterpreter.cpp in Sources */,
 				0FF4274A158EBE91004CB9FF /* udis86.c in Sources */,
 				0FF42740158EBE8B004CB9FF /* udis86_decode.c in Sources */,
@@ -10851,7 +10856,6 @@
 				536B310C1F71C5990037FC33 /* UnifiedSource119.cpp in Sources */,
 				536B31261F71C5990037FC33 /* UnifiedSource120.cpp in Sources */,
 				536B312D1F71C5990037FC33 /* UnifiedSource121.cpp in Sources */,
-				33B2A548226543BF005A0F79 /* FTLLowerDFGToB3.cpp in Sources */,
 				536B31251F71C5990037FC33 /* UnifiedSource122.cpp in Sources */,
 				536B311E1F71C5990037FC33 /* UnifiedSource123.cpp in Sources */,
 				536B31141F71C5990037FC33 /* UnifiedSource124.cpp in Sources */,

Modified: trunk/Source/_javascript_Core/bytecode/DataFormat.h (244577 => 244578)


--- trunk/Source/_javascript_Core/bytecode/DataFormat.h	2019-04-24 01:28:49 UTC (rev 244577)
+++ trunk/Source/_javascript_Core/bytecode/DataFormat.h	2019-04-24 01:50:50 UTC (rev 244578)
@@ -35,7 +35,7 @@
 // Values may be unboxed primitives (int32, double, or cell), or boxed as a JSValue.
 // For boxed values, we may know the type of boxing that has taken place.
 // (May also need bool, array, object, string types!)
-enum DataFormat {
+enum DataFormat : uint8_t {
     DataFormatNone = 0,
     DataFormatInt32 = 1,
     DataFormatInt52 = 2, // Int52's are left-shifted by 12 by default.

Modified: trunk/Source/_javascript_Core/bytecode/ValueRecovery.h (244577 => 244578)


--- trunk/Source/_javascript_Core/bytecode/ValueRecovery.h	2019-04-24 01:28:49 UTC (rev 244577)
+++ trunk/Source/_javascript_Core/bytecode/ValueRecovery.h	2019-04-24 01:50:50 UTC (rev 244578)
@@ -419,7 +419,7 @@
 #endif
         int virtualReg;
         EncodedJSValue constant;
-        uintptr_t nodeID;
+        unsigned nodeID;
     } m_source;
 };
 

Modified: trunk/Source/_javascript_Core/dfg/DFGGenerationInfo.h (244577 => 244578)


--- trunk/Source/_javascript_Core/dfg/DFGGenerationInfo.h	2019-04-24 01:28:49 UTC (rev 244577)
+++ trunk/Source/_javascript_Core/dfg/DFGGenerationInfo.h	2019-04-24 01:50:50 UTC (rev 244578)
@@ -27,7 +27,7 @@
 
 #if ENABLE(DFG_JIT)
 
-#include "DFGMinifiedID.h"
+#include "DFGMinifiedIDInlines.h"
 #include "DFGVariableEvent.h"
 #include "DFGVariableEventStream.h"
 #include "DataFormat.h"

Modified: trunk/Source/_javascript_Core/dfg/DFGMinifiedID.h (244577 => 244578)


--- trunk/Source/_javascript_Core/dfg/DFGMinifiedID.h	2019-04-24 01:28:49 UTC (rev 244577)
+++ trunk/Source/_javascript_Core/dfg/DFGMinifiedID.h	2019-04-24 01:50:50 UTC (rev 244578)
@@ -38,46 +38,41 @@
 
 class MinifiedID {
 public:
-    MinifiedID() : m_id(invalidID()) { }
-    MinifiedID(WTF::HashTableDeletedValueType) : m_id(otherInvalidID()) { }
-    explicit MinifiedID(Node* node) : m_id(bitwise_cast<uintptr_t>(node)) { }
+    MinifiedID() = default;
+    MinifiedID(WTF::HashTableDeletedValueType) : m_index(otherInvalidIndex()) { }
+    explicit MinifiedID(Node* node);
     
-    bool operator!() const { return m_id == invalidID(); }
+    bool operator!() const { return m_index == invalidIndex(); }
     
-    // This takes Graph& to remind you, that you should only be calling this method
-    // when you're in the main compilation pass (i.e. you have a graph) and not later,
-    // like during OSR exit compilation.
-    Node* node(const Graph&) const { return bitwise_cast<Node*>(m_id); }
+    bool operator==(const MinifiedID& other) const { return m_index == other.m_index; }
+    bool operator!=(const MinifiedID& other) const { return m_index != other.m_index; }
+    bool operator<(const MinifiedID& other) const { return m_index < other.m_index; }
+    bool operator>(const MinifiedID& other) const { return m_index > other.m_index; }
+    bool operator<=(const MinifiedID& other) const { return m_index <= other.m_index; }
+    bool operator>=(const MinifiedID& other) const { return m_index >= other.m_index; }
     
-    bool operator==(const MinifiedID& other) const { return m_id == other.m_id; }
-    bool operator!=(const MinifiedID& other) const { return m_id != other.m_id; }
-    bool operator<(const MinifiedID& other) const { return m_id < other.m_id; }
-    bool operator>(const MinifiedID& other) const { return m_id > other.m_id; }
-    bool operator<=(const MinifiedID& other) const { return m_id <= other.m_id; }
-    bool operator>=(const MinifiedID& other) const { return m_id >= other.m_id; }
+    unsigned hash() const { return WTF::IntHash<unsigned>::hash(m_index); }
     
-    unsigned hash() const { return WTF::IntHash<uintptr_t>::hash(m_id); }
+    void dump(PrintStream& out) const { out.print(m_index); }
     
-    void dump(PrintStream& out) const { out.print(RawPointer(reinterpret_cast<void*>(m_id))); }
+    bool isHashTableDeletedValue() const { return m_index == otherInvalidIndex(); }
     
-    bool isHashTableDeletedValue() const { return m_id == otherInvalidID(); }
-    
-    static MinifiedID fromBits(uintptr_t value)
+    static MinifiedID fromBits(unsigned value)
     {
         MinifiedID result;
-        result.m_id = value;
+        result.m_index = value;
         return result;
     }
     
-    uintptr_t bits() const { return m_id; }
+    unsigned bits() const { return m_index; }
 
 private:
     friend class MinifiedNode;
     
-    static uintptr_t invalidID() { return static_cast<uintptr_t>(static_cast<intptr_t>(-1)); }
-    static uintptr_t otherInvalidID() { return static_cast<uintptr_t>(static_cast<intptr_t>(-2)); }
+    static constexpr unsigned invalidIndex() { return static_cast<unsigned>(-1); }
+    static constexpr unsigned otherInvalidIndex() { return static_cast<unsigned>(-2); }
     
-    uintptr_t m_id;
+    unsigned m_index { invalidIndex() };
 };
 
 struct MinifiedIDHash {

Copied: trunk/Source/_javascript_Core/dfg/DFGMinifiedIDInlines.h (from rev 244577, trunk/Source/_javascript_Core/dfg/DFGMinifiedNode.cpp) (0 => 244578)


--- trunk/Source/_javascript_Core/dfg/DFGMinifiedIDInlines.h	                        (rev 0)
+++ trunk/Source/_javascript_Core/dfg/DFGMinifiedIDInlines.h	2019-04-24 01:50:50 UTC (rev 244578)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "DFGMinifiedID.h"
+
+#include "DFGNode.h"
+
+namespace JSC {
+namespace DFG {
+
+inline MinifiedID::MinifiedID(Node* node)
+    : m_index(node->index())
+{
+    RELEASE_ASSERT(m_index != invalidIndex() && m_index != otherInvalidIndex());
+}
+
+} } // namespace JSC::DFG

Modified: trunk/Source/_javascript_Core/dfg/DFGMinifiedNode.cpp (244577 => 244578)


--- trunk/Source/_javascript_Core/dfg/DFGMinifiedNode.cpp	2019-04-24 01:28:49 UTC (rev 244577)
+++ trunk/Source/_javascript_Core/dfg/DFGMinifiedNode.cpp	2019-04-24 01:50:50 UTC (rev 244578)
@@ -28,6 +28,7 @@
 
 #if ENABLE(DFG_JIT)
 
+#include "DFGMinifiedIDInlines.h"
 #include "DFGNode.h"
 #include "JSCInlines.h"
 

Modified: trunk/Source/_javascript_Core/dfg/DFGValueSource.h (244577 => 244578)


--- trunk/Source/_javascript_Core/dfg/DFGValueSource.h	2019-04-24 01:28:49 UTC (rev 244577)
+++ trunk/Source/_javascript_Core/dfg/DFGValueSource.h	2019-04-24 01:50:50 UTC (rev 244578)
@@ -125,7 +125,7 @@
     
     ValueSource(ValueSourceKind valueSourceKind, VirtualRegister where)
         : m_kind(valueSourceKind)
-        , m_value(static_cast<intptr_t>(where.offset()))
+        , m_value(where.offset())
     {
         ASSERT(kind() != SourceNotSet);
         ASSERT(kind() != HaveNode);
@@ -208,7 +208,7 @@
     
 private:
     ValueSourceKind m_kind;
-    uintptr_t m_value;
+    unsigned m_value;
 };
 
 } } // namespace JSC::DFG

Modified: trunk/Source/_javascript_Core/dfg/DFGVariableEvent.h (244577 => 244578)


--- trunk/Source/_javascript_Core/dfg/DFGVariableEvent.h	2019-04-24 01:28:49 UTC (rev 244577)
+++ trunk/Source/_javascript_Core/dfg/DFGVariableEvent.h	2019-04-24 01:50:50 UTC (rev 244578)
@@ -198,7 +198,7 @@
         ASSERT(
             m_kind == BirthToFill || m_kind == Fill || m_kind == BirthToSpill || m_kind == Spill
             || m_kind == SetLocalEvent);
-        return static_cast<DataFormat>(m_dataFormat);
+        return m_dataFormat;
     }
     
     MacroAssembler::RegisterID gpr() const
@@ -262,7 +262,7 @@
     
     union {
         int virtualReg;
-        uintptr_t id;
+        unsigned id;
     } m_which;
     
     // For BirthToFill, Fill:
@@ -276,7 +276,7 @@
     VariableRepresentation m_representation;
     
     int8_t m_kind;
-    int8_t m_dataFormat;
+    DataFormat m_dataFormat { DataFormatNone };
 };
 
 } } // namespace JSC::DFG
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to