Changeset 230543 in webkit
- Timestamp:
- Apr 11, 2018 1:02:29 PM (6 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 1 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r230520 r230543 1 2018-04-11 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 [DFG] Remove CompareSlowPathGenerator 4 https://bugs.webkit.org/show_bug.cgi?id=184492 5 6 Reviewed by Mark Lam. 7 8 Now CompareSlowPathGenerator is just calling a specified function. 9 This can be altered with slowPathCall. This patch removes CompareSlowPathGenerator. 10 11 We also remove some of unnecessary USE(JSVALUE32_64) / USE(JSVALUE64) ifdefs by 12 introducing a new constructor for GPRTemporary. 13 14 * JavaScriptCore.xcodeproj/project.pbxproj: 15 * dfg/DFGCompareSlowPathGenerator.h: Removed. 16 * dfg/DFGSpeculativeJIT.cpp: 17 (JSC::DFG::GPRTemporary::GPRTemporary): 18 (JSC::DFG::SpeculativeJIT::compileIsCellWithType): 19 (JSC::DFG::SpeculativeJIT::compileIsTypedArrayView): 20 (JSC::DFG::SpeculativeJIT::compileToObjectOrCallObjectConstructor): 21 (JSC::DFG::SpeculativeJIT::compileIsObject): 22 (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare): 23 (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch): 24 * dfg/DFGSpeculativeJIT.h: 25 (JSC::DFG::GPRTemporary::GPRTemporary): 26 * dfg/DFGSpeculativeJIT64.cpp: 27 (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq): 28 1 29 2018-04-11 Yusuke Suzuki <utatane.tea@gmail.com> 2 30 -
trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r230517 r230543 1707 1707 E3555B8A1DAE03A500F36921 /* DOMJITCallDOMGetterSnippet.h in Headers */ = {isa = PBXBuildFile; fileRef = E3555B891DAE03A200F36921 /* DOMJITCallDOMGetterSnippet.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1708 1708 E355F3531B7DC85300C50DC5 /* ModuleLoaderPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = E355F3511B7DC85300C50DC5 /* ModuleLoaderPrototype.h */; }; 1709 E356D86420728381005AC750 /* DFGCompareSlowPathGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = E356D86320728381005AC750 /* DFGCompareSlowPathGenerator.h */; };1710 1709 E35CA1541DBC3A5C00F83516 /* DOMJITHeapRange.h in Headers */ = {isa = PBXBuildFile; fileRef = E35CA1521DBC3A5600F83516 /* DOMJITHeapRange.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1711 1710 E35CA1561DBC3A5F00F83516 /* DOMJITAbstractHeap.h in Headers */ = {isa = PBXBuildFile; fileRef = E35CA1501DBC3A5600F83516 /* DOMJITAbstractHeap.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 4557 4556 E355F3501B7DC85300C50DC5 /* ModuleLoaderPrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ModuleLoaderPrototype.cpp; sourceTree = "<group>"; }; 4558 4557 E355F3511B7DC85300C50DC5 /* ModuleLoaderPrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModuleLoaderPrototype.h; sourceTree = "<group>"; }; 4559 E356D86320728381005AC750 /* DFGCompareSlowPathGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGCompareSlowPathGenerator.h; path = dfg/DFGCompareSlowPathGenerator.h; sourceTree = "<group>"; };4560 4558 E35CA14F1DBC3A5600F83516 /* DOMJITAbstractHeap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMJITAbstractHeap.cpp; sourceTree = "<group>"; }; 4561 4559 E35CA1501DBC3A5600F83516 /* DOMJITAbstractHeap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMJITAbstractHeap.h; sourceTree = "<group>"; }; … … 7163 7161 0FEA0A2D170D40BF00BB722C /* DFGCommonData.cpp */, 7164 7162 0FEA0A2E170D40BF00BB722C /* DFGCommonData.h */, 7165 E356D86320728381005AC750 /* DFGCompareSlowPathGenerator.h */,7166 7163 0F38B01317CFE75500B144D3 /* DFGCompilationKey.cpp */, 7167 7164 0F38B01417CFE75500B144D3 /* DFGCompilationKey.h */, … … 8224 8221 8B3BF5E41E3D368B0076A87A /* AsyncGeneratorPrototype.lut.h in Headers */, 8225 8222 8BC064961E1D845C00B2B8CA /* AsyncIteratorPrototype.h in Headers */, 8226 0F5E0FD8207C72730097F0DE /* DFGAbstractInterpreterClobberState.h in Headers */,8227 8223 6A38CFAA1E32B5AB0060206F /* AsyncStackTrace.h in Headers */, 8228 8224 0F7CF9571DC125900098CC12 /* AtomicsObject.h in Headers */, … … 8474 8470 A77A423E17A0BBFD00A8DB81 /* DFGAbstractHeap.h in Headers */, 8475 8471 A704D90317A0BAA8006BA554 /* DFGAbstractInterpreter.h in Headers */, 8472 0F5E0FD8207C72730097F0DE /* DFGAbstractInterpreterClobberState.h in Headers */, 8476 8473 A704D90417A0BAA8006BA554 /* DFGAbstractInterpreterInlines.h in Headers */, 8477 8474 0F620177143FCD3F0068B77C /* DFGAbstractValue.h in Headers */, … … 8513 8510 0F7B294D14C3CD4C007C3DB1 /* DFGCommon.h in Headers */, 8514 8511 0FEA0A32170D40BF00BB722C /* DFGCommonData.h in Headers */, 8515 E356D86420728381005AC750 /* DFGCompareSlowPathGenerator.h in Headers */,8516 8512 0F38B01817CFE75500B144D3 /* DFGCompilationKey.h in Headers */, 8517 8513 0F38B01A17CFE75500B144D3 /* DFGCompilationMode.h in Headers */, -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
r230520 r230543 35 35 #include "DFGCallCreateDirectArgumentsSlowPathGenerator.h" 36 36 #include "DFGCapabilities.h" 37 #include "DFGCompareSlowPathGenerator.h"38 37 #include "DFGMayExit.h" 39 38 #include "DFGOSRExitFuzz.h" … … 1292 1291 m_gpr = m_jit->allocate(); 1293 1292 } 1294 #endif // USE(JSVALUE32_64) 1293 #else // USE(JSVALUE32_64) 1294 GPRTemporary::GPRTemporary(SpeculativeJIT* jit, ReuseTag, JSValueOperand& op1, WhichValueWord) 1295 : GPRTemporary(jit, Reuse, op1) 1296 { 1297 } 1298 #endif 1295 1299 1296 1300 JSValueRegsTemporary::JSValueRegsTemporary() { } … … 4032 4036 case UntypedUse: { 4033 4037 JSValueOperand value(this, node->child1()); 4034 #if USE(JSVALUE64)4035 GPRTemporary result(this, Reuse, value);4036 #else4037 4038 GPRTemporary result(this, Reuse, value, PayloadWord); 4038 #endif4039 4039 4040 4040 JSValueRegs valueRegs = value.jsValueRegs(); … … 4083 4083 { 4084 4084 JSValueOperand value(this, node->child1()); 4085 #if USE(JSVALUE64)4086 GPRTemporary result(this, Reuse, value);4087 #else4088 4085 GPRTemporary result(this, Reuse, value, PayloadWord); 4089 #endif4090 4086 4091 4087 JSValueRegs valueRegs = value.jsValueRegs(); … … 4115 4111 4116 4112 JSValueOperand value(this, node->child1()); 4117 #if USE(JSVALUE64)4118 GPRTemporary result(this, Reuse, value);4119 #else4120 4113 GPRTemporary result(this, Reuse, value, PayloadWord); 4121 #endif4122 4114 4123 4115 JSValueRegs valueRegs = value.jsValueRegs(); … … 8585 8577 { 8586 8578 JSValueOperand value(this, node->child1()); 8587 #if USE(JSVALUE64)8588 GPRTemporary result(this, Reuse, value);8589 #else8590 8579 GPRTemporary result(this, Reuse, value, TagWord); 8591 #endif8592 8580 8593 8581 JSValueRegs valueRegs = value.jsValueRegs(); … … 12878 12866 } 12879 12867 12880 #if USE(JSVALUE64)12881 GPRTemporary result(this, Reuse, arg1);12882 #else12883 12868 GPRTemporary result(this, Reuse, arg1, TagWord); 12884 #endif12885 12869 GPRReg resultGPR = result.gpr(); 12886 12870 … … 12895 12879 m_jit.compare32(cond, arg1Regs.payloadGPR(), arg2Regs.payloadGPR(), resultGPR); 12896 12880 12897 if (!isKnownInteger(node->child1().node()) || !isKnownInteger(node->child2().node())) { 12898 addSlowPathGenerator(std::make_unique<CompareSlowPathGenerator<JITCompiler::JumpList>>( 12899 slowPath, this, helperFunction, resultGPR, arg1Regs, arg2Regs)); 12900 } 12881 if (!isKnownInteger(node->child1().node()) || !isKnownInteger(node->child2().node())) 12882 addSlowPathGenerator(slowPathCall(slowPath, this, helperFunction, resultGPR, arg1Regs, arg2Regs)); 12901 12883 12902 12884 unblessedBooleanResult(resultGPR, node, UseChildrenCalledExplicitly); … … 12940 12922 branchTest32(callResultCondition, resultGPR, taken); 12941 12923 } else { 12942 #if USE(JSVALUE64)12943 GPRTemporary result(this, Reuse, arg2);12944 #else12945 12924 GPRTemporary result(this, Reuse, arg2, TagWord); 12946 #endif12947 12925 GPRReg resultGPR = result.gpr(); 12948 12926 -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
r230517 r230543 2019 2019 m_gpr = m_jit->allocate(); 2020 2020 } 2021 #if USE(JSVALUE32_64)2022 2021 GPRTemporary(SpeculativeJIT*, ReuseTag, JSValueOperand&, WhichValueWord); 2023 #endif2024 2022 2025 2023 GPRTemporary(GPRTemporary& other) = delete; -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
r230517 r230543 454 454 m_jit.move(JITCompiler::TrustedImm64(!invert), resultGPR); 455 455 456 addSlowPathGenerator(std::make_unique<CompareSlowPathGenerator<MacroAssembler::JumpList>>( 457 slowPathCases, this, operationCompareStrictEq, resultGPR, arg1Regs, arg2Regs)); 456 addSlowPathGenerator(slowPathCall(slowPathCases, this, operationCompareStrictEq, resultGPR, arg1Regs, arg2Regs)); 458 457 459 458 done.link(&m_jit);
Note: See TracChangeset
for help on using the changeset viewer.