OLD | NEW |
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 "test/compiler-unittests/graph-unittest.h" | 5 #include "test/compiler-unittests/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 |
| 11 using testing::_; |
11 using testing::MakeMatcher; | 12 using testing::MakeMatcher; |
12 using testing::MatcherInterface; | 13 using testing::MatcherInterface; |
13 using testing::MatchResultListener; | 14 using testing::MatchResultListener; |
14 using testing::StringMatchResultListener; | 15 using testing::StringMatchResultListener; |
15 | 16 |
16 namespace v8 { | 17 namespace v8 { |
17 namespace internal { | 18 namespace internal { |
18 | 19 |
19 // TODO(bmeurer): Find a new home for these functions. | 20 // TODO(bmeurer): Find a new home for these functions. |
20 template <typename T> | 21 template <typename T> |
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 new IsControl1Matcher(IrOpcode::kIfFalse, control_matcher)); | 561 new IsControl1Matcher(IrOpcode::kIfFalse, control_matcher)); |
561 } | 562 } |
562 | 563 |
563 | 564 |
564 Matcher<Node*> IsControlEffect(const Matcher<Node*>& control_matcher) { | 565 Matcher<Node*> IsControlEffect(const Matcher<Node*>& control_matcher) { |
565 return MakeMatcher( | 566 return MakeMatcher( |
566 new IsControl1Matcher(IrOpcode::kControlEffect, control_matcher)); | 567 new IsControl1Matcher(IrOpcode::kControlEffect, control_matcher)); |
567 } | 568 } |
568 | 569 |
569 | 570 |
| 571 Matcher<Node*> IsValueEffect(const Matcher<Node*>& value_matcher) { |
| 572 return MakeMatcher(new IsUnopMatcher(IrOpcode::kValueEffect, value_matcher)); |
| 573 } |
| 574 |
| 575 |
570 Matcher<Node*> IsFinish(const Matcher<Node*>& value_matcher, | 576 Matcher<Node*> IsFinish(const Matcher<Node*>& value_matcher, |
571 const Matcher<Node*>& effect_matcher) { | 577 const Matcher<Node*>& effect_matcher) { |
572 return MakeMatcher(new IsFinishMatcher(value_matcher, effect_matcher)); | 578 return MakeMatcher(new IsFinishMatcher(value_matcher, effect_matcher)); |
573 } | 579 } |
574 | 580 |
575 | 581 |
576 Matcher<Node*> IsExternalConstant( | 582 Matcher<Node*> IsExternalConstant( |
577 const Matcher<ExternalReference>& value_matcher) { | 583 const Matcher<ExternalReference>& value_matcher) { |
578 return MakeMatcher(new IsConstantMatcher<ExternalReference>( | 584 return MakeMatcher(new IsConstantMatcher<ExternalReference>( |
579 IrOpcode::kExternalConstant, value_matcher)); | 585 IrOpcode::kExternalConstant, value_matcher)); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
664 IS_BINOP_MATCHER(Word64Equal) | 670 IS_BINOP_MATCHER(Word64Equal) |
665 IS_BINOP_MATCHER(Int32AddWithOverflow) | 671 IS_BINOP_MATCHER(Int32AddWithOverflow) |
666 #undef IS_BINOP_MATCHER | 672 #undef IS_BINOP_MATCHER |
667 | 673 |
668 | 674 |
669 #define IS_UNOP_MATCHER(Name) \ | 675 #define IS_UNOP_MATCHER(Name) \ |
670 Matcher<Node*> Is##Name(const Matcher<Node*>& input_matcher) { \ | 676 Matcher<Node*> Is##Name(const Matcher<Node*>& input_matcher) { \ |
671 return MakeMatcher(new IsUnopMatcher(IrOpcode::k##Name, input_matcher)); \ | 677 return MakeMatcher(new IsUnopMatcher(IrOpcode::k##Name, input_matcher)); \ |
672 } | 678 } |
673 IS_UNOP_MATCHER(ConvertInt64ToInt32) | 679 IS_UNOP_MATCHER(ConvertInt64ToInt32) |
| 680 IS_UNOP_MATCHER(ChangeFloat64ToInt32) |
674 IS_UNOP_MATCHER(ChangeInt32ToFloat64) | 681 IS_UNOP_MATCHER(ChangeInt32ToFloat64) |
675 #undef IS_UNOP_MATCHER | 682 #undef IS_UNOP_MATCHER |
676 | 683 |
677 } // namespace compiler | 684 } // namespace compiler |
678 } // namespace internal | 685 } // namespace internal |
679 } // namespace v8 | 686 } // namespace v8 |
OLD | NEW |