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

Side by Side Diff: src/compiler/instruction.h

Issue 1156403002: [turbofan] Record SharedFunctionInfo of inlined functions. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 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 | « src/compiler/frame-states.cc ('k') | src/compiler/instruction.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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_COMPILER_INSTRUCTION_H_ 5 #ifndef V8_COMPILER_INSTRUCTION_H_
6 #define V8_COMPILER_INSTRUCTION_H_ 6 #define V8_COMPILER_INSTRUCTION_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <iosfwd> 9 #include <iosfwd>
10 #include <map> 10 #include <map>
(...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 int64_t value_; 859 int64_t value_;
860 }; 860 };
861 861
862 862
863 class FrameStateDescriptor : public ZoneObject { 863 class FrameStateDescriptor : public ZoneObject {
864 public: 864 public:
865 FrameStateDescriptor(Zone* zone, FrameStateType type, BailoutId bailout_id, 865 FrameStateDescriptor(Zone* zone, FrameStateType type, BailoutId bailout_id,
866 OutputFrameStateCombine state_combine, 866 OutputFrameStateCombine state_combine,
867 size_t parameters_count, size_t locals_count, 867 size_t parameters_count, size_t locals_count,
868 size_t stack_count, 868 size_t stack_count,
869 MaybeHandle<SharedFunctionInfo> shared_info,
869 FrameStateDescriptor* outer_state = nullptr); 870 FrameStateDescriptor* outer_state = nullptr);
870 871
871 FrameStateType type() const { return type_; } 872 FrameStateType type() const { return type_; }
872 BailoutId bailout_id() const { return bailout_id_; } 873 BailoutId bailout_id() const { return bailout_id_; }
873 OutputFrameStateCombine state_combine() const { return frame_state_combine_; } 874 OutputFrameStateCombine state_combine() const { return frame_state_combine_; }
874 size_t parameters_count() const { return parameters_count_; } 875 size_t parameters_count() const { return parameters_count_; }
875 size_t locals_count() const { return locals_count_; } 876 size_t locals_count() const { return locals_count_; }
876 size_t stack_count() const { return stack_count_; } 877 size_t stack_count() const { return stack_count_; }
878 MaybeHandle<SharedFunctionInfo> shared_info() const { return shared_info_; }
877 FrameStateDescriptor* outer_state() const { return outer_state_; } 879 FrameStateDescriptor* outer_state() const { return outer_state_; }
878 bool HasContext() const { return type_ == JS_FRAME; } 880 bool HasContext() const { return type_ == JS_FRAME; }
879 881
880 size_t GetSize(OutputFrameStateCombine combine = 882 size_t GetSize(OutputFrameStateCombine combine =
881 OutputFrameStateCombine::Ignore()) const; 883 OutputFrameStateCombine::Ignore()) const;
882 size_t GetTotalSize() const; 884 size_t GetTotalSize() const;
883 size_t GetFrameCount() const; 885 size_t GetFrameCount() const;
884 size_t GetJSFrameCount() const; 886 size_t GetJSFrameCount() const;
885 887
886 MachineType GetType(size_t index) const; 888 MachineType GetType(size_t index) const;
887 void SetType(size_t index, MachineType type); 889 void SetType(size_t index, MachineType type);
888 890
889 private: 891 private:
890 FrameStateType type_; 892 FrameStateType type_;
891 BailoutId bailout_id_; 893 BailoutId bailout_id_;
892 OutputFrameStateCombine frame_state_combine_; 894 OutputFrameStateCombine frame_state_combine_;
893 size_t parameters_count_; 895 size_t parameters_count_;
894 size_t locals_count_; 896 size_t locals_count_;
895 size_t stack_count_; 897 size_t stack_count_;
896 ZoneVector<MachineType> types_; 898 ZoneVector<MachineType> types_;
899 MaybeHandle<SharedFunctionInfo> const shared_info_;
897 FrameStateDescriptor* outer_state_; 900 FrameStateDescriptor* outer_state_;
898 }; 901 };
899 902
900 std::ostream& operator<<(std::ostream& os, const Constant& constant); 903 std::ostream& operator<<(std::ostream& os, const Constant& constant);
901 904
902 905
903 class PhiInstruction final : public ZoneObject { 906 class PhiInstruction final : public ZoneObject {
904 public: 907 public:
905 typedef ZoneVector<InstructionOperand> Inputs; 908 typedef ZoneVector<InstructionOperand> Inputs;
906 909
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 int ToInt() const { return id_; } 1145 int ToInt() const { return id_; }
1143 1146
1144 private: 1147 private:
1145 explicit StateId(int id) : id_(id) {} 1148 explicit StateId(int id) : id_(id) {}
1146 int id_; 1149 int id_;
1147 }; 1150 };
1148 1151
1149 StateId AddFrameStateDescriptor(FrameStateDescriptor* descriptor); 1152 StateId AddFrameStateDescriptor(FrameStateDescriptor* descriptor);
1150 FrameStateDescriptor* GetFrameStateDescriptor(StateId deoptimization_id); 1153 FrameStateDescriptor* GetFrameStateDescriptor(StateId deoptimization_id);
1151 int GetFrameStateDescriptorCount(); 1154 int GetFrameStateDescriptorCount();
1155 DeoptimizationVector const& frame_state_descriptors() const {
1156 return deoptimization_entries_;
1157 }
1152 1158
1153 RpoNumber InputRpo(Instruction* instr, size_t index); 1159 RpoNumber InputRpo(Instruction* instr, size_t index);
1154 1160
1155 bool GetSourcePosition(const Instruction* instr, 1161 bool GetSourcePosition(const Instruction* instr,
1156 SourcePosition* result) const; 1162 SourcePosition* result) const;
1157 void SetSourcePosition(const Instruction* instr, SourcePosition value); 1163 void SetSourcePosition(const Instruction* instr, SourcePosition value);
1158 1164
1159 bool ContainsCall() const { 1165 bool ContainsCall() const {
1160 for (Instruction* instr : instructions_) { 1166 for (Instruction* instr : instructions_) {
1161 if (instr->IsCall()) return true; 1167 if (instr->IsCall()) return true;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1194 1200
1195 1201
1196 std::ostream& operator<<(std::ostream& os, 1202 std::ostream& operator<<(std::ostream& os,
1197 const PrintableInstructionSequence& code); 1203 const PrintableInstructionSequence& code);
1198 1204
1199 } // namespace compiler 1205 } // namespace compiler
1200 } // namespace internal 1206 } // namespace internal
1201 } // namespace v8 1207 } // namespace v8
1202 1208
1203 #endif // V8_COMPILER_INSTRUCTION_H_ 1209 #endif // V8_COMPILER_INSTRUCTION_H_
OLDNEW
« no previous file with comments | « src/compiler/frame-states.cc ('k') | src/compiler/instruction.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698