Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Side by Side Diff: src/deoptimizer.h

Issue 1761303002: [deoptimizer] Simplify handling of bottommost output frames. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@deopt-no-alignment-padding
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/deoptimizer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_DEOPTIMIZER_H_ 5 #ifndef V8_DEOPTIMIZER_H_
6 #define V8_DEOPTIMIZER_H_ 6 #define V8_DEOPTIMIZER_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/macro-assembler.h" 9 #include "src/macro-assembler.h"
10 10
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 TranslatedFrame::iterator* iterator, int* input_index, int frame_index, 601 TranslatedFrame::iterator* iterator, int* input_index, int frame_index,
602 unsigned output_offset, const char* debug_hint_string = nullptr, 602 unsigned output_offset, const char* debug_hint_string = nullptr,
603 Address output_address_for_materialization = nullptr); 603 Address output_address_for_materialization = nullptr);
604 void WriteValueToOutput(Object* value, int input_index, int frame_index, 604 void WriteValueToOutput(Object* value, int input_index, int frame_index,
605 unsigned output_offset, 605 unsigned output_offset,
606 const char* debug_hint_string); 606 const char* debug_hint_string);
607 void DebugPrintOutputSlot(intptr_t value, int frame_index, 607 void DebugPrintOutputSlot(intptr_t value, int frame_index,
608 unsigned output_offset, 608 unsigned output_offset,
609 const char* debug_hint_string); 609 const char* debug_hint_string);
610 610
611 unsigned ComputeInputFrameAboveFpFixedSize() const;
611 unsigned ComputeInputFrameSize() const; 612 unsigned ComputeInputFrameSize() const;
612 static unsigned ComputeJavascriptFixedSize(SharedFunctionInfo* shared); 613 static unsigned ComputeJavascriptFixedSize(SharedFunctionInfo* shared);
613 static unsigned ComputeInterpretedFixedSize(SharedFunctionInfo* shared); 614 static unsigned ComputeInterpretedFixedSize(SharedFunctionInfo* shared);
614 615
615 static unsigned ComputeIncomingArgumentSize(SharedFunctionInfo* shared); 616 static unsigned ComputeIncomingArgumentSize(SharedFunctionInfo* shared);
616 static unsigned ComputeOutgoingArgumentSize(Code* code, unsigned bailout_id); 617 static unsigned ComputeOutgoingArgumentSize(Code* code, unsigned bailout_id);
617 618
618 Object* ComputeLiteral(int index) const; 619 Object* ComputeLiteral(int index) const;
619 620
620 static void GenerateDeoptimizationEntries( 621 static void GenerateDeoptimizationEntries(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 661
661 // Input frame description. 662 // Input frame description.
662 FrameDescription* input_; 663 FrameDescription* input_;
663 // Number of output frames. 664 // Number of output frames.
664 int output_count_; 665 int output_count_;
665 // Number of output js frames. 666 // Number of output js frames.
666 int jsframe_count_; 667 int jsframe_count_;
667 // Array of output frame descriptions. 668 // Array of output frame descriptions.
668 FrameDescription** output_; 669 FrameDescription** output_;
669 670
671 // Caller frame details computed from input frame.
672 intptr_t caller_frame_top_;
673 intptr_t caller_fp_;
674 intptr_t caller_pc_;
675 intptr_t caller_constant_pool_;
676 intptr_t input_frame_context_;
677
670 // Key for lookup of previously materialized objects 678 // Key for lookup of previously materialized objects
671 Address stack_fp_; 679 intptr_t stack_fp_;
672 680
673 TranslatedState translated_state_; 681 TranslatedState translated_state_;
674 struct ValueToMaterialize { 682 struct ValueToMaterialize {
675 Address output_slot_address_; 683 Address output_slot_address_;
676 TranslatedFrame::iterator value_; 684 TranslatedFrame::iterator value_;
677 }; 685 };
678 std::vector<ValueToMaterialize> values_to_materialize_; 686 std::vector<ValueToMaterialize> values_to_materialize_;
679 687
680 #ifdef DEBUG 688 #ifdef DEBUG
681 DisallowHeapAllocation* disallow_heap_allocation_; 689 DisallowHeapAllocation* disallow_heap_allocation_;
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
1099 std::vector<Handle<Object> > expression_stack_; 1107 std::vector<Handle<Object> > expression_stack_;
1100 int source_position_; 1108 int source_position_;
1101 1109
1102 friend class Deoptimizer; 1110 friend class Deoptimizer;
1103 }; 1111 };
1104 1112
1105 } // namespace internal 1113 } // namespace internal
1106 } // namespace v8 1114 } // namespace v8
1107 1115
1108 #endif // V8_DEOPTIMIZER_H_ 1116 #endif // V8_DEOPTIMIZER_H_
OLDNEW
« no previous file with comments | « no previous file | src/deoptimizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698