Reviewers: Michael Starzinger, ulan,

Description:
Debugger: prepare code for debugging on a per-function basis.

Prior to this patch, we enter a global debug mode whenever a break point
is set. By entering this mode, all code is deoptimized and activated
frames are recompiled and redirected to newly compiled debug code.

After this patch, we only deoptimize/redirect for functions we want to
debug. Trigger for this is Debug::EnsureDebugInfo, and having DebugInfo
object attached to the SFI prevents optimization/inlining.

The result is that we can have optimized code for functions without break
points alongside functions that do have break points, which are not
optimized.

[email protected], [email protected]
BUG=v8:4132
LOG=Y

Please review this at https://codereview.chromium.org/1233073005/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+399, -664 lines):
  M src/arm/assembler-arm-inl.h
  M src/arm64/assembler-arm64-inl.h
  M src/background-parsing-task.cc
  M src/bailout-reason.h
  M src/compiler.h
  M src/compiler.cc
  M src/compiler/js-inlining.cc
  M src/debug.h
  M src/debug.cc
  M src/heap/mark-compact.cc
  M src/heap/objects-visiting-inl.h
  M src/hydrogen.cc
  M src/ia32/assembler-ia32-inl.h
  M src/ic/ic.cc
  M src/liveedit.cc
  M src/mips/assembler-mips-inl.h
  M src/mips64/assembler-mips64-inl.h
  M src/objects.h
  M src/objects.cc
  M src/objects-inl.h
  M src/runtime/runtime-debug.cc
  M src/x64/assembler-x64-inl.h
  M test/cctest/test-api.cc
  M test/cctest/test-debug.cc
  M test/cctest/test-func-name-inference.cc
  M test/mjsunit/debug-evaluate.js
  A test/mjsunit/debug-optimize.js


--
--
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/d/optout.

Reply via email to