Title: [124230] trunk/Source/_javascript_Core
- Revision
- 124230
- Author
- [email protected]
- Date
- 2012-07-31 11:48:17 -0700 (Tue, 31 Jul 2012)
Log Message
DFG OSR exit profiling has unusual oversights
https://bugs.webkit.org/show_bug.cgi?id=92728
Reviewed by Geoffrey Garen.
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::considerAddingAsFrequentExitSiteSlow):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::speculationWatchpoint):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (124229 => 124230)
--- trunk/Source/_javascript_Core/ChangeLog 2012-07-31 18:47:33 UTC (rev 124229)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-07-31 18:48:17 UTC (rev 124230)
@@ -1,3 +1,19 @@
+2012-07-31 Filip Pizlo <[email protected]>
+
+ DFG OSR exit profiling has unusual oversights
+ https://bugs.webkit.org/show_bug.cgi?id=92728
+
+ Reviewed by Geoffrey Garen.
+
+ * dfg/DFGOSRExit.cpp:
+ (JSC::DFG::OSRExit::considerAddingAsFrequentExitSiteSlow):
+ * dfg/DFGSpeculativeJIT.h:
+ (JSC::DFG::SpeculativeJIT::speculationWatchpoint):
+ * dfg/DFGSpeculativeJIT32_64.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT64.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+
2012-07-31 Chao-ying Fu <[email protected]>
Add MIPS add32 function
Modified: trunk/Source/_javascript_Core/dfg/DFGOSRExit.cpp (124229 => 124230)
--- trunk/Source/_javascript_Core/dfg/DFGOSRExit.cpp 2012-07-31 18:47:33 UTC (rev 124229)
+++ trunk/Source/_javascript_Core/dfg/DFGOSRExit.cpp 2012-07-31 18:48:17 UTC (rev 124230)
@@ -64,7 +64,7 @@
} else
exitSite = FrequentExitSite(m_codeOriginForExitProfile.bytecodeIndex, m_kind);
- return baselineCodeBlockForOriginAndBaselineCodeBlock(m_codeOrigin, profiledCodeBlock)->addFrequentExitSite(exitSite);
+ return baselineCodeBlockForOriginAndBaselineCodeBlock(m_codeOriginForExitProfile, profiledCodeBlock)->addFrequentExitSite(exitSite);
}
} } // namespace JSC::DFG
Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h (124229 => 124230)
--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h 2012-07-31 18:47:33 UTC (rev 124229)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h 2012-07-31 18:48:17 UTC (rev 124230)
@@ -2224,9 +2224,9 @@
// The default for speculation watchpoints is that they're uncounted, because the
// act of firing a watchpoint invalidates it. So, future recompilations will not
// attempt to set this watchpoint again.
- JumpReplacementWatchpoint* speculationWatchpoint()
+ JumpReplacementWatchpoint* speculationWatchpoint(ExitKind kind = UncountableWatchpoint)
{
- return speculationWatchpoint(UncountableWatchpoint, JSValueSource(), NoNode);
+ return speculationWatchpoint(kind, JSValueSource(), NoNode);
}
void forwardSpeculationCheck(ExitKind kind, JSValueSource jsValueSource, NodeIndex nodeIndex, MacroAssembler::Jump jumpToFail, const ValueRecovery& valueRecovery)
{
Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (124229 => 124230)
--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp 2012-07-31 18:47:33 UTC (rev 124229)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp 2012-07-31 18:48:17 UTC (rev 124230)
@@ -3505,7 +3505,7 @@
case StructureTransitionWatchpoint: {
m_jit.addWeakReference(node.structure());
- node.structure()->addTransitionWatchpoint(speculationWatchpoint());
+ node.structure()->addTransitionWatchpoint(speculationWatchpoint(BadCache));
#if !ASSERT_DISABLED
SpeculateCellOperand op1(this, node.child1());
Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp (124229 => 124230)
--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp 2012-07-31 18:47:33 UTC (rev 124229)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp 2012-07-31 18:48:17 UTC (rev 124230)
@@ -3520,7 +3520,7 @@
case StructureTransitionWatchpoint: {
m_jit.addWeakReference(node.structure());
- node.structure()->addTransitionWatchpoint(speculationWatchpoint());
+ node.structure()->addTransitionWatchpoint(speculationWatchpoint(BadCache));
#if !ASSERT_DISABLED
SpeculateCellOperand op1(this, node.child1());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes