Reviewers: Weiliang,

Message:
PTAL

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

port 35c28ce0a742e58346d2dea009428cacd442040d (r29758).

original commit message:

    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.

BUG=

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

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

Affected files (+2, -4 lines):
  M src/x87/assembler-x87-inl.h


Index: src/x87/assembler-x87-inl.h
diff --git a/src/x87/assembler-x87-inl.h b/src/x87/assembler-x87-inl.h
index 055dee81e37e9597aca03c2a8c663b5c25fadf66..a21c6140301a663c58381d05c73c4c713e5e73ec 100644
--- a/src/x87/assembler-x87-inl.h
+++ b/src/x87/assembler-x87-inl.h
@@ -293,8 +293,7 @@ void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   } else if (RelocInfo::IsCodeAgeSequence(mode)) {
     visitor->VisitCodeAgeSequence(this);
   } else if (RelocInfo::IsDebugBreakSlot(mode) &&
-             IsPatchedDebugBreakSlotSequence() &&
-             isolate->debug()->has_break_points()) {
+             IsPatchedDebugBreakSlotSequence()) {
     visitor->VisitDebugTarget(this);
   } else if (IsRuntimeEntry(mode)) {
     visitor->VisitRuntimeEntry(this);
@@ -318,8 +317,7 @@ void RelocInfo::Visit(Heap* heap) {
     StaticVisitor::VisitInternalReference(this);
   } else if (RelocInfo::IsCodeAgeSequence(mode)) {
     StaticVisitor::VisitCodeAgeSequence(heap, this);
-  } else if (heap->isolate()->debug()->has_break_points() &&
-             RelocInfo::IsDebugBreakSlot(mode) &&
+  } else if (RelocInfo::IsDebugBreakSlot(mode) &&
              IsPatchedDebugBreakSlotSequence()) {
     StaticVisitor::VisitDebugTarget(heap, this);
   } else if (IsRuntimeEntry(mode)) {


--
--
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