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

Side by Side Diff: test/unittests/compiler/node-test-utils.cc

Issue 1477783003: [Interpreter] Deprecate bytecode-graph-builder-unittest. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Additional clean up. 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 | « test/unittests/compiler/node-test-utils.h ('k') | test/unittests/unittests.gyp » ('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 "test/unittests/compiler/node-test-utils.h" 5 #include "test/unittests/compiler/node-test-utils.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "src/assembler.h" 9 #include "src/assembler.h"
10 #include "src/compiler/common-operator.h" 10 #include "src/compiler/common-operator.h"
(...skipping 1409 matching lines...) Expand 10 before | Expand all | Expand 10 after
1420 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final { 1420 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1421 return (NodeMatcher::MatchAndExplain(node, listener) && 1421 return (NodeMatcher::MatchAndExplain(node, listener) &&
1422 PrintMatchAndExplain(ParameterIndexOf(node->op()), "index", 1422 PrintMatchAndExplain(ParameterIndexOf(node->op()), "index",
1423 index_matcher_, listener)); 1423 index_matcher_, listener));
1424 } 1424 }
1425 1425
1426 private: 1426 private:
1427 const Matcher<int> index_matcher_; 1427 const Matcher<int> index_matcher_;
1428 }; 1428 };
1429 1429
1430
1431 class IsJSDeletePropertyMatcher final : public NodeMatcher {
1432 public:
1433 IsJSDeletePropertyMatcher(const Matcher<Node*>& object_value_matcher,
1434 const Matcher<Node*>& key_matcher,
1435 const Matcher<Node*>& effect_matcher,
1436 const Matcher<Node*>& control_matcher)
1437 : NodeMatcher(IrOpcode::kJSDeleteProperty),
1438 object_value_matcher_(object_value_matcher),
1439 key_matcher_(key_matcher),
1440 effect_matcher_(effect_matcher),
1441 control_matcher_(control_matcher) {}
1442
1443 void DescribeTo(std::ostream* os) const final {
1444 NodeMatcher::DescribeTo(os);
1445 *os << " whose object (";
1446 object_value_matcher_.DescribeTo(os);
1447 *os << "), key (";
1448 key_matcher_.DescribeTo(os);
1449 *os << "), effect (";
1450 effect_matcher_.DescribeTo(os);
1451 *os << "), and control (";
1452 control_matcher_.DescribeTo(os);
1453 *os << ")";
1454 }
1455
1456 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1457 return (NodeMatcher::MatchAndExplain(node, listener) &&
1458 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
1459 "object", object_value_matcher_, listener) &&
1460 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), "key",
1461 key_matcher_, listener) &&
1462 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
1463 effect_matcher_, listener) &&
1464 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
1465 "control", control_matcher_, listener));
1466 }
1467
1468 private:
1469 const Matcher<Node*> object_value_matcher_;
1470 const Matcher<Node*> key_matcher_;
1471 const Matcher<Node*> effect_matcher_;
1472 const Matcher<Node*> control_matcher_;
1473 };
1474
1475
1476 class IsJSLoadGlobalMatcher final : public NodeMatcher {
1477 public:
1478 IsJSLoadGlobalMatcher(const Matcher<Handle<Name>>& name_matcher,
1479 const Matcher<TypeofMode> typeof_mode_matcher,
1480 const Matcher<Node*>& feedback_vector_matcher,
1481 const Matcher<Node*>& effect_matcher,
1482 const Matcher<Node*>& control_matcher)
1483 : NodeMatcher(IrOpcode::kJSLoadGlobal),
1484 name_matcher_(name_matcher),
1485 typeof_mode_matcher_(typeof_mode_matcher),
1486 feedback_vector_matcher_(feedback_vector_matcher),
1487 effect_matcher_(effect_matcher),
1488 control_matcher_(control_matcher) {}
1489
1490 void DescribeTo(std::ostream* os) const final {
1491 NodeMatcher::DescribeTo(os);
1492 *os << " whose name (";
1493 name_matcher_.DescribeTo(os);
1494 *os << "), typeof mode (";
1495 typeof_mode_matcher_.DescribeTo(os);
1496 *os << "), feedback vector (";
1497 feedback_vector_matcher_.DescribeTo(os);
1498 *os << "), effect (";
1499 effect_matcher_.DescribeTo(os);
1500 *os << "), and control (";
1501 control_matcher_.DescribeTo(os);
1502 *os << ")";
1503 }
1504
1505 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1506 return (NodeMatcher::MatchAndExplain(node, listener) &&
1507 PrintMatchAndExplain(OpParameter<LoadGlobalParameters>(node).name(),
1508 "name", name_matcher_, listener) &&
1509 PrintMatchAndExplain(
1510 OpParameter<LoadGlobalParameters>(node).typeof_mode(),
1511 "typeof mode", typeof_mode_matcher_, listener) &&
1512 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
1513 "feedback vector", feedback_vector_matcher_,
1514 listener) &&
1515 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
1516 effect_matcher_, listener) &&
1517 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
1518 "control", control_matcher_, listener));
1519 }
1520
1521 private:
1522 const Matcher<Handle<Name>> name_matcher_;
1523 const Matcher<TypeofMode> typeof_mode_matcher_;
1524 const Matcher<Node*> feedback_vector_matcher_;
1525 const Matcher<Node*> effect_matcher_;
1526 const Matcher<Node*> control_matcher_;
1527 };
1528
1529
1530 class IsJSStoreGlobalMatcher final : public NodeMatcher {
1531 public:
1532 IsJSStoreGlobalMatcher(const Matcher<Handle<Name>>& name_matcher,
1533 const Matcher<Node*>& value_matcher,
1534 const Matcher<Node*>& feedback_vector_matcher,
1535 const Matcher<Node*>& effect_matcher,
1536 const Matcher<Node*>& control_matcher)
1537 : NodeMatcher(IrOpcode::kJSStoreGlobal),
1538 name_matcher_(name_matcher),
1539 value_matcher_(value_matcher),
1540 feedback_vector_matcher_(feedback_vector_matcher),
1541 effect_matcher_(effect_matcher),
1542 control_matcher_(control_matcher) {}
1543
1544 void DescribeTo(std::ostream* os) const final {
1545 NodeMatcher::DescribeTo(os);
1546 *os << " whose name (";
1547 name_matcher_.DescribeTo(os);
1548 *os << "), value (";
1549 value_matcher_.DescribeTo(os);
1550 *os << "), feedback vector (";
1551 feedback_vector_matcher_.DescribeTo(os);
1552 *os << "), effect (";
1553 effect_matcher_.DescribeTo(os);
1554 *os << "), and control (";
1555 control_matcher_.DescribeTo(os);
1556 *os << ")";
1557 }
1558
1559 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1560 return (
1561 NodeMatcher::MatchAndExplain(node, listener) &&
1562 PrintMatchAndExplain(OpParameter<StoreGlobalParameters>(node).name(),
1563 "name", name_matcher_, listener) &&
1564 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "value",
1565 value_matcher_, listener) &&
1566 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1),
1567 "feedback vector", feedback_vector_matcher_,
1568 listener) &&
1569 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
1570 effect_matcher_, listener) &&
1571 PrintMatchAndExplain(NodeProperties::GetControlInput(node), "control",
1572 control_matcher_, listener));
1573 }
1574
1575 private:
1576 const Matcher<Handle<Name>> name_matcher_;
1577 const Matcher<Node*> value_matcher_;
1578 const Matcher<Node*> feedback_vector_matcher_;
1579 const Matcher<Node*> effect_matcher_;
1580 const Matcher<Node*> control_matcher_;
1581 };
1582
1583
1584 class IsJSLoadNamedMatcher final : public NodeMatcher {
1585 public:
1586 IsJSLoadNamedMatcher(const Matcher<Handle<Name>>& name_matcher,
1587 const Matcher<Node*>& object_value_matcher,
1588 const Matcher<Node*>& feedback_vector_matcher,
1589 const Matcher<Node*>& effect_matcher,
1590 const Matcher<Node*>& control_matcher)
1591 : NodeMatcher(IrOpcode::kJSLoadNamed),
1592 name_matcher_(name_matcher),
1593 object_value_matcher_(object_value_matcher),
1594 feedback_vector_matcher_(feedback_vector_matcher),
1595 effect_matcher_(effect_matcher),
1596 control_matcher_(control_matcher) {}
1597
1598 void DescribeTo(std::ostream* os) const final {
1599 NodeMatcher::DescribeTo(os);
1600 *os << " whose object (";
1601 object_value_matcher_.DescribeTo(os);
1602 *os << "), name (";
1603 name_matcher_.DescribeTo(os);
1604 *os << "), feedback vector (";
1605 feedback_vector_matcher_.DescribeTo(os);
1606 *os << "), effect (";
1607 effect_matcher_.DescribeTo(os);
1608 *os << "), and control (";
1609 control_matcher_.DescribeTo(os);
1610 *os << ")";
1611 }
1612
1613 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1614 return (NodeMatcher::MatchAndExplain(node, listener) &&
1615 PrintMatchAndExplain(OpParameter<NamedAccess>(node).name(), "Name",
1616 name_matcher_, listener) &&
1617 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
1618 "object", object_value_matcher_, listener) &&
1619 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1),
1620 "feedback vector", feedback_vector_matcher_,
1621 listener) &&
1622 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
1623 effect_matcher_, listener) &&
1624 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
1625 "control", control_matcher_, listener));
1626 }
1627
1628 private:
1629 const Matcher<Handle<Name>> name_matcher_;
1630 const Matcher<Node*> object_value_matcher_;
1631 const Matcher<Node*> feedback_vector_matcher_;
1632 const Matcher<Node*> effect_matcher_;
1633 const Matcher<Node*> control_matcher_;
1634 };
1635
1636
1637 class IsJSLoadPropertyMatcher final : public NodeMatcher {
1638 public:
1639 IsJSLoadPropertyMatcher(const Matcher<Node*>& object_matcher,
1640 const Matcher<Node*>& key_matcher,
1641 const Matcher<Node*>& feedback_vector_matcher,
1642 const Matcher<Node*>& effect_matcher,
1643 const Matcher<Node*>& control_matcher)
1644 : NodeMatcher(IrOpcode::kJSLoadProperty),
1645 object_matcher_(object_matcher),
1646 key_matcher_(key_matcher),
1647 feedback_vector_matcher_(feedback_vector_matcher),
1648 effect_matcher_(effect_matcher),
1649 control_matcher_(control_matcher) {}
1650
1651 void DescribeTo(std::ostream* os) const final {
1652 NodeMatcher::DescribeTo(os);
1653 *os << " whose object (";
1654 object_matcher_.DescribeTo(os);
1655 *os << "), key (";
1656 key_matcher_.DescribeTo(os);
1657 *os << "), feedback vector (";
1658 feedback_vector_matcher_.DescribeTo(os);
1659 *os << "), effect (";
1660 effect_matcher_.DescribeTo(os);
1661 *os << "), and control (";
1662 control_matcher_.DescribeTo(os);
1663 *os << ")";
1664 }
1665
1666 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1667 return (NodeMatcher::MatchAndExplain(node, listener) &&
1668 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
1669 "object", object_matcher_, listener) &&
1670 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), "key",
1671 key_matcher_, listener) &&
1672 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 2),
1673 "feedback vector", feedback_vector_matcher_,
1674 listener) &&
1675 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
1676 effect_matcher_, listener) &&
1677 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
1678 "control", control_matcher_, listener));
1679 }
1680
1681 private:
1682 const Matcher<Node*> object_matcher_;
1683 const Matcher<Node*> key_matcher_;
1684 const Matcher<Node*> feedback_vector_matcher_;
1685 const Matcher<Node*> effect_matcher_;
1686 const Matcher<Node*> control_matcher_;
1687 };
1688
1689
1690 class IsJSStoreNamedMatcher final : public NodeMatcher {
1691 public:
1692 IsJSStoreNamedMatcher(const Matcher<Handle<Name>>& name_matcher,
1693 const Matcher<Node*>& object_matcher,
1694 const Matcher<Node*>& value_matcher,
1695 const Matcher<Node*>& feedback_vector_matcher,
1696 const Matcher<Node*>& effect_matcher,
1697 const Matcher<Node*>& control_matcher)
1698 : NodeMatcher(IrOpcode::kJSStoreNamed),
1699 name_matcher_(name_matcher),
1700 object_matcher_(object_matcher),
1701 value_matcher_(value_matcher),
1702 feedback_vector_matcher_(feedback_vector_matcher),
1703 effect_matcher_(effect_matcher),
1704 control_matcher_(control_matcher) {}
1705
1706 void DescribeTo(std::ostream* os) const final {
1707 NodeMatcher::DescribeTo(os);
1708 *os << " whose object (";
1709 object_matcher_.DescribeTo(os);
1710 *os << "), name (";
1711 name_matcher_.DescribeTo(os);
1712 *os << "), value (";
1713 value_matcher_.DescribeTo(os);
1714 *os << "), feedback vector (";
1715 feedback_vector_matcher_.DescribeTo(os);
1716 *os << "), effect (";
1717 effect_matcher_.DescribeTo(os);
1718 *os << "), and control (";
1719 control_matcher_.DescribeTo(os);
1720 *os << ")";
1721 }
1722
1723 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1724 return (NodeMatcher::MatchAndExplain(node, listener) &&
1725 PrintMatchAndExplain(OpParameter<NamedAccess>(node).name(), "Name",
1726 name_matcher_, listener) &&
1727 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
1728 "object", object_matcher_, listener) &&
1729 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1),
1730 "value", value_matcher_, listener) &&
1731 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 2),
1732 "feedback vector", feedback_vector_matcher_,
1733 listener) &&
1734 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
1735 effect_matcher_, listener) &&
1736 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
1737 "control", control_matcher_, listener));
1738 }
1739
1740 private:
1741 const Matcher<Handle<Name>> name_matcher_;
1742 const Matcher<Node*> object_matcher_;
1743 const Matcher<Node*> value_matcher_;
1744 const Matcher<Node*> feedback_vector_matcher_;
1745 const Matcher<Node*> effect_matcher_;
1746 const Matcher<Node*> control_matcher_;
1747 };
1748
1749
1750 class IsJSStorePropertyMatcher final : public NodeMatcher {
1751 public:
1752 IsJSStorePropertyMatcher(const Matcher<Node*>& object_matcher,
1753 const Matcher<Node*>& key_matcher,
1754 const Matcher<Node*>& value_matcher,
1755 const Matcher<Node*>& feedback_vector_matcher,
1756 const Matcher<Node*>& effect_matcher,
1757 const Matcher<Node*>& control_matcher)
1758 : NodeMatcher(IrOpcode::kJSStoreProperty),
1759 object_matcher_(object_matcher),
1760 key_matcher_(key_matcher),
1761 value_matcher_(value_matcher),
1762 feedback_vector_matcher_(feedback_vector_matcher),
1763 effect_matcher_(effect_matcher),
1764 control_matcher_(control_matcher) {}
1765
1766 void DescribeTo(std::ostream* os) const final {
1767 NodeMatcher::DescribeTo(os);
1768 *os << " whose object (";
1769 object_matcher_.DescribeTo(os);
1770 *os << "), key (";
1771 key_matcher_.DescribeTo(os);
1772 *os << "), value (";
1773 value_matcher_.DescribeTo(os);
1774 *os << "), feedback vector (";
1775 feedback_vector_matcher_.DescribeTo(os);
1776 *os << "), effect (";
1777 effect_matcher_.DescribeTo(os);
1778 *os << "), and control (";
1779 }
1780
1781 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1782 return (NodeMatcher::MatchAndExplain(node, listener) &&
1783 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
1784 "object", object_matcher_, listener) &&
1785 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), "key",
1786 key_matcher_, listener) &&
1787 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 2),
1788 "value", value_matcher_, listener) &&
1789 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 3),
1790 "feedback vector", feedback_vector_matcher_,
1791 listener) &&
1792 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
1793 effect_matcher_, listener) &&
1794 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
1795 "control", control_matcher_, listener));
1796 }
1797
1798 private:
1799 const Matcher<Node*> object_matcher_;
1800 const Matcher<Node*> key_matcher_;
1801 const Matcher<Node*> value_matcher_;
1802 const Matcher<Node*> feedback_vector_matcher_;
1803 const Matcher<Node*> effect_matcher_;
1804 const Matcher<Node*> control_matcher_;
1805 };
1806
1807
1808 class IsJSCallMatcher final : public NodeMatcher {
1809 public:
1810 IsJSCallMatcher(IrOpcode::Value op_code,
1811 const std::vector<Matcher<Node*>>& value_matchers,
1812 const Matcher<Node*>& effect_matcher,
1813 const Matcher<Node*>& control_matcher)
1814 : NodeMatcher(op_code),
1815 value_matchers_(value_matchers),
1816 effect_matcher_(effect_matcher),
1817 control_matcher_(control_matcher) {}
1818
1819 void DescribeTo(std::ostream* os) const final {
1820 NodeMatcher::DescribeTo(os);
1821 for (size_t i = 0; i < value_matchers_.size(); ++i) {
1822 if (i == 0) {
1823 *os << " whose value0 (";
1824 } else {
1825 *os << "), value" << i << " (";
1826 }
1827 value_matchers_[i].DescribeTo(os);
1828 }
1829 *os << "), effect (";
1830 effect_matcher_.DescribeTo(os);
1831 *os << ") and control (";
1832 control_matcher_.DescribeTo(os);
1833 *os << ")";
1834 }
1835
1836 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1837 if (!NodeMatcher::MatchAndExplain(node, listener)) {
1838 return false;
1839 }
1840 for (size_t i = 0; i < value_matchers_.size(); ++i) {
1841 std::ostringstream ost;
1842 ost << "value" << i;
1843 if (!PrintMatchAndExplain(
1844 NodeProperties::GetValueInput(node, static_cast<int>(i)),
1845 ost.str(), value_matchers_[i], listener)) {
1846 return false;
1847 }
1848 }
1849 return (PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
1850 effect_matcher_, listener) &&
1851 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
1852 "control", control_matcher_, listener));
1853 }
1854
1855 private:
1856 const std::vector<Matcher<Node*>> value_matchers_;
1857 const Matcher<Node*> effect_matcher_;
1858 const Matcher<Node*> control_matcher_;
1859 };
1860
1861 } // namespace 1430 } // namespace
1862 1431
1863 1432
1864 Matcher<Node*> IsDead() { 1433 Matcher<Node*> IsDead() {
1865 return MakeMatcher(new NodeMatcher(IrOpcode::kDead)); 1434 return MakeMatcher(new NodeMatcher(IrOpcode::kDead));
1866 } 1435 }
1867 1436
1868 1437
1869 Matcher<Node*> IsEnd(const Matcher<Node*>& control0_matcher) { 1438 Matcher<Node*> IsEnd(const Matcher<Node*>& control0_matcher) {
1870 return MakeMatcher(new IsControl1Matcher(IrOpcode::kEnd, control0_matcher)); 1439 return MakeMatcher(new IsControl1Matcher(IrOpcode::kEnd, control0_matcher));
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after
2424 Matcher<Node*> IsParameter(const Matcher<int> index_matcher) { 1993 Matcher<Node*> IsParameter(const Matcher<int> index_matcher) {
2425 return MakeMatcher(new IsParameterMatcher(index_matcher)); 1994 return MakeMatcher(new IsParameterMatcher(index_matcher));
2426 } 1995 }
2427 1996
2428 1997
2429 Matcher<Node*> IsLoadFramePointer() { 1998 Matcher<Node*> IsLoadFramePointer() {
2430 return MakeMatcher(new NodeMatcher(IrOpcode::kLoadFramePointer)); 1999 return MakeMatcher(new NodeMatcher(IrOpcode::kLoadFramePointer));
2431 } 2000 }
2432 2001
2433 2002
2434 Matcher<Node*> IsJSDeleteProperty(const Matcher<Node*>& object_value_matcher,
2435 const Matcher<Node*>& key_matcher,
2436 const Matcher<Node*>& effect_matcher,
2437 const Matcher<Node*>& control_matcher) {
2438 return MakeMatcher(new IsJSDeletePropertyMatcher(
2439 object_value_matcher, key_matcher, effect_matcher, control_matcher));
2440 }
2441
2442
2443 Matcher<Node*> IsJSLoadNamed(const Handle<Name> name,
2444 const Matcher<Node*>& object_value_matcher,
2445 const Matcher<Node*>& feedback_vector_matcher,
2446 const Matcher<Node*>& effect_matcher,
2447 const Matcher<Node*>& control_matcher) {
2448 return MakeMatcher(new IsJSLoadNamedMatcher(name, object_value_matcher,
2449 feedback_vector_matcher,
2450 effect_matcher, control_matcher));
2451 }
2452
2453
2454 Matcher<Node*> IsJSLoadGlobal(const Handle<Name> name,
2455 const TypeofMode typeof_mode,
2456 const Matcher<Node*>& feedback_vector_matcher,
2457 const Matcher<Node*>& effect_matcher,
2458 const Matcher<Node*>& control_matcher) {
2459 return MakeMatcher(
2460 new IsJSLoadGlobalMatcher(name, typeof_mode, feedback_vector_matcher,
2461 effect_matcher, control_matcher));
2462 }
2463
2464
2465 Matcher<Node*> IsJSStoreGlobal(const Handle<Name> name,
2466 const Matcher<Node*>& value_matcher,
2467 const Matcher<Node*>& feedback_vector_matcher,
2468 const Matcher<Node*>& effect_matcher,
2469 const Matcher<Node*>& control_matcher) {
2470 return MakeMatcher(
2471 new IsJSStoreGlobalMatcher(name, value_matcher, feedback_vector_matcher,
2472 effect_matcher, control_matcher));
2473 }
2474
2475
2476 Matcher<Node*> IsJSCallConstruct(std::vector<Matcher<Node*>> value_matchers,
2477 const Matcher<Node*>& effect_matcher,
2478 const Matcher<Node*>& control_matcher) {
2479 return MakeMatcher(new IsJSCallMatcher(IrOpcode::kJSCallConstruct,
2480 value_matchers, effect_matcher,
2481 control_matcher));
2482 }
2483
2484
2485 Matcher<Node*> IsJSCallFunction(std::vector<Matcher<Node*>> value_matchers,
2486 const Matcher<Node*>& effect_matcher,
2487 const Matcher<Node*>& control_matcher) {
2488 return MakeMatcher(new IsJSCallMatcher(IrOpcode::kJSCallFunction,
2489 value_matchers, effect_matcher,
2490 control_matcher));
2491 }
2492
2493
2494 Matcher<Node*> IsJSLoadProperty(const Matcher<Node*>& object_matcher,
2495 const Matcher<Node*>& key_matcher,
2496 const Matcher<Node*>& feedback_vector_matcher,
2497 const Matcher<Node*>& effect_matcher,
2498 const Matcher<Node*>& control_matcher) {
2499 return MakeMatcher(new IsJSLoadPropertyMatcher(
2500 object_matcher, key_matcher, feedback_vector_matcher, effect_matcher,
2501 control_matcher));
2502 }
2503
2504
2505 Matcher<Node*> IsJSStoreNamed(const Handle<Name> name,
2506 const Matcher<Node*>& object_matcher,
2507 const Matcher<Node*>& value_matcher,
2508 const Matcher<Node*>& feedback_vector_matcher,
2509 const Matcher<Node*>& effect_matcher,
2510 const Matcher<Node*>& control_matcher) {
2511 return MakeMatcher(new IsJSStoreNamedMatcher(
2512 _, object_matcher, value_matcher, feedback_vector_matcher, effect_matcher,
2513 control_matcher));
2514 }
2515
2516
2517 Matcher<Node*> IsJSStoreProperty(const Matcher<Node*>& object_matcher,
2518 const Matcher<Node*>& key_matcher,
2519 const Matcher<Node*>& value_matcher,
2520 const Matcher<Node*>& feedback_vector_matcher,
2521 const Matcher<Node*>& effect_matcher,
2522 const Matcher<Node*>& control_matcher) {
2523 return MakeMatcher(new IsJSStorePropertyMatcher(
2524 object_matcher, key_matcher, value_matcher, feedback_vector_matcher,
2525 effect_matcher, control_matcher));
2526 }
2527
2528
2529 Matcher<Node*> IsJSCallRuntime(std::vector<Matcher<Node*>> value_matchers,
2530 const Matcher<Node*>& effect_matcher,
2531 const Matcher<Node*>& control_matcher) {
2532 return MakeMatcher(new IsJSCallMatcher(IrOpcode::kJSCallRuntime,
2533 value_matchers, effect_matcher,
2534 control_matcher));
2535 }
2536
2537
2538 #define IS_BINOP_MATCHER(Name) \ 2003 #define IS_BINOP_MATCHER(Name) \
2539 Matcher<Node*> Is##Name(const Matcher<Node*>& lhs_matcher, \ 2004 Matcher<Node*> Is##Name(const Matcher<Node*>& lhs_matcher, \
2540 const Matcher<Node*>& rhs_matcher) { \ 2005 const Matcher<Node*>& rhs_matcher) { \
2541 return MakeMatcher( \ 2006 return MakeMatcher( \
2542 new IsBinopMatcher(IrOpcode::k##Name, lhs_matcher, rhs_matcher)); \ 2007 new IsBinopMatcher(IrOpcode::k##Name, lhs_matcher, rhs_matcher)); \
2543 } 2008 }
2544 IS_BINOP_MATCHER(NumberEqual) 2009 IS_BINOP_MATCHER(NumberEqual)
2545 IS_BINOP_MATCHER(NumberLessThan) 2010 IS_BINOP_MATCHER(NumberLessThan)
2546 IS_BINOP_MATCHER(NumberSubtract) 2011 IS_BINOP_MATCHER(NumberSubtract)
2547 IS_BINOP_MATCHER(NumberMultiply) 2012 IS_BINOP_MATCHER(NumberMultiply)
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2610 IS_UNOP_MATCHER(NumberToUint32) 2075 IS_UNOP_MATCHER(NumberToUint32)
2611 IS_UNOP_MATCHER(ObjectIsSmi) 2076 IS_UNOP_MATCHER(ObjectIsSmi)
2612 IS_UNOP_MATCHER(Word32Clz) 2077 IS_UNOP_MATCHER(Word32Clz)
2613 IS_UNOP_MATCHER(JSUnaryNot) 2078 IS_UNOP_MATCHER(JSUnaryNot)
2614 IS_UNOP_MATCHER(JSTypeOf) 2079 IS_UNOP_MATCHER(JSTypeOf)
2615 #undef IS_UNOP_MATCHER 2080 #undef IS_UNOP_MATCHER
2616 2081
2617 } // namespace compiler 2082 } // namespace compiler
2618 } // namespace internal 2083 } // namespace internal
2619 } // namespace v8 2084 } // namespace v8
OLDNEW
« no previous file with comments | « test/unittests/compiler/node-test-utils.h ('k') | test/unittests/unittests.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698