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

Unified Diff: runtime/vm/stub_code_ia32.cc

Issue 17233003: Reapply "Initial implementation of on-stack replacement (OSR)." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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
« no previous file with comments | « runtime/vm/stack_frame.h ('k') | runtime/vm/stub_code_x64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/stub_code_ia32.cc
diff --git a/runtime/vm/stub_code_ia32.cc b/runtime/vm/stub_code_ia32.cc
index 0cf7c9bd723befa655530ef56d8c115609ce863a..7f884622f12da780745d278be551f78c62d7fbaa 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);
}
« no previous file with comments | « runtime/vm/stack_frame.h ('k') | runtime/vm/stub_code_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698