Changeset 235177 in webkit
- Timestamp:
- Aug 22, 2018, 9:55:19 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 4 edited
-
JSTests/ChangeLog (modified) (1 diff)
-
JSTests/stress/bug-188298.js (added)
-
Source/JavaScriptCore/ChangeLog (modified) (1 diff)
-
Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (modified) (4 diffs)
-
Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/JSTests/ChangeLog
r235106 r235177 1 2018-08-22 Mark Lam <mark.lam@apple.com> 2 3 The DFG CFGSimplification phase shouldn’t jettison a block when it’s the target of both branch directions. 4 https://bugs.webkit.org/show_bug.cgi?id=188298 5 <rdar://problem/42888427> 6 7 Reviewed by Saam Barati. 8 9 * stress/bug-188298.js: Added. 10 1 11 2018-08-20 Saam barati <sbarati@apple.com> 2 12 -
trunk/Source/JavaScriptCore/ChangeLog
r235161 r235177 1 2018-08-22 Mark Lam <mark.lam@apple.com> 2 3 The DFG CFGSimplification phase shouldn’t jettison a block when it’s the target of both branch directions. 4 https://bugs.webkit.org/show_bug.cgi?id=188298 5 <rdar://problem/42888427> 6 7 Reviewed by Saam Barati. 8 9 In the event that both targets of a Branch is the same block, then even if we'll 10 always take one path of the branch, the other target is not unreachable because 11 it is the same target as the one in the taken path. Hence, it should not be 12 jettisoned. 13 14 * JavaScriptCore.xcodeproj/project.pbxproj: 15 - Added DFGCFG.h which is in use and should have been added to the project. 16 * dfg/DFGCFGSimplificationPhase.cpp: 17 (JSC::DFG::CFGSimplificationPhase::run): 18 1 19 2018-08-20 Yusuke Suzuki <yusukesuzuki@slowstart.org> 2 20 -
trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r234713 r235177 1801 1801 FEA08621182B7A0400F6D851 /* DebuggerPrimitives.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA0861F182B7A0400F6D851 /* DebuggerPrimitives.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1802 1802 FEA0C4031CDD7D1D00481991 /* FunctionWhitelist.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA0C4011CDD7D0E00481991 /* FunctionWhitelist.h */; }; 1803 FEA3BBAC212C97CB00E93AD1 /* DFGCFG.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA3BBAB212C97CB00E93AD1 /* DFGCFG.h */; }; 1803 1804 FEB51F6C1A97B688001F921C /* Regress141809.mm in Sources */ = {isa = PBXBuildFile; fileRef = FEB51F6B1A97B688001F921C /* Regress141809.mm */; }; 1804 1805 FEB58C15187B8B160098EF0B /* ErrorHandlingScope.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB58C13187B8B160098EF0B /* ErrorHandlingScope.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 4766 4767 FEA0C4001CDD7D0E00481991 /* FunctionWhitelist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FunctionWhitelist.cpp; sourceTree = "<group>"; }; 4767 4768 FEA0C4011CDD7D0E00481991 /* FunctionWhitelist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FunctionWhitelist.h; sourceTree = "<group>"; }; 4769 FEA3BBAB212C97CB00E93AD1 /* DFGCFG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGCFG.h; path = dfg/DFGCFG.h; sourceTree = "<group>"; }; 4768 4770 FEB137561BB11EEE00CD5100 /* MacroAssemblerARM64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MacroAssemblerARM64.cpp; sourceTree = "<group>"; }; 4769 4771 FEB41CCB1F73284200C5481E /* ProbeFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProbeFrame.h; sourceTree = "<group>"; }; … … 7199 7201 0FFFC94B14EF909500C72532 /* DFGCFAPhase.cpp */, 7200 7202 0FFFC94C14EF909500C72532 /* DFGCFAPhase.h */, 7203 FEA3BBAB212C97CB00E93AD1 /* DFGCFG.h */, 7201 7204 0F3B3A241544C991003ED0FF /* DFGCFGSimplificationPhase.cpp */, 7202 7205 0F3B3A251544C991003ED0FF /* DFGCFGSimplificationPhase.h */, … … 8446 8449 0F666EC0183566F900D017F1 /* BytecodeLivenessAnalysisInlines.h in Headers */, 8447 8450 E328DAEB1D38D005001A2529 /* BytecodeRewriter.h in Headers */, 8451 FEA3BBAC212C97CB00E93AD1 /* DFGCFG.h in Headers */, 8448 8452 6514F21918B3E1670098FF8B /* Bytecodes.h in Headers */, 8449 8453 0F885E111849A3BE00F1E3FA /* BytecodeUseDef.h in Headers */, -
trunk/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp
r232800 r235177 107 107 m_graph.dump(); 108 108 m_graph.dethread(); 109 mergeBlocks(block, targetBlock, oneBlock(jettisonedBlock)); 109 if (targetBlock == jettisonedBlock) 110 mergeBlocks(block, targetBlock, noBlocks()); 111 else 112 mergeBlocks(block, targetBlock, oneBlock(jettisonedBlock)); 110 113 } else { 111 114 if (extremeLogging) … … 117 120 NodeOrigin boundaryNodeOrigin = terminal->origin; 118 121 119 jettisonBlock(block, jettisonedBlock, boundaryNodeOrigin); 122 if (targetBlock != jettisonedBlock) 123 jettisonBlock(block, jettisonedBlock, boundaryNodeOrigin); 120 124 121 125 block->replaceTerminal( … … 135 139 break; 136 140 } 137 141 138 142 // Branch to same destination -> jump. 139 143 // FIXME: this will currently not be hit because of the lack of jump-only
Note:
See TracChangeset
for help on using the changeset viewer.