Chromium Code Reviews| Index: src/ic-inl.h |
| diff --git a/src/ic-inl.h b/src/ic-inl.h |
| index 56cea817600c29748fc0e9cd9e0037d3b70cd20d..877b091fad5682c9f3751fa16073c1771bfea6b3 100644 |
| --- a/src/ic-inl.h |
| +++ b/src/ic-inl.h |
| @@ -1,4 +1,4 @@ |
| -// Copyright 2011 the V8 project authors. All rights reserved. |
| +// Copyright 2012 the V8 project authors. All rights reserved. |
| // Redistribution and use in source and binary forms, with or without |
| // modification, are permitted provided that the following conditions are |
| // met: |
| @@ -29,6 +29,8 @@ |
| #define V8_IC_INL_H_ |
| #include "ic.h" |
| + |
| +#include "compiler.h" |
| #include "debug.h" |
| #include "macro-assembler.h" |
| @@ -89,6 +91,23 @@ void IC::SetTargetAtAddress(Address address, Code* target) { |
| Assembler::set_target_address_at(address, target->instruction_start()); |
| target->GetHeap()->incremental_marking()->RecordCodeTargetPatch(address, |
| target); |
| + if (FLAG_counting_profiler) { |
|
Erik Corry
2012/02/08 14:09:23
Suggested comment:
// We do not want to optimize
Jakob Kummerow
2012/02/08 15:24:08
Done.
|
| + Isolate::Current()->runtime_profiler()->NotifyICChanged(); |
| + StackFrameIterator it; |
| + if (it.done()) return; |
| + it.Advance(); |
| + static const int kStackFramesToMark = Compiler::kMaxInliningLevels - 1; |
| + for (int i = 0; i < kStackFramesToMark; ++i) { |
| + if (it.done()) return; |
| + StackFrame* raw_frame = it.frame(); |
| + if (raw_frame->is_java_script()) { |
| + JSFunction* function = |
| + JSFunction::cast(JavaScriptFrame::cast(raw_frame)->function()); |
| + function->shared()->set_profiler_ticks(0); |
| + } |
| + it.Advance(); |
| + } |
| + } |
| } |