From 9c269424278be4ae555e8af3a00c80ac59c3a33e Mon Sep 17 00:00:00 2001 From: mbrandy Date: Mon, 20 Jul 2015 10:20:51 -0700 Subject: [PATCH] PPC: Debugger: prepare code for debugging on a per-function basis. Port 35c28ce0a742e58346d2dea009428cacd442040d 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. R=yangguo@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG=v8:4132 LOG=N Review URL: https://codereview.chromium.org/1244823002 Cr-Commit-Position: refs/heads/master@{#29764} --- src/ppc/assembler-ppc-inl.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ppc/assembler-ppc-inl.h b/src/ppc/assembler-ppc-inl.h index 13607234e..3f0ae733c 100644 --- a/src/ppc/assembler-ppc-inl.h +++ b/src/ppc/assembler-ppc-inl.h @@ -375,8 +375,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); @@ -400,8 +399,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)) { -- 2.34.1