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

Side by Side Diff: src/compiler/code-generator.h

Issue 2683203002: Revert of [compiler] Pass deoptimization_kind through DeoptimizeParameters and FlagsContinuation (Closed)
Patch Set: Created 3 years, 10 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/arm64/instruction-selector-arm64.cc ('k') | src/compiler/code-generator.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_CODE_GENERATOR_H_ 5 #ifndef V8_COMPILER_CODE_GENERATOR_H_
6 #define V8_COMPILER_CODE_GENERATOR_H_ 6 #define V8_COMPILER_CODE_GENERATOR_H_
7 7
8 #include "src/compiler/gap-resolver.h" 8 #include "src/compiler/gap-resolver.h"
9 #include "src/compiler/instruction.h" 9 #include "src/compiler/instruction.h"
10 #include "src/compiler/unwinding-info-writer.h" 10 #include "src/compiler/unwinding-info-writer.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 118
119 CodeGenResult AssembleArchInstruction(Instruction* instr); 119 CodeGenResult AssembleArchInstruction(Instruction* instr);
120 void AssembleArchJump(RpoNumber target); 120 void AssembleArchJump(RpoNumber target);
121 void AssembleArchBranch(Instruction* instr, BranchInfo* branch); 121 void AssembleArchBranch(Instruction* instr, BranchInfo* branch);
122 void AssembleArchBoolean(Instruction* instr, FlagsCondition condition); 122 void AssembleArchBoolean(Instruction* instr, FlagsCondition condition);
123 void AssembleArchTrap(Instruction* instr, FlagsCondition condition); 123 void AssembleArchTrap(Instruction* instr, FlagsCondition condition);
124 void AssembleArchLookupSwitch(Instruction* instr); 124 void AssembleArchLookupSwitch(Instruction* instr);
125 void AssembleArchTableSwitch(Instruction* instr); 125 void AssembleArchTableSwitch(Instruction* instr);
126 126
127 CodeGenResult AssembleDeoptimizerCall(int deoptimization_id, 127 CodeGenResult AssembleDeoptimizerCall(int deoptimization_id,
128 Deoptimizer::BailoutType bailout_type,
128 SourcePosition pos); 129 SourcePosition pos);
129 130
130 // Generates an architecture-specific, descriptor-specific prologue 131 // Generates an architecture-specific, descriptor-specific prologue
131 // to set up a stack frame. 132 // to set up a stack frame.
132 void AssembleConstructFrame(); 133 void AssembleConstructFrame();
133 134
134 // Generates an architecture-specific, descriptor-specific return sequence 135 // Generates an architecture-specific, descriptor-specific return sequence
135 // to tear down a stack frame. 136 // to tear down a stack frame.
136 void AssembleReturn(InstructionOperand* pop); 137 void AssembleReturn(InstructionOperand* pop);
137 138
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 203
203 // =========================================================================== 204 // ===========================================================================
204 // ================== Deoptimization table construction. ===================== 205 // ================== Deoptimization table construction. =====================
205 // =========================================================================== 206 // ===========================================================================
206 207
207 void RecordCallPosition(Instruction* instr); 208 void RecordCallPosition(Instruction* instr);
208 void PopulateDeoptimizationData(Handle<Code> code); 209 void PopulateDeoptimizationData(Handle<Code> code);
209 int DefineDeoptimizationLiteral(Handle<Object> literal); 210 int DefineDeoptimizationLiteral(Handle<Object> literal);
210 DeoptimizationEntry const& GetDeoptimizationEntry(Instruction* instr, 211 DeoptimizationEntry const& GetDeoptimizationEntry(Instruction* instr,
211 size_t frame_state_offset); 212 size_t frame_state_offset);
212 DeoptimizeKind GetDeoptimizationKind(int deoptimization_id) const;
213 DeoptimizeReason GetDeoptimizationReason(int deoptimization_id) const; 213 DeoptimizeReason GetDeoptimizationReason(int deoptimization_id) const;
214 int BuildTranslation(Instruction* instr, int pc_offset, 214 int BuildTranslation(Instruction* instr, int pc_offset,
215 size_t frame_state_offset, 215 size_t frame_state_offset,
216 OutputFrameStateCombine state_combine); 216 OutputFrameStateCombine state_combine);
217 void BuildTranslationForFrameStateDescriptor( 217 void BuildTranslationForFrameStateDescriptor(
218 FrameStateDescriptor* descriptor, InstructionOperandIterator* iter, 218 FrameStateDescriptor* descriptor, InstructionOperandIterator* iter,
219 Translation* translation, OutputFrameStateCombine state_combine); 219 Translation* translation, OutputFrameStateCombine state_combine);
220 void TranslateStateValueDescriptor(StateValueDescriptor* desc, 220 void TranslateStateValueDescriptor(StateValueDescriptor* desc,
221 StateValueList* nested, 221 StateValueList* nested,
222 Translation* translation, 222 Translation* translation,
223 InstructionOperandIterator* iter); 223 InstructionOperandIterator* iter);
224 void TranslateFrameStateDescriptorOperands(FrameStateDescriptor* desc, 224 void TranslateFrameStateDescriptorOperands(FrameStateDescriptor* desc,
225 InstructionOperandIterator* iter, 225 InstructionOperandIterator* iter,
226 OutputFrameStateCombine combine, 226 OutputFrameStateCombine combine,
227 Translation* translation); 227 Translation* translation);
228 void AddTranslationForOperand(Translation* translation, Instruction* instr, 228 void AddTranslationForOperand(Translation* translation, Instruction* instr,
229 InstructionOperand* op, MachineType type); 229 InstructionOperand* op, MachineType type);
230 void EnsureSpaceForLazyDeopt(); 230 void EnsureSpaceForLazyDeopt();
231 void MarkLazyDeoptSite(); 231 void MarkLazyDeoptSite();
232 232
233 DeoptimizationExit* AddDeoptimizationExit(Instruction* instr, 233 DeoptimizationExit* AddDeoptimizationExit(Instruction* instr,
234 size_t frame_state_offset); 234 size_t frame_state_offset);
235 235
236 // =========================================================================== 236 // ===========================================================================
237 237
238 class DeoptimizationState final : public ZoneObject { 238 class DeoptimizationState final : public ZoneObject {
239 public: 239 public:
240 DeoptimizationState(BailoutId bailout_id, int translation_id, int pc_offset, 240 DeoptimizationState(BailoutId bailout_id, int translation_id, int pc_offset,
241 DeoptimizeKind kind, DeoptimizeReason reason) 241 DeoptimizeReason reason)
242 : bailout_id_(bailout_id), 242 : bailout_id_(bailout_id),
243 translation_id_(translation_id), 243 translation_id_(translation_id),
244 pc_offset_(pc_offset), 244 pc_offset_(pc_offset),
245 kind_(kind),
246 reason_(reason) {} 245 reason_(reason) {}
247 246
248 BailoutId bailout_id() const { return bailout_id_; } 247 BailoutId bailout_id() const { return bailout_id_; }
249 int translation_id() const { return translation_id_; } 248 int translation_id() const { return translation_id_; }
250 int pc_offset() const { return pc_offset_; } 249 int pc_offset() const { return pc_offset_; }
251 DeoptimizeKind kind() const { return kind_; }
252 DeoptimizeReason reason() const { return reason_; } 250 DeoptimizeReason reason() const { return reason_; }
253 251
254 private: 252 private:
255 BailoutId bailout_id_; 253 BailoutId bailout_id_;
256 int translation_id_; 254 int translation_id_;
257 int pc_offset_; 255 int pc_offset_;
258 DeoptimizeKind kind_;
259 DeoptimizeReason reason_; 256 DeoptimizeReason reason_;
260 }; 257 };
261 258
262 struct HandlerInfo { 259 struct HandlerInfo {
263 Label* handler; 260 Label* handler;
264 int pc_offset; 261 int pc_offset;
265 }; 262 };
266 263
267 friend class OutOfLineCode; 264 friend class OutOfLineCode;
268 265
(...skipping 21 matching lines...) Expand all
290 int osr_pc_offset_; 287 int osr_pc_offset_;
291 int optimized_out_literal_id_; 288 int optimized_out_literal_id_;
292 SourcePositionTableBuilder source_position_table_builder_; 289 SourcePositionTableBuilder source_position_table_builder_;
293 }; 290 };
294 291
295 } // namespace compiler 292 } // namespace compiler
296 } // namespace internal 293 } // namespace internal
297 } // namespace v8 294 } // namespace v8
298 295
299 #endif // V8_COMPILER_CODE_GENERATOR_H 296 #endif // V8_COMPILER_CODE_GENERATOR_H
OLDNEW
« no previous file with comments | « src/compiler/arm64/instruction-selector-arm64.cc ('k') | src/compiler/code-generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698