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

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

Issue 11818021: Allocation Info Tracking, continued. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebase Created 7 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 | 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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 V(BlockEntry) \ 76 V(BlockEntry) \
77 V(BoundsCheck) \ 77 V(BoundsCheck) \
78 V(Branch) \ 78 V(Branch) \
79 V(CallConstantFunction) \ 79 V(CallConstantFunction) \
80 V(CallFunction) \ 80 V(CallFunction) \
81 V(CallGlobal) \ 81 V(CallGlobal) \
82 V(CallKeyed) \ 82 V(CallKeyed) \
83 V(CallKnownGlobal) \ 83 V(CallKnownGlobal) \
84 V(CallNamed) \ 84 V(CallNamed) \
85 V(CallNew) \ 85 V(CallNew) \
86 V(CallNewArray) \
86 V(CallRuntime) \ 87 V(CallRuntime) \
87 V(CallStub) \ 88 V(CallStub) \
88 V(Change) \ 89 V(Change) \
89 V(CheckFunction) \ 90 V(CheckFunction) \
90 V(CheckInstanceType) \ 91 V(CheckInstanceType) \
91 V(CheckMaps) \ 92 V(CheckMaps) \
92 V(CheckNonSmi) \ 93 V(CheckNonSmi) \
93 V(CheckPrototypeMaps) \ 94 V(CheckPrototypeMaps) \
94 V(CheckSmi) \ 95 V(CheckSmi) \
95 V(CheckSmiOrInt32) \ 96 V(CheckSmiOrInt32) \
(...skipping 1902 matching lines...) Expand 10 before | Expand all | Expand 10 after
1998 return Representation::Tagged(); 1999 return Representation::Tagged();
1999 } 2000 }
2000 2001
2001 HValue* context() { return first(); } 2002 HValue* context() { return first(); }
2002 HValue* constructor() { return second(); } 2003 HValue* constructor() { return second(); }
2003 2004
2004 DECLARE_CONCRETE_INSTRUCTION(CallNew) 2005 DECLARE_CONCRETE_INSTRUCTION(CallNew)
2005 }; 2006 };
2006 2007
2007 2008
2009 class HCallNewArray: public HCallNew {
2010 public:
2011 HCallNewArray(HValue* context, HValue* constructor, int argument_count,
2012 Handle<JSGlobalPropertyCell> type_cell)
2013 : HCallNew(context, constructor, argument_count),
2014 type_cell_(type_cell) {
2015 }
2016
2017 Handle<JSGlobalPropertyCell> property_cell() const {
2018 return type_cell_;
2019 }
2020
2021 DECLARE_CONCRETE_INSTRUCTION(CallNewArray)
2022
2023 private:
2024 Handle<JSGlobalPropertyCell> type_cell_;
2025 };
2026
2027
2008 class HCallRuntime: public HCall<1> { 2028 class HCallRuntime: public HCall<1> {
2009 public: 2029 public:
2010 HCallRuntime(HValue* context, 2030 HCallRuntime(HValue* context,
2011 Handle<String> name, 2031 Handle<String> name,
2012 const Runtime::Function* c_function, 2032 const Runtime::Function* c_function,
2013 int argument_count) 2033 int argument_count)
2014 : HCall<1>(argument_count), c_function_(c_function), name_(name) { 2034 : HCall<1>(argument_count), c_function_(c_function), name_(name) {
2015 SetOperandAt(0, context); 2035 SetOperandAt(0, context);
2016 } 2036 }
2017 2037
(...skipping 3300 matching lines...) Expand 10 before | Expand all | Expand 10 after
5318 } 5338 }
5319 5339
5320 // Maximum depth and total number of elements and properties for literal 5340 // Maximum depth and total number of elements and properties for literal
5321 // graphs to be considered for fast deep-copying. 5341 // graphs to be considered for fast deep-copying.
5322 static const int kMaxLiteralDepth = 3; 5342 static const int kMaxLiteralDepth = 3;
5323 static const int kMaxLiteralProperties = 8; 5343 static const int kMaxLiteralProperties = 8;
5324 5344
5325 HValue* context() { return OperandAt(0); } 5345 HValue* context() { return OperandAt(0); }
5326 Handle<JSObject> boilerplate() const { return boilerplate_; } 5346 Handle<JSObject> boilerplate() const { return boilerplate_; }
5327 int total_size() const { return total_size_; } 5347 int total_size() const { return total_size_; }
5348
5328 virtual Representation RequiredInputRepresentation(int index) { 5349 virtual Representation RequiredInputRepresentation(int index) {
5329 return Representation::Tagged(); 5350 return Representation::Tagged();
5330 } 5351 }
5331 virtual Handle<Map> GetMonomorphicJSObjectMap() { 5352 virtual Handle<Map> GetMonomorphicJSObjectMap() {
5332 return Handle<Map>(boilerplate()->map()); 5353 return Handle<Map>(boilerplate()->map());
5333 } 5354 }
5334 virtual HType CalculateInferredType(); 5355 virtual HType CalculateInferredType();
5335 5356
5336 DECLARE_CONCRETE_INSTRUCTION(FastLiteral) 5357 DECLARE_CONCRETE_INSTRUCTION(FastLiteral)
5337 5358
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
5785 virtual bool IsDeletable() const { return true; } 5806 virtual bool IsDeletable() const { return true; }
5786 }; 5807 };
5787 5808
5788 5809
5789 #undef DECLARE_INSTRUCTION 5810 #undef DECLARE_INSTRUCTION
5790 #undef DECLARE_CONCRETE_INSTRUCTION 5811 #undef DECLARE_CONCRETE_INSTRUCTION
5791 5812
5792 } } // namespace v8::internal 5813 } } // namespace v8::internal
5793 5814
5794 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 5815 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698