Home | History | Annotate | Download | only in src

Lines Matching defs:Deoptimizer

5 #include "src/deoptimizer.h"
23 return allocator->AllocateChunk(Deoptimizer::GetMaxDeoptTableSize(),
40 for (int i = 0; i < Deoptimizer::kBailoutTypesWithCodeEntry; ++i) {
48 for (int i = 0; i < Deoptimizer::kBailoutTypesWithCodeEntry; ++i) {
62 Code* Deoptimizer::FindDeoptimizingCode(Address addr) {
80 Deoptimizer* Deoptimizer::New(JSFunction* function,
86 Deoptimizer* deoptimizer = new Deoptimizer(isolate,
94 isolate->deoptimizer_data()->current_ = deoptimizer;
95 return deoptimizer;
103 size_t Deoptimizer::GetMaxDeoptTableSize() {
105 Deoptimizer::kMaxNumberOfEntries * Deoptimizer::table_entry_size_;
113 Deoptimizer* Deoptimizer::Grab(Isolate* isolate) {
114 Deoptimizer* result = isolate->deoptimizer_data()->current_;
122 int Deoptimizer::ConvertJSFrameIndexToFrameIndex(int jsframe_index) {
138 DeoptimizedFrameInfo* Deoptimizer::DebuggerInspectableFrame(
159 Deoptimizer::ComputeOutgoingArgumentSize(code, deoptimization_index);
164 Deoptimizer* deoptimizer = new Deoptimizer(isolate,
166 Deoptimizer::DEBUGGER,
172 deoptimizer->FillInputFrame(tos, frame);
175 Deoptimizer::ComputeOutputFrames(deoptimizer);
179 CHECK_LT(jsframe_index, deoptimizer->jsframe_count());
182 int frame_index = deoptimizer->ConvertJSFrameIndexToFrameIndex(jsframe_index);
186 deoptimizer->output_[frame_index - 1]->GetFrameType() ==
192 deoptimizer->output_[frame_index - construct_offset]->GetFrameType() ==
195 DeoptimizedFrameInfo* info = new DeoptimizedFrameInfo(deoptimizer,
202 deoptimizer->DeleteFrameDescriptions();
205 deoptimizer->MaterializeHeapNumbersForDebuggerInspectableFrame(
208 // Finished using the deoptimizer instance.
209 delete deoptimizer;
215 void Deoptimizer::DeleteDebuggerInspectableFrame(DeoptimizedFrameInfo* info,
223 void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
231 void Deoptimizer::VisitAllOptimizedFunctionsForContext(
276 void Deoptimizer::VisitAllOptimizedFunctions(
293 void Deoptimizer::DeoptimizeMarkedCodeForContext(Context* context) {
312 PrintF(scope.file(), "[deoptimizer unlinked: ");
340 PrintF(scope.file(), "[deoptimizer found activation of function: ");
428 void Deoptimizer::DeoptimizeAll(Isolate* isolate) {
445 void Deoptimizer
461 void Deoptimizer::MarkAllCodeForContext(Context* context) {
472 void Deoptimizer::DeoptimizeFunction(JSFunction* function) {
484 void Deoptimizer::ComputeOutputFrames(Deoptimizer* deoptimizer) {
485 deoptimizer->DoComputeOutputFrames();
489 bool Deoptimizer::TraceEnabledFor(BailoutType deopt_type,
505 const char* Deoptimizer::MessageFor(BailoutType type) {
517 Deoptimizer::Deoptimizer(Isolate* isolate, JSFunction* function,
540 if (bailout_type_ == Deoptimizer::SOFT) {
575 Code* Deoptimizer::FindOptimizedCode(JSFunction* function,
578 case Deoptimizer::SOFT:
579 case Deoptimizer::EAGER:
580 case Deoptimizer::LAZY: {
586 case Deoptimizer::DEBUGGER:
595 void Deoptimizer::PrintFunctionName() {
605 Deoptimizer::~Deoptimizer() {
612 void Deoptimizer::DeleteFrameDescriptions() {
629 Address Deoptimizer::GetDeoptimizationEntry(Isolate* isolate,
647 int Deoptimizer::GetDeoptimizationId(Isolate* isolate,
663 int Deoptimizer::GetOutputInfo(DeoptimizationOutputData* data,
687 int Deoptimizer::GetDeoptimizedCodeCount(Isolate* isolate) {
708 void Deoptimizer::DoComputeOutputFrames() {
813 void Deoptimizer::DoComputeJSFrame(int frame_index) {
1033 void Deoptimizer::DoComputeInterpretedFrame(int frame_index) {
1249 void Deoptimizer::DoComputeArgumentsAdaptorFrame(int frame_index) {
1355 void Deoptimizer::DoComputeConstructStubFrame(int frame_index) {
1484 void Deoptimizer::DoComputeAccessorStubFrame(int frame_index,
1609 void Deoptimizer::DoComputeCompiledStubFrame(int frame_index) {
1849 void Deoptimizer::MaterializeHeapObjects(JavaScriptFrameIterator* it) {
1878 void Deoptimizer::MaterializeHeapNumbersForDebuggerInspectableFrame(
1927 void Deoptimizer::WriteTranslatedValueToOutput(
1952 void Deoptimizer::WriteValueToOutput(Object* value, int input_index,
1967 void Deoptimizer::DebugPrintOutputSlot(intptr_t value, int frame_index,
1982 unsigned Deoptimizer::ComputeInputFrameSize() const {
1998 unsigned Deoptimizer::ComputeJavascriptFixedSize(JSFunction* function) const {
2006 unsigned Deoptimizer::ComputeInterpretedFixedSize(JSFunction* function) const {
2015 unsigned Deoptimizer::ComputeIncomingArgumentSize(JSFunction* function) const {
2029 unsigned Deoptimizer::ComputeOutgoingArgumentSize(Code* code,
2038 Object* Deoptimizer::ComputeLiteral(int index) const {
2046 void Deoptimizer::EnsureCodeForDeoptimizationEntry(Isolate* isolate,
2051 // references. This is fine because the deoptimizer's code section
2057 entry_count = Max(entry_count, Deoptimizer::kMinNumberOfEntries);
2059 CHECK(entry_count <= Deoptimizer::kMaxNumberOfEntries);
2069 CHECK(static_cast<int>(Deoptimizer::GetMaxDeoptTableSize()) >=
2073 "Deoptimizer::EnsureCodeForDeoptimizationEntry");
2497 DeoptimizedFrameInfo::DeoptimizedFrameInfo(Deoptimizer* deoptimizer,
2501 FrameDescription* output_frame = deoptimizer->output_[frame_index];
2509 Code* code = Code::cast(deoptimizer->isolate()->FindCodeObject(pc));
2515 if (value == deoptimizer->isolate()->heap()->arguments_marker()) {
2516 value = deoptimizer->isolate()->heap()->undefined_value();
2522 output_frame = deoptimizer->output_[frame_index - 1];
2531 if (value == deoptimizer->isolate()->heap()->arguments_marker()) {
2532 value = deoptimizer->isolate()->heap()->undefined_value();
2553 const char* Deoptimizer::GetDeoptReason(DeoptReason deopt_reason) {
2563 Deoptimizer::DeoptInfo Deoptimizer::GetDeoptInfo(Code* code, Address pc) {
2565 Deoptimizer::DeoptReason last_reason = Deoptimizer::kNoReason;
2576 last_reason = static_cast<Deoptimizer::DeoptReason>(info->data());
2579 return DeoptInfo(SourcePosition::Unknown(), NULL, Deoptimizer::kNoReason);
3683 Deoptimizer::DeoptimizeFunction(JSFunction::cast(function));