Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Unified Diff: runtime/vm/stub_code_ia32.cc

Issue 16693006: Initial implementation of on-stack replacement (OSR). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Clean up for review. Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/stub_code_ia32.cc
diff --git a/runtime/vm/stub_code_ia32.cc b/runtime/vm/stub_code_ia32.cc
index 1acfc810d764b44b612a774273c92d25f1aa4346..354439e415cef370140ff68665a916ee37970c87 100644
--- a/runtime/vm/stub_code_ia32.cc
+++ b/runtime/vm/stub_code_ia32.cc
@@ -1435,22 +1435,10 @@ void StubCode::GenerateOptimizedUsageCounterIncrement(Assembler* assembler) {
__ popl(func_reg); // Restore.
__ LeaveFrame();
}
- Label is_hot;
- if (FlowGraphCompiler::CanOptimize()) {
- ASSERT(FLAG_optimization_counter_threshold > 1);
- __ cmpl(FieldAddress(func_reg, Function::usage_counter_offset()),
- Immediate(FLAG_optimization_counter_threshold));
- __ j(GREATER_EQUAL, &is_hot, Assembler::kNearJump);
- // As long as VM has no OSR do not optimize in the middle of the function
- // but only at exit so that we have collected all type feedback before
- // optimizing.
- }
__ incl(FieldAddress(func_reg, Function::usage_counter_offset()));
- __ Bind(&is_hot);
}
-
// Loads function into 'temp_reg'.
void StubCode::GenerateUsageCounterIncrement(Assembler* assembler,
Register temp_reg) {
@@ -1458,20 +1446,7 @@ void StubCode::GenerateUsageCounterIncrement(Assembler* assembler,
Register func_reg = temp_reg;
ASSERT(ic_reg != func_reg);
__ movl(func_reg, FieldAddress(ic_reg, ICData::function_offset()));
- Label is_hot;
- if (FlowGraphCompiler::CanOptimize()) {
- ASSERT(FLAG_optimization_counter_threshold > 1);
- // The usage_counter is always less than FLAG_optimization_counter_threshold
- // except when the function gets optimized.
- __ cmpl(FieldAddress(func_reg, Function::usage_counter_offset()),
- Immediate(FLAG_optimization_counter_threshold));
- __ j(EQUAL, &is_hot, Assembler::kNearJump);
- // As long as VM has no OSR do not optimize in the middle of the function
- // but only at exit so that we have collected all type feedback before
- // optimizing.
- }
__ incl(FieldAddress(func_reg, Function::usage_counter_offset()));
- __ Bind(&is_hot);
}

Powered by Google App Engine
This is Rietveld 408576698