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

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

Issue 7655017: Improve memory usage of receiver type feedback. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: ReceiverTypeList -> SmallMapList Created 9 years, 4 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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 3387 matching lines...) Expand 10 before | Expand all | Expand 10 after
3398 private: 3398 private:
3399 bool is_in_object_; 3399 bool is_in_object_;
3400 int offset_; 3400 int offset_;
3401 }; 3401 };
3402 3402
3403 3403
3404 class HLoadNamedFieldPolymorphic: public HTemplateInstruction<2> { 3404 class HLoadNamedFieldPolymorphic: public HTemplateInstruction<2> {
3405 public: 3405 public:
3406 HLoadNamedFieldPolymorphic(HValue* context, 3406 HLoadNamedFieldPolymorphic(HValue* context,
3407 HValue* object, 3407 HValue* object,
3408 ZoneMapList* types, 3408 SmallMapList* types,
3409 Handle<String> name); 3409 Handle<String> name);
3410 3410
3411 HValue* context() { return OperandAt(0); } 3411 HValue* context() { return OperandAt(0); }
3412 HValue* object() { return OperandAt(1); } 3412 HValue* object() { return OperandAt(1); }
3413 ZoneMapList* types() { return &types_; } 3413 SmallMapList* types() { return &types_; }
3414 Handle<String> name() { return name_; } 3414 Handle<String> name() { return name_; }
3415 bool need_generic() { return need_generic_; } 3415 bool need_generic() { return need_generic_; }
3416 3416
3417 virtual Representation RequiredInputRepresentation(int index) const { 3417 virtual Representation RequiredInputRepresentation(int index) const {
3418 return Representation::Tagged(); 3418 return Representation::Tagged();
3419 } 3419 }
3420 3420
3421 virtual void PrintDataTo(StringStream* stream); 3421 virtual void PrintDataTo(StringStream* stream);
3422 3422
3423 DECLARE_CONCRETE_INSTRUCTION(LoadNamedFieldPolymorphic) 3423 DECLARE_CONCRETE_INSTRUCTION(LoadNamedFieldPolymorphic)
3424 3424
3425 static const int kMaxLoadPolymorphism = 4; 3425 static const int kMaxLoadPolymorphism = 4;
3426 3426
3427 protected: 3427 protected:
3428 virtual bool DataEquals(HValue* value); 3428 virtual bool DataEquals(HValue* value);
3429 3429
3430 private: 3430 private:
3431 ZoneMapList types_; 3431 SmallMapList types_;
3432 Handle<String> name_; 3432 Handle<String> name_;
3433 bool need_generic_; 3433 bool need_generic_;
3434 }; 3434 };
3435 3435
3436 3436
3437 3437
3438 class HLoadNamedGeneric: public HTemplateInstruction<2> { 3438 class HLoadNamedGeneric: public HTemplateInstruction<2> {
3439 public: 3439 public:
3440 HLoadNamedGeneric(HValue* context, HValue* object, Handle<Object> name) 3440 HLoadNamedGeneric(HValue* context, HValue* object, Handle<Object> name)
3441 : name_(name) { 3441 : name_(name) {
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after
4187 4187
4188 DECLARE_CONCRETE_INSTRUCTION(In) 4188 DECLARE_CONCRETE_INSTRUCTION(In)
4189 }; 4189 };
4190 4190
4191 #undef DECLARE_INSTRUCTION 4191 #undef DECLARE_INSTRUCTION
4192 #undef DECLARE_CONCRETE_INSTRUCTION 4192 #undef DECLARE_CONCRETE_INSTRUCTION
4193 4193
4194 } } // namespace v8::internal 4194 } } // namespace v8::internal
4195 4195
4196 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 4196 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« src/ast.h ('K') | « src/hydrogen.cc ('k') | src/hydrogen-instructions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698