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/compiler/graph-unittest.cc

Issue 547233003: [turbofan] Machine operators are globally shared singletons. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Next windows fix. Created 6 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
« no previous file with comments | « src/compiler/graph-unittest.h ('k') | src/compiler/ia32/instruction-selector-ia32.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/graph-unittest.h" 5 #include "src/compiler/graph-unittest.h"
6 6
7 #include <ostream> // NOLINT(readability/streams) 7 #include <ostream> // NOLINT(readability/streams)
8 8
9 #include "src/compiler/node-properties-inl.h" 9 #include "src/compiler/node-properties-inl.h"
10 10
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 const Matcher<Node*> value1_matcher_; 421 const Matcher<Node*> value1_matcher_;
422 const Matcher<Node*> value2_matcher_; 422 const Matcher<Node*> value2_matcher_;
423 const Matcher<Node*> value3_matcher_; 423 const Matcher<Node*> value3_matcher_;
424 const Matcher<Node*> effect_matcher_; 424 const Matcher<Node*> effect_matcher_;
425 const Matcher<Node*> control_matcher_; 425 const Matcher<Node*> control_matcher_;
426 }; 426 };
427 427
428 428
429 class IsLoadMatcher FINAL : public NodeMatcher { 429 class IsLoadMatcher FINAL : public NodeMatcher {
430 public: 430 public:
431 IsLoadMatcher(const Matcher<MachineType>& type_matcher, 431 IsLoadMatcher(const Matcher<LoadRepresentation>& rep_matcher,
432 const Matcher<Node*>& base_matcher, 432 const Matcher<Node*>& base_matcher,
433 const Matcher<Node*>& index_matcher, 433 const Matcher<Node*>& index_matcher,
434 const Matcher<Node*>& effect_matcher) 434 const Matcher<Node*>& effect_matcher)
435 : NodeMatcher(IrOpcode::kLoad), 435 : NodeMatcher(IrOpcode::kLoad),
436 type_matcher_(type_matcher), 436 rep_matcher_(rep_matcher),
437 base_matcher_(base_matcher), 437 base_matcher_(base_matcher),
438 index_matcher_(index_matcher), 438 index_matcher_(index_matcher),
439 effect_matcher_(effect_matcher) {} 439 effect_matcher_(effect_matcher) {}
440 440
441 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 441 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
442 NodeMatcher::DescribeTo(os); 442 NodeMatcher::DescribeTo(os);
443 *os << " whose type ("; 443 *os << " whose rep (";
444 type_matcher_.DescribeTo(os); 444 rep_matcher_.DescribeTo(os);
445 *os << "), base ("; 445 *os << "), base (";
446 base_matcher_.DescribeTo(os); 446 base_matcher_.DescribeTo(os);
447 *os << "), index ("; 447 *os << "), index (";
448 index_matcher_.DescribeTo(os); 448 index_matcher_.DescribeTo(os);
449 *os << ") and effect ("; 449 *os << ") and effect (";
450 effect_matcher_.DescribeTo(os); 450 effect_matcher_.DescribeTo(os);
451 *os << ")"; 451 *os << ")";
452 } 452 }
453 453
454 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 454 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const
455 OVERRIDE { 455 OVERRIDE {
456 return (NodeMatcher::MatchAndExplain(node, listener) && 456 return (NodeMatcher::MatchAndExplain(node, listener) &&
457 PrintMatchAndExplain(OpParameter<MachineType>(node), "type", 457 PrintMatchAndExplain(OpParameter<LoadRepresentation>(node), "rep",
458 type_matcher_, listener) && 458 rep_matcher_, listener) &&
459 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base", 459 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base",
460 base_matcher_, listener) && 460 base_matcher_, listener) &&
461 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), 461 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1),
462 "index", index_matcher_, listener) && 462 "index", index_matcher_, listener) &&
463 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect", 463 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
464 effect_matcher_, listener)); 464 effect_matcher_, listener));
465 } 465 }
466 466
467 private: 467 private:
468 const Matcher<MachineType> type_matcher_; 468 const Matcher<LoadRepresentation> rep_matcher_;
469 const Matcher<Node*> base_matcher_; 469 const Matcher<Node*> base_matcher_;
470 const Matcher<Node*> index_matcher_; 470 const Matcher<Node*> index_matcher_;
471 const Matcher<Node*> effect_matcher_; 471 const Matcher<Node*> effect_matcher_;
472 }; 472 };
473 473
474 474
475 class IsStoreMatcher FINAL : public NodeMatcher { 475 class IsStoreMatcher FINAL : public NodeMatcher {
476 public: 476 public:
477 IsStoreMatcher(const Matcher<MachineType>& type_matcher, 477 IsStoreMatcher(const Matcher<MachineType>& type_matcher,
478 const Matcher<WriteBarrierKind> write_barrier_matcher, 478 const Matcher<WriteBarrierKind> write_barrier_matcher,
(...skipping 27 matching lines...) Expand all
506 effect_matcher_.DescribeTo(os); 506 effect_matcher_.DescribeTo(os);
507 *os << ") and control ("; 507 *os << ") and control (";
508 control_matcher_.DescribeTo(os); 508 control_matcher_.DescribeTo(os);
509 *os << ")"; 509 *os << ")";
510 } 510 }
511 511
512 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 512 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const
513 OVERRIDE { 513 OVERRIDE {
514 return (NodeMatcher::MatchAndExplain(node, listener) && 514 return (NodeMatcher::MatchAndExplain(node, listener) &&
515 PrintMatchAndExplain( 515 PrintMatchAndExplain(
516 OpParameter<StoreRepresentation>(node).machine_type, "type", 516 OpParameter<StoreRepresentation>(node).machine_type(), "type",
517 type_matcher_, listener) && 517 type_matcher_, listener) &&
518 PrintMatchAndExplain( 518 PrintMatchAndExplain(
519 OpParameter<StoreRepresentation>(node).write_barrier_kind, 519 OpParameter<StoreRepresentation>(node).write_barrier_kind(),
520 "write barrier", write_barrier_matcher_, listener) && 520 "write barrier", write_barrier_matcher_, listener) &&
521 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base", 521 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base",
522 base_matcher_, listener) && 522 base_matcher_, listener) &&
523 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), 523 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1),
524 "index", index_matcher_, listener) && 524 "index", index_matcher_, listener) &&
525 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 2), 525 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 2),
526 "value", value_matcher_, listener) && 526 "value", value_matcher_, listener) &&
527 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect", 527 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
528 effect_matcher_, listener) && 528 effect_matcher_, listener) &&
529 PrintMatchAndExplain(NodeProperties::GetControlInput(node), 529 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 const Matcher<Node*>& value2_matcher, 697 const Matcher<Node*>& value2_matcher,
698 const Matcher<Node*>& value3_matcher, 698 const Matcher<Node*>& value3_matcher,
699 const Matcher<Node*>& effect_matcher, 699 const Matcher<Node*>& effect_matcher,
700 const Matcher<Node*>& control_matcher) { 700 const Matcher<Node*>& control_matcher) {
701 return MakeMatcher(new IsCallMatcher( 701 return MakeMatcher(new IsCallMatcher(
702 descriptor_matcher, value0_matcher, value1_matcher, value2_matcher, 702 descriptor_matcher, value0_matcher, value1_matcher, value2_matcher,
703 value3_matcher, effect_matcher, control_matcher)); 703 value3_matcher, effect_matcher, control_matcher));
704 } 704 }
705 705
706 706
707 Matcher<Node*> IsLoad(const Matcher<MachineType>& type_matcher, 707 Matcher<Node*> IsLoad(const Matcher<LoadRepresentation>& rep_matcher,
708 const Matcher<Node*>& base_matcher, 708 const Matcher<Node*>& base_matcher,
709 const Matcher<Node*>& index_matcher, 709 const Matcher<Node*>& index_matcher,
710 const Matcher<Node*>& effect_matcher) { 710 const Matcher<Node*>& effect_matcher) {
711 return MakeMatcher(new IsLoadMatcher(type_matcher, base_matcher, 711 return MakeMatcher(new IsLoadMatcher(rep_matcher, base_matcher, index_matcher,
712 index_matcher, effect_matcher)); 712 effect_matcher));
713 } 713 }
714 714
715 715
716 Matcher<Node*> IsStore(const Matcher<MachineType>& type_matcher, 716 Matcher<Node*> IsStore(const Matcher<MachineType>& type_matcher,
717 const Matcher<WriteBarrierKind>& write_barrier_matcher, 717 const Matcher<WriteBarrierKind>& write_barrier_matcher,
718 const Matcher<Node*>& base_matcher, 718 const Matcher<Node*>& base_matcher,
719 const Matcher<Node*>& index_matcher, 719 const Matcher<Node*>& index_matcher,
720 const Matcher<Node*>& value_matcher, 720 const Matcher<Node*>& value_matcher,
721 const Matcher<Node*>& effect_matcher, 721 const Matcher<Node*>& effect_matcher,
722 const Matcher<Node*>& control_matcher) { 722 const Matcher<Node*>& control_matcher) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 IS_UNOP_MATCHER(ChangeInt32ToInt64) 756 IS_UNOP_MATCHER(ChangeInt32ToInt64)
757 IS_UNOP_MATCHER(ChangeUint32ToFloat64) 757 IS_UNOP_MATCHER(ChangeUint32ToFloat64)
758 IS_UNOP_MATCHER(ChangeUint32ToUint64) 758 IS_UNOP_MATCHER(ChangeUint32ToUint64)
759 IS_UNOP_MATCHER(TruncateFloat64ToInt32) 759 IS_UNOP_MATCHER(TruncateFloat64ToInt32)
760 IS_UNOP_MATCHER(TruncateInt64ToInt32) 760 IS_UNOP_MATCHER(TruncateInt64ToInt32)
761 #undef IS_UNOP_MATCHER 761 #undef IS_UNOP_MATCHER
762 762
763 } // namespace compiler 763 } // namespace compiler
764 } // namespace internal 764 } // namespace internal
765 } // namespace v8 765 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/graph-unittest.h ('k') | src/compiler/ia32/instruction-selector-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698