Revision: 17932
Author: [email protected]
Date: Wed Nov 20 14:57:39 2013 UTC
Log: Do not recompile existing functions when enabling allocation
tracking
Now that we don't have special hooks for the allocations in the generated
code there is no need to recompile existing functions when enabling
allocation tracking.
BUG=chromium:27798
LOG=N
[email protected], [email protected]
Review URL: https://codereview.chromium.org/67743006
http://code.google.com/p/v8/source/detail?r=17932
Modified:
/branches/bleeding_edge/src/heap-profiler.cc
/branches/bleeding_edge/src/heap-profiler.h
=======================================
--- /branches/bleeding_edge/src/heap-profiler.cc Tue Nov 19 11:52:47 2013
UTC
+++ /branches/bleeding_edge/src/heap-profiler.cc Wed Nov 20 14:57:39 2013
UTC
@@ -27,7 +27,6 @@
#include "v8.h"
-#include "deoptimizer.h"
#include "heap-profiler.h"
#include "heap-snapshot-generator-inl.h"
@@ -160,7 +159,6 @@
StartHeapObjectsTracking();
heap()->DisableInlineAllocation();
is_tracking_allocations_ = true;
- DropCompiledCode();
snapshots_->UpdateHeapObjectsMap();
}
@@ -169,45 +167,6 @@
StopHeapObjectsTracking();
heap()->EnableInlineAllocation();
is_tracking_allocations_ = false;
- DropCompiledCode();
-}
-
-
-void HeapProfiler::DropCompiledCode() {
- Isolate* isolate = heap()->isolate();
- HandleScope scope(isolate);
-
- if (isolate->concurrent_recompilation_enabled()) {
- isolate->optimizing_compiler_thread()->Flush();
- }
-
- Deoptimizer::DeoptimizeAll(isolate);
-
- Handle<Code> lazy_compile =
- Handle<Code>(isolate->builtins()->builtin(Builtins::kLazyCompile));
-
- heap()->CollectAllGarbage(Heap::kMakeHeapIterableMask,
- "switch allocations tracking");
-
- DisallowHeapAllocation no_allocation;
-
- HeapIterator iterator(heap());
- HeapObject* obj = NULL;
- while (((obj = iterator.next()) != NULL)) {
- if (obj->IsJSFunction()) {
- JSFunction* function = JSFunction::cast(obj);
- SharedFunctionInfo* shared = function->shared();
-
- if (!shared->allows_lazy_compilation()) continue;
- if (!shared->script()->IsScript()) continue;
-
- Code::Kind kind = function->code()->kind();
- if (kind == Code::FUNCTION || kind == Code::BUILTIN) {
- function->set_code(*lazy_compile);
- shared->set_code(*lazy_compile);
- }
- }
- }
}
=======================================
--- /branches/bleeding_edge/src/heap-profiler.h Mon Nov 11 18:00:52 2013 UTC
+++ /branches/bleeding_edge/src/heap-profiler.h Wed Nov 20 14:57:39 2013 UTC
@@ -89,8 +89,6 @@
int FindUntrackedObjects() {
return snapshots_->FindUntrackedObjects();
}
-
- void DropCompiledCode();
private:
Heap* heap() const { return snapshots_->heap(); }
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.