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

Side by Side Diff: src/x64/lithium-codegen-x64.h

Issue 14738009: Ensure that soft-deopts don't count against opt_count (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Implement x64 and ARM, review feedback Created 7 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 LInstruction* instr, 240 LInstruction* instr,
241 CallKind call_kind, 241 CallKind call_kind,
242 RDIState rdi_state); 242 RDIState rdi_state);
243 243
244 244
245 void RecordSafepointWithLazyDeopt(LInstruction* instr, 245 void RecordSafepointWithLazyDeopt(LInstruction* instr,
246 SafepointMode safepoint_mode, 246 SafepointMode safepoint_mode,
247 int argc); 247 int argc);
248 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, 248 void RegisterEnvironmentForDeoptimization(LEnvironment* environment,
249 Safepoint::DeoptMode mode); 249 Safepoint::DeoptMode mode);
250 void DeoptimizeIf(Condition cc,
251 LEnvironment* environment,
252 Deoptimizer::BailoutType bailout_type);
250 void DeoptimizeIf(Condition cc, LEnvironment* environment); 253 void DeoptimizeIf(Condition cc, LEnvironment* environment);
251 254 void SoftDeoptimize(LEnvironment* environment);
252 void AddToTranslation(Translation* translation, 255 void AddToTranslation(Translation* translation,
253 LOperand* op, 256 LOperand* op,
254 bool is_tagged, 257 bool is_tagged,
255 bool is_uint32, 258 bool is_uint32,
256 bool arguments_known, 259 bool arguments_known,
257 int arguments_index, 260 int arguments_index,
258 int arguments_count); 261 int arguments_count);
259 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code); 262 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code);
260 void PopulateDeoptimizationData(Handle<Code> code); 263 void PopulateDeoptimizationData(Handle<Code> code);
261 int DefineDeoptimizationLiteral(Handle<Object> literal); 264 int DefineDeoptimizationLiteral(Handle<Object> literal);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 void EmitPushTaggedOperand(LOperand* operand); 336 void EmitPushTaggedOperand(LOperand* operand);
334 337
335 // Emits optimized code to deep-copy the contents of statically known 338 // Emits optimized code to deep-copy the contents of statically known
336 // object graphs (e.g. object literal boilerplate). 339 // object graphs (e.g. object literal boilerplate).
337 void EmitDeepCopy(Handle<JSObject> object, 340 void EmitDeepCopy(Handle<JSObject> object,
338 Register result, 341 Register result,
339 Register source, 342 Register source,
340 int* offset, 343 int* offset,
341 AllocationSiteMode mode); 344 AllocationSiteMode mode);
342 345
343 struct JumpTableEntry {
344 inline JumpTableEntry(Address entry, bool frame, bool is_lazy)
345 : label(),
346 address(entry),
347 needs_frame(frame),
348 is_lazy_deopt(is_lazy) { }
349 Label label;
350 Address address;
351 bool needs_frame;
352 bool is_lazy_deopt;
353 };
354
355 void EnsureSpaceForLazyDeopt(int space_needed); 346 void EnsureSpaceForLazyDeopt(int space_needed);
356 void DoLoadKeyedExternalArray(LLoadKeyed* instr); 347 void DoLoadKeyedExternalArray(LLoadKeyed* instr);
357 void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr); 348 void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr);
358 void DoLoadKeyedFixedArray(LLoadKeyed* instr); 349 void DoLoadKeyedFixedArray(LLoadKeyed* instr);
359 void DoStoreKeyedExternalArray(LStoreKeyed* instr); 350 void DoStoreKeyedExternalArray(LStoreKeyed* instr);
360 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); 351 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr);
361 void DoStoreKeyedFixedArray(LStoreKeyed* instr); 352 void DoStoreKeyedFixedArray(LStoreKeyed* instr);
362 353
363 Zone* zone_; 354 Zone* zone_;
364 LPlatformChunk* const chunk_; 355 LPlatformChunk* const chunk_;
365 MacroAssembler* const masm_; 356 MacroAssembler* const masm_;
366 CompilationInfo* const info_; 357 CompilationInfo* const info_;
367 358
368 int current_block_; 359 int current_block_;
369 int current_instruction_; 360 int current_instruction_;
370 const ZoneList<LInstruction*>* instructions_; 361 const ZoneList<LInstruction*>* instructions_;
371 ZoneList<LEnvironment*> deoptimizations_; 362 ZoneList<LEnvironment*> deoptimizations_;
372 ZoneList<JumpTableEntry> jump_table_; 363 ZoneList<Deoptimizer::JumpTableEntry> jump_table_;
373 ZoneList<Handle<Object> > deoptimization_literals_; 364 ZoneList<Handle<Object> > deoptimization_literals_;
374 ZoneList<Handle<Map> > prototype_maps_; 365 ZoneList<Handle<Map> > prototype_maps_;
375 ZoneList<Handle<Map> > transition_maps_; 366 ZoneList<Handle<Map> > transition_maps_;
376 int inlined_function_count_; 367 int inlined_function_count_;
377 Scope* const scope_; 368 Scope* const scope_;
378 Status status_; 369 Status status_;
379 TranslationBuffer translations_; 370 TranslationBuffer translations_;
380 ZoneList<LDeferredCode*> deferred_; 371 ZoneList<LDeferredCode*> deferred_;
381 int osr_pc_offset_; 372 int osr_pc_offset_;
382 int last_lazy_deopt_pc_; 373 int last_lazy_deopt_pc_;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 LCodeGen* codegen_; 435 LCodeGen* codegen_;
445 Label entry_; 436 Label entry_;
446 Label exit_; 437 Label exit_;
447 Label* external_exit_; 438 Label* external_exit_;
448 int instruction_index_; 439 int instruction_index_;
449 }; 440 };
450 441
451 } } // namespace v8::internal 442 } } // namespace v8::internal
452 443
453 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ 444 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698