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

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

Issue 2506013005: [Interpreter] Collect String feedback on CompareOps. (Closed)
Patch Set: Fix kAny Created 4 years, 1 month 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 | « no previous file | src/compiler/js-typed-lowering.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 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 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 : Operator1<CompareOperationHint>( \ 519 : Operator1<CompareOperationHint>( \
520 IrOpcode::kJS##Name, properties, "JS" #Name, 2, 1, 1, 1, 1, \ 520 IrOpcode::kJS##Name, properties, "JS" #Name, 2, 1, 1, 1, 1, \
521 Operator::ZeroIfNoThrow(properties), kHint) {} \ 521 Operator::ZeroIfNoThrow(properties), kHint) {} \
522 }; \ 522 }; \
523 Name##Operator<CompareOperationHint::kNone> k##Name##NoneOperator; \ 523 Name##Operator<CompareOperationHint::kNone> k##Name##NoneOperator; \
524 Name##Operator<CompareOperationHint::kSignedSmall> \ 524 Name##Operator<CompareOperationHint::kSignedSmall> \
525 k##Name##SignedSmallOperator; \ 525 k##Name##SignedSmallOperator; \
526 Name##Operator<CompareOperationHint::kNumber> k##Name##NumberOperator; \ 526 Name##Operator<CompareOperationHint::kNumber> k##Name##NumberOperator; \
527 Name##Operator<CompareOperationHint::kNumberOrOddball> \ 527 Name##Operator<CompareOperationHint::kNumberOrOddball> \
528 k##Name##NumberOrOddballOperator; \ 528 k##Name##NumberOrOddballOperator; \
529 Name##Operator<CompareOperationHint::kString> k##Name##StringOperator; \
529 Name##Operator<CompareOperationHint::kAny> k##Name##AnyOperator; 530 Name##Operator<CompareOperationHint::kAny> k##Name##AnyOperator;
530 COMPARE_OP_LIST(COMPARE_OP) 531 COMPARE_OP_LIST(COMPARE_OP)
531 #undef COMPARE_OP 532 #undef COMPARE_OP
532 }; 533 };
533 534
534 static base::LazyInstance<JSOperatorGlobalCache>::type kCache = 535 static base::LazyInstance<JSOperatorGlobalCache>::type kCache =
535 LAZY_INSTANCE_INITIALIZER; 536 LAZY_INSTANCE_INITIALIZER;
536 537
537 JSOperatorBuilder::JSOperatorBuilder(Zone* zone) 538 JSOperatorBuilder::JSOperatorBuilder(Zone* zone)
538 : cache_(kCache.Get()), zone_(zone) {} 539 : cache_(kCache.Get()), zone_(zone) {}
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 const Operator* JSOperatorBuilder::Name(CompareOperationHint hint) { \ 571 const Operator* JSOperatorBuilder::Name(CompareOperationHint hint) { \
571 switch (hint) { \ 572 switch (hint) { \
572 case CompareOperationHint::kNone: \ 573 case CompareOperationHint::kNone: \
573 return &cache_.k##Name##NoneOperator; \ 574 return &cache_.k##Name##NoneOperator; \
574 case CompareOperationHint::kSignedSmall: \ 575 case CompareOperationHint::kSignedSmall: \
575 return &cache_.k##Name##SignedSmallOperator; \ 576 return &cache_.k##Name##SignedSmallOperator; \
576 case CompareOperationHint::kNumber: \ 577 case CompareOperationHint::kNumber: \
577 return &cache_.k##Name##NumberOperator; \ 578 return &cache_.k##Name##NumberOperator; \
578 case CompareOperationHint::kNumberOrOddball: \ 579 case CompareOperationHint::kNumberOrOddball: \
579 return &cache_.k##Name##NumberOrOddballOperator; \ 580 return &cache_.k##Name##NumberOrOddballOperator; \
581 case CompareOperationHint::kString: \
582 return &cache_.k##Name##StringOperator; \
580 case CompareOperationHint::kAny: \ 583 case CompareOperationHint::kAny: \
581 return &cache_.k##Name##AnyOperator; \ 584 return &cache_.k##Name##AnyOperator; \
582 } \ 585 } \
583 UNREACHABLE(); \ 586 UNREACHABLE(); \
584 return nullptr; \ 587 return nullptr; \
585 } 588 }
586 COMPARE_OP_LIST(COMPARE_OP) 589 COMPARE_OP_LIST(COMPARE_OP)
587 #undef COMPARE_OP 590 #undef COMPARE_OP
588 591
589 const Operator* JSOperatorBuilder::ToBoolean(ToBooleanHints hints) { 592 const Operator* JSOperatorBuilder::ToBoolean(ToBooleanHints hints) {
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 return new (zone()) Operator1<Handle<ScopeInfo>>( // -- 898 return new (zone()) Operator1<Handle<ScopeInfo>>( // --
896 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode 899 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode
897 "JSCreateScriptContext", // name 900 "JSCreateScriptContext", // name
898 1, 1, 1, 1, 1, 2, // counts 901 1, 1, 1, 1, 1, 2, // counts
899 scpope_info); // parameter 902 scpope_info); // parameter
900 } 903 }
901 904
902 } // namespace compiler 905 } // namespace compiler
903 } // namespace internal 906 } // namespace internal
904 } // namespace v8 907 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/js-typed-lowering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698