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

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

Issue 1472423002: Revert of [turbofan] Introduce proper JSCreateLiteralRegExp operator. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 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
« no previous file with comments | « src/compiler/js-operator.h ('k') | 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 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 405
406 406
407 const CreateClosureParameters& CreateClosureParametersOf(const Operator* op) { 407 const CreateClosureParameters& CreateClosureParametersOf(const Operator* op) {
408 DCHECK_EQ(IrOpcode::kJSCreateClosure, op->opcode()); 408 DCHECK_EQ(IrOpcode::kJSCreateClosure, op->opcode());
409 return OpParameter<CreateClosureParameters>(op); 409 return OpParameter<CreateClosureParameters>(op);
410 } 410 }
411 411
412 412
413 bool operator==(CreateLiteralParameters const& lhs, 413 bool operator==(CreateLiteralParameters const& lhs,
414 CreateLiteralParameters const& rhs) { 414 CreateLiteralParameters const& rhs) {
415 return lhs.constant().location() == rhs.constant().location() && 415 return lhs.constants().location() == rhs.constants().location() &&
416 lhs.flags() == rhs.flags() && lhs.index() == rhs.index(); 416 lhs.flags() == rhs.flags() && lhs.index() == rhs.index();
417 } 417 }
418 418
419 419
420 bool operator!=(CreateLiteralParameters const& lhs, 420 bool operator!=(CreateLiteralParameters const& lhs,
421 CreateLiteralParameters const& rhs) { 421 CreateLiteralParameters const& rhs) {
422 return !(lhs == rhs); 422 return !(lhs == rhs);
423 } 423 }
424 424
425 425
426 size_t hash_value(CreateLiteralParameters const& p) { 426 size_t hash_value(CreateLiteralParameters const& p) {
427 return base::hash_combine(p.constant().location(), p.flags(), p.index()); 427 return base::hash_combine(p.constants().location(), p.flags(), p.index());
428 } 428 }
429 429
430 430
431 std::ostream& operator<<(std::ostream& os, CreateLiteralParameters const& p) { 431 std::ostream& operator<<(std::ostream& os, CreateLiteralParameters const& p) {
432 return os << Brief(*p.constant()) << ", " << p.flags() << ", " << p.index(); 432 return os << Brief(*p.constants()) << ", " << p.flags() << ", " << p.index();
433 } 433 }
434 434
435 435
436 const CreateLiteralParameters& CreateLiteralParametersOf(const Operator* op) { 436 const CreateLiteralParameters& CreateLiteralParametersOf(const Operator* op) {
437 DCHECK(op->opcode() == IrOpcode::kJSCreateLiteralArray || 437 DCHECK(op->opcode() == IrOpcode::kJSCreateLiteralArray ||
438 op->opcode() == IrOpcode::kJSCreateLiteralObject || 438 op->opcode() == IrOpcode::kJSCreateLiteralObject);
439 op->opcode() == IrOpcode::kJSCreateLiteralRegExp);
440 return OpParameter<CreateLiteralParameters>(op); 439 return OpParameter<CreateLiteralParameters>(op);
441 } 440 }
442 441
443 442
444 #define CACHED_OP_LIST(V) \ 443 #define CACHED_OP_LIST(V) \
445 V(Equal, Operator::kNoProperties, 2, 1) \ 444 V(Equal, Operator::kNoProperties, 2, 1) \
446 V(NotEqual, Operator::kNoProperties, 2, 1) \ 445 V(NotEqual, Operator::kNoProperties, 2, 1) \
447 V(StrictEqual, Operator::kNoThrow, 2, 1) \ 446 V(StrictEqual, Operator::kNoThrow, 2, 1) \
448 V(StrictNotEqual, Operator::kNoThrow, 2, 1) \ 447 V(StrictNotEqual, Operator::kNoThrow, 2, 1) \
449 V(UnaryNot, Operator::kEliminatable, 1, 1) \ 448 V(UnaryNot, Operator::kEliminatable, 1, 1) \
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 CreateLiteralParameters parameters(constant_properties, literal_flags, 772 CreateLiteralParameters parameters(constant_properties, literal_flags,
774 literal_index); 773 literal_index);
775 return new (zone()) Operator1<CreateLiteralParameters>( // -- 774 return new (zone()) Operator1<CreateLiteralParameters>( // --
776 IrOpcode::kJSCreateLiteralObject, Operator::kNoProperties, // opcode 775 IrOpcode::kJSCreateLiteralObject, Operator::kNoProperties, // opcode
777 "JSCreateLiteralObject", // name 776 "JSCreateLiteralObject", // name
778 1, 1, 1, 1, 1, 2, // counts 777 1, 1, 1, 1, 1, 2, // counts
779 parameters); // parameter 778 parameters); // parameter
780 } 779 }
781 780
782 781
783 const Operator* JSOperatorBuilder::CreateLiteralRegExp(
784 Handle<String> constant_pattern, int literal_flags, int literal_index) {
785 CreateLiteralParameters parameters(constant_pattern, literal_flags,
786 literal_index);
787 return new (zone()) Operator1<CreateLiteralParameters>( // --
788 IrOpcode::kJSCreateLiteralRegExp, Operator::kNoProperties, // opcode
789 "JSCreateLiteralRegExp", // name
790 1, 1, 1, 1, 1, 2, // counts
791 parameters); // parameter
792 }
793
794
795 const Operator* JSOperatorBuilder::CreateFunctionContext(int slot_count) { 782 const Operator* JSOperatorBuilder::CreateFunctionContext(int slot_count) {
796 return new (zone()) Operator1<int>( // -- 783 return new (zone()) Operator1<int>( // --
797 IrOpcode::kJSCreateFunctionContext, Operator::kNoProperties, // opcode 784 IrOpcode::kJSCreateFunctionContext, Operator::kNoProperties, // opcode
798 "JSCreateFunctionContext", // name 785 "JSCreateFunctionContext", // name
799 1, 1, 1, 1, 1, 2, // counts 786 1, 1, 1, 1, 1, 2, // counts
800 slot_count); // parameter 787 slot_count); // parameter
801 } 788 }
802 789
803 790
804 const Operator* JSOperatorBuilder::CreateCatchContext( 791 const Operator* JSOperatorBuilder::CreateCatchContext(
(...skipping 21 matching lines...) Expand all
826 return new (zone()) Operator1<Handle<ScopeInfo>>( // -- 813 return new (zone()) Operator1<Handle<ScopeInfo>>( // --
827 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode 814 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode
828 "JSCreateScriptContext", // name 815 "JSCreateScriptContext", // name
829 1, 1, 1, 1, 1, 2, // counts 816 1, 1, 1, 1, 1, 2, // counts
830 scpope_info); // parameter 817 scpope_info); // parameter
831 } 818 }
832 819
833 } // namespace compiler 820 } // namespace compiler
834 } // namespace internal 821 } // namespace internal
835 } // namespace v8 822 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/js-operator.h ('k') | src/compiler/js-typed-lowering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698