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

Side by Side Diff: src/compiler/js-operator.cc

Issue 2504153002: [TypeFeedbackVector] Root literal arrays in function literals slots (Closed)
Patch Set: REBASE. Created 4 years 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
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 #include "src/compiler/js-operator.h" 5 #include "src/compiler/js-operator.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/base/lazy-instance.h" 9 #include "src/base/lazy-instance.h"
10 #include "src/compiler/opcodes.h" 10 #include "src/compiler/opcodes.h"
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 343
344 const CreateArrayParameters& CreateArrayParametersOf(const Operator* op) { 344 const CreateArrayParameters& CreateArrayParametersOf(const Operator* op) {
345 DCHECK_EQ(IrOpcode::kJSCreateArray, op->opcode()); 345 DCHECK_EQ(IrOpcode::kJSCreateArray, op->opcode());
346 return OpParameter<CreateArrayParameters>(op); 346 return OpParameter<CreateArrayParameters>(op);
347 } 347 }
348 348
349 349
350 bool operator==(CreateClosureParameters const& lhs, 350 bool operator==(CreateClosureParameters const& lhs,
351 CreateClosureParameters const& rhs) { 351 CreateClosureParameters const& rhs) {
352 return lhs.pretenure() == rhs.pretenure() && 352 return lhs.pretenure() == rhs.pretenure() &&
353 lhs.feedback() == rhs.feedback() &&
353 lhs.shared_info().location() == rhs.shared_info().location(); 354 lhs.shared_info().location() == rhs.shared_info().location();
354 } 355 }
355 356
356 357
357 bool operator!=(CreateClosureParameters const& lhs, 358 bool operator!=(CreateClosureParameters const& lhs,
358 CreateClosureParameters const& rhs) { 359 CreateClosureParameters const& rhs) {
359 return !(lhs == rhs); 360 return !(lhs == rhs);
360 } 361 }
361 362
362 363
363 size_t hash_value(CreateClosureParameters const& p) { 364 size_t hash_value(CreateClosureParameters const& p) {
364 return base::hash_combine(p.pretenure(), p.shared_info().location()); 365 return base::hash_combine(p.pretenure(), p.shared_info().location(),
366 p.feedback());
365 } 367 }
366 368
367 369
368 std::ostream& operator<<(std::ostream& os, CreateClosureParameters const& p) { 370 std::ostream& operator<<(std::ostream& os, CreateClosureParameters const& p) {
369 return os << p.pretenure() << ", " << Brief(*p.shared_info()); 371 return os << p.pretenure() << ", " << Brief(*p.shared_info());
370 } 372 }
371 373
372 374
373 const CreateClosureParameters& CreateClosureParametersOf(const Operator* op) { 375 const CreateClosureParameters& CreateClosureParametersOf(const Operator* op) {
374 DCHECK_EQ(IrOpcode::kJSCreateClosure, op->opcode()); 376 DCHECK_EQ(IrOpcode::kJSCreateClosure, op->opcode());
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 // constructor, new_target, arg1, ..., argN 805 // constructor, new_target, arg1, ..., argN
804 int const value_input_count = static_cast<int>(arity) + 2; 806 int const value_input_count = static_cast<int>(arity) + 2;
805 CreateArrayParameters parameters(arity, site); 807 CreateArrayParameters parameters(arity, site);
806 return new (zone()) Operator1<CreateArrayParameters>( // -- 808 return new (zone()) Operator1<CreateArrayParameters>( // --
807 IrOpcode::kJSCreateArray, Operator::kNoProperties, // opcode 809 IrOpcode::kJSCreateArray, Operator::kNoProperties, // opcode
808 "JSCreateArray", // name 810 "JSCreateArray", // name
809 value_input_count, 1, 1, 1, 1, 2, // counts 811 value_input_count, 1, 1, 1, 1, 2, // counts
810 parameters); // parameter 812 parameters); // parameter
811 } 813 }
812 814
813
814 const Operator* JSOperatorBuilder::CreateClosure( 815 const Operator* JSOperatorBuilder::CreateClosure(
815 Handle<SharedFunctionInfo> shared_info, PretenureFlag pretenure) { 816 Handle<SharedFunctionInfo> shared_info, VectorSlotPair const& feedback,
816 CreateClosureParameters parameters(shared_info, pretenure); 817 PretenureFlag pretenure) {
818 CreateClosureParameters parameters(shared_info, feedback, pretenure);
817 return new (zone()) Operator1<CreateClosureParameters>( // -- 819 return new (zone()) Operator1<CreateClosureParameters>( // --
818 IrOpcode::kJSCreateClosure, Operator::kNoThrow, // opcode 820 IrOpcode::kJSCreateClosure, Operator::kNoThrow, // opcode
819 "JSCreateClosure", // name 821 "JSCreateClosure", // name
820 0, 1, 1, 1, 1, 0, // counts 822 0, 1, 1, 1, 1, 0, // counts
821 parameters); // parameter 823 parameters); // parameter
822 } 824 }
823 825
824 const Operator* JSOperatorBuilder::CreateLiteralArray( 826 const Operator* JSOperatorBuilder::CreateLiteralArray(
825 Handle<FixedArray> constant_elements, int literal_flags, int literal_index, 827 Handle<FixedArray> constant_elements, int literal_flags, int literal_index,
826 int number_of_elements) { 828 int number_of_elements) {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 return new (zone()) Operator1<Handle<ScopeInfo>>( // -- 902 return new (zone()) Operator1<Handle<ScopeInfo>>( // --
901 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode 903 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode
902 "JSCreateScriptContext", // name 904 "JSCreateScriptContext", // name
903 1, 1, 1, 1, 1, 2, // counts 905 1, 1, 1, 1, 1, 2, // counts
904 scpope_info); // parameter 906 scpope_info); // parameter
905 } 907 }
906 908
907 } // namespace compiler 909 } // namespace compiler
908 } // namespace internal 910 } // namespace internal
909 } // namespace v8 911 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698