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

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

Issue 21340002: Generate a custom OSR entrypoint for OSR compiles on all platforms, and transition to optimized cod… (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remerge with recent changes. Created 7 years, 3 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 4970 matching lines...) Expand 10 before | Expand all | Expand 10 after
4981 DECLARE_CONCRETE_INSTRUCTION(CallStub) 4981 DECLARE_CONCRETE_INSTRUCTION(CallStub)
4982 4982
4983 private: 4983 private:
4984 CodeStub::Major major_key_; 4984 CodeStub::Major major_key_;
4985 TranscendentalCache::Type transcendental_type_; 4985 TranscendentalCache::Type transcendental_type_;
4986 }; 4986 };
4987 4987
4988 4988
4989 class HUnknownOSRValue V8_FINAL : public HTemplateInstruction<0> { 4989 class HUnknownOSRValue V8_FINAL : public HTemplateInstruction<0> {
4990 public: 4990 public:
4991 DECLARE_INSTRUCTION_FACTORY_P0(HUnknownOSRValue) 4991 DECLARE_INSTRUCTION_FACTORY_P2(HUnknownOSRValue, HEnvironment*, int);
4992
4993 virtual void PrintDataTo(StringStream* stream);
4992 4994
4993 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { 4995 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
4994 return Representation::None(); 4996 return Representation::None();
4995 } 4997 }
4996 4998
4997 void set_incoming_value(HPhi* value) { 4999 void set_incoming_value(HPhi* value) { incoming_value_ = value; }
4998 incoming_value_ = value; 5000 HPhi* incoming_value() { return incoming_value_; }
4999 } 5001 HEnvironment *environment() { return environment_; }
Michael Starzinger 2013/09/09 15:34:44 I still don't like the fact that we preserve the f
5000 5002 int index() { return index_; }
5001 HPhi* incoming_value() {
5002 return incoming_value_;
5003 }
5004 5003
5005 virtual Representation KnownOptimalRepresentation() V8_OVERRIDE { 5004 virtual Representation KnownOptimalRepresentation() V8_OVERRIDE {
5006 if (incoming_value_ == NULL) return Representation::None(); 5005 if (incoming_value_ == NULL) return Representation::None();
5007 return incoming_value_->KnownOptimalRepresentation(); 5006 return incoming_value_->KnownOptimalRepresentation();
5008 } 5007 }
5009 5008
5010 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue) 5009 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue)
5011 5010
5012 private: 5011 private:
5013 HUnknownOSRValue() 5012 HUnknownOSRValue(HEnvironment* environment, int index)
5014 : incoming_value_(NULL) { 5013 : environment_(environment),
5014 index_(index),
5015 incoming_value_(NULL) {
5015 set_representation(Representation::Tagged()); 5016 set_representation(Representation::Tagged());
5016 } 5017 }
5017 5018
5019 HEnvironment* environment_;
5020 int index_;
5018 HPhi* incoming_value_; 5021 HPhi* incoming_value_;
5019 }; 5022 };
5020 5023
5021 5024
5022 class HLoadGlobalCell V8_FINAL : public HTemplateInstruction<0> { 5025 class HLoadGlobalCell V8_FINAL : public HTemplateInstruction<0> {
5023 public: 5026 public:
5024 HLoadGlobalCell(Handle<Cell> cell, PropertyDetails details) 5027 HLoadGlobalCell(Handle<Cell> cell, PropertyDetails details)
5025 : cell_(cell), details_(details), unique_id_() { 5028 : cell_(cell), details_(details), unique_id_() {
5026 set_representation(Representation::Tagged()); 5029 set_representation(Representation::Tagged());
5027 SetFlag(kUseGVN); 5030 SetFlag(kUseGVN);
(...skipping 1919 matching lines...) Expand 10 before | Expand all | Expand 10 after
6947 virtual bool IsDeletable() const V8_OVERRIDE { return true; } 6950 virtual bool IsDeletable() const V8_OVERRIDE { return true; }
6948 }; 6951 };
6949 6952
6950 6953
6951 #undef DECLARE_INSTRUCTION 6954 #undef DECLARE_INSTRUCTION
6952 #undef DECLARE_CONCRETE_INSTRUCTION 6955 #undef DECLARE_CONCRETE_INSTRUCTION
6953 6956
6954 } } // namespace v8::internal 6957 } } // namespace v8::internal
6955 6958
6956 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 6959 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698