Revert "Move deoptimizer files"

This reverts commit 61523c45a3.

Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/20396

Original change's description:
> Move deoptimizer files
> 
> Bug: v8:9247
> Change-Id: I6287907edb8a36225bfa9fe864305ea59c20dd8b
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617667
> Commit-Queue: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61648}

TBR=yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,bmeurer@chromium.org

Change-Id: Icf258f7bc409ef0c360cfa82029bfc45a41dc75f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9247
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619749
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61650}
This commit is contained in:
Yang Guo 2019-05-20 12:50:23 +00:00 committed by Commit Bot
parent 456e5687a7
commit a769552055
64 changed files with 144 additions and 97 deletions

View File

@ -2164,10 +2164,10 @@ v8_source_set("v8_base_without_compiler") {
"src/debug/interface-types.h",
"src/debug/liveedit.cc",
"src/debug/liveedit.h",
"src/deoptimizer/deoptimize-reason.cc",
"src/deoptimizer/deoptimize-reason.h",
"src/deoptimizer/deoptimizer.cc",
"src/deoptimizer/deoptimizer.h",
"src/deoptimize-reason.cc",
"src/deoptimize-reason.h",
"src/deoptimizer.cc",
"src/deoptimizer.h",
"src/detachable-vector.cc",
"src/detachable-vector.h",
"src/diagnostics/basic-block-profiler.cc",

View File

@ -6,7 +6,7 @@
#include "src/api/api-inl.h"
#include "src/contexts.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/execution.h"
#include "src/frames-inl.h"
#include "src/heap/factory.h"

View File

@ -35,7 +35,7 @@
#include "src/debug/debug-type-profile.h"
#include "src/debug/debug.h"
#include "src/debug/liveedit.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/detachable-vector.h"
#include "src/diagnostics/gdb-jit.h"
#include "src/execution.h"

View File

@ -42,7 +42,7 @@
#include "src/assembler-inl.h"
#include "src/base/bits.h"
#include "src/base/cpu.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/objects-inl.h"
#include "src/string-constants.h"

View File

@ -3,7 +3,7 @@
// found in the LICENSE file.
#include "src/assembler-inl.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/objects-inl.h"
#include "src/register-configuration.h"

View File

@ -5,7 +5,7 @@
#include "src/api/api.h"
#include "src/arm64/assembler-arm64-inl.h"
#include "src/arm64/macro-assembler-arm64-inl.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/register-configuration.h"
#include "src/safepoint-table.h"

View File

@ -35,7 +35,7 @@
#include "src/assembler.h"
#include "src/assembler-inl.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/diagnostics/disassembler.h"
#include "src/heap/heap-inl.h" // For MemoryAllocator. TODO(jkummerow): Drop.
#include "src/isolate.h"

View File

@ -39,7 +39,7 @@
#include "src/code-comments.h"
#include "src/cpu-features.h"
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/deoptimize-reason.h"
#include "src/external-reference.h"
#include "src/flags.h"
#include "src/globals.h"

View File

@ -7,7 +7,7 @@
#include "src/api/api-arguments.h"
#include "src/code-factory.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/frames.h"
#include "src/logging/counters.h"

View File

@ -7,7 +7,7 @@
#include "src/api/api-arguments.h"
#include "src/code-factory.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/frames.h"
#include "src/logging/counters.h"

View File

@ -8,7 +8,7 @@
#include "src/base/adapters.h"
#include "src/code-factory.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/frames.h"
#include "src/logging/counters.h"

View File

@ -7,7 +7,7 @@
#include "src/api/api-arguments.h"
#include "src/code-factory.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/frames.h"
#include "src/logging/counters.h"

View File

@ -7,7 +7,7 @@
#include "src/api/api-arguments.h"
#include "src/code-factory.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/frames.h"
#include "src/logging/counters.h"

View File

@ -7,7 +7,7 @@
#include "src/api/api-arguments.h"
#include "src/code-factory.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/frames.h"
#include "src/logging/counters.h"

View File

@ -7,7 +7,7 @@
#include "src/api/api-arguments.h"
#include "src/code-factory.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/frames.h"
#include "src/logging/counters.h"

View File

@ -7,7 +7,7 @@
#include "src/api/api-arguments.h"
#include "src/base/adapters.h"
#include "src/code-factory.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/frames.h"
#include "src/logging/counters.h"

View File

@ -10,7 +10,7 @@
#include "src/compiler/backend/instruction.h"
#include "src/compiler/backend/unwinding-info-writer.h"
#include "src/compiler/osr.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/safepoint-table.h"
#include "src/source-position-table.h"

View File

@ -14,7 +14,7 @@
#include "src/compiler/pipeline.h"
#include "src/compiler/schedule.h"
#include "src/compiler/state-values-utils.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
namespace v8 {
namespace internal {

View File

@ -7,7 +7,7 @@
#include "src/base/compiler-specific.h"
#include "src/compiler/frame-states.h"
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/deoptimize-reason.h"
#include "src/globals.h"
#include "src/machine-type.h"
#include "src/reloc-info.h"

View File

@ -9,7 +9,7 @@
#include "src/compiler/frame-states.h"
#include "src/compiler/graph-reducer.h"
#include "src/compiler/node-properties.h"
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/deoptimize-reason.h"
namespace v8 {
namespace internal {

View File

@ -7,7 +7,7 @@
#include "src/base/flags.h"
#include "src/compiler/graph-reducer.h"
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/deoptimize-reason.h"
#include "src/objects/map.h"
namespace v8 {

View File

@ -7,7 +7,7 @@
#include "src/base/flags.h"
#include "src/compiler/graph-reducer.h"
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/deoptimize-reason.h"
#include "src/handles.h"
namespace v8 {

View File

@ -11,7 +11,7 @@
#include "src/compiler/operator.h"
#include "src/compiler/types.h"
#include "src/compiler/write-barrier-kind.h"
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/deoptimize-reason.h"
#include "src/globals.h"
#include "src/handles.h"
#include "src/machine-type.h"

View File

@ -8,7 +8,7 @@
#include "src/ast/ast.h"
#include "src/base/hashmap.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frames-inl.h"
#include "src/isolate.h"
#include "src/objects.h"

View File

@ -5,7 +5,7 @@
#ifndef V8_DEBUG_DEBUG_FRAMES_H_
#define V8_DEBUG_DEBUG_FRAMES_H_
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frames.h"
#include "src/isolate.h"
#include "src/objects.h"

View File

@ -17,7 +17,7 @@
#include "src/compiler.h"
#include "src/debug/debug-evaluate.h"
#include "src/debug/liveedit.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/execution.h"
#include "src/frames-inl.h"
#include "src/global-handles.h"

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/deoptimize-reason.h"
namespace v8 {
namespace internal {

View File

@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_DEOPTIMIZER_DEOPTIMIZE_REASON_H_
#define V8_DEOPTIMIZER_DEOPTIMIZE_REASON_H_
#ifndef V8_DEOPTIMIZE_REASON_H_
#define V8_DEOPTIMIZE_REASON_H_
#include "src/globals.h"
@ -74,4 +74,4 @@ V8_EXPORT_PRIVATE char const* DeoptimizeReasonToString(DeoptimizeReason reason);
} // namespace internal
} // namespace v8
#endif // V8_DEOPTIMIZER_DEOPTIMIZE_REASON_H_
#endif // V8_DEOPTIMIZE_REASON_H_

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include <memory>
@ -142,6 +142,7 @@ DeoptimizerData::DeoptimizerData(Heap* heap) : heap_(heap), current_(nullptr) {
heap_->RegisterStrongRoots(FullObjectSlot(start), FullObjectSlot(end));
}
DeoptimizerData::~DeoptimizerData() {
Code* start = &deopt_entry_code_[0];
heap_->UnregisterStrongRoots(FullObjectSlot(start));
@ -171,6 +172,7 @@ Code Deoptimizer::FindDeoptimizingCode(Address addr) {
return Code();
}
// We rely on this function not causing a GC. It is called from generated code
// without having a real stack frame in place.
Deoptimizer* Deoptimizer::New(Address raw_function, DeoptimizeKind kind,
@ -193,7 +195,9 @@ Deoptimizer* Deoptimizer::Grab(Isolate* isolate) {
}
DeoptimizedFrameInfo* Deoptimizer::DebuggerInspectableFrame(
JavaScriptFrame* frame, int jsframe_index, Isolate* isolate) {
JavaScriptFrame* frame,
int jsframe_index,
Isolate* isolate) {
CHECK(frame->is_optimized());
TranslatedState translated_values(frame);
@ -280,8 +284,8 @@ void Deoptimizer::DeoptimizeMarkedCodeForContext(Context context) {
// Make sure all activations of optimized code can deopt at their current PC.
// The topmost optimized code has special handling because it cannot be
// deoptimized due to weak object dependency.
for (StackFrameIterator it(isolate, isolate->thread_local_top()); !it.done();
it.Advance()) {
for (StackFrameIterator it(isolate, isolate->thread_local_top());
!it.done(); it.Advance()) {
StackFrame::Type type = it.frame()->type();
if (type == StackFrame::OPTIMIZED) {
Code code = it.frame()->LookupCode();
@ -359,6 +363,7 @@ void Deoptimizer::DeoptimizeMarkedCodeForContext(Context context) {
}
}
void Deoptimizer::DeoptimizeAll(Isolate* isolate) {
RuntimeCallTimerScope runtimeTimer(isolate,
RuntimeCallCounterId::kDeoptimizeCode);
@ -380,6 +385,7 @@ void Deoptimizer::DeoptimizeAll(Isolate* isolate) {
}
}
void Deoptimizer::DeoptimizeMarkedCode(Isolate* isolate) {
RuntimeCallTimerScope runtimeTimer(isolate,
RuntimeCallCounterId::kDeoptimizeCode);
@ -524,12 +530,13 @@ Code Deoptimizer::FindOptimizedCode() {
: isolate_->FindCodeObject(from_);
}
void Deoptimizer::PrintFunctionName() {
if (function_->IsHeapObject() && function_->IsJSFunction()) {
function_->ShortPrint(trace_scope_->file());
} else {
PrintF(trace_scope_->file(), "%s",
Code::Kind2String(compiled_code_->kind()));
PrintF(trace_scope_->file(),
"%s", Code::Kind2String(compiled_code_->kind()));
}
}
@ -546,6 +553,7 @@ Deoptimizer::~Deoptimizer() {
delete trace_scope_;
}
void Deoptimizer::DeleteFrameDescriptions() {
delete input_;
for (int i = 0; i < output_count_; ++i) {
@ -1957,6 +1965,7 @@ void Translation::BeginConstructStubFrame(BailoutId bailout_id, int literal_id,
buffer_->Add(height);
}
void Translation::BeginArgumentsAdaptorFrame(int literal_id, unsigned height) {
buffer_->Add(ARGUMENTS_ADAPTOR_FRAME);
buffer_->Add(literal_id);
@ -1990,16 +1999,19 @@ void Translation::BeginCapturedObject(int length) {
buffer_->Add(length);
}
void Translation::DuplicateObject(int object_index) {
buffer_->Add(DUPLICATED_OBJECT);
buffer_->Add(object_index);
}
void Translation::StoreRegister(Register reg) {
buffer_->Add(REGISTER);
buffer_->Add(reg.code());
}
void Translation::StoreInt32Register(Register reg) {
buffer_->Add(INT32_REGISTER);
buffer_->Add(reg.code());
@ -2015,6 +2027,7 @@ void Translation::StoreUint32Register(Register reg) {
buffer_->Add(reg.code());
}
void Translation::StoreBoolRegister(Register reg) {
buffer_->Add(BOOL_REGISTER);
buffer_->Add(reg.code());
@ -2030,11 +2043,13 @@ void Translation::StoreDoubleRegister(DoubleRegister reg) {
buffer_->Add(reg.code());
}
void Translation::StoreStackSlot(int index) {
buffer_->Add(STACK_SLOT);
buffer_->Add(index);
}
void Translation::StoreInt32StackSlot(int index) {
buffer_->Add(INT32_STACK_SLOT);
buffer_->Add(index);
@ -2050,6 +2065,7 @@ void Translation::StoreUint32StackSlot(int index) {
buffer_->Add(index);
}
void Translation::StoreBoolStackSlot(int index) {
buffer_->Add(BOOL_STACK_SLOT);
buffer_->Add(index);
@ -2065,6 +2081,7 @@ void Translation::StoreDoubleStackSlot(int index) {
buffer_->Add(index);
}
void Translation::StoreLiteral(int literal_id) {
buffer_->Add(LITERAL);
buffer_->Add(literal_id);
@ -2120,19 +2137,21 @@ int Translation::NumberOfOperandsFor(Opcode opcode) {
return -1;
}
#if defined(OBJECT_PRINT) || defined(ENABLE_DISASSEMBLER)
const char* Translation::StringFor(Opcode opcode) {
#define TRANSLATION_OPCODE_CASE(item) \
case item: \
return #item;
switch (opcode) { TRANSLATION_OPCODE_LIST(TRANSLATION_OPCODE_CASE) }
#define TRANSLATION_OPCODE_CASE(item) case item: return #item;
switch (opcode) {
TRANSLATION_OPCODE_LIST(TRANSLATION_OPCODE_CASE)
}
#undef TRANSLATION_OPCODE_CASE
UNREACHABLE();
}
#endif
Handle<FixedArray> MaterializedObjectStore::Get(Address fp) {
int index = StackIdToIndex(fp);
if (index == -1) {
@ -2143,6 +2162,7 @@ Handle<FixedArray> MaterializedObjectStore::Get(Address fp) {
return Handle<FixedArray>::cast(Handle<Object>(array->get(index), isolate()));
}
void MaterializedObjectStore::Set(Address fp,
Handle<FixedArray> materialized_objects) {
int index = StackIdToIndex(fp);
@ -2155,6 +2175,7 @@ void MaterializedObjectStore::Set(Address fp,
array->set(index, *materialized_objects);
}
bool MaterializedObjectStore::Remove(Address fp) {
auto it = std::find(frame_fps_.begin(), frame_fps_.end(), fp);
if (it == frame_fps_.end()) return false;
@ -2172,6 +2193,7 @@ bool MaterializedObjectStore::Remove(Address fp) {
return true;
}
int MaterializedObjectStore::StackIdToIndex(Address fp) {
auto it = std::find(frame_fps_.begin(), frame_fps_.end(), fp);
return it == frame_fps_.end()
@ -2179,11 +2201,13 @@ int MaterializedObjectStore::StackIdToIndex(Address fp) {
: static_cast<int>(std::distance(frame_fps_.begin(), it));
}
Handle<FixedArray> MaterializedObjectStore::GetStackEntries() {
return Handle<FixedArray>(isolate()->heap()->materialized_objects(),
isolate());
}
Handle<FixedArray> MaterializedObjectStore::EnsureStackEntries(int length) {
Handle<FixedArray> array = GetStackEntries();
if (array->length() >= length) {
@ -2302,6 +2326,7 @@ Deoptimizer::DeoptInfo Deoptimizer::GetDeoptInfo(Code code, Address pc) {
return DeoptInfo(last_position, last_reason, last_deopt_id);
}
// static
int Deoptimizer::ComputeSourcePositionFromBytecodeArray(
SharedFunctionInfo shared, BailoutId node_id) {
@ -2319,6 +2344,7 @@ TranslatedValue TranslatedValue::NewDeferredObject(TranslatedState* container,
return slot;
}
// static
TranslatedValue TranslatedValue::NewDuplicateObject(TranslatedState* container,
int id) {
@ -2327,6 +2353,7 @@ TranslatedValue TranslatedValue::NewDuplicateObject(TranslatedState* container,
return slot;
}
// static
TranslatedValue TranslatedValue::NewFloat(TranslatedState* container,
Float32 value) {
@ -2343,6 +2370,7 @@ TranslatedValue TranslatedValue::NewDouble(TranslatedState* container,
return slot;
}
// static
TranslatedValue TranslatedValue::NewInt32(TranslatedState* container,
int32_t value) {
@ -2367,6 +2395,7 @@ TranslatedValue TranslatedValue::NewUInt32(TranslatedState* container,
return slot;
}
// static
TranslatedValue TranslatedValue::NewBool(TranslatedState* container,
uint32_t value) {
@ -2375,6 +2404,7 @@ TranslatedValue TranslatedValue::NewBool(TranslatedState* container,
return slot;
}
// static
TranslatedValue TranslatedValue::NewTagged(TranslatedState* container,
Object literal) {
@ -2388,6 +2418,7 @@ TranslatedValue TranslatedValue::NewInvalid(TranslatedState* container) {
return TranslatedValue(container, kInvalid);
}
Isolate* TranslatedValue::isolate() const { return container_->isolate(); }
Object TranslatedValue::raw_literal() const {
@ -2420,11 +2451,13 @@ Float64 TranslatedValue::double_value() const {
return double_value_;
}
int TranslatedValue::object_length() const {
DCHECK_EQ(kind(), kCapturedObject);
return materialization_info_.length_;
}
int TranslatedValue::object_index() const {
DCHECK(kind() == kCapturedObject || kind() == kDuplicatedObject);
return materialization_info_.id_;
@ -2586,6 +2619,7 @@ void TranslatedValue::MaterializeSimple() {
}
}
bool TranslatedValue::IsMaterializedObject() const {
switch (kind()) {
case kCapturedObject:
@ -2710,6 +2744,7 @@ int TranslatedFrame::GetValueCount() {
UNREACHABLE();
}
void TranslatedFrame::Handlify() {
if (!raw_shared_info_.is_null()) {
shared_info_ = Handle<SharedFunctionInfo>(raw_shared_info_,
@ -3335,8 +3370,8 @@ void TranslatedState::Init(Isolate* isolate, Address input_frame_pointer,
if (trace_file != nullptr) {
if (nested_counts.empty()) {
// For top level values, print the value number.
PrintF(trace_file,
" %3i: ", frame.GetValueCount() - values_to_process);
PrintF(trace_file, " %3i: ",
frame.GetValueCount() - values_to_process);
} else {
// Take care of indenting for nested values.
PrintF(trace_file, " ");
@ -3368,8 +3403,9 @@ void TranslatedState::Init(Isolate* isolate, Address input_frame_pointer,
}
}
CHECK(!iterator->HasNext() || static_cast<Translation::Opcode>(
iterator->Next()) == Translation::BEGIN);
CHECK(!iterator->HasNext() ||
static_cast<Translation::Opcode>(iterator->Next()) ==
Translation::BEGIN);
}
void TranslatedState::Prepare(Address stack_frame_pointer) {

View File

@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_DEOPTIMIZER_DEOPTIMIZER_H_
#define V8_DEOPTIMIZER_DEOPTIMIZER_H_
#ifndef V8_DEOPTIMIZER_H_
#define V8_DEOPTIMIZER_H_
#include <stack>
#include <vector>
@ -12,7 +12,7 @@
#include "src/base/macros.h"
#include "src/boxed-float.h"
#include "src/code-tracer.h"
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/deoptimize-reason.h"
#include "src/feedback-vector.h"
#include "src/frame-constants.h"
#include "src/frames.h"
@ -154,6 +154,7 @@ class TranslatedValue {
int object_index() const;
};
class TranslatedFrame {
public:
enum Kind {
@ -283,6 +284,7 @@ class TranslatedFrame {
ValuesContainer values_;
};
// Auxiliary class for translating deoptimization values.
// Typical usage sequence:
//
@ -504,6 +506,7 @@ class Deoptimizer : public Malloced {
void QueueValueForMaterialization(Address output_address, Object obj,
const TranslatedFrame::iterator& iterator);
Deoptimizer(Isolate* isolate, JSFunction function, DeoptimizeKind kind,
unsigned bailout_id, Address from, int fp_to_sp_delta);
Code FindOptimizedCode();
@ -613,6 +616,7 @@ class Deoptimizer : public Malloced {
friend class DeoptimizedFrameInfo;
};
class RegisterValues {
public:
intptr_t GetRegister(unsigned n) const {
@ -663,6 +667,7 @@ class RegisterValues {
Float64 double_registers_[DoubleRegister::kNumRegisters];
};
class FrameDescription {
public:
explicit FrameDescription(uint32_t frame_size, int parameter_count = 0);
@ -673,9 +678,13 @@ class FrameDescription {
return malloc(size + frame_size - kSystemPointerSize);
}
void operator delete(void* pointer, uint32_t frame_size) { free(pointer); }
void operator delete(void* pointer, uint32_t frame_size) {
free(pointer);
}
void operator delete(void* description) { free(description); }
void operator delete(void* description) {
free(description);
}
uint32_t GetFrameSize() const {
USE(frame_content_);
@ -800,11 +809,12 @@ class FrameDescription {
intptr_t* GetFrameSlotPointer(unsigned offset) {
DCHECK(offset < frame_size_);
return reinterpret_cast<intptr_t*>(reinterpret_cast<Address>(this) +
frame_content_offset() + offset);
return reinterpret_cast<intptr_t*>(
reinterpret_cast<Address>(this) + frame_content_offset() + offset);
}
};
class DeoptimizerData {
public:
explicit DeoptimizerData(Heap* heap);
@ -897,7 +907,8 @@ class Translation {
public:
#define DECLARE_TRANSLATION_OPCODE_ENUM(item) item,
enum Opcode {
TRANSLATION_OPCODE_LIST(DECLARE_TRANSLATION_OPCODE_ENUM) LAST = LITERAL
TRANSLATION_OPCODE_LIST(DECLARE_TRANSLATION_OPCODE_ENUM)
LAST = LITERAL
};
#undef DECLARE_TRANSLATION_OPCODE_ENUM
@ -962,9 +973,11 @@ class Translation {
Zone* zone_;
};
class MaterializedObjectStore {
public:
explicit MaterializedObjectStore(Isolate* isolate) : isolate_(isolate) {}
explicit MaterializedObjectStore(Isolate* isolate) : isolate_(isolate) {
}
Handle<FixedArray> Get(Address fp);
void Set(Address fp, Handle<FixedArray> materialized_objects);
@ -981,6 +994,7 @@ class MaterializedObjectStore {
std::vector<Address> frame_fps_;
};
// Class used to represent an unoptimized frame when the debugger
// needs to inspect a frame that is part of an optimized frame. The
// internally used FrameDescription objects are not GC safe so for use
@ -1016,7 +1030,9 @@ class DeoptimizedFrameInfo : public Malloced {
return expression_stack_[index];
}
int GetSourcePosition() { return source_position_; }
int GetSourcePosition() {
return source_position_;
}
private:
// Set an incoming argument.
@ -1043,4 +1059,4 @@ class DeoptimizedFrameInfo : public Malloced {
} // namespace internal
} // namespace v8
#endif // V8_DEOPTIMIZER_DEOPTIMIZER_H_
#endif // V8_DEOPTIMIZER_H_

View File

@ -1,5 +0,0 @@
bmeurer@chromium.org
jarin@chromium.org
mstarzinger@chromium.org
sigurds@chromium.org
tebbi@chromium.org

View File

@ -12,7 +12,7 @@
#include "src/code-comments.h"
#include "src/code-reference.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/diagnostics/disasm.h"
#include "src/ic/ic.h"
#include "src/isolate-data.h"

View File

@ -10,7 +10,7 @@
#include "src/cpu-features.h"
#include "src/date/date.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/hash-seed-inl.h"
#include "src/heap/heap.h"
#include "src/logging/counters.h"

View File

@ -8,7 +8,7 @@
#include <sstream>
#include "src/base/bits.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frames-inl.h"
#include "src/ic/ic-stats.h"
#include "src/macro-assembler.h"

View File

@ -17,7 +17,7 @@
#include "src/base/utils/random-number-generator.h"
#include "src/compilation-cache.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/feedback-vector.h"
#include "src/global-handles.h"
#include "src/heap/array-buffer-collector.h"

View File

@ -9,7 +9,7 @@
#include "src/base/utils/random-number-generator.h"
#include "src/cancelable-task.h"
#include "src/compilation-cache.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/execution.h"
#include "src/frames-inl.h"
#include "src/global-handles.h"

View File

@ -50,7 +50,7 @@
#include "src/assembler-inl.h"
#include "src/base/bits.h"
#include "src/base/cpu.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/diagnostics/disassembler.h"
#include "src/macro-assembler.h"
#include "src/numbers/conversions-inl.h"

View File

@ -4,7 +4,7 @@
#if V8_TARGET_ARCH_IA32
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frame-constants.h"
#include "src/macro-assembler.h"
#include "src/register-configuration.h"

View File

@ -31,7 +31,7 @@
#include "src/date/date.h"
#include "src/debug/debug-frames.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frames-inl.h"
#include "src/hash-seed-inl.h"
#include "src/heap/heap-inl.h"

View File

@ -11,7 +11,7 @@
#include "src/api/api-inl.h"
#include "src/bailout-reason.h"
#include "src/base/platform/platform.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/diagnostics/perf-jit.h"
#include "src/global-handles.h"
#include "src/init/bootstrapper.h"

View File

@ -38,7 +38,7 @@
#include "src/base/bits.h"
#include "src/base/cpu.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/mips/assembler-mips-inl.h"
#include "src/objects/heap-number-inl.h"
#include "src/string-constants.h"

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/register-configuration.h"
#include "src/safepoint-table.h"

View File

@ -37,7 +37,7 @@
#if V8_TARGET_ARCH_MIPS64
#include "src/base/cpu.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/mips64/assembler-mips64-inl.h"
#include "src/objects/heap-number-inl.h"
#include "src/string-constants.h"

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/register-configuration.h"
#include "src/safepoint-table.h"

View File

@ -8,7 +8,7 @@
#include "src/assembler-inl.h"
#include "src/cpu-features.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/interpreter/bytecode-array-iterator.h"
#include "src/interpreter/bytecode-decoder.h"
#include "src/interpreter/interpreter.h"

View File

@ -4,7 +4,7 @@
#include "src/objects/lookup.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/init/bootstrapper.h"
#include "src/isolate-inl.h"
#include "src/logging/counters.h"

View File

@ -40,7 +40,7 @@
#include "src/base/bits.h"
#include "src/base/cpu.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/ppc/assembler-ppc-inl.h"
#include "src/string-constants.h"

View File

@ -3,7 +3,7 @@
// found in the LICENSE file.
#include "src/assembler-inl.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/register-configuration.h"
#include "src/safepoint-table.h"

View File

@ -4,7 +4,7 @@
#include "src/profiler/profiler-listener.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/handles-inl.h"
#include "src/objects-inl.h"
#include "src/objects/code-inl.h"

View File

@ -6,8 +6,8 @@
#include "src/assembler-inl.h"
#include "src/code-reference.h"
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimize-reason.h"
#include "src/deoptimizer.h"
#include "src/heap/heap-write-barrier-inl.h"
#include "src/objects/code-inl.h"
#include "src/snapshot/snapshot.h"

View File

@ -6,7 +6,7 @@
#include "src/asmjs/asm-js.h"
#include "src/compiler-dispatcher/optimizing-compile-dispatcher.h"
#include "src/compiler.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frames-inl.h"
#include "src/isolate-inl.h"
#include "src/message-template.h"

View File

@ -7,7 +7,7 @@
#include "src/accessors.h"
#include "src/arguments-inl.h"
#include "src/ast/scopes.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frames-inl.h"
#include "src/heap/heap-inl.h" // For ToBoolean. TODO(jkummerow): Drop.
#include "src/init/bootstrapper.h"

View File

@ -13,7 +13,7 @@
#include "src/base/platform/mutex.h"
#include "src/compiler-dispatcher/optimizing-compile-dispatcher.h"
#include "src/compiler.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frames-inl.h"
#include "src/heap/heap-inl.h" // For ToBoolean. TODO(jkummerow): Drop.
#include "src/heap/heap-write-barrier-inl.h"

View File

@ -47,7 +47,7 @@
#include "src/base/bits.h"
#include "src/base/cpu.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/s390/assembler-s390-inl.h"
#include "src/string-constants.h"

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/register-configuration.h"
#include "src/safepoint-table.h"

View File

@ -5,7 +5,7 @@
#include "src/safepoint-table.h"
#include "src/assembler-inl.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/diagnostics/disasm.h"
#include "src/frames-inl.h"
#include "src/macro-assembler.h"

View File

@ -7,7 +7,7 @@
#include "src/api/api.h"
#include "src/code-tracer.h"
#include "src/contexts.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/global-handles.h"
#include "src/heap/heap-inl.h"
#include "src/heap/read-only-heap.h"

View File

@ -12,7 +12,7 @@
#include "src/base/platform/platform.h"
#include "src/cpu-features.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frames.h"
#include "src/init/bootstrapper.h"
#include "src/interface-descriptors.h"

View File

@ -18,7 +18,7 @@
#include "src/assembler-inl.h"
#include "src/base/bits.h"
#include "src/base/cpu.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/string-constants.h"
#include "src/v8.h"

View File

@ -4,7 +4,7 @@
#if V8_TARGET_ARCH_X64
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/macro-assembler.h"
#include "src/objects-inl.h"
#include "src/register-configuration.h"

View File

@ -32,7 +32,7 @@
#include "src/assembler-inl.h"
#include "src/compilation-cache.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/execution.h"
#include "src/global-handles.h"
#include "src/hash-seed-inl.h"

View File

@ -35,7 +35,7 @@
#include "include/v8-profiler.h"
#include "src/api/api-inl.h"
#include "src/base/platform/platform.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/libplatform/default-platform.h"
#include "src/logging/log.h"
#include "src/objects-inl.h"

View File

@ -33,7 +33,7 @@
#include "src/compilation-cache.h"
#include "src/debug/debug-interface.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/frames.h"
#include "src/objects-inl.h"
#include "src/snapshot/natives.h"

View File

@ -33,7 +33,7 @@
#include "src/base/platform/platform.h"
#include "src/compilation-cache.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer.h"
#include "src/isolate.h"
#include "src/objects-inl.h"
#include "test/cctest/cctest.h"