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.

Reply via email to