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

Side by Side Diff: src/crankshaft/hydrogen-instructions.h

Issue 1700993002: Remove strong mode support from property loads. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix comment. Created 4 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/crankshaft/hydrogen.cc ('k') | src/crankshaft/ia32/lithium-codegen-ia32.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_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ 5 #ifndef V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_
6 #define V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ 6 #define V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_
7 7
8 #include <cstring> 8 #include <cstring>
9 #include <iosfwd> 9 #include <iosfwd>
10 10
(...skipping 6305 matching lines...) Expand 10 before | Expand all | Expand 10 after
6316 6316
6317 bool IsDeletable() const override { return true; } 6317 bool IsDeletable() const override { return true; }
6318 6318
6319 HObjectAccess access_; 6319 HObjectAccess access_;
6320 const UniqueSet<Map>* maps_; 6320 const UniqueSet<Map>* maps_;
6321 }; 6321 };
6322 6322
6323 6323
6324 class HLoadNamedGeneric final : public HTemplateInstruction<2> { 6324 class HLoadNamedGeneric final : public HTemplateInstruction<2> {
6325 public: 6325 public:
6326 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HLoadNamedGeneric, HValue*, 6326 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadNamedGeneric, HValue*,
6327 Handle<Name>, LanguageMode, 6327 Handle<Name>, InlineCacheState);
6328 InlineCacheState);
6329 6328
6330 HValue* context() const { return OperandAt(0); } 6329 HValue* context() const { return OperandAt(0); }
6331 HValue* object() const { return OperandAt(1); } 6330 HValue* object() const { return OperandAt(1); }
6332 Handle<Name> name() const { return name_; } 6331 Handle<Name> name() const { return name_; }
6333 6332
6334 InlineCacheState initialization_state() const { 6333 InlineCacheState initialization_state() const {
6335 return initialization_state_; 6334 return initialization_state_;
6336 } 6335 }
6337 FeedbackVectorSlot slot() const { return slot_; } 6336 FeedbackVectorSlot slot() const { return slot_; }
6338 Handle<TypeFeedbackVector> feedback_vector() const { 6337 Handle<TypeFeedbackVector> feedback_vector() const {
6339 return feedback_vector_; 6338 return feedback_vector_;
6340 } 6339 }
6341 bool HasVectorAndSlot() const { return true; } 6340 bool HasVectorAndSlot() const { return true; }
6342 void SetVectorAndSlot(Handle<TypeFeedbackVector> vector, 6341 void SetVectorAndSlot(Handle<TypeFeedbackVector> vector,
6343 FeedbackVectorSlot slot) { 6342 FeedbackVectorSlot slot) {
6344 feedback_vector_ = vector; 6343 feedback_vector_ = vector;
6345 slot_ = slot; 6344 slot_ = slot;
6346 } 6345 }
6347 6346
6348 Representation RequiredInputRepresentation(int index) override { 6347 Representation RequiredInputRepresentation(int index) override {
6349 return Representation::Tagged(); 6348 return Representation::Tagged();
6350 } 6349 }
6351 6350
6352 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT 6351 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT
6353 6352
6354 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric) 6353 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric)
6355 6354
6356 LanguageMode language_mode() const { return language_mode_; }
6357
6358 private: 6355 private:
6359 HLoadNamedGeneric(HValue* context, HValue* object, Handle<Name> name, 6356 HLoadNamedGeneric(HValue* context, HValue* object, Handle<Name> name,
6360 LanguageMode language_mode,
6361 InlineCacheState initialization_state) 6357 InlineCacheState initialization_state)
6362 : name_(name), 6358 : name_(name),
6363 language_mode_(language_mode),
6364 initialization_state_(initialization_state) { 6359 initialization_state_(initialization_state) {
6365 SetOperandAt(0, context); 6360 SetOperandAt(0, context);
6366 SetOperandAt(1, object); 6361 SetOperandAt(1, object);
6367 set_representation(Representation::Tagged()); 6362 set_representation(Representation::Tagged());
6368 SetAllSideEffects(); 6363 SetAllSideEffects();
6369 } 6364 }
6370 6365
6371 Handle<Name> name_; 6366 Handle<Name> name_;
6372 Handle<TypeFeedbackVector> feedback_vector_; 6367 Handle<TypeFeedbackVector> feedback_vector_;
6373 FeedbackVectorSlot slot_; 6368 FeedbackVectorSlot slot_;
6374 LanguageMode language_mode_;
6375 InlineCacheState initialization_state_; 6369 InlineCacheState initialization_state_;
6376 }; 6370 };
6377 6371
6378 6372
6379 class HLoadFunctionPrototype final : public HUnaryOperation { 6373 class HLoadFunctionPrototype final : public HUnaryOperation {
6380 public: 6374 public:
6381 DECLARE_INSTRUCTION_FACTORY_P1(HLoadFunctionPrototype, HValue*); 6375 DECLARE_INSTRUCTION_FACTORY_P1(HLoadFunctionPrototype, HValue*);
6382 6376
6383 HValue* function() { return OperandAt(0); } 6377 HValue* function() { return OperandAt(0); }
6384 6378
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
6607 {}; // NOLINT 6601 {}; // NOLINT
6608 class IsDehoistedField: 6602 class IsDehoistedField:
6609 public BitField<bool, kStartIsDehoisted, kBitsForIsDehoisted> 6603 public BitField<bool, kStartIsDehoisted, kBitsForIsDehoisted>
6610 {}; // NOLINT 6604 {}; // NOLINT
6611 uint32_t bit_field_; 6605 uint32_t bit_field_;
6612 }; 6606 };
6613 6607
6614 6608
6615 class HLoadKeyedGeneric final : public HTemplateInstruction<3> { 6609 class HLoadKeyedGeneric final : public HTemplateInstruction<3> {
6616 public: 6610 public:
6617 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HLoadKeyedGeneric, HValue*, 6611 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadKeyedGeneric, HValue*,
6618 HValue*, LanguageMode, 6612 HValue*, InlineCacheState);
6619 InlineCacheState);
6620 HValue* object() const { return OperandAt(0); } 6613 HValue* object() const { return OperandAt(0); }
6621 HValue* key() const { return OperandAt(1); } 6614 HValue* key() const { return OperandAt(1); }
6622 HValue* context() const { return OperandAt(2); } 6615 HValue* context() const { return OperandAt(2); }
6623 InlineCacheState initialization_state() const { 6616 InlineCacheState initialization_state() const {
6624 return initialization_state_; 6617 return initialization_state_;
6625 } 6618 }
6626 FeedbackVectorSlot slot() const { return slot_; } 6619 FeedbackVectorSlot slot() const { return slot_; }
6627 Handle<TypeFeedbackVector> feedback_vector() const { 6620 Handle<TypeFeedbackVector> feedback_vector() const {
6628 return feedback_vector_; 6621 return feedback_vector_;
6629 } 6622 }
(...skipping 11 matching lines...) Expand all
6641 6634
6642 Representation RequiredInputRepresentation(int index) override { 6635 Representation RequiredInputRepresentation(int index) override {
6643 // tagged[tagged] 6636 // tagged[tagged]
6644 return Representation::Tagged(); 6637 return Representation::Tagged();
6645 } 6638 }
6646 6639
6647 HValue* Canonicalize() override; 6640 HValue* Canonicalize() override;
6648 6641
6649 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric) 6642 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric)
6650 6643
6651 LanguageMode language_mode() const { return language_mode_; }
6652
6653 private: 6644 private:
6654 HLoadKeyedGeneric(HValue* context, HValue* obj, HValue* key, 6645 HLoadKeyedGeneric(HValue* context, HValue* obj, HValue* key,
6655 LanguageMode language_mode,
6656 InlineCacheState initialization_state) 6646 InlineCacheState initialization_state)
6657 : initialization_state_(initialization_state), 6647 : initialization_state_(initialization_state) {
6658 language_mode_(language_mode) {
6659 set_representation(Representation::Tagged()); 6648 set_representation(Representation::Tagged());
6660 SetOperandAt(0, obj); 6649 SetOperandAt(0, obj);
6661 SetOperandAt(1, key); 6650 SetOperandAt(1, key);
6662 SetOperandAt(2, context); 6651 SetOperandAt(2, context);
6663 SetAllSideEffects(); 6652 SetAllSideEffects();
6664 } 6653 }
6665 6654
6666 Handle<TypeFeedbackVector> feedback_vector_; 6655 Handle<TypeFeedbackVector> feedback_vector_;
6667 FeedbackVectorSlot slot_; 6656 FeedbackVectorSlot slot_;
6668 InlineCacheState initialization_state_; 6657 InlineCacheState initialization_state_;
6669 LanguageMode language_mode_;
6670 }; 6658 };
6671 6659
6672 6660
6673 // Indicates whether the store is a store to an entry that was previously 6661 // Indicates whether the store is a store to an entry that was previously
6674 // initialized or not. 6662 // initialized or not.
6675 enum StoreFieldOrKeyedMode { 6663 enum StoreFieldOrKeyedMode {
6676 // The entry could be either previously initialized or not. 6664 // The entry could be either previously initialized or not.
6677 INITIALIZING_STORE, 6665 INITIALIZING_STORE,
6678 // At the time of this store it is guaranteed that the entry is already 6666 // At the time of this store it is guaranteed that the entry is already
6679 // initialized. 6667 // initialized.
(...skipping 1053 matching lines...) Expand 10 before | Expand all | Expand 10 after
7733 7721
7734 7722
7735 7723
7736 #undef DECLARE_INSTRUCTION 7724 #undef DECLARE_INSTRUCTION
7737 #undef DECLARE_CONCRETE_INSTRUCTION 7725 #undef DECLARE_CONCRETE_INSTRUCTION
7738 7726
7739 } // namespace internal 7727 } // namespace internal
7740 } // namespace v8 7728 } // namespace v8
7741 7729
7742 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ 7730 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« no previous file with comments | « src/crankshaft/hydrogen.cc ('k') | src/crankshaft/ia32/lithium-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698