Reviewers: loislo, Michael Starzinger,
Description:
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
Please review this at https://codereview.chromium.org/67743006/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+0, -43 lines):
M src/heap-profiler.h
M src/heap-profiler.cc
Index: src/heap-profiler.cc
diff --git a/src/heap-profiler.cc b/src/heap-profiler.cc
index
46320b615418fa628b4644c3f98a2a22cd89558e..a4ec5a979f02ba0159f2f05e83b38dbcb942c0f8
100644
--- a/src/heap-profiler.cc
+++ b/src/heap-profiler.cc
@@ -27,7 +27,6 @@
#include "v8.h"
-#include "deoptimizer.h"
#include "heap-profiler.h"
#include "heap-snapshot-generator-inl.h"
@@ -160,7 +159,6 @@ void HeapProfiler::StartHeapAllocationsRecording() {
StartHeapObjectsTracking();
heap()->DisableInlineAllocation();
is_tracking_allocations_ = true;
- DropCompiledCode();
snapshots_->UpdateHeapObjectsMap();
}
@@ -169,45 +167,6 @@ void HeapProfiler::StopHeapAllocationsRecording() {
StopHeapObjectsTracking();
heap()->EnableInlineAllocation();
is_tracking_allocations_ = false;
- DropCompiledCode();
-}
-
-
-void HeapProfiler::DropCompiledCode() {
- Isolate* isolate = heap()->isolate();
- HandleScope scope(isolate);
-
- if (FLAG_concurrent_recompilation) {
- 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);
- }
- }
- }
}
Index: src/heap-profiler.h
diff --git a/src/heap-profiler.h b/src/heap-profiler.h
index
06345fe98aa3d2baacd053939aa9f10c0940dec8..f2e8100f5da2f27dbbc2ea114938f69d012cf02f
100644
--- a/src/heap-profiler.h
+++ b/src/heap-profiler.h
@@ -90,8 +90,6 @@ class HeapProfiler {
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.