Reviewers: dstence, michael_dawson, Yang,
Description:
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.
[email protected], [email protected], [email protected]
BUG=v8:4132
LOG=N
Please review this at https://codereview.chromium.org/1244823002/
Base URL: https://chromium.googlesource.com/v8/v8.git@master
Affected files (+2, -4 lines):
M src/ppc/assembler-ppc-inl.h
Index: src/ppc/assembler-ppc-inl.h
diff --git a/src/ppc/assembler-ppc-inl.h b/src/ppc/assembler-ppc-inl.h
index
13607234e32fcfb64bf168779ca756eaea6961be..3f0ae733cf04ac15b7d2f76bcbac60d023ce6c75
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)) {
--
--
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.