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

Side by Side Diff: src/deoptimizer.h

Issue 2468183004: Used ZoneChunkList in deoptimizer (Closed)
Patch Set: Added unittests to ensure correct copyto Created 4 years, 1 month 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/deoptimize-reason.h" 9 #include "src/deoptimize-reason.h"
10 #include "src/macro-assembler.h" 10 #include "src/macro-assembler.h"
11 #include "src/source-position.h" 11 #include "src/source-position.h"
12 #include "src/zone/zone-chunk-list.h"
12 13
13 namespace v8 { 14 namespace v8 {
14 namespace internal { 15 namespace internal {
15 16
16 class FrameDescription; 17 class FrameDescription;
17 class TranslationIterator; 18 class TranslationIterator;
18 class DeoptimizedFrameInfo; 19 class DeoptimizedFrameInfo;
19 class TranslatedState; 20 class TranslatedState;
20 class RegisterValues; 21 class RegisterValues;
21 22
(...skipping 815 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 Deoptimizer* current_; 838 Deoptimizer* current_;
838 839
839 friend class Deoptimizer; 840 friend class Deoptimizer;
840 841
841 DISALLOW_COPY_AND_ASSIGN(DeoptimizerData); 842 DISALLOW_COPY_AND_ASSIGN(DeoptimizerData);
842 }; 843 };
843 844
844 845
845 class TranslationBuffer BASE_EMBEDDED { 846 class TranslationBuffer BASE_EMBEDDED {
846 public: 847 public:
847 explicit TranslationBuffer(Zone* zone) : contents_(256, zone) { } 848 explicit TranslationBuffer(Zone* zone) : contents_(zone) {}
848 849
849 int CurrentIndex() const { return contents_.length(); } 850 int CurrentIndex() const { return static_cast<int>(contents_.size()); }
850 void Add(int32_t value, Zone* zone); 851 void Add(int32_t value);
851 852
852 Handle<ByteArray> CreateByteArray(Factory* factory); 853 Handle<ByteArray> CreateByteArray(Factory* factory);
853 854
854 private: 855 private:
855 ZoneList<uint8_t> contents_; 856 ZoneChunkList<uint8_t> contents_;
856 }; 857 };
857 858
858 859
859 class TranslationIterator BASE_EMBEDDED { 860 class TranslationIterator BASE_EMBEDDED {
860 public: 861 public:
861 TranslationIterator(ByteArray* buffer, int index) 862 TranslationIterator(ByteArray* buffer, int index)
862 : buffer_(buffer), index_(index) { 863 : buffer_(buffer), index_(index) {
863 DCHECK(index >= 0 && index < buffer->length()); 864 DCHECK(index >= 0 && index < buffer->length());
864 } 865 }
865 866
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 TRANSLATION_OPCODE_LIST(DECLARE_TRANSLATION_OPCODE_ENUM) 911 TRANSLATION_OPCODE_LIST(DECLARE_TRANSLATION_OPCODE_ENUM)
911 LAST = LITERAL 912 LAST = LITERAL
912 }; 913 };
913 #undef DECLARE_TRANSLATION_OPCODE_ENUM 914 #undef DECLARE_TRANSLATION_OPCODE_ENUM
914 915
915 Translation(TranslationBuffer* buffer, int frame_count, int jsframe_count, 916 Translation(TranslationBuffer* buffer, int frame_count, int jsframe_count,
916 Zone* zone) 917 Zone* zone)
917 : buffer_(buffer), 918 : buffer_(buffer),
918 index_(buffer->CurrentIndex()), 919 index_(buffer->CurrentIndex()),
919 zone_(zone) { 920 zone_(zone) {
920 buffer_->Add(BEGIN, zone); 921 buffer_->Add(BEGIN);
921 buffer_->Add(frame_count, zone); 922 buffer_->Add(frame_count);
922 buffer_->Add(jsframe_count, zone); 923 buffer_->Add(jsframe_count);
923 } 924 }
924 925
925 int index() const { return index_; } 926 int index() const { return index_; }
926 927
927 // Commands. 928 // Commands.
928 void BeginJSFrame(BailoutId node_id, int literal_id, unsigned height); 929 void BeginJSFrame(BailoutId node_id, int literal_id, unsigned height);
929 void BeginInterpretedFrame(BailoutId bytecode_offset, int literal_id, 930 void BeginInterpretedFrame(BailoutId bytecode_offset, int literal_id,
930 unsigned height); 931 unsigned height);
931 void BeginCompiledStubFrame(int height); 932 void BeginCompiledStubFrame(int height);
932 void BeginArgumentsAdaptorFrame(int literal_id, unsigned height); 933 void BeginArgumentsAdaptorFrame(int literal_id, unsigned height);
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1054 std::vector<Handle<Object> > expression_stack_; 1055 std::vector<Handle<Object> > expression_stack_;
1055 int source_position_; 1056 int source_position_;
1056 1057
1057 friend class Deoptimizer; 1058 friend class Deoptimizer;
1058 }; 1059 };
1059 1060
1060 } // namespace internal 1061 } // namespace internal
1061 } // namespace v8 1062 } // namespace v8
1062 1063
1063 #endif // V8_DEOPTIMIZER_H_ 1064 #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